|
@@ -1,10 +1,12 @@
|
|
package ui.view;
|
|
package ui.view;
|
|
|
|
|
|
import java.io.File;
|
|
import java.io.File;
|
|
|
|
+import java.net.URL;
|
|
import java.util.ArrayList;
|
|
import java.util.ArrayList;
|
|
import java.util.Enumeration;
|
|
import java.util.Enumeration;
|
|
|
|
|
|
import javax.swing.JFrame;
|
|
import javax.swing.JFrame;
|
|
|
|
+import javax.swing.JLabel;
|
|
import javax.swing.JList;
|
|
import javax.swing.JList;
|
|
import javax.swing.JMenuBar;
|
|
import javax.swing.JMenuBar;
|
|
import javax.swing.JMenu;
|
|
import javax.swing.JMenu;
|
|
@@ -18,6 +20,7 @@ import javax.swing.JTabbedPane;
|
|
import javax.swing.JTable;
|
|
import javax.swing.JTable;
|
|
import javax.swing.tree.DefaultTreeModel;
|
|
import javax.swing.tree.DefaultTreeModel;
|
|
import javax.swing.tree.MutableTreeNode;
|
|
import javax.swing.tree.MutableTreeNode;
|
|
|
|
+import javax.swing.tree.TreeCellRenderer;
|
|
import javax.swing.tree.TreeNode;
|
|
import javax.swing.tree.TreeNode;
|
|
|
|
|
|
import ui.controller.Control;
|
|
import ui.controller.Control;
|
|
@@ -30,6 +33,7 @@ import javax.swing.JFileChooser;
|
|
import javax.swing.table.DefaultTableModel;
|
|
import javax.swing.table.DefaultTableModel;
|
|
|
|
|
|
import java.awt.Color;
|
|
import java.awt.Color;
|
|
|
|
+import java.awt.Component;
|
|
import java.awt.Cursor;
|
|
import java.awt.Cursor;
|
|
import java.awt.Image;
|
|
import java.awt.Image;
|
|
import java.awt.Point;
|
|
import java.awt.Point;
|
|
@@ -102,9 +106,11 @@ public class GUI implements CategoryListener {
|
|
private final JToolBar toolBar = new JToolBar();
|
|
private final JToolBar toolBar = new JToolBar();
|
|
|
|
|
|
// variables
|
|
// 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;
|
|
private final MyCanvas canvas;
|
|
|
|
|
|
/**
|
|
/**
|
|
@@ -191,21 +197,57 @@ public class GUI implements CategoryListener {
|
|
splitPane_2.setDividerLocation(200);
|
|
splitPane_2.setDividerLocation(200);
|
|
|
|
|
|
splitPane.setLeftComponent(scrollPane_1);
|
|
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);
|
|
.getScaledInstance(30, 30, java.awt.Image.SCALE_SMOOTH);
|
|
Icon icon = new ImageIcon(img);
|
|
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.setLeafIcon(icon);
|
|
// renderer.setClosedIcon(icon);
|
|
// renderer.setClosedIcon(icon);
|
|
- // renderer.setOpenIcon(icon);
|
|
|
|
|
|
+ // renderer.setOpen*/
|
|
tree.setRowHeight(icon.getIconHeight());
|
|
tree.setRowHeight(icon.getIconHeight());
|
|
- tree.setCellRenderer(renderer);
|
|
|
|
-
|
|
|
|
|
|
+
|
|
|
|
+ tree.setCellRenderer(customRenderer);
|
|
|
|
+
|
|
tree.addMouseListener(new MouseAdapter() {
|
|
tree.addMouseListener(new MouseAdapter() {
|
|
public void mouseReleased(MouseEvent e) {
|
|
public void mouseReleased(MouseEvent e) {
|
|
try {
|
|
try {
|
|
if (dragging) {
|
|
if (dragging) {
|
|
|
|
+<<<<<<< HEAD
|
|
CpsObject h = new CpsObject(actualObjectClicked);
|
|
CpsObject h = new CpsObject(actualObjectClicked);
|
|
|
|
+=======
|
|
|
|
+ HolonObject h = new HolonObject(tempCps);
|
|
|
|
+>>>>>>> be22b224d998a4747c8839f1c312f403a8726dda
|
|
h.setPos((int) canvas.getMousePosition().getX(), (int) canvas.getMousePosition().getY());
|
|
h.setPos((int) canvas.getMousePosition().getX(), (int) canvas.getMousePosition().getY());
|
|
controller.addObject(h);
|
|
controller.addObject(h);
|
|
for (int i = 0; i < model.getObjectsOnCanvas().size(); i++) {
|
|
for (int i = 0; i < model.getObjectsOnCanvas().size(); i++) {
|
|
@@ -225,32 +267,30 @@ public class GUI implements CategoryListener {
|
|
public void mousePressed(MouseEvent e) {
|
|
public void mousePressed(MouseEvent e) {
|
|
try {
|
|
try {
|
|
actualObjectClicked = tree.getPathForLocation(e.getX(), e.getY()).getLastPathComponent().toString();
|
|
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
|
|
if (actualObjectClicked.compareTo("Power Plant") == 0 || actualObjectClicked.compareTo("House") == 0
|
|
|| actualObjectClicked.compareTo("Switch") == 0
|
|
|| actualObjectClicked.compareTo("Switch") == 0
|
|
|| actualObjectClicked.compareTo("Transformer") == 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) {
|
|
} 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.setViewportView(tree);
|
|
|
|
|
|
scrollPane_1.setColumnHeaderView(panel);
|
|
scrollPane_1.setColumnHeaderView(panel);
|
|
@@ -278,8 +318,6 @@ public class GUI implements CategoryListener {
|
|
break;
|
|
break;
|
|
|
|
|
|
default:
|
|
default:
|
|
- addObjectPopUP = new AddObjectPopUp();
|
|
|
|
- addObjectPopUP.setVisible(true);
|
|
|
|
addObjectAction(selectedOption, selectedNode);
|
|
addObjectAction(selectedOption, selectedNode);
|
|
break;
|
|
break;
|
|
}
|
|
}
|
|
@@ -360,17 +398,24 @@ public class GUI implements CategoryListener {
|
|
if (selectedNode.getLevel() == 1) {
|
|
if (selectedNode.getLevel() == 1) {
|
|
String objname = JOptionPane.showInputDialog("Please enter a Name for the " + objType);
|
|
String objname = JOptionPane.showInputDialog("Please enter a Name for the " + objType);
|
|
Category cat = controller.searchCategory(selectedNode.getUserObject().toString());
|
|
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 {
|
|
} else {
|
|
JOptionPane.showMessageDialog(new JFrame(),
|
|
JOptionPane.showMessageDialog(new JFrame(),
|