Browse Source

Delete HolonElement (without autoupdate)

Edgardo Palza 8 years ago
parent
commit
b278ae66ec
2 changed files with 40 additions and 33 deletions
  1. 21 18
      src/ui/controller/ObjectController.java
  2. 19 15
      src/ui/view/GUI.java

+ 21 - 18
src/ui/controller/ObjectController.java

@@ -12,7 +12,6 @@ import Interfaces.ObjectListener;
 
 public class ObjectController {
 
-
 	private Model MODEL;
 
 	public ObjectController(Model model) {
@@ -108,6 +107,7 @@ public class ObjectController {
 
 	/**
 	 * deletes a Element from a given Canvas Object
+	 * 
 	 * @param ID
 	 * @param ele
 	 * @param amount
@@ -116,15 +116,16 @@ public class ObjectController {
 		HolonObject object = (HolonObject) searchByID(ID);
 		HolonElement element = searchHolonElement(object, ele);
 
-//		element.setAmount(element.getAmount() - amount);
-//
-//		if (element.getAmount() <= 0)
-			deleteElement(object, element);
+		// element.setAmount(element.getAmount() - amount);
+		//
+		// if (element.getAmount() <= 0)
+		deleteElement(object, element);
 
 	}
-	
+
 	/**
 	 * deletes a Element from a given Category Object
+	 * 
 	 * @param cat
 	 * @param obj
 	 * @param ele
@@ -134,7 +135,7 @@ public class ObjectController {
 		Category category = searchCategory(cat, MODEL.getCategories());
 		HolonObject object = searchHolonObject(obj, category.getObjects());
 		HolonElement element = searchHolonElement(object, ele);
-		
+
 		deleteElement(object, element);
 	}
 
@@ -145,7 +146,7 @@ public class ObjectController {
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Search for Object
 	 * 
@@ -160,16 +161,17 @@ public class ObjectController {
 		}
 		return null;
 	}
-	
+
 	/**
 	 * Search for Object by ID
+	 * 
 	 * @param ID
 	 * @param list
 	 * @return
 	 */
-	public CpsObject searchByID(int ID){
+	public CpsObject searchByID(int ID) {
 		for (CpsObject objects : MODEL.getObjectsOnCanvas()) {
-			if(objects.getID() == ID)
+			if (objects.getID() == ID)
 				return objects;
 		}
 		return null;
@@ -177,20 +179,21 @@ public class ObjectController {
 
 	/**
 	 * Search for Element
+	 * 
 	 * @param object
 	 * @param element
 	 * @return
 	 */
 	public HolonElement searchHolonElement(HolonObject object, String element) {
-
-		for (HolonElement elements : object.getElements()) {
-			if (elements.getEleName().equals(element))
-				return elements;
+		HolonElement temp = null;
+		if (object.getElements() != null) {
+			for (HolonElement elements : object.getElements()) {
+				if (elements.getEleName().equals(element))
+					temp = elements;
+			}
 		}
-		return null;
+		return temp;
 	}
-	
-
 
 	/**
 	 * Returns the ID of the selected Object 0 = no Object is selected

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

@@ -52,6 +52,7 @@ import Interfaces.CategoryListener;
 import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
+import java.awt.event.MouseListener;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.awt.event.ActionEvent;
@@ -138,6 +139,7 @@ public class GUI implements CategoryListener {
 	private Image img = null;
 	private CpsObject tempCps = null;
 	private HolonElement tempElement = null;
+	private int yValueElements = 0;
 
 	private MyCanvas canvas;
 	private UnitGraph testgraph; // for testing, remove later
@@ -289,23 +291,17 @@ public class GUI implements CategoryListener {
 		toolBarHolonEl.add(btnDelHolEL);
 		btnDelHolEL.addActionListener(new ActionListener() {
 			public void actionPerformed(ActionEvent arg0) {
-				if (tempElement != null && tempCps.getClass() == HolonObject.class && tempCps.getID() != 0) {
-					System.out.println(tempCps.getID());
-					controller.deleteElementCanvas(tempCps.getID(), tempElement.getEleName());
+				HolonObject obj = (HolonObject) getActualCps();
+				tempElement = getActualHolonElement(obj, yValueElements);
+				if (tempElement != null && obj.getClass() == HolonObject.class && obj.getID() != 0) {
+					controller.deleteElementCanvas(obj.getID(), tempElement.getEleName());
 				}
 			}
 		});
 
 		tableHolonElement.addMouseListener(new MouseAdapter() {
 			public void mousePressed(MouseEvent e) {
-				if (tempCps != null) {
-					int rowSelected = (int) Math.floor(e.getY() / 16);
-					if (tableHolonElement.getRowCount() > rowSelected) {
-						tempElement = ((HolonObject) tempCps).getElements().get(rowSelected);
-					} else {
-						tempElement = null;
-					}
-				}
+				yValueElements = e.getY();
 			}
 		});
 		frmCyberPhysical.getContentPane().setLayout(new BorderLayout(0, 0));
@@ -539,6 +535,7 @@ public class GUI implements CategoryListener {
 					}
 				}
 			}
+
 		});
 
 		tableHolonElement.addPropertyChangeListener(new PropertyChangeListener() {
@@ -648,7 +645,7 @@ public class GUI implements CategoryListener {
 		splitPane.setRightComponent(splitPane_1);
 		splitPane.setDividerLocation(200);
 		splitPane_1.setDividerLocation(500);
-		
+
 		splitPane.setLeftComponent(scrollPane_1);
 		splitPane_1.setLeftComponent(tabbedPane);
 		splitPane_1.setRightComponent(split_HolonEl_Pro);
@@ -667,7 +664,7 @@ public class GUI implements CategoryListener {
 		splitPane_1.setBorder(null);
 		split_HolonEl_Pro.setBorder(null);
 		split_Graph_HolonEl.setBorder(null);
-		
+
 		frmCyberPhysical.getContentPane().add(timePanel, BorderLayout.SOUTH);
 	}
 
@@ -747,7 +744,14 @@ public class GUI implements CategoryListener {
 		return canvas.tempCps;
 	}
 
-	public ArrayList<HolonElement> getActualHolonElements(HolonObject obj) {
-		return obj.getElements();
+	public HolonElement getActualHolonElement(HolonObject obj, int yValue) {
+		HolonObject tempCps = obj;
+		final int yTemp = (int) Math.floor(yValue / 16);
+		int rowsTotal = tableModelHolonElement.getRowCount();
+		if (rowsTotal != 0 && rowsTotal > yTemp) {
+			return obj.getElements().get(yTemp);
+		} else {
+			return null;
+		}
 	}
 }