Browse Source

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

# Conflicts:
#	src/ui/view/UpperNodeCanvas.java
dominik.rieder 7 years ago
parent
commit
bc6976ff8a
3 changed files with 52 additions and 16 deletions
  1. 0 1
      src/ui/view/GUI.java
  2. 2 1
      src/ui/view/MyCanvas.java
  3. 50 14
      src/ui/view/UpperNodeCanvas.java

+ 0 - 1
src/ui/view/GUI.java

@@ -2008,7 +2008,6 @@ public class GUI<E> implements CategoryListener {
 			tabbedPane.setSelectedComponent(sp);
 			tabbedPane.setTabComponentAt(tabbedPane.getTabCount() - 1, new ButtonTabComponent(tabbedPane));
 			temp = null;
-
 		}
 	}
 

+ 2 - 1
src/ui/view/MyCanvas.java

@@ -467,12 +467,13 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		dataSelected = null;
 		edgeHighlight = null;
 		controller.setSelecteEdge(null);
+		
 		// Object Selection
 		for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPosition().x;
 			cy = cps.getPosition().y;
 			if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy) {
-				tempCps = cps;
+				tempCps = cps;				
 				controller.addTextToConsole("Selected: ", Color.BLACK, 12, false, false, false);
 				controller.addTextToConsole("" + cps.getName(), Color.BLUE, 12, true, false, false);
 				controller.addTextToConsole(", ID:", Color.BLACK, 12, false, false, false);

+ 50 - 14
src/ui/view/UpperNodeCanvas.java

@@ -214,19 +214,19 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				// Remove the selected Object objects
-				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
+				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
 					controller.delObjUpperNode(cps, upperNode);
 					// Remove UpperNodeTab if UpperNode deleted
-					if(cps instanceof CpsUpperNode){
+					if (cps instanceof CpsUpperNode) {
 						JTabbedPane tabbedPane = (JTabbedPane) getParent().getParent().getParent();
 						for (int i = 2; i < tabbedPane.getTabCount(); i++) {
-							if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport().getComponent(0)).upperNode
-									.getID() == cps.getID()) {
+							if (((UpperNodeCanvas) ((JScrollPane) tabbedPane.getComponentAt(i)).getViewport()
+									.getComponent(0)).upperNode.getID() == cps.getID()) {
 								tabbedPane.remove(i);
-								i = tabbedPane.getTabCount();				
+								i = tabbedPane.getTabCount();
 							}
 						}
-					}
+					}
 				}
 				model.getSelectedCpsObjects().clear();
 				tempCps = null;
@@ -280,12 +280,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		g2.setRenderingHints(rh);
 
 		// Left Border
-		borderPos = (int) (model.getScale()+scalediv20+scalediv20+10);
+		borderPos = (int) (model.getScale() + scalediv20 + scalediv20 + 10);
 		g2.setColor(new Color(230, 230, 230));
 		g2.fillRect(0, 0, borderPos, this.getHeight());
 		g2.setColor(Color.BLACK);
 		g2.drawLine(0, 0, this.getWidth(), 0);
-		
 
 		// Test SubNet Coloring
 		int i = 0;
@@ -461,13 +460,30 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		// Objects connected to upperNode
 		int count = 0;
 		for (CpsEdge e : upperNode.getConnections()) {
-
 			AbstractCpsObject cps;
 			if (e.getA().equals(this.upperNode)) {
 				cps = e.getB();
 			} else {
 				cps = e.getA();
 			}
+			// Show and Highlight
+			if (model.getSelectedCpsObjects().contains(cps)) {
+				for (CpsEdge ed : cps.getConnections()) {
+					AbstractCpsObject obj = null;
+					if (upperNode.getNodes().contains(ed.getA())) {
+						obj = ed.getA();
+					} else if (upperNode.getNodes().contains(ed.getB())) {
+						obj = ed.getB();
+					}
+					if (obj != null) {
+						g2.setColor(Color.BLUE);
+						g2.drawLine(obj.getPosition().x + model.getScaleDiv2(),
+								obj.getPosition().y + model.getScaleDiv2(), (borderPos >> 1),
+								(int) (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)
+										+ model.getScaleDiv2());
+					}
+				}
+			}
 
 			// Border Highlighting
 			g2.setColor(cps.getBorderColor());
@@ -519,11 +535,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 					controller.getScale(), null);
 			count++;
 		}
-		
+
 		// Dragg Highlighting
+		g2.setStroke(new BasicStroke(1));
 		if (doMark) {
 			g2.setColor(Color.BLACK);
-			g2.setStroke(new BasicStroke(1));
 			if (sx > x && sy > y) {
 				g2.drawRect(x, y, sx - x, sy - y);
 			} else if (sx < x && sy < y) {
@@ -534,8 +550,8 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				g2.drawRect(sx, y, x - sx, sy - y);
 			}
 		}
-		
-		//Border Line
+
+		// Border Line
 		g2.setColor(Color.BLACK);
 		g2.drawLine(borderPos, 0, borderPos, this.getHeight());
 	}
@@ -584,6 +600,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				}
 			}
 		} else {
+			int count = 0;
 			for (CpsEdge ed : upperNode.getConnections()) {
 				AbstractCpsObject cps;
 				if (ed.getA().equals(this.upperNode)) {
@@ -591,7 +608,26 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				} else {
 					cps = ed.getA();
 				}
-
+				if (x - controller.getScale() <= ((borderPos >> 1) - model.getScaleDiv2())
+						&& y - controller.getScale() <= (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)
+						&& x >= (borderPos >> 1) - model.getScaleDiv2()
+						&& y >= (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count)) {
+					tempCps = cps;
+					controller.addTextToConsole("Selected: ", Color.BLACK, 12, false, false, false);
+					controller.addTextToConsole("" + cps.getName(), Color.BLUE, 12, true, false, false);
+					controller.addTextToConsole(", ID:", Color.BLACK, 12, false, false, false);
+					controller.addTextToConsole("" + cps.getID(), Color.RED, 12, true, false, true);
+					controller.setSelectedObjectID(tempCps.getID());
+					// If drawing an Edge (CTRL down)
+					if (tempCps.getClass() == HolonObject.class) {
+						HolonObject tempObj = ((HolonObject) tempCps);
+						dataSelected = tempObj.getElements();
+					}
+					if (e.isShiftDown()) {
+						drawEdge = true;
+					}
+				}
+				count++;
 			}
 		}