Browse Source

autoSave fix for group delete and NodeOfNode delete

jess 7 years ago
parent
commit
0baa54ed81
4 changed files with 40 additions and 20 deletions
  1. 23 8
      src/ui/controller/Control.java
  2. 6 2
      src/ui/view/GUI.java
  3. 10 9
      src/ui/view/MyCanvas.java
  4. 1 1
      src/ui/view/UpperNodeCanvas.java

+ 23 - 8
src/ui/controller/Control.java

@@ -60,7 +60,8 @@ public class Control {
 		this.globalController = new GlobalController(model);
 		this.storeController = new StoreController(model);
 		this.nodeController = new NodeController(model, canvasController, multiPurposeController);
-		this.loadController = new LoadController(model, categoryController, canvasController, objectController, nodeController, multiPurposeController);
+		this.loadController = new LoadController(model, categoryController, canvasController, objectController,
+				nodeController, multiPurposeController);
 		this.simulationManager = new SimulationManager(model);
 		this.autoSaveController = new AutoSaveController(model);
 		this.consoleController = new ConsoleController(model);
@@ -324,17 +325,19 @@ public class Control {
 	 * 
 	 * @param obj
 	 *            AbstractCpsObject
+	 * @param save
 	 */
-	public void delCanvasObject(AbstractCpsObject obj) {
+	public void delCanvasObject(AbstractCpsObject obj, boolean save) {
 		canvasController.deleteObjectOnCanvas(obj);
 		if (obj instanceof CpsUpperNode)
 			canvasController.bfsNodeCleaner((CpsUpperNode) obj);
-		try {
-			autoSave();
-		} catch (IOException e) {
-			// TODO Auto-generated catch block
-			e.printStackTrace();
-		}
+		if (save)
+			try {
+				autoSave();
+			} catch (IOException e) {
+				// TODO Auto-generated catch block
+				e.printStackTrace();
+			}
 	}
 
 	/* Operations for Objects and Elements */
@@ -744,10 +747,22 @@ public class Control {
 
 	public void addUpperNode(String nodeName, CpsUpperNode upperNode, ArrayList<AbstractCpsObject> toGroup) {
 		nodeController.doUpperNode(nodeName, upperNode, toGroup);
+		try {
+			autoSave();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
 	}
 
 	public void delUpperNode(CpsUpperNode node, CpsUpperNode upperNode) {
 		nodeController.undoUpperNode(node, upperNode);
+		try {
+			autoSave();
+		} catch (IOException e) {
+			// TODO Auto-generated catch block
+			e.printStackTrace();
+		}
 	}
 
 	public void addObjUpperNode(AbstractCpsObject object, CpsUpperNode upperNode) {

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

@@ -456,8 +456,12 @@ public class GUI<E> implements CategoryListener {
 					// or Canvas?
 				} else if (((JScrollPane) tabbedPane.getSelectedComponent()).getViewport()
 						.getComponent(0) instanceof MyCanvas) {
-					for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
-						controller.delCanvasObject(cps);
+					boolean save = false;
+					for (int j = 0; j < model.getSelectedCpsObjects().size();j++) {
+						AbstractCpsObject cps = model.getSelectedCpsObjects().get(j);
+						if(j<model.getSelectedCpsObjects().size()-1)
+							save = true;
+						controller.delCanvasObject(cps, save);
 						// Remove UpperNodeTab if UpperNode deleted
 						if (cps instanceof CpsUpperNode) {
 							for (int i = 3; i < tabbedPane.getTabCount(); i++) {

+ 10 - 9
src/ui/view/MyCanvas.java

@@ -337,8 +337,12 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				// Remove the selected Object objects
-				for (AbstractCpsObject cps : model.getSelectedCpsObjects()) {
-					controller.delCanvasObject(cps);
+				boolean save = false;
+				for (int j = 0; j < model.getSelectedCpsObjects().size(); j++) {
+					AbstractCpsObject cps = model.getSelectedCpsObjects().get(j);
+					if (j == model.getSelectedCpsObjects().size() - 1)
+						save = true;
+					controller.delCanvasObject(cps, save);
 					controller.removeTrackingObj(cps);
 					// Remove UpperNodeTab if UpperNode deleted
 					if (cps instanceof CpsUpperNode) {
@@ -403,12 +407,9 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		RenderingHints rh = new RenderingHints(RenderingHints.KEY_ANTIALIASING, RenderingHints.VALUE_ANTIALIAS_ON);
 		g2.setRenderingHints(rh);
 
-		
-		  img = new
-		  ImageIcon(this.getClass().getResource("/Images/Darmstadt.jpg")).
-		  getImage(); g2.drawImage(img, 0, 0, model.getCanvasX(),
-		  model.getCanvasY(), null);
-		 
+		img = new ImageIcon(this.getClass().getResource("/Images/Darmstadt.JPG")).getImage();
+		g2.drawImage(img, 0, 0, model.getCanvasX(), model.getCanvasY(), null);
+
 		// Test SubNet Coloring
 		int i = 0;
 		for (SubNet s : controller.getSimManager().getSubNets()) {
@@ -1021,7 +1022,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 
 		// Wenn ein Node ohne Connections da ist
 		if (deleteNode) {
-			controller.delCanvasObject(tempCps);
+			controller.delCanvasObject(tempCps, true);
 			tempCps = null;
 		}
 	}

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

@@ -1325,7 +1325,7 @@ public class UpperNodeCanvas extends JPanel implements MouseListener, MouseMotio
 
 		// Wenn ein Node ohne Connections da ist
 		if (deleteNode) {
-			controller.delCanvasObject(tempCps);
+			controller.delCanvasObject(tempCps, true);
 			tempCps = null;
 		}
 	}