瀏覽代碼

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

Conflicts:
	bin/ui/view/GUI$1.class
	bin/ui/view/GUI$2.class
	bin/ui/view/GUI$3.class
	bin/ui/view/GUI$4.class
	bin/ui/view/GUI$5.class
	bin/ui/view/GUI$6.class
	bin/ui/view/GUI.class
	src/ui/view/GUI.java
Edgardo Palza 8 年之前
父節點
當前提交
5d8b100943

+ 1 - 0
.gitignore

@@ -0,0 +1 @@
+/bin/

+ 0 - 6
bin/.gitignore

@@ -1,6 +0,0 @@
-/Images/
-/Interfaces/
-/classes/
-/exceptions/
-/tests/
-/ui/

二進制
bin/Images/Thumbs.db


二進制
bin/classes/CpsObject.class


二進制
bin/classes/HolonObject.class


二進制
bin/ui/controller/CategoryController.class


二進制
bin/ui/view/MyCanvas.class


二進制
res/Images/Thumbs.db


二進制
res/Images/house.png


+ 5 - 0
src/classes/CpsObject.java

@@ -30,12 +30,17 @@ public class CpsObject implements ComparableObject {
 		connectedTo = new ArrayList<CpsObject>();
 		position = new Position();
 		id = IdCounter.nextId();
+		image = "/Images/Dummy_House.png";
 	}
 	public CpsObject(CpsObject obj) {
 		this.objName = obj.getObjName();
 		connectedTo = new ArrayList<CpsObject>();
 		position = new Position();
 		id = IdCounter.nextId();
+		this.name = obj.getName();
+		this.energyIn = obj.getEnergyIn();
+		this.energyOut = obj.getEnergyOut();
+		this.image = obj.getImage();
 	}
 	
 	/* Obj type */

+ 3 - 1
src/classes/HolonObject.java

@@ -26,10 +26,12 @@ public class HolonObject extends CpsObject {
 		super(ObjName);
 	}
 	
