Browse Source

Merge branch 'master' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons

Teh-Hai Julian Zheng 7 years ago
parent
commit
d0fbd1f514
3 changed files with 110 additions and 4 deletions
  1. 12 4
      src/ui/view/GUI.java
  2. 30 0
      src/ui/view/MyCanvas.java
  3. 68 0
      src/ui/view/StatisticsTab.java

+ 12 - 4
src/ui/view/GUI.java

@@ -109,6 +109,7 @@ public class GUI<E> implements CategoryListener {
 	private JPopupMenu popmenuEdit = new JPopupMenu();
 	private JMenuItem editItem = new JMenuItem("Edit Object");
 	private String catOfObjToBeEdited;
+	private final JScrollPane statTab = new JScrollPane();
 
 	private final JLabel maxGraph = new JLabel("100%");
 	private final JLabel medGraph = new JLabel("50%");
@@ -217,6 +218,7 @@ public class GUI<E> implements CategoryListener {
 
 	private Console console = new Console();
 	private MyCanvas canvas;
+	private StatisticsTab stats;
 	private UnitGraph unitGraph;
 	private final JSplitPane splitPane3 = new JSplitPane();
 	private final JSlider sizeSlider = new JSlider();
@@ -260,6 +262,7 @@ public class GUI<E> implements CategoryListener {
 		this.controller = control;
 		this.model = control.getModel();
 		this.canvas = new MyCanvas(model, control);
+		this.stats = new StatisticsTab(model, control);
 		this.unitGraph = new UnitGraph(model, control);
 		control.initListener(this);
 		controller.setCanvas(canvas);
@@ -489,7 +492,7 @@ public class GUI<E> implements CategoryListener {
 		// mnLanguage.add(czechBtn);
 		// czechBtn.setIcon(new ImageIcon(new
 		// ImageIcon("res/Button_Images/FlagCZ.png").getImage().getScaledInstance(20,
-		//		20, java.awt.Image.SCALE_SMOOTH)));
+		// 20, java.awt.Image.SCALE_SMOOTH)));
 		mnLanguage.add(chineseBtn);
 		chineseBtn.setIcon(new ImageIcon(new ImageIcon("res/Button_Images/FlagZH.png").getImage().getScaledInstance(20,
 				20, java.awt.Image.SCALE_SMOOTH)));
@@ -592,6 +595,8 @@ public class GUI<E> implements CategoryListener {
 
 		canvas.setBackground(Color.WHITE);
 		canvas.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
+		stats.setBackground(Color.WHITE);
+		stats.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
 
 		/********************
 		 * RIGHT CONTAINER (INFORMATION)
@@ -1002,10 +1007,12 @@ public class GUI<E> implements CategoryListener {
 						if (tempCps.getClass() == HolonTransformer.class) {
 							h = new HolonTransformer(tempCps);
 						}
-
+					
 						h.setPosition(x, y);
 						controller.addObjectCanvas(h);
+						canvas.invalidate();
 						canvas.repaint();
+						
 						dragging = false;
 					}
 				} catch (Exception eex) {
@@ -1574,8 +1581,8 @@ public class GUI<E> implements CategoryListener {
 		splitPane.setLeftComponent(scrollPane1);
 		splitPaneCanvasConsole.setLeftComponent(panelTapped_SimMenu);
 		tabbedPane.addTab("View", canvasSP);
-		tabbedPane.addTab("test", new JPanel());
-		//splitPaneCanvasConsole.setLeftComponent(canvasSP);
+		tabbedPane.addTab("Statistics", statTab);
+		// splitPaneCanvasConsole.setLeftComponent(canvasSP);
 		splitPaneCanvasConsole.setRightComponent(console);
 		splitPane1.setLeftComponent(splitPaneCanvasConsole);
 		splitPane1.setRightComponent(splitHolonElPro);
@@ -1589,6 +1596,7 @@ public class GUI<E> implements CategoryListener {
 		splitGraphHolonEl.setTopComponent(scrollGraph);
 		splitGraphHolonEl.setBottomComponent(scrollElements);
 		canvasSP.setViewportView(canvas);
+		statTab.setViewportView(stats);
 		panelTapped_SimMenu.setLayout(new BorderLayout());
 		panelTapped_SimMenu.add(simMenu, BorderLayout.NORTH);
 		panelTapped_SimMenu.add(tabbedPane);

+ 30 - 0
src/ui/view/MyCanvas.java

@@ -73,6 +73,8 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	private JMenuItem itemCut = new JMenuItem("Cut");
 	private JMenuItem itemCopy = new JMenuItem("Copy");
 	public JMenuItem itemPaste = new JMenuItem("Paste");
+	public JMenuItem itemCollapse = new JMenuItem("Colapse Nodes");
+	public JMenuItem itemTrack = new JMenuItem("Track");
 	private JToolTip objectTT = new JToolTip();
 
 	private Point mousePosition = new Point(); // Mouse Position when
@@ -104,12 +106,32 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		popmenu.add(itemCopy);
 		popmenu.add(itemPaste);
 		popmenu.add(itemDelete);
+		popmenu.addSeparator();
+		popmenu.add(itemCollapse);
+		popmenu.add(itemTrack);
 
 		itemDelete.setEnabled(false);
 		itemCut.setEnabled(false);
 		itemCopy.setEnabled(false);
 		itemPaste.setEnabled(false);
+		itemCollapse.setEnabled(false);
+		itemTrack.setEnabled(false);
 
+		itemCollapse.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				
+				repaint();
+			}
+		});
+		
+		itemTrack.addActionListener(new ActionListener() {
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				
+			}
+		});
+		
 		itemDelete.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
@@ -446,6 +468,12 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				itemDelete.setEnabled(true);
 				itemCut.setEnabled(true);
 				itemCopy.setEnabled(true);
+				itemCollapse.setEnabled(true);
+				if (!(tempCps instanceof HolonSwitch)) {
+					itemTrack.setEnabled(true);
+				} else {
+					itemTrack.setEnabled(false);
+				}
 				if (model.getSelectedCpsObjects().size() == 0) {
 					controller.addSelectedObject(tempCps);
 				}
@@ -453,6 +481,8 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				itemCut.setEnabled(false);
 				itemCopy.setEnabled(false);
 				itemDelete.setEnabled(false);
+				itemCollapse.setEnabled(false);
+				itemTrack.setEnabled(false);
 			}
 			mousePosition = this.getMousePosition();
 			popmenu.show(e.getComponent(), e.getX(), e.getY());

+ 68 - 0
src/ui/view/StatisticsTab.java

@@ -0,0 +1,68 @@
+package ui.view;
+
+import java.awt.Image;
+import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
+import java.awt.event.MouseMotionListener;
+import javax.swing.JPanel;
+
+import ui.controller.Control;
+import ui.model.Model;
+
+public class StatisticsTab extends JPanel implements MouseListener, MouseMotionListener {
+
+	private static final long serialVersionUID = 1L;
+	private Image img = null;
+	private int x = 0;
+	private int y = 0;
+	private Model model;
+	private final Control controller;
+
+	public StatisticsTab(Model mod, Control control) {
+		this.model = mod;
+		this.controller = control;
+	}
+
+	@Override
+	public void mouseDragged(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseMoved(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseClicked(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mousePressed(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseReleased(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseEntered(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+	@Override
+	public void mouseExited(MouseEvent e) {
+		// TODO Auto-generated method stub
+
+	}
+
+}