|
@@ -89,7 +89,6 @@ public class GUI implements CategoryListener {
|
|
|
private final Control controller;
|
|
|
|
|
|
private final JPanel panel = new JPanel();
|
|
|
- private final JTextField textField = new JTextField();
|
|
|
private final JComboBox comboBox = new JComboBox();
|
|
|
|
|
|
// Buttons
|
|
@@ -113,7 +112,6 @@ public class GUI implements CategoryListener {
|
|
|
*/
|
|
|
@SuppressWarnings("serial")
|
|
|
private void initialize() {
|
|
|
- textField.setColumns(10);
|
|
|
frmCyberPhysical = new JFrame();
|
|
|
frmCyberPhysical.setTitle("Cyber Physical Systems Model");
|
|
|
frmCyberPhysical.setBounds(100, 100, 891, 467);
|
|
@@ -195,53 +193,52 @@ public class GUI implements CategoryListener {
|
|
|
btnAdd.addActionListener(new ActionListener() {
|
|
|
public void actionPerformed(ActionEvent arg0) {
|
|
|
|
|
|
- Category selectedNode;
|
|
|
Object nodeInfo = tree.getLastSelectedPathComponent();
|
|
|
- String selected = comboBox.getSelectedItem().toString();
|
|
|
- String text = textField.getText();
|
|
|
- if(selected.toString() == "Category"){
|
|
|
- String catName = JOptionPane.showInputDialog("Please enter the Name for Category ");
|
|
|
- if(catName != ""){
|
|
|
- controller.addNewCategory(catName);
|
|
|
- }
|
|
|
- }
|
|
|
- else if (selected.equals("Object")) {
|
|
|
- selectedNode = controller.searchCategory(nodeInfo.toString());
|
|
|
- controller.addNewObject(selectedNode, textField.getText());
|
|
|
-
|
|
|
- } else if (selected.equals("Transformer")) {
|
|
|
- selectedNode = controller.searchCategory(nodeInfo.toString());
|
|
|
- controller.addNewTransformer(selectedNode, textField.getText());
|
|
|
-
|
|
|
- } else {
|
|
|
- selectedNode = controller.searchCategory(nodeInfo.toString());
|
|
|
- controller.addNewSwitch(selectedNode, textField.getText());
|
|
|
-
|
|
|
+ String selectedOption = comboBox.getSelectedItem().toString();
|
|
|
+ DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) nodeInfo;
|
|
|
+
|
|
|
+ switch(selectedOption){
|
|
|
+
|
|
|
+ case "Category":
|
|
|
+ String catName = JOptionPane.showInputDialog("Please enter a Name for Category ");
|
|
|
+ if(catName != ""){
|
|
|
+ controller.addNewCategory(catName);
|
|
|
+ }
|
|
|
+ break;
|
|
|
+
|
|
|
+ default :
|
|
|
+ addObjectAction(selectedOption, selectedNode);
|
|
|
+ break;
|
|
|
}
|
|
|
-
|
|
|
}
|
|
|
});
|
|
|
+
|
|
|
toolBar.add(btnAdd);
|
|
|
|
|
|
// Del Button
|
|
|
btnDel.addActionListener(new ActionListener() {
|
|
|
public void actionPerformed(ActionEvent arg0) {
|
|
|
|
|
|
- Category selectedNode;
|
|
|
Object nodeInfo = tree.getLastSelectedPathComponent();
|
|
|
- String selected = comboBox.getSelectedItem().toString();
|
|
|
+ DefaultMutableTreeNode selectedNode = (DefaultMutableTreeNode) nodeInfo;
|
|
|
+ String nodeName = selectedNode.getUserObject().toString();
|
|
|
+ int depthOfNode = selectedNode.getLevel();
|
|
|
|
|
|
- if(nodeInfo.toString().isEmpty()){
|
|
|
-
|
|
|
+ switch(depthOfNode){
|
|
|
+ case 1:
|
|
|
+ controller.deleteCategory(nodeName);
|
|
|
+ break;
|
|
|
+ case 2:
|
|
|
+ DefaultMutableTreeNode parent = (DefaultMutableTreeNode) selectedNode.getParent();
|
|
|
+ controller.deleteObjectInCat(nodeName,parent.getUserObject().toString());
|
|
|
+ break;
|
|
|
}
|
|
|
+
|
|
|
|
|
|
|
|
|
}
|
|
|
});
|
|
|
toolBar.add(btnDel);
|
|
|
-
|
|
|
-
|
|
|
- panel.add(textField);
|
|
|
frmCyberPhysical.getContentPane().add(splitPane);
|
|
|
|
|
|
mntmOpen.addActionListener(new java.awt.event.ActionListener() {
|
|
@@ -261,6 +258,38 @@ public class GUI implements CategoryListener {
|
|
|
});
|
|
|
|
|
|
}
|
|
|
+
|
|
|
+ /*
|
|
|
+ * adds a specific object type to selected Category
|
|
|
+ * also handles input windows and illegal inputs
|
|
|
+ */
|
|
|
+ public void addObjectAction(String objType, DefaultMutableTreeNode selectedNode){
|
|
|
+ if(selectedNode == null){
|
|
|
+ JOptionPane.showMessageDialog(new JFrame(), "Please select a Category first before adding " + objType + ".");
|
|
|
+ }
|
|
|
+ //if selected node is a directory for Categories
|
|
|
+ else{
|
|
|
+ if(selectedNode.getLevel()==1){
|
|
|
+ String objname = JOptionPane.showInputDialog("Please enter a Name for the " + objType);
|
|
|
+ Category cat = controller.searchCategory(selectedNode.getUserObject().toString());
|
|
|
+ switch(objType){
|
|
|
+
|
|
|
+ case "Object":
|
|
|
+ controller.addNewObject( cat , objname);
|
|
|
+ break;
|
|
|
+
|
|
|
+ case "Switch" :
|
|
|
+ controller.addNewSwitch(cat, objname);
|
|
|
+
|
|
|
+ case "Transformer" :
|
|
|
+ controller.addNewTransformer(cat, objname);
|
|
|
+ }
|
|
|
+ }
|
|
|
+ else{
|
|
|
+ JOptionPane.showMessageDialog(new JFrame(), "Objects can not be added to Objects. Please select a Category.");
|
|
|
+ }
|
|
|
+ }
|
|
|
+ }
|
|
|
|
|
|
/**
|
|
|
* reloads the Categories from Model
|
|
@@ -289,7 +318,6 @@ public class GUI implements CategoryListener {
|
|
|
public void onChange(ArrayList<Category> categories) {
|
|
|
DefaultTreeModel model = (DefaultTreeModel) tree.getModel();
|
|
|
updateCategories(categories);
|
|
|
- textField.setText("");
|
|
|
model.reload();
|
|
|
}
|
|
|
|