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

clipboard controller small changes

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

+ 7 - 4
src/ui/controller/ClipboardController.java

@@ -93,8 +93,7 @@ public class ClipboardController {
 
 		file.add("SAV", new JsonPrimitive((upperNode == null ? "CVS" : "" + upperNode.getId())));
 		Position pos = uppC.calculatePos(model.getSelectedCpsObjects());
-		file.add("CENTER_X", new JsonPrimitive(pos.x));
-		file.add("CENTER_Y", new JsonPrimitive(pos.y));
+		file.add("CENTER", gson.toJsonTree(pos, Position.class));
 
 		for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
 			queue.add(abs);
@@ -138,6 +137,9 @@ public class ClipboardController {
 	 * @param upperNode
 	 */
 	public void paste(CpsUpperNode upperNode, Point p) {
+		
+		if(p == null)
+			return;
 
 		JsonObject json = new JsonObject();
 		Transferable content = clipboard.getContents(null);
@@ -166,7 +168,7 @@ public class ClipboardController {
 		eleIDMap = new HashMap<>();
 		sav = json.get("SAV").getAsString();
 
-		Position old = new Position(json.get("CENTER_X").getAsInt(), json.get("CENTER_Y").getAsInt());
+		Position old = gson.getAdapter(Position.class).fromJsonTree(json.get("CENTER"));
 		point = new Point(old.x - p.x, old.y-p.y);
 
 		forwardObjects(keys, json, objDispatch, eleDispatch, upperNode);
@@ -176,6 +178,7 @@ public class ClipboardController {
 
 	public void cut(CpsUpperNode upperNode) {
 		copy(upperNode);
+		
 	}
 
 	private void forwardEdges(List<String> keys, JsonObject json, HashMap<Integer, AbstractCpsObject> objDispatch,
@@ -233,7 +236,7 @@ public class ClipboardController {
 
 		} else {
 			// else look up the table and put it into the right Uppernode
-			CpsUpperNode temp2 = (CpsUpperNode) objDispatch.get(Integer.parseInt(temp.getSav()));
+			CpsUpperNode temp2 = (CpsUpperNode) objDispatch.get(objIDMap.get(Integer.parseInt(temp.getSav())));
 			uppC.addObjectInUpperNode(temp, temp2);
 		}