Browse Source

MainFrame Rework Pt. 1

Tom Troppmann 2 years ago
parent
commit
99e4ed40b6

+ 1 - 1
src/Connection/ConnectHandheld.java

@@ -27,7 +27,7 @@ import classes.GroupNode;
 import classes.HolonObject;
 import Connection.socket.Server;
 import ui.controller.Control;
-import ui.view.componnents.Console;
+import ui.view.component.Console;
 
 public class ConnectHandheld implements AddOn{
 	

+ 1 - 1
src/Connection/ConnectPhysical.java

@@ -36,7 +36,7 @@ import classes.GroupNode;
 import classes.HolonElement;
 import classes.HolonObject;
 import ui.controller.Control;
-import ui.view.componnents.Console;
+import ui.view.component.Console;
 /**
  * Easy Connection via Http Request. Repeat Request with a delay.
  * 

+ 2 - 2
src/Connection/socket/Server.java

@@ -17,7 +17,7 @@ public class Server implements Runnable{
     private DataInputStream in;
     private boolean stopped = false;		
     private boolean connection = false;
-    private ui.view.componnents.Console console;
+    private ui.view.component.Console console;
     
     
     private HolonObject observed;
@@ -25,7 +25,7 @@ public class Server implements Runnable{
     private HolonObjectModel newModelField;
 	private Control control;
     
-    public Server(int port, ui.view.componnents.Console console, HolonObject observed, Control control) throws IOException {
+    public Server(int port, ui.view.component.Console console, HolonObject observed, Control control) throws IOException {
     	this.observed = observed;
     	this.console = console;
     	this.control = control;

+ 1 - 1
src/api/AlgorithmFrameworkFlex.java

@@ -60,7 +60,7 @@ import model.DecoratedSwitch.SwitchState;
 import ui.controller.Control;
 import ui.controller.FlexManager.FlexState;
 import ui.controller.FlexManager.FlexWrapper;
-import ui.view.componnents.Console;
+import ui.view.component.Console;
 import utility.ImageImport;
 import utility.StringFormat;
 

+ 1 - 1
src/api/TopologieAlgorithmFramework.java

@@ -55,7 +55,7 @@ import model.Model;
 import model.DecoratedHolonObject.HolonObjectState;
 import model.DecoratedSwitch.SwitchState;
 import ui.controller.Control;
-import ui.view.componnents.Console;
+import ui.view.component.Console;
 
 public abstract class TopologieAlgorithmFramework implements AddOn{
 	//Algo

+ 2 - 2
src/model/Model.java

@@ -28,8 +28,8 @@ import classes.Pair;
 import classes.Position;
 import interfaces.GraphListener;
 import interfaces.ObjectListener;
-import ui.view.main.DefaulTable;
-import ui.view.main.PropertyTable;
+import ui.view.main.old.DefaulTable;
+import ui.view.main.old.PropertyTable;
 
 /**
  * The Class Model is the class where everything is saved. All changes made to

+ 1 - 1
src/ui/controller/Control.java

@@ -22,7 +22,7 @@ import classes.Node;
 import model.Model;
 import model.Model.FairnessModel;
 import ui.view.additional.popup.CreateTemplatePopUp;
-import ui.view.main.GUI;
+import ui.view.main.old.GUI;
 
 /**
  * The Class represents the controller in the model, controller view Pattern.

+ 3 - 3
src/ui/controller/UpdateController.java

@@ -10,9 +10,9 @@ import classes.comparator.elementComparator.ElemCompOnQuantity;
 import model.DecoratedGroupNode;
 import model.Model;
 import model.DecoratedHolonObject.HolonObjectState;
-import ui.view.main.DefaulTable;
-import ui.view.main.GroupNodeCanvas;
-import ui.view.main.PropertyTable;
+import ui.view.main.old.DefaulTable;
+import ui.view.main.old.GroupNodeCanvas;
+import ui.view.main.old.PropertyTable;
 
 import java.util.ArrayList;
 import java.util.HashMap;

+ 1 - 1
src/ui/view/additional/popup/BackgroundPopUp.java

@@ -3,7 +3,7 @@ package ui.view.additional.popup;
 import classes.GroupNode;
 import model.Model;
 import ui.controller.Control;
-import ui.view.main.MyCanvas;
+import ui.view.main.old.MyCanvas;
 import utility.ImageImport;
 
 import javax.swing.*;

+ 2 - 2
src/ui/view/additional/popup/CanvasResizePopUp.java

@@ -1,8 +1,8 @@
 package ui.view.additional.popup;
 
 import ui.controller.Control;
-import ui.view.main.GroupNodeCanvas;
-import ui.view.main.MyCanvas;
+import ui.view.main.old.GroupNodeCanvas;
+import ui.view.main.old.MyCanvas;
 import utility.ImageImport;
 
 import javax.swing.*;

+ 1 - 1
src/ui/view/additional/popup/EditEdgesPopUp.java

@@ -18,7 +18,7 @@ import javax.swing.border.EmptyBorder;
 
 import classes.Edge;
 import ui.controller.Control;
-import ui.view.main.MyCanvas;
+import ui.view.main.old.MyCanvas;
 
 /**
  * Popup for Editing Edges.

+ 1 - 1
src/ui/view/additional/popup/SearchPopUp.java

@@ -2,7 +2,7 @@ package ui.view.additional.popup;
 
 import classes.AbstractCanvasObject;
 import ui.controller.Control;
-import ui.view.main.MyCanvas;
+import ui.view.main.old.MyCanvas;
 
 import javax.swing.*;
 import javax.swing.border.EmptyBorder;

+ 1 - 1
src/ui/view/componnents/ButtonTabComponent.java → src/ui/view/component/ButtonTabComponent.java

@@ -1,4 +1,4 @@
-package ui.view.componnents;
+package ui.view.component;
 
 /*
  * Copyright (c) 1995, 2008, Oracle and/or its affiliates. All rights reserved.

+ 1 - 1
src/ui/view/componnents/Console.java → src/ui/view/component/Console.java

@@ -1,4 +1,4 @@
-package ui.view.componnents;
+package ui.view.component;
 
 import java.awt.BorderLayout;
 

+ 11 - 0
src/ui/view/main/CatalogExplorer.java

@@ -0,0 +1,11 @@
+package ui.view.main;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class CatalogExplorer extends JPanel{
+
+	public CatalogExplorer() {
+		this.add(new JLabel("CatalogExplorer"));
+	}
+}

+ 78 - 0
src/ui/view/main/HolonCanvas.java

@@ -0,0 +1,78 @@
+package ui.view.main;
+
+import java.awt.Color;
+import java.awt.Dimension;
+import java.awt.Graphics;
+import java.awt.Graphics2D;
+import java.awt.RenderingHints;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+import javax.swing.JScrollPane;
+
+import classes.Vector2d;
+
+public class HolonCanvas extends JScrollPane {
+
+	Canvas canvas = new Canvas();
+	private Vector2d pos1 = new Vector2d(100, 100);
+	private Vector2d pos2 = new Vector2d(200, 100);
+	
+	private int width = 1000;
+	private int minWidth = 100;
+	private int maxWidth = 4000;
+	
+	
+	
+	public HolonCanvas() {
+		canvas.setPreferredSize(new Dimension(1000,1000));
+		this.removeMouseWheelListener(this.getMouseWheelListeners()[0]);
+		this.addMouseWheelListener(scroll -> {
+			int scrollValue = -scroll.getWheelRotation() * scroll.getScrollAmount();
+			//clamp value
+			width = Math.max(Math.min(4000, width + 50 * scrollValue), 100);
+			canvas.setPreferredSize(new Dimension(width, width));
+			canvas.revalidate();
+			this.repaint();
+			
+		});
+		this.setViewportView(canvas);
+	}
+	
+	
+	private void exampleBuildings() {
+		
+	}
+	
+	
+	
+	
+	
+	
+	
+	private class Canvas extends JPanel{
+		Canvas(){
+			setBackground(Color.white);
+			add(new JLabel("HolonCanvas"));
+		}
+		public void paintComponent(Graphics g) {		
+			super.paintComponent(g);
+			System.out.println("paintComponent");
+			Graphics2D g2d = (Graphics2D) g;
+			g2d.setRenderingHints(new RenderingHints(RenderingHints.KEY_ANTIALIASING,
+					RenderingHints.VALUE_ANTIALIAS_ON));
+			g2d.setColor(Color.blue);
+			double scale = ScaleValue();
+			g2d.fillRect((int)(pos1.getX() * scale), (int)(pos1.getY() * scale), (int) (50 * scale), (int)(50 * scale));
+			g2d.fillRect((int)(pos2.getX() * scale), (int)(pos2.getY() * scale), (int) (50 * scale), (int)(50 * scale));
+			g2d.drawRect(0, 0, this.getPreferredSize().width, this.getPreferredSize().height);
+		}
+		
+		
+		public double ScaleValue(){
+			return width / 1000.0;
+		}
+	}
+	
+	
+}

+ 11 - 0
src/ui/view/main/HolonElementViewer.java

@@ -0,0 +1,11 @@
+package ui.view.main;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class HolonElementViewer extends JPanel{
+
+	public HolonElementViewer() {
+		this.add(new JLabel("HolonElementViewer"));
+	}
+}

+ 11 - 0
src/ui/view/main/Inspector.java

@@ -0,0 +1,11 @@
+package ui.view.main;
+
+import javax.swing.JLabel;
+import javax.swing.JPanel;
+
+public class Inspector extends JPanel{
+
+	public Inspector() {
+		this.add(new JLabel("Inspector"));
+	}
+}

+ 33 - 53
src/ui/view/main/Main.java

@@ -1,53 +1,33 @@
-package ui.view.main;
-
-import ui.controller.Control;
-
-import javax.swing.*;
-
-import model.IndexTranslator;
-import model.Model;
-
-import java.awt.*;
-
-/**
- * The main Class in this Program. The GUI is created in this Class.
- * 
- * @author Gruppe14
- * 
- */
-public class Main {
-
-	/**
-	 * main method of this program.
-	 * 
-	 * @param args
-	 *            standard
-	 */
-	public static void main(String[] args) {
-		if (!System.getProperty("os.name").startsWith("Linux")) {
-			loadNotLinuxLookAndFeel();	
-		}
-		
-        EventQueue.invokeLater(() -> {
-            try {
-                Model model = new Model();
-                Control control = new Control(model);
-                GUI view = new GUI(control);
-                IndexTranslator.model = model;
-                view.getFrmCyberPhysical().setVisible(true);
-
-            } catch (Exception e) {
-                e.printStackTrace();
-            }
-        });
-    }
-
-	private static void loadNotLinuxLookAndFeel() {
-		try {
-		UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
-		} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
-		e.printStackTrace();
-		}
-	}
-
-}
+package ui.view.main;
+
+import java.awt.EventQueue;
+import javax.swing.JPanel;
+import javax.swing.UIManager;
+import javax.swing.UnsupportedLookAndFeelException;
+
+/**
+ * The Main class defines the program entry point.
+ * @author Tom
+ *
+ */
+public class Main extends JPanel{
+
+	public static void main(String[] args) {
+		loadNotLinuxLookAndFeel();
+        EventQueue.invokeLater(() -> openMainFrame());
+    }
+	
+	public static void openMainFrame() {
+		MainFrame mainFrame = new MainFrame();
+	}
+
+	private static void loadNotLinuxLookAndFeel() {
+		try {
+			if (!System.getProperty("os.name").startsWith("Linux")) {
+				UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());	
+			}
+		} catch (ClassNotFoundException | InstantiationException | IllegalAccessException | UnsupportedLookAndFeelException e) {
+			e.printStackTrace();
+		}
+	}
+}

