فهرست منبع

Merge branch 'Ohne_Drag_and_Drop' of https://git.tk.informatik.tu-darmstadt.de/carlos.garcia/praktikum-holons into Ohne_Drag_and_Drop

Edgardo Palza 8 سال پیش
والد
کامیت
1a4b81a325

+ 1 - 1
.gitignore

@@ -1 +1 @@
-/bin/
+bin/

+ 2 - 2
src/ui/controller/CanvasController.java

@@ -20,10 +20,10 @@ public class CanvasController {
 	 *            CpsObject to be added.
 	 */
 	public void addObjectIntoCanvas(CpsObject object) {
-		String name = object.getObjName();
+		String objName = object.getObjName();
 		MODEL.getObjectsOnCanvas().add(object);
 		notifyObjListeners();
-		System.out.println("Added: " + name);
+		System.out.println("Added: " + objName);
 	}
 	
 	public void addObjectListener(ObjectListener objLis) {

+ 15 - 7
src/ui/controller/CategoryController.java

@@ -5,6 +5,7 @@ import java.util.LinkedList;
 
 import classes.Category;
 import classes.CpsObject;
+import classes.HolonElement;
 import classes.HolonObject;
 import classes.HolonSwitch;
 import classes.HolonTransformer;
@@ -36,7 +37,7 @@ public class CategoryController {
 		powerp.setImage("/Images/power-plant.png");
 		HolonObject house = new HolonObject("House");
 		house.setImage("/Images/home.png");
-		
+
 		System.out.println(house.toString());
 		HolonTransformer transformer = new HolonTransformer("Transformer");
 		transformer.setImage("/Images/transformer.png");
@@ -128,8 +129,11 @@ public class CategoryController {
 	 * @param obj
 	 *            New Object Name
 	 */
-	public void addNewHolonObject(Category cat, String obj, String objType) {
-		addObject(cat, new HolonObject(objType, obj));
+	public void addNewHolonObject(Category cat, String objName, ArrayList<HolonElement> elements, String image) {
+		HolonObject object = new HolonObject(objName);
+		object.setImage(image);
+		object.setElements(elements);
+		addObject(cat, object);
 	}
 
 	/**
@@ -140,8 +144,10 @@ public class CategoryController {
 	 * @param obj
 	 *            New Object Name
 	 */
-	public void addNewHolonTransformer(Category cat, String obj, String objType) {
-		addObject(cat, new HolonTransformer(objType, obj));
+	public void addNewHolonTransformer(Category cat, String objName, String image) {
+		HolonTransformer transformer = new HolonTransformer(objName);
+		transformer.setImage(image);
+		addObject(cat, transformer);
 	}
 
 	/**
@@ -152,8 +158,10 @@ public class CategoryController {
 	 * @param obj
 	 *            New Object Name
 	 */
-	public void addNewHolonSwitch(Category cat, String obj, String objType) {
-		addObject(cat, new HolonSwitch(objType, obj));
+	public void addNewHolonSwitch(Category cat, String objName, String image) {
+		HolonSwitch holonSwitch = new HolonSwitch(objName);
+		holonSwitch.setImage(image);
+		addObject(cat, holonSwitch);
 	}
 
 	/**

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

@@ -2,10 +2,12 @@ package ui.controller;
 
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
+import java.util.ArrayList;
 import java.util.LinkedList;
 
 import classes.Category;
 import classes.CpsObject;
+import classes.HolonElement;
 import classes.HolonObject;
 import Interfaces.CategoryListener;
 import ui.model.Model;
@@ -25,7 +27,7 @@ public class Control {
 	private final ObjectController objectController;
 	private final CanvasController canvasController;
 	private final GlobalController globalController;
-	
+
 	public Control(Model model) {
 		this.MODEL = model;
 		this.categoryController = new CategoryController(model);
@@ -39,20 +41,20 @@ public class Control {
 		categoryController.addNewCategory(catName);
 	}
 
-	public void addObject(Category cat, String name, String objType) {
-		categoryController.addNewHolonObject(cat, name, objType);
+	public void addObject(Category cat, String objType, ArrayList<HolonElement> elements, String image) {
+		categoryController.addNewHolonObject(cat, objType, elements, image);
 	}
 
-	public void addObjectCategory(Category cat, HolonObject object) {
-		categoryController.addObject(cat, object);
-	}
+	// public void addObjectCategory(Category cat, HolonObject object) {
+	// categoryController.addObject(cat, object);
+	// }
 
-	public void addTransformer(Category cat, String name, String objType) {
-		categoryController.addNewHolonTransformer(cat, name, objType);
+	public void addTransformer(Category cat, String objName, String image) {
+		categoryController.addNewHolonTransformer(cat, objName, image);
 	}
 
-	public void addSwitch(Category cat, String name, String objType) {
-		categoryController.addNewHolonSwitch(cat, name, objType);
+	public void addSwitch(Category cat, String objName, String image) {
+		categoryController.addNewHolonSwitch(cat, objName, image);
 	}
 
 	public Category searchCategory(String name) {
@@ -75,7 +77,7 @@ public class Control {
 	public void setSelectedObjectID(int id) {
 		objectController.setSelectedObjectID(id);
 	}
-	
+
 	public void deleteObjectOnCanvas(CpsObject obj) {
 		canvasController.deleteObjectOnCanvas(obj);
 	}
@@ -85,8 +87,7 @@ public class Control {
 		objectController.addNewElementIntoCanvasObject(objName, eleName, amount, energy);
 	}
 
-	public void addElementCategoryObject(String catName, String objName, String eleName, int amount,
-			float energy) {
+	public void addElementCategoryObject(String catName, String objName, String eleName, int amount, float energy) {
 		objectController.addNewElementIntoCategoryObject(catName, objName, eleName, amount, energy);
 	}
 
@@ -94,24 +95,28 @@ public class Control {
 		objectController.deleteElementInCanvas(id, element);
 	}
 
-	/* Global Operations*/
-	public int getScale(){
+	public CpsObject searchByID(int ID){
+		return objectController.searchByID(ID);
+	}
+
+	/* Global Operations */
+	public int getScale() {
 		return globalController.getScale();
 	}
-	
-	public int getScaleDiv2(){
+
+	public int getScaleDiv2() {
 		return globalController.getScaleDiv2();
 	}
-	
-	public void setScale(int s){
+
+	public void setScale(int s) {
 		globalController.setScale(s);
 	}
-	
+
 	////////// etc
 	public void initListener(CategoryListener catLis) {
 		categoryController.addCategoryListener(catLis);
 	}
-	
+
 	/**
 	 * Getter for Model
 	 * 

+ 4 - 7
src/ui/controller/ObjectController.java

@@ -12,9 +12,6 @@ import Interfaces.ObjectListener;
 
 public class ObjectController {
 
-	public enum Type {
-		CONSUMER, PRODUCER
-	}
 
 	private Model MODEL;
 
@@ -116,7 +113,7 @@ public class ObjectController {
 	 * @param amount
 	 */
 	public void deleteElementInCanvas(int ID, String ele) {
-		HolonObject object = searchByID(ID, MODEL.getObjectsOnCanvas());
+		HolonObject object = (HolonObject) searchByID(ID);
 		HolonElement element = searchHolonElement(object, ele);
 
 //		element.setAmount(element.getAmount() - amount);
@@ -170,10 +167,10 @@ public class ObjectController {
 	 * @param list
 	 * @return
 	 */
-	public HolonObject searchByID(int ID, ArrayList<CpsObject> list){
-		for (CpsObject objects : list) {
+	public CpsObject searchByID(int ID){
+		for (CpsObject objects : MODEL.getObjectsOnCanvas()) {
 			if(objects.getID() == ID)
-				return (HolonObject) objects;
+				return objects;
 		}
 		return null;
 	}

+ 23 - 1
src/ui/view/AddElementPopUp.java

@@ -1,6 +1,7 @@
 package ui.view;
 
 import java.awt.BorderLayout;
+import java.awt.Color;
 import java.awt.FlowLayout;
 import java.util.ArrayList;
 
@@ -18,6 +19,8 @@ import javax.swing.DefaultComboBoxModel;
 import classes.HolonElement;
 
 import java.awt.event.ActionListener;
+import java.awt.event.KeyEvent;
+import java.awt.event.KeyListener;
 import java.awt.event.ActionEvent;
 
 public class AddElementPopUp extends JDialog {
@@ -67,6 +70,24 @@ public class AddElementPopUp extends JDialog {
 		contentPanel.add(lblAmount);
 		
 		elementName = new JTextField();
+		elementName.addKeyListener(new KeyListener() {
+			@Override
+			public void keyPressed(KeyEvent arg0) {
+				// TODO Auto-generated method stub
+
+			}
+
+			@Override
+			public void keyReleased(KeyEvent e) {
+				// TODO Auto-generated method stub
+
+			}
+
+			@Override
+			public void keyTyped(KeyEvent e) {
+				elementName.setBackground(Color.WHITE);
+			}
+		});
 		elementName.setBounds(140, 8, 110, 20);
 		contentPanel.add(elementName);
 		elementName.setColumns(10);
@@ -108,7 +129,8 @@ public class AddElementPopUp extends JDialog {
 								JOptionPane.showMessageDialog(new JFrame(),"Please enter numbers in the Fields amount and providedEnergy");
 							}
 						}else{
-							JOptionPane.showMessageDialog(new JFrame(), "Please enter a Name");
+							//JOptionPane.showMessageDialog(new JFrame(), "Please enter a Name");
+							elementName.setBackground(new Color(255, 50, 50));
 						}
 					}
 				});

+ 8 - 5
src/ui/view/AddObjectPopUp.java

@@ -205,11 +205,14 @@ public class AddObjectPopUp extends JDialog {
 						if (objectName.getText().length() > 0) {
 							if (sourcePath.getText().equals(filePath)) {
 								copieFile();
-								theObject = new HolonObject(objectName.getText());
-								theObject.setElements(hElements);
-								theObject.setImage(imagePath);
-								controller.addObjectCategory(controller.searchCategory(givenCategory), theObject);
-								System.out.println(theObject.getImage());
+								// theObject = new
+								// HolonObject(objectName.getText());
+								// theObject.setElements(hElements);
+								// theObject.setImage(imagePath);
+								controller.addObject(controller.searchCategory(givenCategory), objectName.getText(), hElements, imagePath);
+//								controller.addObjectCategory(controller.searchCategory(givenCategory), theObject);
+//								
+//								System.out.println(theObject.getImage());
 								System.out.println(givenCategory);
 								dispose();
 							} else

+ 42 - 1
src/ui/view/GUI.java

@@ -59,6 +59,8 @@ import java.awt.event.ActionListener;
 import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.image.ImageObserver;
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.awt.event.ActionEvent;
 import javax.swing.JSlider;
 import javax.swing.event.ChangeListener;
@@ -368,7 +370,46 @@ public class GUI implements CategoryListener {
 						tableModel.addRow(temp);
 					}
 				}
-				table.clearSelection();
+			}
+		});
+
+		table.addPropertyChangeListener(new PropertyChangeListener() {
+			@Override
+			public void propertyChange(PropertyChangeEvent evt) {
+				try {
+
+					tempCps = controller.searchByID(model.getSelectedObjectID());
+					if (tempCps != null) {
+						System.out.println("change: " + tempCps.toString());
+						for (int r = 0; r < tableModel.getRowCount(); r++) {
+							ArrayList<Object> temp = new ArrayList<>();
+							for (int c = 0; c < tableModel.getColumnCount(); c++) {
+								temp.add(table.getValueAt(r, c));
+							}
+							float ch;
+							if(temp.get(1).toString().compareTo("-")==0) {ch = -1;} else {ch = 1;}
+							float fa = Float.parseFloat(temp.get(2).toString());
+							int i = Integer.parseInt(temp.get(3).toString());
+							((HolonObject) tempCps).getElements().get(r).setEleName((String) temp.get(0));
+							((HolonObject) tempCps).getElements().get(r).setSign(ch);
+							((HolonObject) tempCps).getElements().get(r).setEnergy(fa);
+							((HolonObject) tempCps).getElements().get(r).setAmount(i);
+							System.out.println(table.getRowCount() + " " + temp.get(0) + " " + ch + " "
+									+ fa + " " + i);
+						}
+						if (tableModel.getRowCount() > 0) {
+							for (int i = tableModel.getRowCount() - 1; i > -1; i--) {
+								tableModel.removeRow(i);
+							}
+						}
+						for (HolonElement he : canvas.dataSelected) {
+							Object[] temp = { he.getEleName(), he.getSign(), he.getEnergy(), he.getAmount() };
+							tableModel.addRow(temp);
+						}
+					}
+				} catch (Exception e) {
+					
+				}
 			}
 		});