-	public HolonObject(HolonObject obj) {
+	public HolonObject(CpsObject obj) {
 		super(obj.objName);
+		/*
 		this.consumers = obj.consumers;
 		this.producers = obj.producers;
+		*/
 	}
 	
 	public void addConsumer(HolonElement consumer){

+ 2 - 6
src/ui/controller/CategoryController.java

@@ -36,13 +36,10 @@ public class CategoryController {
 		Category component = new Category("Component");
 
 		HolonObject powerp = new HolonObject("Power Plant");
-		powerp.setImage("/Images/Dummy_House.png");
 		HolonObject house = new HolonObject("House");
-		house.setImage("/Images/Dummy_House.png");
+		house.setImage("/Images/house.png");
 		HolonTransformer transformer = new HolonTransformer("Transformer");
-		transformer.setImage("/Images/Dummy_House.png");
 		HolonSwitch sw = new HolonSwitch("Switch");
-		sw.setImage("/Images/Dummy_House.png");
 
 		addObject(energy, powerp);
 		addObject(building, house);
@@ -51,8 +48,7 @@ public class CategoryController {
 
 		addCategory(energy);
 		addCategory(building);
-		addCategory(component);
-
+		addCategory(component);		
 	}
 
 	/**

+ 80 - 35
src/ui/view/GUI.java

@@ -1,10 +1,12 @@
 package ui.view;
 
 import java.io.File;
+import java.net.URL;
 import java.util.ArrayList;
 import java.util.Enumeration;
 
 import javax.swing.JFrame;
+import javax.swing.JLabel;
 import javax.swing.JList;
 import javax.swing.JMenuBar;
 import javax.swing.JMenu;
@@ -18,6 +20,7 @@ import javax.swing.JTabbedPane;
 import javax.swing.JTable;
 import javax.swing.tree.DefaultTreeModel;
 import javax.swing.tree.MutableTreeNode;
+import javax.swing.tree.TreeCellRenderer;
 import javax.swing.tree.TreeNode;
 
 import ui.controller.Control;
@@ -30,6 +33,7 @@ import javax.swing.JFileChooser;
 import javax.swing.table.DefaultTableModel;
 
 import java.awt.Color;
+import java.awt.Component;
 import java.awt.Cursor;
 import java.awt.Image;
 import java.awt.Point;
@@ -102,9 +106,11 @@ public class GUI implements CategoryListener {
 	private final JToolBar toolBar = new JToolBar();
 
 	// variables
-	boolean dragging = false;
-	String actualObjectClicked;
-
+	private boolean dragging = false;
+	private String actualObjectClicked;
+	private Image img = null;
+	private CpsObject tempCps = null;
+	
 	private final MyCanvas canvas;
 
 	/**
@@ -191,21 +197,57 @@ public class GUI implements CategoryListener {
 		splitPane_2.setDividerLocation(200);
 
 		splitPane.setLeftComponent(scrollPane_1);
-		final Image img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
+		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
 				.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
 		Icon icon = new ImageIcon(img);
-		DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();
+		
+		
+		TreeCellRenderer customRenderer = new TreeCellRenderer() {
+			
+			@Override
+			public Component getTreeCellRendererComponent(JTree tree, Object value, boolean selected, boolean expanded,
+					boolean leaf, int row, boolean hasFocus) {
+				JLabel label = new JLabel();
+				Image imgR = null;
+				CpsObject tempCPS = null;
+				
+				for (Category cat : model.getCategories()) {
+					for (CpsObject cps : cat.getObjects()) {
+						if (value.toString().compareTo(cps.getCompareName()) == 0) {
+							tempCPS = cps;
+							System.out.println(tempCPS.getImage());
+							imgR = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
+									.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+							if (imgR != null) {
+					            label.setIcon(new ImageIcon (imgR));
+					        }
+						}
+					}
+				}
+		        label.setText(value.toString());
+		        return label;
+				
+			}
+		};
+		
+		
+		/*DefaultTreeCellRenderer renderer = (DefaultTreeCellRenderer) tree.getCellRenderer();
 		renderer.setLeafIcon(icon);
 		// renderer.setClosedIcon(icon);
-		// renderer.setOpenIcon(icon);
+		// renderer.setOpen*/
 		tree.setRowHeight(icon.getIconHeight());
-		tree.setCellRenderer(renderer);
-
+		
+		tree.setCellRenderer(customRenderer);
+		
 		tree.addMouseListener(new MouseAdapter() {
 			public void mouseReleased(MouseEvent e) {
 				try {
 					if (dragging) {
+<<<<<<< HEAD
 						CpsObject h = new CpsObject(actualObjectClicked);
+=======
+						HolonObject h = new HolonObject(tempCps);
+>>>>>>> be22b224d998a4747c8839f1c312f403a8726dda
 						h.setPos((int) canvas.getMousePosition().getX(), (int) canvas.getMousePosition().getY());
 						controller.addObject(h);
 						for (int i = 0; i < model.getObjectsOnCanvas().size(); i++) {
@@ -225,32 +267,30 @@ public class GUI implements CategoryListener {
 			public void mousePressed(MouseEvent e) {
 				try {
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
-					// System.out.println(name);
+					/*//System.out.println(actualObjectClicked);
 					if (actualObjectClicked.compareTo("Power Plant") == 0 || actualObjectClicked.compareTo("House") == 0
 							|| actualObjectClicked.compareTo("Switch") == 0
 							|| actualObjectClicked.compareTo("Transformer") == 0) {
-						dragging = true;
-						Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0, 0), "Image");
-						frmCyberPhysical.setCursor(cursor);
+						
+					}
+					*/
+					for (Category cat : model.getCategories()) {
+						for (CpsObject cps : cat.getObjects()) {
+							if (actualObjectClicked.compareTo(cps.getCompareName()) == 0) {
+								img = new ImageIcon(this.getClass().getResource(cps.getImage())).getImage()
+										.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+								tempCps = cps;
+								dragging = true;
+								Cursor cursor = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0, 0), "Image");
+								frmCyberPhysical.setCursor(cursor);
+							}
+						}
 					}
 				} catch (Exception e2) {
 				}
 			}
 		});
 
-		/*
-		 * tree.addTreeSelectionListener(new TreeSelectionListener() {
-		 * 
-		 * @Override public void valueChanged(TreeSelectionEvent e) { try {
-		 * String name = tree.getLastSelectedPathComponent().toString();
-		 * System.out.println(name); if (name.compareTo("Power Plant") == 0 ||
-		 * name.compareTo("House") == 0 || name.compareTo("Switch") == 0 ||
-		 * name.compareTo("Transformer") == 0) { dragging = true; Cursor cursor
-		 * = Toolkit.getDefaultToolkit().createCustomCursor(img, new Point(0,
-		 * 0), "red Cursor"); frmCyberPhysical.setCursor(cursor); } } catch
-		 * (Exception e2) {} } });
-		 */
-
 		scrollPane_1.setViewportView(tree);
 
 		scrollPane_1.setColumnHeaderView(panel);
@@ -278,8 +318,6 @@ public class GUI implements CategoryListener {
 					break;
 
 				default:
-					addObjectPopUP = new AddObjectPopUp();
-					addObjectPopUP.setVisible(true);
 					addObjectAction(selectedOption, selectedNode);
 					break;
 				}
@@ -360,17 +398,24 @@ public class GUI implements CategoryListener {
 			if (selectedNode.getLevel() == 1) {
 				String objname = JOptionPane.showInputDialog("Please enter a Name for the " + objType);
 				Category cat = controller.searchCategory(selectedNode.getUserObject().toString());
-				switch (objType) {
+				if(objname.equals("show")){
+					addObjectPopUP = new AddObjectPopUp();
+					addObjectPopUP.setVisible(true);
+				}
+				
+				if(objname.length() != 0){
+					switch (objType) {
 
-				case "Object":
-					controller.addNewObject(cat, objname);
-					break;
+					case "Object":
+						controller.addNewObject(cat, objname);
+						break;
 
-				case "Switch":
-					controller.addNewSwitch(cat, objname);
+					case "Switch":
+						controller.addNewSwitch(cat, objname);
 
-				case "Transformer":
-					controller.addNewTransformer(cat, objname);
+					case "Transformer":
+						controller.addNewTransformer(cat, objname);
+					}
 				}
 			} else {
 				JOptionPane.showMessageDialog(new JFrame(),

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

@@ -16,6 +16,7 @@ import javax.swing.JPanel;
 import javax.swing.JPopupMenu;
 
 import classes.CpsObject;
+import classes.HolonElement;
 import classes.HolonObject;
 import ui.model.*;
 
@@ -33,7 +34,7 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	JPopupMenu popmenu = new JPopupMenu();
 	JMenuItem itemDelete = new JMenuItem("Delete Object");
 
-	public MyCanvas(Model model) {
+	public MyCanvas(final Model model) {
 		this.model = model;
 		popmenu.add(itemDelete);
 		itemDelete.setEnabled(false);
@@ -41,12 +42,14 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 			@Override
 			public void actionPerformed(ActionEvent e) {
 				model.getObjectsOnCanvas().remove(tempCps);
+				dropDelete = false;
 				repaint();
 			}
 		});
-		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage().getScaledInstance(30, 30,
-				java.awt.Image.SCALE_SMOOTH);
 
+		img = new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
+				.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
+		
 		this.addMouseListener(this);
 		this.addMouseMotionListener(this);
 	}
@@ -54,7 +57,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 	public void paintComponent(Graphics g) {
 		// Draws the image to the canvas
 		super.paintComponent(g);
+		
 		for (CpsObject cps : model.getObjectsOnCanvas()) {
+			
+			System.out.println(cps.getImage());
 			g.drawImage(img, cps.getPos().x, cps.getPos().y, null);
 		}
 	}