Sfoglia il codice sorgente

some changes and bug fixes

Teh-Hai Julian Zheng 7 anni fa
parent
commit
179128bfc5

+ 35 - 2
src/ui/controller/MultiPurposeController.java

@@ -115,7 +115,7 @@ public class MultiPurposeController {
 	public HolonElement searchEleById(HolonObject object, int idEle) {
 		return object.searchElementById(idEle);
 	}
-	
+
 	/**
 	 * 
 	 * @param upperNode
@@ -123,7 +123,7 @@ public class MultiPurposeController {
 	 * @return
 	 */
 	public AbstractCpsObject searchIDUpperNode(CpsUpperNode upperNode, int id) {
-		
+
 		Integer idx;
 
 		if ((idx = upperNode.getNodesIdx().get(id)) == null || upperNode.getNodesIdx().size() < 1)
@@ -176,6 +176,39 @@ public class MultiPurposeController {
 		}
 	}
 
+	/**
+	 * Adjust Indices before porting them from one map to another
+	 * 
+	 * @param key
+	 *            the Key
+	 * @param <T>
+	 *            key type
+	 * @param map
+	 *            the Map
+	 */
+	public <T> void adjustIdx(int x, HashMap<T, Integer> map) {
+
+		for (Entry<T, Integer> i : map.entrySet()) {
+			i.setValue(i.getValue() + x + 1);
+		}
+	}
+
+	/**
+	 * Returns the highest Id
+	 * @param map
+	 * @return
+	 */
+	public <T> int getHighestIdx(HashMap<T, Integer> map) {
+		int max = 0;
+
+		for (T i : map.keySet()) {
+			if (map.get(i) > max)
+				max = map.get(i);
+		}
+		
+		return max;
+	}
+
 	/**
 	 * Copies a HashMap into a new One.
 	 * 

+ 2 - 0
src/ui/controller/NodeController.java

@@ -118,6 +118,8 @@ public class NodeController {
 		// TODO Auto-generated method stub
 		// add all nodes into upperNode
 		(upperNode == null ? model.getObjectsOnCanvas() : upperNode.getNodes()).addAll(node.getNodes());
+		// change the indices accordingly the higher layer
+		mpC.adjustIdx(mpC.getHighestIdx((upperNode == null ? model.getCvsObjIdx() : upperNode.getNodesIdx())), node.getNodesIdx());
 		// add all indices of nodes into upperNode
 		(upperNode == null ? model.getCvsObjIdx() : upperNode.getNodesIdx()).putAll(node.getNodesIdx());
 		// add all Edges of node into upperNode

+ 2 - 1
src/ui/view/MyCanvas.java

@@ -472,7 +472,8 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		dataSelected = null;
 		edgeHighlight = null;
 		controller.setSelecteEdge(null);
-		System.out.println(model.getEdgesOnCanvas().size());
+
+		
 		// Object Selection
 		for (AbstractCpsObject cps : model.getObjectsOnCanvas()) {
 			cx = cps.getPosition().x;