|
@@ -10,6 +10,10 @@ import java.awt.Point;
|
|
|
import java.awt.Toolkit;
|
|
|
import java.awt.event.ActionEvent;
|
|
|
import java.awt.event.ActionListener;
|
|
|
+import java.awt.event.InputEvent;
|
|
|
+import java.awt.event.KeyAdapter;
|
|
|
+import java.awt.event.KeyEvent;
|
|
|
+import java.awt.event.KeyListener;
|
|
|
import java.awt.event.MouseAdapter;
|
|
|
import java.awt.event.MouseEvent;
|
|
|
import java.beans.PropertyChangeEvent;
|
|
@@ -18,12 +22,16 @@ import java.io.File;
|
|
|
import java.io.IOException;
|
|
|
import java.util.ArrayList;
|
|
|
|
|
|
+import javax.swing.AbstractAction;
|
|
|
+import javax.swing.ActionMap;
|
|
|
import javax.swing.BoxLayout;
|
|
|
import javax.swing.DefaultComboBoxModel;
|
|
|
import javax.swing.ImageIcon;
|
|
|
+import javax.swing.InputMap;
|
|
|
import javax.swing.JButton;
|
|
|
import javax.swing.JCheckBoxMenuItem;
|
|
|
import javax.swing.JComboBox;
|
|
|
+import javax.swing.JComponent;
|
|
|
import javax.swing.JEditorPane;
|
|
|
import javax.swing.JFileChooser;
|
|
|
import javax.swing.JFrame;
|
|
@@ -42,6 +50,7 @@ import javax.swing.JTable;
|
|
|
import javax.swing.JTextField;
|
|
|
import javax.swing.JToolBar;
|
|
|
import javax.swing.JTree;
|
|
|
+import javax.swing.KeyStroke;
|
|
|
import javax.swing.SwingUtilities;
|
|
|
import javax.swing.border.LineBorder;
|
|
|
import javax.swing.event.ChangeEvent;
|
|
@@ -230,6 +239,24 @@ public class GUI<E> implements CategoryListener {
|
|
|
}
|
|
|
});
|
|
|
|
|
|
+
|
|
|
+
|
|
|
+ JPanel contentPane = (JPanel) frmCyberPhysical.getContentPane();
|
|
|
+
|
|
|
+ int condition = JComponent.WHEN_IN_FOCUSED_WINDOW;
|
|
|
+ InputMap inputMap = contentPane.getInputMap(condition);
|
|
|
+ ActionMap actionMap = contentPane.getActionMap();
|
|
|
+
|
|
|
+ String zDown = "z";
|
|
|
+ inputMap.put(KeyStroke.getKeyStroke(KeyEvent.VK_Z, 0), zDown);
|
|
|
+ actionMap.put(zDown, new AbstractAction() {
|
|
|
+ @Override
|
|
|
+ public void actionPerformed(ActionEvent arg0) {
|
|
|
+ System.out.println("z");
|
|
|
+ }
|
|
|
+ });
|
|
|
+
|
|
|
+
|
|
|
frmCyberPhysical.setJMenuBar(menuBar);
|
|
|
|
|
|
frmCyberPhysical.setIconImage(new ImageIcon(this.getClass().getResource("/Images/Dummy_House.png")).getImage()
|
|
@@ -421,8 +448,16 @@ public class GUI<E> implements CategoryListener {
|
|
|
tableHolonElement.addMouseListener(new MouseAdapter() {
|
|
|
public void mousePressed(MouseEvent e) {
|
|
|
HolonObject obj = (HolonObject) getActualCps();
|
|
|
+ ;
|
|
|
yValueElements = e.getY();
|
|
|
- HolonElement ele = getActualHolonElement(obj, yValueElements);
|
|
|
+ HolonElement ele = null;
|
|
|
+ if (model.getSelectedCpsObjects().size() == 1) {
|
|
|
+ ele = getActualHolonElement(obj, yValueElements);
|
|
|
+ } else {
|
|
|
+ ele = getActualHolonElement(null, yValueElements);
|
|
|
+ }
|
|
|
+
|
|
|
+ // System.out.println(ele.getEleName());
|
|
|
if (e.isControlDown() && ele != null) {
|
|
|
if (!selectedElements.contains(ele)) {
|
|
|
selectedElements.add(ele);
|
|
@@ -790,7 +825,6 @@ public class GUI<E> implements CategoryListener {
|
|
|
// Update of the Information about the Properties - only for
|
|
|
// CpsObjects
|
|
|
// Erase old data
|
|
|
- System.out.println(model.getSelectedCpsObjects());
|
|
|
if (tableModelProperties.getRowCount() > 0) {
|
|
|
for (int i = tableModelProperties.getRowCount() - 1; i > -1; i--) {
|
|
|
tableModelProperties.removeRow(i);
|
|
@@ -1226,9 +1260,18 @@ public class GUI<E> implements CategoryListener {
|
|
|
public HolonElement getActualHolonElement(HolonObject obj, int yValue) {
|
|
|
final int yTemp = (int) Math.floor(yValue / 16);
|
|
|
int rowsTotal = tableModelHolonElement.getRowCount();
|
|
|
+ HolonObject obtTemp = null;
|
|
|
if (rowsTotal != 0 && rowsTotal > yTemp) {
|
|
|
- model.setSelectedHolonElement(obj.getElements().get(yTemp));
|
|
|
- return obj.getElements().get(yTemp);
|
|
|
+ if (obj == null) {
|
|
|
+ String temp = tableModelHolonElement.getValueAt(yTemp, 0).toString();
|
|
|
+ int idTemp = Integer.parseInt(temp.split(", ")[1]);
|
|
|
+ obtTemp = (HolonObject) controller.searchByID(idTemp);
|
|
|
+ } else {
|
|
|
+ obtTemp = obj;
|
|
|
+ }
|
|
|
+ String eleTempName = tableModelHolonElement.getValueAt(yTemp, 1).toString();
|
|
|
+ model.setSelectedHolonElement(obtTemp.searchElement(eleTempName));
|
|
|
+ return obtTemp.searchElement(eleTempName);
|
|
|
} else {
|
|
|
model.setSelectedHolonElement(null);
|
|
|
return null;
|
|
@@ -1244,7 +1287,6 @@ public class GUI<E> implements CategoryListener {
|
|
|
// HolonObjects
|
|
|
|
|
|
deleteRows();
|
|
|
- System.out.println(model.getSelectedCpsObjects());
|
|
|
if (model.getSelectedCpsObjects() != null) {
|
|
|
fillElementTable(model.getSelectedCpsObjects());
|
|
|
}
|
|
@@ -1273,7 +1315,8 @@ public class GUI<E> implements CategoryListener {
|
|
|
for (CpsObject o : objects) {
|
|
|
if (o instanceof HolonObject) {
|
|
|
for (HolonElement he : ((HolonObject) o).getElements()) {
|
|
|
- Object[] temp = { o.getName(), he.getEleName(), he.getEnergy(), he.getAmount(), he.getActive() };
|
|
|
+ Object[] temp = { o.getName() + ", " + o.getID(), he.getEleName(), he.getEnergy(), he.getAmount(),
|
|
|
+ he.getActive() };
|
|
|
tableModelHolonElement.addRow(temp);
|
|
|
}
|
|
|
}
|