|
@@ -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();
|
|
|
|
|
|
|
|
|
- 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;
|
|
|
+
|
|
|
+ }
|
|
|
+ };
|
|
|
+
|
|
|
+
|
|
|
+
|
|
|
renderer.setLeafIcon(icon);
|
|
|
|
|
|
-
|
|
|
+
|
|
|
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);
|
|
|
+
|
|
|
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) {
|
|
|
}
|