|
@@ -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);
|
|
|
}
|
|
|
|