|
@@ -97,9 +97,9 @@ public class NodeController {
|
|
|
// Lösche dann die Edges aus der nächst höheren schicht
|
|
|
for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
|
|
|
if (upperNode == null)
|
|
|
- cvs.deleteObjectOnCanvas(abs);
|
|
|
+ removeForNodeOfNode(abs, null);
|
|
|
else
|
|
|
- deleteObjectInUpperNode(abs, upperNode);
|
|
|
+ removeForNodeOfNode(abs, upperNode);
|
|
|
}
|
|
|
|
|
|
}
|
|
@@ -179,6 +179,7 @@ public class NodeController {
|
|
|
// für alle objekte in adjazenzliste mach
|
|
|
for (AbstractCpsObject cps : adj) {
|
|
|
CpsEdge newEdge = new CpsEdge(cps, node, maxCapacity.get(adj.indexOf(cps)));
|
|
|
+ removeEdges(cps, node, newEdge);
|
|
|
// !! Eventuell noch bei getConnections() hinzufügem
|
|
|
// node.getConnections().add(newEdge);
|
|
|
if (upperNode == null)
|
|
@@ -318,6 +319,13 @@ public class NodeController {
|
|
|
|
|
|
return pos;
|
|
|
}
|
|
|
+
|
|
|
+ private void removeForNodeOfNode(AbstractCpsObject obj, CpsUpperNode upperNode) {
|
|
|
+
|
|
|
+ mpC.decIdx(obj.getID(), (upperNode == null? model.getCvsObjIdx() : upperNode.getNodesIdx()));
|
|
|
+ (upperNode == null? model.getCvsObjIdx() : upperNode.getNodesIdx()).remove(obj.getID());
|
|
|
+ (upperNode == null? model.getObjectsOnCanvas() : upperNode.getNodes()).remove(obj);
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* Add a Object into a CpsUpperNode
|
|
@@ -345,7 +353,7 @@ public class NodeController {
|
|
|
e = p;
|
|
|
}
|
|
|
}
|
|
|
- if (!model.getClipboradObjects().contains(cps)) {
|
|
|
+ if (!model.getClipboradObjects().contains(cps) && !(cps instanceof CpsUpperNode)) {
|
|
|
cps.getConnectedTo().remove(e);
|
|
|
}
|
|
|
upperNode.getNodeEdges().remove(e);
|
|
@@ -388,11 +396,13 @@ public class NodeController {
|
|
|
public void connectNodes(AbstractCpsObject a, AbstractCpsObject b, CpsUpperNode node) {
|
|
|
// mache hier Connections in A und B rein
|
|
|
// mache diese Edge auch in OldEdges rein des aktuellen CpsUpperNodes
|
|
|
-
|
|
|
CpsEdge edge = new CpsEdge(a, b, model.getMaxCapacity());
|
|
|
- edge.getA().getConnections().add(edge);
|
|
|
- edge.getB().getConnections().add(edge);
|
|
|
node.getOldEdges().add(edge);
|
|
|
}
|
|
|
+
|
|
|
+ private void removeEdges(AbstractCpsObject a, AbstractCpsObject b, CpsEdge edge) {
|
|
|
+ a.getConnections().remove(edge);
|
|
|
+ b.getConnections().remove(edge);
|
|
|
+ }
|
|
|
|
|
|
}
|