|
@@ -121,8 +121,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
if (model.getSelectedObjectID() > 0) {
|
|
if (model.getSelectedObjectID() > 0) {
|
|
g2.setColor(Color.GREEN);
|
|
g2.setColor(Color.GREEN);
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
for (CpsEdge con : model.getEdgesOnCanvas()) {
|
|
- if (con.getA().getID() == model.getSelectedObjectID() || con.getB().getID() == model.getSelectedObjectID()
|
|
|
|
- && con != edgeHighlight) {
|
|
|
|
|
|
+ if (con.getA().getID() == model.getSelectedObjectID()
|
|
|
|
+ || con.getB().getID() == model.getSelectedObjectID() && con != edgeHighlight) {
|
|
g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
|
|
g2.drawLine(con.getA().getPosition().x + controller.getScaleDiv2(),
|
|
con.getA().getPosition().y + controller.getScaleDiv2(),
|
|
con.getA().getPosition().y + controller.getScaleDiv2(),
|
|
con.getB().getPosition().x + controller.getScaleDiv2(),
|
|
con.getB().getPosition().x + controller.getScaleDiv2(),
|
|
@@ -322,8 +322,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
boolean node = true;
|
|
boolean node = true;
|
|
boolean newEdge = true;
|
|
boolean newEdge = true;
|
|
boolean onEdge = true;
|
|
boolean onEdge = true;
|
|
|
|
+ boolean deleteNode = false;
|
|
CpsEdge e = null;
|
|
CpsEdge e = null;
|
|
-
|
|
|
|
|
|
+ CpsObject tempCPS = null;
|
|
|
|
+
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
for (CpsObject cps : model.getObjectsOnCanvas()) {
|
|
cx = cps.getPosition().x;
|
|
cx = cps.getPosition().x;
|
|
cy = cps.getPosition().y;
|
|
cy = cps.getPosition().y;
|
|
@@ -337,9 +339,20 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
e = p;
|
|
e = p;
|
|
}
|
|
}
|
|
}
|
|
}
|
|
- controller.removeEdgesOnCanvas(e);
|
|
|
|
- tempCps.getConnections().remove(e);
|
|
|
|
- cps.getConnections().remove(e);
|
|
|
|
|
|
+ if (!newEdge) {
|
|
|
|
+ controller.removeEdgesOnCanvas(e);
|
|
|
|
+ tempCps.getConnections().remove(e);
|
|
|
|
+ cps.getConnections().remove(e);
|
|
|
|
+ // Node ohne Edge
|
|
|
|
+ if (e.getA().getClass() == CpsNode.class && e.getA().getConnections().isEmpty()) {
|
|
|
|
+ tempCps = e.getA();
|
|
|
|
+ deleteNode = true;
|
|
|
|
+ }
|
|
|
|
+ if (e.getB().getClass() == CpsNode.class && e.getB().getConnections().isEmpty()) {
|
|
|
|
+ tempCPS = e.getB();
|
|
|
|
+ deleteNode = true;
|
|
|
|
+ }
|
|
|
|
+ }
|
|
if (newEdge) {
|
|
if (newEdge) {
|
|
e = new CpsEdge(cps, tempCps);
|
|
e = new CpsEdge(cps, tempCps);
|
|
cps.AddConnection(e);
|
|
cps.AddConnection(e);
|
|
@@ -387,7 +400,8 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
controller.AddEdgeOnCanvas(e2);
|
|
controller.AddEdgeOnCanvas(e2);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ //ins leere Gedragged
|
|
if (node) {
|
|
if (node) {
|
|
CpsNode n = new CpsNode("Node");
|
|
CpsNode n = new CpsNode("Node");
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
n.setPosition(x - model.getScaleDiv2(), y - model.getScaleDiv2());
|
|
@@ -400,6 +414,14 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
|
|
controller.AddEdgeOnCanvas(e);
|
|
controller.AddEdgeOnCanvas(e);
|
|
System.out.println("node ID: " + n.getID());
|
|
System.out.println("node ID: " + n.getID());
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ if(deleteNode){
|
|
|
|
+ controller.deleteObjectOnCanvas(tempCps);
|
|
|
|
+ controller.deleteObjectOnCanvas(tempCPS);
|
|
|
|
+ tempCPS = null;
|
|
|
|
+ tempCps = null;
|
|
|
|
+ objectSelectionHighlighting();
|
|
|
|
+ }
|
|
}
|
|
}
|
|
|
|
|
|
/**
|
|
/**
|