+ 53 - 0
src/ui/view/main/MainFrame.java

@@ -0,0 +1,53 @@
+package ui.view.main;
+
+import java.awt.Canvas;
+
+import javax.swing.JFrame;
+import javax.swing.JSplitPane;
+
+import utility.ImageImport;
+
+/**
+ * The MainFrame is responsible for the layout of Holeg.
+ * 
+ * @author Tom
+ *
+ */
+public class MainFrame extends JFrame {
+	// Constants
+	private String frameTitle = "HOLEG";
+	// Components
+	private MainToolBar toolBar = new MainToolBar(this);
+	private CatalogExplorer explorer = new CatalogExplorer();
+	private HolonElementViewer elementViewer = new HolonElementViewer();
+	private Inspector inspector = new Inspector();
+	private HolonCanvas canvas = new HolonCanvas();
+
+	// PanelLayout
+	private JSplitPane splitCatalogCanvas = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, explorer, canvas);
+	private JSplitPane splitElementInspector = new JSplitPane(JSplitPane.VERTICAL_SPLIT, elementViewer, inspector);
+	private JSplitPane splitCanvasInspector = new JSplitPane(JSplitPane.HORIZONTAL_SPLIT, splitCatalogCanvas,
+			splitElementInspector);
+
+	public MainFrame() {
+		// Size and Position
+		setBounds(0, 0, 1000, 800);
+		setLocationRelativeTo(null);
+
+		// Title and Icon
+		setTitle(frameTitle);
+		setIconImage(ImageImport.loadImage("/Images/Holeg.png", 30, 30));
+
+		// Display
+		add(splitCanvasInspector);
+		setVisible(true);
+		// Default DividerLocations
+		// can only be set after panel is visible
+		splitCatalogCanvas.setDividerLocation(0.8);
+		splitCanvasInspector.setDividerLocation(0.8);
+		splitElementInspector.setDividerLocation(0.7);
+		
+		//Close Opperation
+		setDefaultCloseOperation(JFrame.DISPOSE_ON_CLOSE);
+	}
+}

