Преглед изворни кода

NodeController fertig ENDLICH!!!

Teh-Hai Julian Zheng пре 7 година
родитељ
комит
e99630c646
1 измењених фајлова са 26 додато и 20 уклоњено
  1. 26 20
      src/ui/controller/NodeController.java

+ 26 - 20
src/ui/controller/NodeController.java

@@ -261,32 +261,38 @@ public class NodeController {
 				// guck einfach in den Connections des Verlorenen nach Edges die
 				// auf der Canvas sind.
 				for (CpsEdge e : lost.getConnections()) {
-					if (( (found.contains(e.getA()) && !found.equals(lost))  || (found.contains(e.getB()) && !found.equals(lost)) ) && !node.getOldEdges().contains(e)) {
+					if (found.contains(e.getA()) && found.contains(e.getB()) && !node.getOldEdges().contains(e)) {
 						node.getOldEdges().add(e);
-						foundCps = true;	
+						foundCps = true;
 					}
-					
+
 				}
 
-			} if (!foundCps)
+			}
+			// wenn das verlorene Object nicht gefunden
+			if (!foundCps)
+				// für alle auf der Ebene liegende Objekte
 				outerLoop: for (AbstractCpsObject cps : found) {
-					if (!cps.equals(node) && !lostChildren.contains(cps))
-						if (backtrackLostChild(cps, toSearch, lost)) {
-
-							for (CpsEdge f : node.getOldEdges())
-								if ((f.getA().equals(cps) && f.getB().equals(toSearch))
-										|| (f.getB().equals(cps) && f.getA().equals(toSearch)))
-									continue outerLoop;
-
-							if (!lookforDuplicates(cps, lost, node.getOldEdges())) {
-
-								CpsEdge temp = new CpsEdge(cps, lost, edge.getCapacity());
-								node.getOldEdges().add(temp);
-//								if(cps instanceof CpsUpperNode)
-//									((CpsUpperNode)cps).getOldEdges().add(edge);
-							}
+				if (!cps.equals(node) && !lostChildren.contains(cps))
+					// such per Backtracking Algorithmus ob der enthalten ist
+					if (backtrackLostChild(cps, toSearch, lost)) {
+					// wenns stimmt dann überspringe den aktuellen Loop
+					for (CpsEdge f : node.getOldEdges())
+					if ((f.getA().equals(cps) && f.getB().equals(toSearch)) || (f.getB().equals(cps) && f.getA().equals(toSearch)))
+					continue outerLoop;
+					// guck nach duplikaten in den Old Edges
+					if (!lookforDuplicates(cps, lost, node.getOldEdges())) {
+					// wenn es keine gibt erzeuge eine neue Oldedge
+					CpsEdge temp = new CpsEdge(cps, lost, edge.getCapacity());
+					node.getOldEdges().add(temp);
+					}
+					// falls das Objekt ein CpsUpperNode gewesen ist verschiebe
+					// bitte die OldEdge dahin
+					if (cps instanceof CpsUpperNode) {
+					((CpsUpperNode) cps).getOldEdges().add(edge);
+					}
 
-						}
+					}
 				}
 
 		}