Browse Source

edges zeichnen in uppernode complete

Kevin Trometer 8 years ago
parent
commit
ad0dc565e0
1 changed files with 26 additions and 6 deletions
  1. 26 6
      src/ui/view/UpperNodeCanvas.java

+ 26 - 6
src/ui/view/UpperNodeCanvas.java

@@ -311,8 +311,25 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		if (drawEdge) {
 			g2.setColor(Color.BLACK);
 			g2.setStroke(new BasicStroke(2));
-			g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
-					tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
+
+			// If TempCps is an outside Object
+			if (!upperNode.getNodes().contains(tempCps)) {
+				controller.addTextToConsole("success");
+				int count = 0;
+				for (CpsEdge e : upperNode.getConnections()) {
+					if (e.getA().equals(tempCps)) {
+						g2.drawLine(borderPos >> 1, (int) (model.getScaleDiv2() + scalediv20 + 5
+								+ (model.getScale() + scalediv20 + 10) * count), x, y);
+					} else if (e.getB().equals(tempCps)) {
+						g2.drawLine(borderPos >> 1, (int) (model.getScaleDiv2() + scalediv20 + 5
+								+ (model.getScale() + scalediv20 + 10) * count), x, y);
+					}
+					count++;
+				}
+			} else {
+				g2.drawLine(tempCps.getPosition().x + controller.getScaleDiv2(),
+						tempCps.getPosition().y + controller.getScaleDiv2(), x, y);
+			}
 		}
 
 		for (CpsEdge con : upperNode.getNodeEdges()) {
@@ -959,10 +976,10 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 				} else {
 					cps = ed.getA();
 				}
-				
+
 				cx = borderPos >> 1;
 				cy = (int) (scalediv20 + 5 + (model.getScale() + scalediv20 + 10) * count);
-				
+
 				if (x - controller.getScale() <= cx && y - controller.getScale() <= cy && x >= cx && y >= cy
 						&& cps != tempCps) {
 					outsideCon = true;
@@ -1046,8 +1063,11 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 			n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
 			controller.addObjUpperNode(n, upperNode);
 
-			e = new CpsEdge(n, tempCps, model.getMaxCapacity());
-
+			if (outsideCon) {
+				controller.connectNodes(e, upperNode);
+			} else {
+				e = new CpsEdge(n, tempCps, model.getMaxCapacity());
+			}
 			controller.addEdgeUpperNode(e, upperNode);
 		}