00001 package DisplayGUI;
00002 import java.awt.event.*;
00003 import javax.swing.*;
00004 import javax.swing.tree.*;
00005 import java.awt.*;
00006
00007
00008 public class ISTree extends JFrame implements ActionListener, displayParams {
00009 gui guiControl;
00010 JButton closeButton, refreshButton;
00011
00012 protected JTree trISServers;
00013 JMenu popupOptionMenu;
00014
00015 protected DefaultMutableTreeNode rootNode;
00016
00017 public ISTree(gui parent, DefaultMutableTreeNode top) {
00018 super("Information Service Status");
00019 guiControl=parent;
00020
00021
00022 JPanel pane = new JPanel();
00023 pane.setLayout(new BoxLayout(pane,BoxLayout.Y_AXIS));
00024
00025 popupOptionMenu = getTreeOptionMenu();
00026
00027
00028 trISServers = new javax.swing.JTree();
00029 trISServers.setEditable(false);
00030 trISServers.setBorder(new javax.swing.border.EtchedBorder());
00031 JScrollPane scrollPane = new JScrollPane(trISServers);
00032 scrollPane.setPreferredSize(new java.awt.Dimension(300,300));
00033 pane.add(Box.createRigidArea(new Dimension(0,5)));
00034 pane.add(scrollPane);
00035
00036 pane.add(Box.createRigidArea(new Dimension(0,5)));
00037
00038 JPanel buttonPane = new JPanel();
00039 buttonPane.setLayout(new BoxLayout(buttonPane,BoxLayout.X_AXIS));
00040
00041 closeButton = new JButton("Close");
00042 refreshButton = new JButton("Refresh");
00043 closeButton.setEnabled(true);
00044 closeButton.addActionListener(this);
00045 refreshButton.setEnabled(true);
00046 refreshButton.addActionListener(this);
00047
00048 buttonPane.add(refreshButton);
00049 buttonPane.add(Box.createHorizontalGlue());
00050 buttonPane.add(closeButton);
00051
00052 pane.add(buttonPane);
00053 pane.setToolTipText("Keyboard Options:\nALT_DELETE to delete the selection(s)\nALT_V to view the IS data");
00054
00055 trISServers.addMouseListener(new isTreeMouseAdapter());
00056
00057 setContentPane(pane);
00058 pack();
00059
00060 setTree(top);
00061 }
00062
00063
00064
00065
00066 public Insets getInsets() {
00067 return new Insets(20,20,20,20);
00068 }
00069
00070
00071
00072
00073
00074
00075 public void actionPerformed(ActionEvent evt) {
00076 Object source = evt.getSource();
00077
00078
00079
00080 if(source==closeButton) setVisible(false);
00081 else setTree(guiControl.isInterface.getISTree());
00082
00083 }
00084
00085
00086 public void setTree(DefaultMutableTreeNode top) {
00087
00088 trISServers.setModel(new DefaultTreeModel(top));
00089 setVisible(true);
00090
00091 }
00092
00093 private JMenu getTreeOptionMenu() {
00094 JMenu thisMenu = new JMenu("TreeOptions");
00095 thisMenu.setFont(menuFont);
00096 JMenuItem item1 = new JMenuItem("Delete selection(s)");
00097 JMenuItem item2 = new JMenuItem("View Selection");
00098 item1.setFont(menuFont);
00099 item2.setFont(menuFont);
00100 thisMenu.add(item1);
00101 thisMenu.add(item2);
00102 item1.addActionListener(new java.awt.event.ActionListener() {
00103 public void actionPerformed(java.awt.event.ActionEvent evt) {
00104 TreePath[] paths;
00105 if((paths = trISServers.getSelectionPaths())==null) return;
00106 GuiComponents.System.ISInterface is = GuiComponents.System.ISInterface.getInstance();
00107 for (int i=paths.length-1; i>=0; i--) {
00108 DefaultMutableTreeNode hist = (DefaultMutableTreeNode)paths[i].getLastPathComponent();
00109
00110 ((DefaultTreeModel)trISServers.getModel()).removeNodeFromParent(hist);
00111 System.out.println(is.remove(hist.toString()));
00112 }
00113 }
00114 });
00115 item2.addActionListener(new java.awt.event.ActionListener() {
00116 public void actionPerformed(java.awt.event.ActionEvent evt) {
00117 TreePath path = trISServers.getSelectionPath();
00118 if(path==null) return;
00119 guiControl.isInterface.viewISData(path.getLastPathComponent().toString());
00120 }
00121 });
00122 return thisMenu;
00123 }
00124
00125 class isTreeMouseAdapter extends java.awt.event.MouseAdapter {
00126 public void mouseClicked(java.awt.event.MouseEvent e) {
00127 switch(e.getModifiers()) {
00128 case java.awt.event.InputEvent.BUTTON2_MASK:
00129 case java.awt.event.InputEvent.BUTTON3_MASK:
00130 TreePath[] existingSelections = trISServers.getSelectionPaths();
00131 TreePath selPath = trISServers.getPathForLocation(e.getX(), e.getY());
00132 if(selPath!=null && (existingSelections==null || existingSelections.length<2)) trISServers.setSelectionPath(selPath);
00133 existingSelections = trISServers.getSelectionPaths();
00134 if(existingSelections==null) return;
00135 JPopupMenu pMenu = popupOptionMenu.getPopupMenu();
00136 pMenu.show(e.getComponent(),e.getX(),e.getY());
00137 pMenu.setInvoker(popupOptionMenu);
00138 break;
00139 default:
00140 }
00141 }
00142 }
00143
00144
00145 }