// /* // File: DUTExplorer.java ; This file is part of Twister. // Version: 2.001 // // Copyright (C) 2012-2013 , Luxoft // // Authors: Andrei Costachi <acostachi@luxoft.com> // Licensed under the Apache License, Version 2.0 (the "License"); // you may not use this file except in compliance with the License. // You may obtain a copy of the License at // // http://www.apache.org/licenses/LICENSE-2.0 // // Unless required by applicable law or agreed to in writing, software // distributed under the License is distributed on an "AS IS" BASIS, // WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. // See the License for the specific language governing permissions and // limitations under the License. // */ // import javax.swing.JTree; // import javax.swing.tree.MutableTreeNode; // import javax.swing.tree.DefaultTreeModel; // import javax.swing.tree.DefaultMutableTreeNode; // import javax.swing.tree.TreePath; // import javax.swing.tree.TreeModel; // import javax.swing.JPanel; // import javax.swing.JScrollPane; // import java.awt.Color; // import java.awt.event.MouseEvent; // import java.awt.event.MouseAdapter; // import java.awt.event.ActionListener; // import java.awt.event.ActionEvent; // import javax.swing.JPopupMenu; // import javax.swing.JMenuItem; // import javax.swing.JTextField; // import javax.swing.JOptionPane; // import javax.swing.tree.TreeSelectionModel; // import javax.swing.plaf.metal.MetalIconFactory; // import javax.swing.tree.DefaultTreeCellRenderer; // import javax.swing.JButton; // import javax.swing.BoxLayout; // import javax.swing.JLabel; // import java.awt.BorderLayout; // import com.twister.CustomDialog; // // public class DUTExplorer extends JPanel{ // JTree tree; // DefaultMutableTreeNode root; // // public DUTExplorer(){ // setBounds(5,5,610,643); // setLayout(null); // setBackground(Color.RED); // root = new DefaultMutableTreeNode("root", true); // tree = new JTree(root); // tree.setCellRenderer(new CustomIconRenderer()); // tree.expandRow(1); // tree.setDragEnabled(false); // tree.setRootVisible(false); // tree.getSelectionModel().setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); // ((DefaultTreeCellRenderer)(tree.getCellRenderer())).setLeafIcon(null); // JScrollPane scroll = new JScrollPane(tree); // scroll.setBounds(0,0,610,643); // add(scroll); // tree.addMouseListener(new MouseAdapter(){ // public void mouseReleased(MouseEvent ev){ // TreePath tp = tree.getPathForLocation(ev.getX(), ev.getY()); // if (tp != null){ // if(ev.getButton() == MouseEvent.BUTTON3){ // tree.clearSelection(); // if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof Device){ // tree.addSelectionPath(tp); // Repository.window.mainpanel.p4.getDut().nodetemp1 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // refreshPopup((DefaultMutableTreeNode)tp.getLastPathComponent(),ev,2);} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof DeviceModule){ // tree.addSelectionPath(tp); // Repository.window.mainpanel.p4.getDut().nodetemp2 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // refreshPopup((DefaultMutableTreeNode)tp.getLastPathComponent(),ev,1);} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof DevicePort){ // tree.addSelectionPath(tp); // Repository.window.mainpanel.p4.getDut().nodetemp3 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // refreshPopup((DefaultMutableTreeNode)tp.getLastPathComponent(),ev,0);} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof TestBed){ // tree.addSelectionPath(tp); // Repository.window.mainpanel.p4.getDut().nodetemp0 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // refreshPopup((DefaultMutableTreeNode)tp.getLastPathComponent(),ev,3);} // else{Repository.window.mainpanel.p4.getDut().clearSelection();}} // else if(ev.getButton() == MouseEvent.BUTTON1){ // if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof Device){ // Repository.window.mainpanel.p4.getDut().nodetemp1 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // if(Repository.window.mainpanel.p4.getDut().SettingsPanel. // getComponentZOrder(Repository.window.mainpanel.p4.getDut().p2)==-1){ // removeElements(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.add(Repository.window.mainpanel.p4.getDut().p2); // Repository.window.mainpanel.p4.getDut().jScrollPane4. // setViewportView(Repository.window.mainpanel.p4.getDut().properties); // Repository.window.mainpanel.p4.getDut().SettingsPanel.revalidate(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.repaint();} // ((Device)((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject()).updateInfo();} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof DeviceModule){ // Repository.window.mainpanel.p4.getDut().nodetemp2 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // if(Repository.window.mainpanel.p4.getDut().SettingsPanel. // getComponentZOrder(Repository.window.mainpanel.p4.getDut().p3)==-1){ // removeElements(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.add(Repository.window.mainpanel.p4.getDut().p3); // Repository.window.mainpanel.p4.getDut().jScrollPane4. // setViewportView(Repository.window.mainpanel.p4.getDut().properties2); // Repository.window.mainpanel.p4.getDut().SettingsPanel.revalidate(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.repaint();} // ((DeviceModule)((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject()).updateInfo();} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof TestBed){ // Repository.window.mainpanel.p4.getDut().nodetemp0 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // if(Repository.window.mainpanel.p4.getDut().SettingsPanel. // getComponentZOrder(Repository.window.mainpanel.p4.getDut().p1)==-1){ // removeElements(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.add(Repository.window.mainpanel.p4.getDut().p1); // Repository.window.mainpanel.p4.getDut().jScrollPane4.setViewportView(null); // Repository.window.mainpanel.p4.getDut().SettingsPanel.revalidate(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.repaint();} // ((TestBed)((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject()).updateInfo();} // else if(((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject() instanceof DevicePort){{ // Repository.window.mainpanel.p4.getDut().nodetemp3 = (DefaultMutableTreeNode)tp.getLastPathComponent(); // if(Repository.window.mainpanel.p4.getDut().SettingsPanel. // getComponentZOrder(Repository.window.mainpanel.p4.getDut().p4)==-1){ // removeElements(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.add(Repository.window.mainpanel.p4.getDut().p4); // Repository.window.mainpanel.p4.getDut().jScrollPane4. // setViewportView(Repository.window.mainpanel.p4.getDut().properties3); // Repository.window.mainpanel.p4.getDut().SettingsPanel.revalidate(); // Repository.window.mainpanel.p4.getDut().SettingsPanel.repaint();} // ((DevicePort)((DefaultMutableTreeNode)tp.getLastPathComponent()).getUserObject()).updateInfo();}} // else{Repository.window.mainpanel.p4.getDut().clearSelection();}}} // else{Repository.window.mainpanel.p4.getDut().clearSelection(); // tree.clearSelection(); // if(ev.getButton() == MouseEvent.BUTTON3){ // refreshPopup(null,ev,0);}}}});} // // public void removeElements(){ // Repository.window.mainpanel.p4.getDut().SettingsPanel.remove(Repository.window.mainpanel.p4.getDut().p1); // Repository.window.mainpanel.p4.getDut().SettingsPanel.remove(Repository.window.mainpanel.p4.getDut().p3); // Repository.window.mainpanel.p4.getDut().SettingsPanel.remove(Repository.window.mainpanel.p4.getDut().p4); // Repository.window.mainpanel.p4.getDut().jScrollPane4.remove(Repository.window.mainpanel.p4.getDut().properties2); // Repository.window.mainpanel.p4.getDut().jScrollPane4.remove(Repository.window.mainpanel.p4.getDut().properties3); // Repository.window.mainpanel.p4.getDut().SettingsPanel.remove(Repository.window.mainpanel.p4.getDut().p2); // Repository.window.mainpanel.p4.getDut().jScrollPane4.remove(Repository.window.mainpanel.p4.getDut().properties);} // // public void refreshPopup(final DefaultMutableTreeNode element,MouseEvent ev,int type){ // JPopupMenu p = new JPopupMenu(); // JMenuItem item; // if(element == null){ // item = new JMenuItem("Add TestBed"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // addTestBed();}}); // p.add(item);} // else if(type == 3){ // item = new JMenuItem("Add Device"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // addDevice(element);}}); // p.add(item); // item = new JMenuItem("Remove TestBed"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // removeElement(element);}}); // p.add(item);} // else if(type == 2){ // item = new JMenuItem("Add Module"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // addModule(element);}}); // p.add(item); // item = new JMenuItem("Remove Device"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // removeElement(element);}}); // p.add(item);} // else if(type == 1){ // item = new JMenuItem("Add Port"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // addPort(element);}}); // p.add(item); // item = new JMenuItem("Remove module"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // removeElement(element);}}); // p.add(item);} // else{item = new JMenuItem("Remove port"); // item.addActionListener(new ActionListener(){ // public void actionPerformed(ActionEvent ev){ // removeElement(element);}}); // p.add(item);} // p.show(this.tree,ev.getX(),ev.getY());} // // public void removeElement(DefaultMutableTreeNode element){ // ((DefaultTreeModel)tree.getModel()).removeNodeFromParent(element); // Repository.window.mainpanel.p4.getDut().clearSelection();} // // public void addTestBed(){ // String user = CustomDialog.showInputDialog(JOptionPane.QUESTION_MESSAGE, // JOptionPane.OK_CANCEL_OPTION, // DUTExplorer.this, "Name: ", // "Add testbed"); // if(user!=null){ // TestBed d = new TestBed(); // d.setName(user); // DefaultMutableTreeNode child = new DefaultMutableTreeNode(d); // DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Id: "+d.id,false); // child.add(child2); // DefaultMutableTreeNode child3 = new DefaultMutableTreeNode("Description: "+d.description,false); // child.add(child3); // ((DefaultTreeModel)tree.getModel()).insertNodeInto(child, root,root.getChildCount()); // ((DefaultTreeModel)tree.getModel()).reload();}} // // public void addDevice(DefaultMutableTreeNode element){ // String name = CustomDialog.showInputDialog(JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, // DUTExplorer.this, "Name: ", "Add device"); // if(name!=null){ // Device d = new Device(); // d.setName(name); // DefaultMutableTreeNode child = new DefaultMutableTreeNode(d); // DefaultMutableTreeNode child3 = new DefaultMutableTreeNode("Id: "+d.id,false); // child.add(child3); // DefaultMutableTreeNode child2 = new DefaultMutableTreeNode("Description: "+d.description,false); // child.add(child2); // DefaultMutableTreeNode child4 = new DefaultMutableTreeNode("Vendor: "+d.vendor,false); // child.add(child4); // DefaultMutableTreeNode child5 = new DefaultMutableTreeNode("Type: "+d.type,false); // child.add(child5); // DefaultMutableTreeNode child6 = new DefaultMutableTreeNode("Family: "+d.family,false); // child.add(child6); // DefaultMutableTreeNode child7 = new DefaultMutableTreeNode("Model: "+d.model,false); // child.add(child7); // ((DefaultTreeModel)tree.getModel()).insertNodeInto(child, element,element.getChildCount());}} // // public void addModule(DefaultMutableTreeNode element){ // String name = CustomDialog.showInputDialog(JOptionPane.QUESTION_MESSAGE, JOptionPane.OK_CANCEL_OPTION, // DUTExplorer.this, "Name: ", "Add module"); // if(name!=null){ // DeviceModule d = new DeviceModule(name); // DefaultMutableTreeNode child = new DefaultMutableTreeNode(d); // DefaultMutableTreeNode child3 = new DefaultMutableTreeNode("Module Type: "+d.name); // child.add(child3); // ((DefaultTreeModel)tree.getModel()).insertNodeInto(child, element,element.getChildCount());}} // // public void addPort(DefaultMutableTreeNode element){ // JTextField name = new JTextField(""); // JTextField type = new JTextField(""); // JPanel p = getPortPanel(name,type); // int r = (Integer)CustomDialog.showDialog(p,JOptionPane.PLAIN_MESSAGE, JOptionPane.OK_CANCEL_OPTION, // DUTExplorer.this, "Add port",null); // if (r == JOptionPane.OK_OPTION){ // DevicePort d = new DevicePort(name.getText(),type.getText()); // DefaultMutableTreeNode child = new DefaultMutableTreeNode(d); // DefaultMutableTreeNode child3 = new DefaultMutableTreeNode("Port type: "+type.getText()); // child.add(child3); // ((DefaultTreeModel)tree.getModel()).insertNodeInto(child, element,element.getChildCount());}} // // // public JPanel getPortPanel(JTextField name,JTextField type){ // JPanel p = new JPanel(); // p.setLayout(new BoxLayout(p, BoxLayout.Y_AXIS)); // JPanel jPanel1 = new JPanel(); // JLabel jLabel3 = new JLabel(); // JPanel jPanel2 = new JPanel(); // JLabel jLabel4 = new JLabel(); // jPanel1.setLayout(new java.awt.BorderLayout()); // jLabel3.setText("Name: "); // jPanel1.add(jLabel3, BorderLayout.CENTER); // p.add(jPanel1); // p.add(name); // jPanel2.setLayout(new BorderLayout()); // jLabel4.setText("Value: "); // jPanel2.add(jLabel4, BorderLayout.CENTER); // p.add(jPanel2); // p.add(type); // return p;}}