Browse Source

Custom Renderer

Kevin Trometer 7 years ago
parent
commit
be22b224d9

BIN
bin/Images/Thumbs.db


BIN
bin/classes/CpsObject.class


BIN
bin/classes/HolonObject.class


BIN
bin/ui/controller/CategoryController.class


BIN
bin/ui/view/GUI$1.class


BIN
bin/ui/view/GUI$2.class


BIN
bin/ui/view/GUI$3.class


BIN
bin/ui/view/GUI$4.class


BIN
bin/ui/view/GUI$5.class


BIN
bin/ui/view/GUI$6.class


BIN
bin/ui/view/GUI.class


BIN
bin/ui/view/MyCanvas.class


BIN
res/Images/Thumbs.db


BIN
res/Images/house.png


+ 1 - 0
src/classes/CpsObject.java

@@ -30,6 +30,7 @@ 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();

+ 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);		
 	}
 
 	/**

+ 62 - 13
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,53 @@ 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) {
-						HolonObject h = new HolonObject(actualObjectClicked);
+						HolonObject h = new HolonObject(tempCps);
 						h.setPos((int) canvas.getMousePosition().getX(), (int) canvas.getMousePosition().getY());
 						controller.addObject(h);
 						canvas.repaint();
@@ -221,13 +259,24 @@ public class GUI implements CategoryListener {
 			public void mousePressed(MouseEvent e) {
 				try {
 					actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
-					System.out.println(actualObjectClicked);
+					/*//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) {
 				}

+ 7 - 2
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.*;
 
@@ -45,9 +46,10 @@ class MyCanvas extends JPanel implements MouseListener, MouseMotionListener {
 				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);
 	}
@@ -55,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);
 		}
 	}