Browse Source

Elemente von Objekten in Kategorie werden auch angezeigt

dominik.rieder 8 years ago
parent
commit
a984d02504
2 changed files with 37 additions and 7 deletions
  1. 10 0
      src/ui/controller/Control.java
  2. 27 7
      src/ui/view/GUI.java

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

@@ -111,6 +111,16 @@ public class Control {
 	public CpsObject searchByID(int ID){
 		return objectController.searchByID(ID);
 	}
+	
+	public CpsObject searchObjInCat(String objName, String catName){
+		Category cat = searchCategory(catName);
+		for(CpsObject hl : cat.getObjects()){
+			if(hl.getCompareName().equals(objName)){
+				return hl;
+			}
+		}
+		return null;
+	}
 
 	/* Global Operations */
 	public int getScale() {

+ 27 - 7
src/ui/view/GUI.java

@@ -2,6 +2,7 @@ package ui.view;
 
 import java.io.File;
 import java.util.ArrayList;
+
 import javax.swing.JFrame;
 import javax.swing.JLabel;
 import javax.swing.JMenuBar;
@@ -25,6 +26,7 @@ import javax.swing.tree.DefaultMutableTreeNode;
 import javax.swing.JEditorPane;
 import javax.swing.JFileChooser;
 import javax.swing.table.DefaultTableModel;
+
 import java.awt.Color;
 import java.awt.Component;
 import java.awt.Cursor;
@@ -57,6 +59,7 @@ import java.awt.event.MouseListener;
 import java.beans.PropertyChangeEvent;
 import java.beans.PropertyChangeListener;
 import java.awt.event.ActionEvent;
+
 import javax.swing.JSlider;
 import javax.swing.event.ChangeListener;
 import javax.swing.event.TableModelEvent;
@@ -439,6 +442,16 @@ public class GUI implements CategoryListener {
 			public void mousePressed(MouseEvent e) {
 				try {
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
+					//if an Object was selected, the porperties are shown in the table
+					DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent();
+					if(selectedNode.getLevel() == 2){
+						CpsObject selected = controller.searchObjInCat(selectedNode.toString(), selectedNode.getParent().toString());
+						deleteRows();
+						if(selected instanceof HolonObject && selected != null){
+							selected = (HolonObject) selected;
+							fillElementTable(((HolonObject) selected).getElements());
+						}
+					}
 					for (Category cat : model.getCategories()) {
 						for (CpsObject cps : cat.getObjects()) {
 							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
@@ -828,19 +841,26 @@ public class GUI implements CategoryListener {
 	public void refreshTableHolonElement() {
 		// Update of the Information about the HolonElements - only for
 		// HolonObjects
+		deleteRows();
+		if (canvas.dataSelected != null) {
+			fillElementTable(canvas.dataSelected);
+		}
+
+	}
+	
+	public void deleteRows(){
 		if (tableModelHolonElement.getRowCount() > 0) {
 			for (int i = tableModelHolonElement.getRowCount() - 1; i > -1; i--) {
 				tableModelHolonElement.removeRow(i);
 			}
 		}
-		if (canvas.dataSelected != null) {
-			for (HolonElement he : canvas.dataSelected) {
-				Object[] temp = { he.getEleName(), he.getEnergy(), he.getAmount() };
-				tableModelHolonElement.addRow(temp);
-			}
-
+	}
+	
+	public void fillElementTable(ArrayList<HolonElement> elements){
+		for (HolonElement he : elements) {
+			Object[] temp = { he.getEleName(), he.getEnergy(), he.getAmount() };
+			tableModelHolonElement.addRow(temp);
 		}
-
 	}
 
 	/**