Main Page | Packages | Class Hierarchy | Alphabetical List | Class List | File List | Class Members | Related Pages

ISTree.java

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        // Create the tree
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 //           buttonPane.add(Box.createRigidArea(new Dimension(20,0)));
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         //This call handles message creation for us so can be called in any thread.
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 }

Generated on Thu Jul 15 09:55:44 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5