Browse Source

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

# Conflicts:
#	src/ui/view/UpperNodeCanvas.java
Teh-Hai Julian Zheng 7 years ago
parent
commit
d6d2d31b6a
2 changed files with 24 additions and 8 deletions
  1. 13 4
      src/ui/view/GUI.java
  2. 11 4
      src/ui/view/UpperNodeCanvas.java

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

@@ -922,9 +922,9 @@ public class GUI<E> implements CategoryListener {
 									((HolonSwitch) getActualCps()).setManualState(bTemp);
 								}
 							}
-						} else if (getActualCps() instanceof HolonObject) {
+						}// else if (getActualCps() instanceof AbstractCpsObject) {
 							getActualCps().setName(temp.toString());
-						}
+						//}
 					} else {
 						temp = tableModelProperties.getValueAt(selValueY, selValueX);
 						btemp = tableModelProperties.getValueAt(mousePos.y / tableProperties.getRowHeight(),
@@ -2057,7 +2057,14 @@ public class GUI<E> implements CategoryListener {
 	 * Open a new Tab with an UpperNodeCanvas
 	 */
 	private void openNewUpperNodeTab() {
-		UpperNodeCanvas unc = new UpperNodeCanvas(model, controller, (CpsUpperNode) temp);
+		UpperNodeCanvas unc;
+		if(((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+		.getComponent(0) instanceof MyCanvas){
+			unc = new UpperNodeCanvas(model, controller, (CpsUpperNode) temp, "" );
+		} else {
+			unc = new UpperNodeCanvas(model, controller, (CpsUpperNode) temp, ((UpperNodeCanvas)((JScrollPane) tabbedPane.getSelectedComponent()).getViewport().getComponent(0)).path+" -> " );	
+		}
+		
 		unc.setBorder(null);
 		unc.setBackground(Color.WHITE);
 		unc.setPreferredSize(new Dimension(model.getCanvasX(), model.getCanvasY()));
@@ -2065,7 +2072,8 @@ public class GUI<E> implements CategoryListener {
 		unc.addMouseListener(new MouseAdapter() {
 			@Override
 			public void mousePressed(MouseEvent e) {
-				if (doubleClick()) {
+				temp = unc.tempCps;
+				if (doubleClick() && temp instanceof CpsUpperNode) {
 					openNewUpperNodeTab();
 				}
 			}
@@ -2076,6 +2084,7 @@ public class GUI<E> implements CategoryListener {
 		tabbedPane.add(temp.getName(), sp);
 		tabbedPane.setSelectedComponent(sp);
 		tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, new ButtonTabComponent(tabbedPane));
+		temp = null;
 	}
 
 }

+ 11 - 4
src/ui/view/UpperNodeCanvas.java

@@ -6,7 +6,6 @@ import java.awt.Graphics;
 import java.awt.Graphics2D;
 import java.awt.Image;
 import java.awt.Point;
-import java.awt.Rectangle;
 import java.awt.RenderingHints;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
@@ -21,12 +20,13 @@ import java.util.Timer;
 import java.util.TimerTask;
 
 import javax.swing.ImageIcon;
+import javax.swing.JLabel;
 import javax.swing.JMenuItem;
 import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
+import javax.swing.JScrollPane;
 import javax.swing.JToolTip;
 
-import api.CpsAPI;
 import classes.CpsEdge;
 import classes.CpsNode;
 import classes.CpsUpperNode;
@@ -57,6 +57,10 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	private int sx, sy; // Mark Coords
 	private float scalediv20;
 
+	// Path
+	public String path;
+	private JLabel breadCrumb;
+
 	ArrayList<HolonElement> dataSelected = new ArrayList<HolonElement>();
 	ArrayList<AbstractCpsObject> tempSelected = new ArrayList<AbstractCpsObject>();
 
@@ -97,12 +101,14 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	 * @param control
 	 *            the Controller
 	 */
-	public UpperNodeCanvas(Model mod, Control control, CpsUpperNode UpperNode) {
+	public UpperNodeCanvas(Model mod, Control control, CpsUpperNode UpperNode, String parentPath) {
 		this.add(objectTT);
 		this.controller = control;
 		this.model = mod;
-
 		this.upperNode = UpperNode;
+		this.path = parentPath + upperNode.getName();
+		this.breadCrumb = new JLabel(path);
+		//this.add(breadCrumb);
 
 		scalediv20 = model.getScale() / 20;
 
@@ -238,6 +244,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 	public void paintComponent(Graphics g) {
 		String maxCap;
 		super.paintComponent(g);
+		((JScrollPane)this.getParent().getParent()).setColumnHeaderView(breadCrumb);
 		// Rendering
 		g2 = (Graphics2D) g;
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);