|
@@ -36,6 +36,15 @@ public class NodeController {
|
|
cvs.addNewObject(node);
|
|
cvs.addNewObject(node);
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ * Delete a CpsUpperNode from the Canvas
|
|
|
|
+ *
|
|
|
|
+ * @param node
|
|
|
|
+ */
|
|
|
|
+ public void deleteNode(CpsUpperNode node) {
|
|
|
|
+
|
|
|
|
+ }
|
|
|
|
+
|
|
/**
|
|
/**
|
|
*
|
|
*
|
|
* @param node
|
|
* @param node
|
|
@@ -46,12 +55,17 @@ public class NodeController {
|
|
ArrayList<CpsEdge> nodeEdges = node.getNodeEdges();
|
|
ArrayList<CpsEdge> nodeEdges = node.getNodeEdges();
|
|
HashMap<Integer, Integer> nodeIdx = node.getNodesIdx();
|
|
HashMap<Integer, Integer> nodeIdx = node.getNodesIdx();
|
|
|
|
|
|
|
|
+ ArrayList<CpsEdge> toDelete = new ArrayList<>();
|
|
|
|
+
|
|
for (Iterator<AbstractCpsObject> it = model.getSelectedCpsObjects().iterator(); it.hasNext();) {
|
|
for (Iterator<AbstractCpsObject> it = model.getSelectedCpsObjects().iterator(); it.hasNext();) {
|
|
|
|
|
|
AbstractCpsObject obj = it.next();
|
|
AbstractCpsObject obj = it.next();
|
|
nodeIdx.put(obj.getID(), nodes.size());
|
|
nodeIdx.put(obj.getID(), nodes.size());
|
|
nodes.add(obj);
|
|
nodes.add(obj);
|
|
- cvs.deleteObjectOnCanvas(obj);
|
|
|
|
|
|
+ }
|
|
|
|
+
|
|
|
|
+ for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
|
|
|
|
+ cvs.deleteObjectOnCanvas(abs);
|
|
}
|
|
}
|
|
|
|
|
|
for (Iterator<CpsEdge> it = model.getEdgesOnCanvas().iterator(); it.hasNext();) {
|
|
for (Iterator<CpsEdge> it = model.getEdgesOnCanvas().iterator(); it.hasNext();) {
|
|
@@ -59,10 +73,11 @@ public class NodeController {
|
|
CpsEdge edge = it.next();
|
|
CpsEdge edge = it.next();
|
|
if (nodes.contains(edge.getA()) && nodes.contains(edge.getB())) {
|
|
if (nodes.contains(edge.getA()) && nodes.contains(edge.getB())) {
|
|
nodeEdges.add(edge);
|
|
nodeEdges.add(edge);
|
|
- model.removeEdgesOnCanvas(edge);
|
|
|
|
|
|
+ toDelete.add(edge);
|
|
}
|
|
}
|
|
|
|
|
|
}
|
|
}
|
|
|
|
+ model.getEdgesOnCanvas().removeAll(toDelete);
|
|
|
|
|
|
}
|
|
}
|
|
|
|
|
|
@@ -76,6 +91,8 @@ public class NodeController {
|
|
ArrayList<Float> maxCapacity = new ArrayList<>();
|
|
ArrayList<Float> maxCapacity = new ArrayList<>();
|
|
ArrayList<CpsEdge> oldEdges = node.getOldEdges();
|
|
ArrayList<CpsEdge> oldEdges = node.getOldEdges();
|
|
|
|
|
|
|
|
+ ArrayList<CpsEdge> toDelete = new ArrayList<>();
|
|
|
|
+
|
|
// float maxCapacity = 0;
|
|
// float maxCapacity = 0;
|
|
|
|
|
|
// für alle Edges auf dem Canvas
|
|
// für alle Edges auf dem Canvas
|
|
@@ -89,29 +106,39 @@ public class NodeController {
|
|
// wenn ausgewählte Objekte in edge und andere auserhalb
|
|
// wenn ausgewählte Objekte in edge und andere auserhalb
|
|
if (model.getSelectedCpsObjects().contains(edge.getA())
|
|
if (model.getSelectedCpsObjects().contains(edge.getA())
|
|
&& !model.getSelectedCpsObjects().contains(edge.getB())) {
|
|
&& !model.getSelectedCpsObjects().contains(edge.getB())) {
|
|
- // und wenn in der adj noch nicht vorhanden
|
|
|
|
- if (!adj.contains(edge.getA()))
|
|
|
|
|
|
+ // und wenn in der adj noch nicht vorhanden und füg
|
|
|
|
+ if (!adj.contains(edge.getA())) {
|
|
adj.add(edge.getB());
|
|
adj.add(edge.getB());
|
|
|
|
+ maxCapacity.add(edge.getCapacity());
|
|
|
|
+ }
|
|
// wenn vorhanden teste maxCapacity
|
|
// wenn vorhanden teste maxCapacity
|
|
- else if (maxCapacity.get(adj.indexOf(edge.getB())) < edge.getCapacity())
|
|
|
|
|
|
+ else if (maxCapacity.get(adj.indexOf(edge.getB())) < edge.getCapacity()) {
|
|
maxCapacity.set(adj.indexOf(edge.getB()), edge.getCapacity());
|
|
maxCapacity.set(adj.indexOf(edge.getB()), edge.getCapacity());
|
|
|
|
+ System.out.println("aaa");
|
|
|
|
+ }
|
|
// speichere alte edge
|
|
// speichere alte edge
|
|
oldEdges.add(edge);
|
|
oldEdges.add(edge);
|
|
- model.getEdgesOnCanvas().remove(edge);
|
|
|
|
|
|
+ toDelete.add(edge);
|
|
|
|
+
|
|
}
|
|
}
|
|
|
|
|
|
// Analog
|
|
// Analog
|
|
else if (!model.getSelectedCpsObjects().contains(edge.getA())
|
|
else if (!model.getSelectedCpsObjects().contains(edge.getA())
|
|
&& model.getSelectedCpsObjects().contains(edge.getB())) {
|
|
&& model.getSelectedCpsObjects().contains(edge.getB())) {
|
|
- if (!adj.contains(edge.getB()))
|
|
|
|
|
|
+ if (!adj.contains(edge.getB())) {
|
|
adj.add(edge.getA());
|
|
adj.add(edge.getA());
|
|
- else if (maxCapacity.get(adj.indexOf(edge.getA())) < edge.getCapacity())
|
|
|
|
|
|
+ maxCapacity.add(edge.getCapacity());
|
|
|
|
+ } else if (maxCapacity.get(adj.indexOf(edge.getA())) < edge.getCapacity()) {
|
|
maxCapacity.set(adj.indexOf(edge.getA()), edge.getCapacity());
|
|
maxCapacity.set(adj.indexOf(edge.getA()), edge.getCapacity());
|
|
-
|
|
|
|
|
|
+ System.out.println("bbb");
|
|
|
|
+ }
|
|
oldEdges.add(edge);
|
|
oldEdges.add(edge);
|
|
- model.getEdgesOnCanvas().remove(edge);
|
|
|
|
|
|
+ toDelete.add(edge);
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
+
|
|
|
|
+ model.getEdgesOnCanvas().removeAll(toDelete);
|
|
|
|
+
|
|
// für alle objekte in adjazenzliste mach
|
|
// für alle objekte in adjazenzliste mach
|
|
for (AbstractCpsObject cps : adj) {
|
|
for (AbstractCpsObject cps : adj) {
|
|
CpsEdge newEdge = new CpsEdge(cps, node, maxCapacity.get(adj.indexOf(cps)));
|
|
CpsEdge newEdge = new CpsEdge(cps, node, maxCapacity.get(adj.indexOf(cps)));
|
|
@@ -121,17 +148,21 @@ public class NodeController {
|
|
}
|
|
}
|
|
}
|
|
}
|
|
|
|
|
|
|
|
+ /**
|
|
|
|
+ *
|
|
|
|
+ * @return
|
|
|
|
+ */
|
|
private Position calculatePos() {
|
|
private Position calculatePos() {
|
|
-
|
|
|
|
|
|
+
|
|
Position pos = new Position(0, 0);
|
|
Position pos = new Position(0, 0);
|
|
-
|
|
|
|
- for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
|
|
|
|
|
|
+
|
|
|
|
+ for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
|
|
pos.x += abs.getPosition().x;
|
|
pos.x += abs.getPosition().x;
|
|
pos.y += abs.getPosition().y;
|
|
pos.y += abs.getPosition().y;
|
|
}
|
|
}
|
|
pos.x /= model.getSelectedCpsObjects().size();
|
|
pos.x /= model.getSelectedCpsObjects().size();
|
|
pos.y /= model.getSelectedCpsObjects().size();
|
|
pos.y /= model.getSelectedCpsObjects().size();
|
|
-
|
|
|
|
|
|
+
|
|
return pos;
|
|
return pos;
|
|
}
|
|
}
|
|
|
|
|