瀏覽代碼

copy,cut,paste in controller

Kevin Trometer 7 年之前
父節點
當前提交
18be3cc729
共有 3 個文件被更改,包括 64 次插入21 次删除
  1. 40 0
      src/ui/controller/CanvasController.java
  2. 21 6
      src/ui/controller/Control.java
  3. 3 15
      src/ui/view/GUI.java

+ 40 - 0
src/ui/controller/CanvasController.java

@@ -1,11 +1,15 @@
 package ui.controller;
 
+import java.awt.Point;
 import java.util.ArrayList;
 
 import Interfaces.CategoryListener;
 import Interfaces.ObjectListener;
 import classes.CpsEdge;
 import classes.CpsObject;
+import classes.HolonObject;
+import classes.HolonSwitch;
+import classes.Position;
 import ui.model.Model;
 
 public class CanvasController {
@@ -92,5 +96,41 @@ public class CanvasController {
 		edge.getB().getConnections().remove(edge);
 		MODEL.getEdgesOnCanvas().remove(edge);
 	}
+	
+	/**
+	 * Copy all Selected Objects
+	 */
+	public void copyObjects() {
+		MODEL.setClipboradObjects((ArrayList<CpsObject>) MODEL.getSelectedCpsObjects().clone());
+	}
+	
+	/**
+	 * Paste all Selected Objects
+	 * 
+	 * @param Point
+	 * 					the mouse Position
+	 */
+	public void pasteObjects(Point point) {
+		System.out.println("paste");
+		MODEL.getSelectedCpsObjects().clear();
+		CpsObject tCps = null;
+		for (CpsObject cps : MODEL.getClipboradObjects()) {
+			if (cps instanceof HolonObject) {
+				tCps = new HolonObject(cps);
+				((HolonObject) tCps).setElements(((HolonObject) cps).getElements());
+			} else if (cps instanceof HolonSwitch) {
+				tCps = new HolonSwitch(cps);
+			}
+			tCps.setPosition(cps.getPosition());
+			addObject(tCps);
+			MODEL.getSelectedCpsObjects().add(tCps);
+		}
+	}
+	
+	/**
+	 * Cut all Selected Objects
+	 */
+	public void cutObjects() {
+	}
 
 }

+ 21 - 6
src/ui/controller/Control.java

@@ -1,5 +1,6 @@
 package ui.controller;
 
+import java.awt.Point;
 import java.awt.event.ActionListener;
 import java.io.File;
 import java.io.IOException;
@@ -12,6 +13,8 @@ import classes.CpsNode;
 import classes.CpsObject;
 import classes.HolonElement;
 import classes.HolonObject;
+import classes.HolonSwitch;
+import classes.Position;
 import ui.model.Model;
 import ui.view.MyCanvas;
 
@@ -65,16 +68,16 @@ public class Control {
 	public CpsObject searchCategoryObject(String category, String object) {
 		return multiPurposeController.searchCatObj(multiPurposeController.searchCat(category), object);
 	}
-	
+
 	public Category searchCategory(String cat) {
 		return multiPurposeController.searchCat(cat);
 	}
 
 	/* Operations for Categories and Objects */
-	public void resetCategorys(){
+	public void resetCategorys() {
 		categoryController.initCategories();
 	}
-	
+
 	public void addCategory(String cat) {
 		categoryController.addNewCategory(cat);
 	}
@@ -175,7 +178,7 @@ public class Control {
 	public void deleteElementCanvas(HolonObject obj, HolonElement ele) {
 		objectController.deleteElement(obj, ele);
 	}
-	
+
 	public void setClipboardObjects(ArrayList<CpsObject> list) {
 		MODEL.setClipboradObjects(list);
 	}
@@ -223,8 +226,8 @@ public class Control {
 	private void autoSave() throws IOException {
 		autoSaveController.increaseAutoSaveNr();
 		storeController.writeCanvasFile(autoPath + autoSaveController.getAutoSaveNr());
-		if(autoSaveController.allowed()){
-			new File(autoPath + (autoSaveController.getAutoSaveNr()-globalController.getNumbersOfSaves())).delete();
+		if (autoSaveController.allowed()) {
+			new File(autoPath + (autoSaveController.getAutoSaveNr() - globalController.getNumbersOfSaves())).delete();
 		}
 	}
 
@@ -244,6 +247,18 @@ public class Control {
 		return autoPath + (autoSaveController.getAutoSaveNr());
 	}
 
+	public void copyObjects() {
+		canvasController.copyObjects();
+	}
+
+	public void pasteObjects(Point point) {
+		canvasController.pasteObjects(point);
+	}
+
+	public void cutObjects() {
+		canvasController.cutObjects();
+	}
+
 	/**
 	 * Getter for Model
 	 * 

+ 3 - 15
src/ui/view/GUI.java

@@ -343,7 +343,7 @@ public class GUI<E> implements CategoryListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				System.out.println("copy");
-				controller.setClipboardObjects((ArrayList<CpsObject>) model.getSelectedCpsObjects().clone());
+				controller.copyObjects();
 			}
 		});
 
@@ -353,20 +353,7 @@ public class GUI<E> implements CategoryListener {
 
 			@Override
 			public void actionPerformed(ActionEvent e) {
-				System.out.println("paste");
-				model.getSelectedCpsObjects().clear();
-				CpsObject tCps = null;
-				for (CpsObject cps : model.getClipboradObjects()) {
-					if (cps instanceof HolonObject) {
-						tCps = new HolonObject(cps);
-						((HolonObject) tCps).setElements(((HolonObject) cps).getElements());
-					} else if (cps instanceof HolonSwitch) {
-						tCps = new HolonSwitch(cps);
-					}
-					tCps.setPosition(cps.getPosition());
-					controller.addObjectCanvas(tCps);
-					controller.addSelectedObject(tCps);
-				}
+				controller.pasteObjects(frmCyberPhysical.getMousePosition());
 				canvas.repaint();
 			}
 		});
@@ -377,6 +364,7 @@ public class GUI<E> implements CategoryListener {
 
 			@Override
 			public void actionPerformed(ActionEvent e) {
+				controller.cutObjects();
 				System.out.println("cut");
 			}
 		});