Browse Source

Untrack function enabled

Edgardo Palza 7 years ago
parent
commit
c22999c90e

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

@@ -721,4 +721,8 @@ public class Control {
 		statsController.addTrackingObj(obj);
 	}
 
+	public void removeTrackingObj(HolonObject obj) {
+		statsController.removeTrackingObj(obj);
+	}
+
 }

+ 6 - 0
src/ui/controller/StatsController.java

@@ -28,4 +28,10 @@ public class StatsController {
 		objArr.add(obj);
 		model.setTrackingObj(objArr);
 	}
+
+	public void removeTrackingObj(HolonObject obj) {
+		ArrayList<HolonObject> objArr = model.getTrackingObj();
+		objArr.remove(obj);
+		model.setTrackingObj(objArr);
+	}
 }

+ 30 - 0
src/ui/view/MyCanvas.java

@@ -76,6 +76,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 	public JMenuItem itemPaste = new JMenuItem("Paste");
 	public JMenuItem itemCollapse = new JMenuItem("Colapse Nodes");
 	public JMenuItem itemTrack = new JMenuItem("Track");
+	public JMenuItem itemUntrack = new JMenuItem("Untrack");
 	private JToolTip objectTT = new JToolTip();
 
 	private Point mousePosition = new Point(); // Mouse Position when
@@ -110,6 +111,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		popmenu.addSeparator();
 		popmenu.add(itemCollapse);
 		popmenu.add(itemTrack);
+		popmenu.add(itemUntrack);
 
 		itemDelete.setEnabled(false);
 		itemCut.setEnabled(false);
@@ -117,6 +119,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 		itemPaste.setEnabled(false);
 		itemCollapse.setEnabled(false);
 		itemTrack.setEnabled(false);
+		itemUntrack.setEnabled(false);
 
 		itemCollapse.addActionListener(new ActionListener() {
 			@Override
@@ -148,7 +151,31 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 			}
 		});
 
+		itemUntrack.addActionListener(new ActionListener() {
+
+			@Override
+			public void actionPerformed(ActionEvent e) {
+				for (AbstractCpsObject o : model.getSelectedCpsObjects()) {
+					if (o instanceof HolonObject) {
+						boolean found = false;
+						if (control.getTrackingObj() != null) {
+							for (HolonObject obj : control.getTrackingObj()) {
+								if (obj.getID() == o.getID()) {
+									found = true;
+								}
+							}
+						}
+						if (found) {
+							control.removeTrackingObj((HolonObject) o);
+						}
+					}
+				}
+				System.out.println(control.getTrackingObj());
+			}
+		});
+
 		itemDelete.addActionListener(new ActionListener() {
+
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				// Remove the selected Object objects
@@ -488,8 +515,10 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				itemCollapse.setEnabled(true);
 				if (!(tempCps instanceof HolonSwitch)) {
 					itemTrack.setEnabled(true);
+					itemUntrack.setEnabled(true);
 				} else {
 					itemTrack.setEnabled(false);
+					itemUntrack.setEnabled(false);
 				}
 				if (model.getSelectedCpsObjects().size() == 0) {
 					controller.addSelectedObject(tempCps);
@@ -500,6 +529,7 @@ public class MyCanvas extends JPanel implements MouseListener, MouseMotionListen
 				itemDelete.setEnabled(false);
 				itemCollapse.setEnabled(false);
 				itemTrack.setEnabled(false);
+				itemUntrack.setEnabled(false);
 			}
 			mousePosition = this.getMousePosition();
 			popmenu.show(e.getComponent(), e.getX(), e.getY());