+ 36 - 0
src/ui/view/main/MainToolBar.java

@@ -0,0 +1,36 @@
+package ui.view.main;
+
+import javax.swing.JMenu;
+import javax.swing.JMenuBar;
+
+/**
+ * This Class is responsible for creating the toolBar of the MainFrame.
+ * @author Tom
+ *
+ */
+public class MainToolBar {
+
+	private final JMenuBar menuBar = new JMenuBar();
+	private final JMenu fileMenu = new JMenu("File");
+	private final JMenu editMenu = new JMenu("Edit");
+	private final JMenu windowMenu = new JMenu("Window");
+	private final JMenu optionsMenu = new JMenu("Options");
+	private final JMenu helpMenu = new JMenu("Help");
+	
+	
+	public MainToolBar(MainFrame mainFrame) {
+		//Initialize
+		initMenuBar();
+		mainFrame.setJMenuBar(menuBar);
+	}
+
+
+	private void initMenuBar() {
+		menuBar.add(fileMenu);
+		menuBar.add(editMenu);
+		menuBar.add(windowMenu);
+		menuBar.add(optionsMenu);
+		menuBar.add(helpMenu);
+	}
+
+}

+ 1 - 1
src/ui/view/main/AbstractCanvas.java → src/ui/view/main/old/AbstractCanvas.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import java.awt.BasicStroke;
 import java.awt.Color;

