瀏覽代碼

cut finished

Teh-Hai Julian Zheng 7 年之前
父節點
當前提交
6912cb2ca0

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

@@ -137,8 +137,8 @@ public class ClipboardController {
 	 * @param upperNode
 	 */
 	public void paste(CpsUpperNode upperNode, Point p) {
-		
-		if(p == null)
+
+		if (p == null)
 			return;
 
 		JsonObject json = new JsonObject();
@@ -169,7 +169,7 @@ public class ClipboardController {
 		sav = json.get("SAV").getAsString();
 
 		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);
 		forwardEdges(edges, json, objDispatch, upperNode);
@@ -178,7 +178,18 @@ public class ClipboardController {
 
 	public void cut(CpsUpperNode upperNode) {
 		copy(upperNode);
-		
+		ArrayList<AbstractCpsObject> found = (upperNode == null ? model.getObjectsOnCanvas() : upperNode.getNodes());
+
+		for (AbstractCpsObject abs : model.getSelectedCpsObjects()) {
+			if (upperNode == null)
+				cvsC.deleteObjectOnCanvas(abs);
+			else
+				uppC.deleteObjectInUpperNode(abs, upperNode);
+
+			if (abs instanceof CpsUpperNode)
+				cvsC.bfsNodeCleaner((CpsUpperNode) abs);
+		}
+
 	}
 
 	private void forwardEdges(List<String> keys, JsonObject json, HashMap<Integer, AbstractCpsObject> objDispatch,

+ 4 - 27
src/ui/controller/Control.java

@@ -559,34 +559,7 @@ public class Control {
 		return autoPath + (autoSaveController.getAutoSaveNr());
 	}
 
-	/**
-	 * Paste all Selected Objects.
-	 * 
-	 * @param point
-	 *            the mouse Position
-	 */
-	public void pasteObjects(Point point) {
-		clipboardController.paste(null, point);
-		try {
-			autoSave();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
 
-	/**
-	 * Cut all Selected Objects.
-	 */
-	public void cutObjects() {
-		canvasController.cutObjects();
-		try {
-			autoSave();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
-	}
 
 	/**
 	 * Getter for Model.
@@ -872,6 +845,10 @@ public class Control {
 	public void paste(CpsUpperNode upperNode, Point point) {
 		clipboardController.paste(upperNode, point);
 	}
+	
+	public void cut(CpsUpperNode upperNode) {
+		clipboardController.cut(upperNode);
+	}
 
 	public void getObjectsInDepth() {
 		clipboardController.getObjectsInDepth();

+ 6 - 1
src/ui/view/GUI.java

@@ -534,7 +534,12 @@ public class GUI<E> implements CategoryListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				if (!model.getSelectedCpsObjects().isEmpty()) {
-					controller.cutObjects();
+					if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
+							.getComponent(0) instanceof UpperNodeCanvas)
+					controller.cut(((UpperNodeCanvas) ((JScrollPane) tabbedPane.getSelectedComponent())
+							.getViewport().getComponent(0)).upperNode);
+					else
+						controller.cut(null);
 					if (!model.getClipboradObjects().isEmpty()) {
 						canvas.itemPaste.setEnabled(true);
 					}

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

@@ -366,7 +366,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		itemCut.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				controller.cutObjects();
+				controller.cut(null);;
 				itemPaste.setEnabled(true);
 				repaint();
 			}
@@ -384,7 +384,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		itemPaste.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				controller.pasteObjects(mousePosition);
+				controller.paste(null, mousePosition);
 				repaint();
 			}
 		});

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

@@ -378,7 +378,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		itemCut.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				controller.cutObjects();
+				controller.cut(upperNode);
 				itemPaste.setEnabled(true);
 				repaint();
 			}
@@ -396,7 +396,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 		itemPaste.addActionListener(new ActionListener() {
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				controller.pasteObjects(mousePosition);
+				controller.paste(upperNode, mousePosition);
 				repaint();
 			}
 		});