Selaa lähdekoodia

logik verbessert

Teh-Hai Julian Zheng 7 vuotta sitten
vanhempi
commit
7a70b0bd3e
2 muutettua tiedostoa jossa 14 lisäystä ja 15 poistoa
  1. 10 11
      src/ui/controller/NodeController.java
  2. 4 4
      src/ui/view/UpperNodeCanvas.java

+ 10 - 11
src/ui/controller/NodeController.java

@@ -50,7 +50,7 @@ public class NodeController {
 	public void addObjectInUpperNode(AbstractCpsObject object, CpsUpperNode upperNode) {
 		object.setSav("UPPER" + upperNode.getID());
 		upperNode.getNodesIdx().put(object.getID(), upperNode.getNodes().size());
-		upperNode.getNodes().add(object);	
+		upperNode.getNodes().add(object);
 	}
 
 	/**
@@ -79,24 +79,28 @@ public class NodeController {
 			if (!model.getClipboradObjects().contains(cps)) {
 				cps.getConnectedTo().remove(e);
 			}
-			model.getEdgesOnCanvas().remove(e);
+			upperNode.getNodeEdges().remove(e);
 		}
 		mpC.decIdx(object.getID(), upperNode.getNodesIdx());
 		upperNode.getNodesIdx().remove(object.getID());
 		upperNode.getNodes().remove(object);
 	}
-	
+
 	/**
 	 * Add Edge in UpperNode
+	 * 
 	 * @param edge
 	 * @param upperNode
 	 */
 	public void addEdgeInUpperNode(CpsEdge edge, CpsUpperNode upperNode) {
+		edge.getA().getConnections().add(edge);
+		edge.getB().getConnections().add(edge);
 		upperNode.getNodeEdges().add(edge);
 	}
-	
+
 	/**
 	 * Delete Edge in UpperNode
+	 * 
 	 * @param edge
 	 * @param upperNode
 	 */
@@ -130,7 +134,7 @@ public class NodeController {
 
 			CpsEdge edge = it.next();
 			if (nodes.contains(edge.getA()) && nodes.contains(edge.getB())) {
-				nodeEdges.add(edge);
+				addEdgeInUpperNode(edge, node);
 			}
 
 		}
@@ -156,16 +160,11 @@ public class NodeController {
 
 		ArrayList<CpsEdge> toDelete = new ArrayList<>();
 
-		// float maxCapacity = 0;
-
 		// für alle Edges auf dem Canvas
 		for (Iterator<CpsEdge> it = model.getEdgesOnCanvas().iterator(); it.hasNext();) {
 
 			CpsEdge edge = it.next();
 
-			// if (edge.getCapacity() > maxCapacity)
-			// maxCapacity = edge.getCapacity();
-
 			// wenn ausgewählte Objekte in edge und andere auserhalb
 			if (model.getSelectedCpsObjects().contains(edge.getA())
 					&& !model.getSelectedCpsObjects().contains(edge.getB())) {
@@ -205,7 +204,7 @@ public class NodeController {
 		for (AbstractCpsObject cps : adj) {
 			CpsEdge newEdge = new CpsEdge(cps, node, maxCapacity.get(adj.indexOf(cps)));
 			// !! Eventuell noch bei getConnections() hinzufügem
-			node.getConnections().add(newEdge);
+			// node.getConnections().add(newEdge);
 			if (upperNode == null)
 				cvs.addEdgeOnCanvas(newEdge);
 			else

+ 4 - 4
src/ui/view/UpperNodeCanvas.java

@@ -59,10 +59,10 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 
 	ArrayList<HolonElement> dataSelected = new ArrayList<HolonElement>();
 	ArrayList<AbstractCpsObject> tempSelected = new ArrayList<AbstractCpsObject>();
-	
-	//The UpperNode
+
+	// The UpperNode
 	public CpsUpperNode upperNode;
-	
+
 	private boolean[] showedInformation = new boolean[3];
 	private boolean dragging = false; // for dragging
 	private boolean dragged = false; // if an object/objects was/were dragged
@@ -103,7 +103,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		this.model = mod;
 
 		this.upperNode = UpperNode;
-		
+
 		scalediv20 = model.getScale() / 20;
 
 		showedInformation[0] = true;