+ 1 - 1
src/ui/view/main/DefaulTable.java → src/ui/view/main/old/DefaulTable.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import javax.swing.table.DefaultTableModel;
 

File diff suppressed because it is too large
+ 361 - 508
src/ui/view/main/old/GUI.java


+ 2 - 2
src/ui/view/main/GroupNodeCanvas.java → src/ui/view/main/old/GroupNodeCanvas.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
@@ -48,7 +48,7 @@ import model.DecoratedHolonObject.HolonObjectState;
 import model.DecoratedSwitch.SwitchState;
 import ui.controller.Control;
 import ui.controller.UpdateController;
-import ui.view.componnents.ButtonTabComponent;
+import ui.view.component.ButtonTabComponent;
 import utility.ImageImport;
 
 /**

+ 53 - 0
src/ui/view/main/old/Main.java

@@ -0,0 +1,53 @@
+package ui.view.main.old;
+
+import ui.controller.Control;
+
+import javax.swing.*;
+
+import model.IndexTranslator;
+import model.Model;
+
+import java.awt.*;
+
+/**
+ * The main Class in this Program. The GUI is created in this Class.
+ * 
+ * @author Gruppe14
+ * 
+ */
+public class Main {
+
+	/**
+	 * main method of this program.
+	 * 
+	 * @param args standard
+	 */
+	public static void main(String[] args) {
+		if (!System.getProperty("os.name").startsWith("Linux")) {
+			loadNotLinuxLookAndFeel();
+		}
+
+		EventQueue.invokeLater(() -> {
+			try {
+				Model model = new Model();
+				Control control = new Control(model);
+				GUI view = new GUI(control);
+				IndexTranslator.model = model;
+				view.getFrmCyberPhysical().setVisible(true);
+
+			} catch (Exception e) {
+				e.printStackTrace();
+			}
+		});
+	}
+
+	private static void loadNotLinuxLookAndFeel() {
+		try {
+			UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName());
+		} catch (ClassNotFoundException | InstantiationException | IllegalAccessException
+				| UnsupportedLookAndFeelException e) {
+			e.printStackTrace();
+		}
+	}
+
+}

+ 2 - 2
src/ui/view/main/MyCanvas.java → src/ui/view/main/old/MyCanvas.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import java.awt.BasicStroke;
 import java.awt.Color;
@@ -47,7 +47,7 @@ import model.DecoratedHolonObject.HolonObjectState;
 import model.DecoratedSwitch.SwitchState;
 import ui.controller.Control;
 import ui.controller.UpdateController;
-import ui.view.componnents.ButtonTabComponent;
+import ui.view.component.ButtonTabComponent;
 import utility.ImageImport;
 
 /**

+ 1 - 1
src/ui/view/main/PropertyTable.java → src/ui/view/main/old/PropertyTable.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import javax.swing.table.DefaultTableModel;
 

+ 1 - 1
src/ui/view/main/TimePanel.java → src/ui/view/main/old/TimePanel.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import java.awt.BorderLayout;
 import java.awt.Color;

+ 1 - 1
src/ui/view/main/UnitGraph.java → src/ui/view/main/old/UnitGraph.java

@@ -1,4 +1,4 @@
-package ui.view.main;
+package ui.view.main.old;
 
 import java.awt.BasicStroke;
 import java.awt.Color;

Some files were not shown because too many files changed in this diff