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