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

GuiMenuBar2.java

00001 package DisplayGUI;
00002 import java.awt.event.*;
00003 import javax.swing.JMenuBar;
00004 import javax.swing.JMenuItem;
00005 import javax.swing.JMenu;
00006 import javax.swing.KeyStroke;
00007 import javax.swing.JFrame;
00008 import javax.swing.JCheckBox;
00009 import javax.swing.JPopupMenu;
00010 import javax.swing.JOptionPane;
00011 import javax.swing.JScrollPane;
00012 import Preferences.*;
00013 //
00014 import Sct.Version;
00015 import Sct_CalibrationController.TestRequest;
00016 import Sct_CalibrationController.SequenceRequest;
00017 import Sct_CalibrationController.CalibrationControllerPackage.*;
00018 
00019 import GuiComponents.System.*;
00020 import GuiComponents.scripting.*;
00021 import GuiComponents.Console.JConsole;
00022 
00023 public class GuiMenuBar2 extends JMenuBar implements displayParams,ActionListener,TestDataInfo {
00024     gui guiControl;
00025     ManualConfiguration manualConfiguration;
00026     private SystemInterface si;
00027     String option;
00028     private String[] configOptionNames={"Read Hardware Configuration","Manual Configuration..."};
00029 //    private String[] displayOptionNames={"ModuleGroup Selection","Data Manager","Test Results","SCTDAQ Reference","SctRodDaq Reference","DCS Info"};
00030     private String serialNumber;
00031 
00032     protected ISTree isTree;
00033     private JMenu menu, systemMenu, displayMenu, ccMenu, testMenu, panelTestMenu, panelDisplayMenu;
00034     private JMenu testResultMenu, sctdbDataMenu, configMenu, dcsOptionMenu, ivScanOptionMenu;
00035     public JMenu testDataMenu,sctdbDataSNMenu, dataManagerSNMenu, ivScanMenu;
00036     private JMenu testDataOptionMenu, panelTestDataOptionMenu, sctdbSCTDAQOptionMenu,sctdbRODDAQOptionMenu,tableDataOptionMenu, ccDataOptionMenu, displayOptionMenu, panelsctdbSCTDAQOptionMenu,panelsctdbRODDAQOptionMenu;
00037     private JMenuItem menuItem;
00038     private JMenuItem[] configOptions = new JMenuItem[configOptionNames.length];
00039 //    private JMenuItem[] displayOptions = new JMenuItem[DisplayStatus.statusNames.length-1];
00040 //     private JMenuItem ccPingItem, ccNMaskItem, ccStrobeDelayItem, ccThreePointGainItem, ccTrimItem, ccResponseCurveItem, ccNoiseItem, ccFullBypassItem, ccPipelineItem, ccTimeWalkItem;
00041  //    private JMenuItem ccCharacterisationItem;
00042 
00043     private JMenuItem sctapiPing, sctapiInitialise;
00044     private JMenuItem[] sctapiItems = new JMenuItem[testMenuNames.length];
00045 
00046     private JCheckBox sctdbAutoDownload = new JCheckBox("Enable SCTDAQ Auto-Download");
00047     private JCheckBox sctdbAutoUpload = new JCheckBox("Enable SctRodDaq Auto-Upload");
00048 //    private JCheckBox dcsEnabled = new JCheckBox("Enable DCS Monitoring");
00049     private String[] ccUpdateStrings = {"Update","No-Update","Wait"};
00050     private JCheckBox[] ccUpdateModes = new JCheckBox[ccUpdateStrings.length];
00051     public JCheckBox autoSelectMode = new JCheckBox("AutoSelect New Tests");
00052 
00053     public JCheckBox bookkeepingEnabled = new JCheckBox("Enable Book-keeping");
00054     public JCheckBox runPromptEnabled = new JCheckBox("Prompt for comments on new Run");
00055     public JCheckBox testPromptEnabled = new JCheckBox("Prompt for comments on new Test");
00056 
00057     
00058     private JMenuItem scriptBeanShellItem, scriptJythonItem;
00059     private JMenuItem isTreeItem;
00060     private JCheckBox[] testFilterButtons = new JCheckBox[testMenuNames.length+1];
00061     private JMenu testFilterMenu;
00062 
00063     private JMenuItem[] testDataOptions = new JMenuItem[3];
00064 
00065     private JMenuItem[] preferenceItem = new JMenuItem[PreferencesInterface.getInstance().getNoPreferences()];
00066 
00067     private JMenuItem testReportItem;
00068 
00069     private JFrame hardwareWindow = null;
00070 
00071     int itemIndex;
00072 
00073     private DisplayChoiceToolbar displayChoiceToolbar;
00074 
00075     public GuiMenuBar2(gui parent) {
00076         guiControl=parent;
00077         createMenuBar();
00078     }
00079     public String getSelectedSerialNo() {
00080         return serialNumber;
00081     }
00082     public void setSelectedSerialNo(String sn) {
00083         serialNumber=sn;
00084     }
00085 
00086     public boolean autoUploadIsEnabled() {
00087       return sctdbAutoUpload.isSelected();
00088       }
00089 
00090     public void createMenuBar() {
00091 
00092 
00093         si = SystemInterface.getInstance();
00094 
00095 
00096        getTestDataMenu();
00097        getIVScanMenu();
00098        getSCTDBDataMenu();
00099        getTableDataSNMenu();
00100 
00101       
00102        systemMenu = new JMenu("System");
00103        systemMenu.setBackground(backgroundColor);
00104        systemMenu.setFont(menuFont);
00105        systemMenu.setForeground(menuColor);
00106 
00107        menuItem = new JMenuItem("Refresh");
00108        menuItem.setFont(menuFont);
00109        menuItem.addActionListener(new java.awt.event.ActionListener() {
00110                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00111                     si.refresh();  
00112                     guiControl.displayPane.refreshDisplay();                 
00113                      }
00114              });
00115        systemMenu.add(menuItem);
00116 
00117        menuItem = new JMenuItem("Hardware Configuration...");
00118        menuItem.setFont(menuFont);
00119        menuItem.addActionListener(new java.awt.event.ActionListener() {
00120              public void actionPerformed(java.awt.event.ActionEvent evt) {
00121             if(hardwareWindow==null) {
00122                 hardwareWindow = new JFrame("Hardware Configuration");                  
00123                 hardwareWindow.getContentPane().add(new HardwareConfigurationPanel());
00124                 hardwareWindow.pack();
00125                 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
00126                 java.awt.Dimension WSize = hardwareWindow.getSize();
00127                 hardwareWindow.setLocation((screenSize.width-(int)WSize.getWidth())/2,(screenSize.height-(int)WSize.getHeight())/2);
00128                 hardwareWindow.addWindowListener(new WindowAdapter() {
00129                             public void windowClosing(WindowEvent e) {
00130                                   hardwareWindow=null;
00131 //                                e.getWindow().dispose();
00132                             }
00133                         });
00134                 }
00135             hardwareWindow.show();
00136               }
00137           });  
00138        systemMenu.add(menuItem);
00139 
00140 
00141        ccDataOptionMenu = getCCDataOptionMenu();
00142        systemMenu.add(ccDataOptionMenu);
00143        systemMenu.addSeparator();
00144        menuItem = new JMenuItem("Exit SctGUI");
00145        menuItem.setFont(menuFont);
00146        menuItem.addActionListener(new java.awt.event.ActionListener() {
00147                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00148                     guiControl.exitForm(null);                   
00149                      }
00150              });
00151        systemMenu.add(menuItem);
00152        add(systemMenu);      
00153 
00154 // Display menu
00155 
00156        displayMenu = getDisplayMenu();
00157        displayMenu.addSeparator();
00158        menuItem = new JMenuItem("Toolbar ...");
00159        menuItem.setFont(menuFont);
00160        menuItem.addActionListener(new java.awt.event.ActionListener() {
00161             public void actionPerformed(java.awt.event.ActionEvent evt) {
00162                      if(displayChoiceToolbar!=null) displayChoiceToolbar.setVisible(true);
00163                      else {
00164                          displayChoiceToolbar = new DisplayChoiceToolbar(guiControl);      
00165                          java.awt.Dimension s = displayChoiceToolbar.getSize();
00166                          displayChoiceToolbar.setSize((int)s.getWidth()+1,(int)s.getHeight()+1);
00167                          }                            
00168                      }
00169              });
00170        displayMenu.add(menuItem);
00171        add(displayMenu);
00172 
00173 // display menu for right mouse clicks on main display panel
00174        panelDisplayMenu = getDisplayMenu();
00175        panelDisplayMenu.setText("Select Display");
00176 
00177 // All tests
00178        testMenu = getTestInvokeMenu();
00179        testMenu.setBackground(backgroundColor);
00180        testMenu.setFont(menuFont);
00181        testMenu.setForeground(menuColor);
00182        add(testMenu);
00183 
00184        panelTestMenu = getTestInvokeMenu();
00185        panelTestMenu.setText("Invoke Tests");
00186        panelTestMenu.setFont(menuFont);
00187 
00188 // Options menu
00189        ivScanOptionMenu = getIVScanOptionMenu();
00190        dcsOptionMenu = getDCSOptionMenu();
00191        displayOptionMenu = getDisplayOptionMenu();
00192        testDataOptionMenu = getTestDataOptionMenu();
00193        tableDataOptionMenu = getTableDataOptionMenu();
00194        sctdbSCTDAQOptionMenu = getDBSCTDAQDataOptionMenu(false);
00195        sctdbRODDAQOptionMenu = getDBRODDAQDataOptionMenu(false);
00196        menu = new JMenu("Options");
00197        menu.setBackground(backgroundColor);
00198        menu.setFont(menuFont);
00199        menu.setForeground(menuColor);
00200 
00201        configMenu = new JMenu("Configuration");
00202        configMenu.setFont(menuFont);
00203        for(int i=0;i<configOptionNames.length;i++) {
00204           configOptions[i] = new JMenuItem(configOptionNames[i]);
00205           configOptions[i].setFont(menuFont);
00206           configMenu.add(configOptions[i]);
00207           switch(i) {
00208             case 0:
00209              configOptions[i].addActionListener(new java.awt.event.ActionListener() {
00210                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00211                     ConfigurationInterface.getInstance().Refresh();
00212                     guiControl.displayStatus.setConfigurationMode();                   
00213                      }
00214              });
00215              break;
00216             case 1:
00217              configOptions[i].addActionListener(new java.awt.event.ActionListener() {
00218                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00219                    guiControl.displayStatus.setModuleGroupSelectionMode();
00220                    if(manualConfiguration==null) manualConfiguration = new ManualConfiguration(guiControl);
00221                    else manualConfiguration.showFrame();                  
00222                      }
00223              });
00224             default:
00225             }
00226           }
00227        menu.add(configMenu);
00228        menu.add(displayOptionMenu);       
00229        menu.add(tableDataOptionMenu);
00230        menu.add(testDataOptionMenu);
00231      
00232        JMenu sctdbMenu = new JMenu("SCT Database");
00233        sctdbMenu.setFont(menuFont);
00234        sctdbMenu.add(sctdbSCTDAQOptionMenu);
00235        sctdbMenu.add(sctdbRODDAQOptionMenu);
00236        menu.add(sctdbMenu);
00237        menu.add(dcsOptionMenu);
00238       
00239        menu.add(getBookkeepingMenu());
00240 
00241        add(menu);
00242 
00243        panelTestDataOptionMenu = getTestDataOptionMenu();
00244        panelsctdbSCTDAQOptionMenu = getDBSCTDAQDataOptionMenu(true);
00245        panelsctdbRODDAQOptionMenu = getDBRODDAQDataOptionMenu(true);
00246 
00247 
00248 // Tools menu
00249        menu = new JMenu("Tools");
00250        menu.setBackground(backgroundColor);
00251        menu.setFont(menuFont);
00252        menu.setForeground(menuColor);
00253        isTreeItem = new JMenuItem("IS Tree...");
00254        isTreeItem.setFont(menuFont);
00255        isTreeItem.addActionListener(this);
00256        menu.add(isTreeItem);
00257 
00258        JMenu menu2 = new JMenu("Scripting");
00259        menu2.setFont(menuFont);
00260        /*scriptJavaScriptItem = new JMenuItem("JavaScript");
00261        scriptJavaScriptItem.setFont(menuFont);
00262        scriptJavaScriptItem.addActionListener(this);
00263        menu2.add(scriptJavaScriptItem);*/
00264        scriptBeanShellItem = new JMenuItem("BeanShell");
00265        scriptBeanShellItem.setFont(menuFont);
00266        scriptBeanShellItem.addActionListener(this);
00267        menu2.add(scriptBeanShellItem);
00268        scriptJythonItem = new JMenuItem("Jython");
00269        scriptJythonItem.setFont(menuFont);
00270        scriptJythonItem.addActionListener(this);
00271        menu2.add(scriptJythonItem);
00272        menu.add(menu2);
00273 
00274        JMenuItem item = new JMenuItem("Run GarbageCollector");
00275        item.setFont(menuFont);
00276        item.addActionListener(new java.awt.event.ActionListener() {
00277             public void actionPerformed(java.awt.event.ActionEvent evt) {
00278                Runtime r = Runtime.getRuntime();
00279                long freeMem = r.freeMemory();        
00280                long maxMem = r.maxMemory();
00281                long totalMem = r.totalMemory();
00282                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.);
00283                r.gc();
00284                try {
00285                  Thread.sleep(500);
00286                } catch (InterruptedException ie) {}
00287                r.gc();
00288                freeMem = r.freeMemory();
00289                maxMem = r.maxMemory();
00290                totalMem = r.totalMemory();
00291                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.  );
00292                    }
00293               });
00294        menu.add(item);
00295        item = new JMenuItem("Refresh Display");
00296        item.setFont(menuFont);
00297        item.addActionListener(new java.awt.event.ActionListener() {
00298             public void actionPerformed(java.awt.event.ActionEvent evt) {
00299                guiControl.displayPane.setDisplayColors();
00300                guiControl.displayPane.refreshDisplay();
00301                    }
00302               });
00303        menu.add(item);
00304 
00305        item = new JMenuItem("Launch SctApi GUI");
00306        item.setFont(menuFont);
00307        item.addActionListener(new java.awt.event.ActionListener() {
00308             public void actionPerformed(java.awt.event.ActionEvent evt) {
00309                 JFrame frame = new JFrame("SctApi GUI");
00310                 frame.getContentPane().add(new GuiComponents.Panels.SctApiGui());
00311 
00312                 frame.pack();
00313                 frame.setVisible(true);
00314             }
00315            }); 
00316        menu.add(item);
00317 
00318        add(menu);
00319 
00320 // Help menu
00321        menu = new JMenu("Help");
00322        menu.setBackground(backgroundColor);
00323        menu.setFont(menuFont);
00324        menu.setForeground(menuColor);
00325        
00326        JMenuItem helpItem = new JMenuItem("View User Manual");
00327        helpItem.setFont(menuFont);
00328        menu.add(helpItem);
00329        helpItem.addActionListener(new java.awt.event.ActionListener() {
00330              public void actionPerformed(java.awt.event.ActionEvent evt) {
00331                    guiControl.htmlViewer.show("http://www.hep.phy.cam.ac.uk/~robinson/DisplayGUI.html","Online manual");
00332                    }
00333               });
00334               
00335        JMenuItem aboutItem = new JMenuItem("About");
00336        aboutItem.setFont(menuFont);
00337        menu.add(aboutItem);
00338        aboutItem.addActionListener(new java.awt.event.ActionListener() {
00339             public void actionPerformed(java.awt.event.ActionEvent evt) {
00340                 String v = Version.instance.getAllInformation();
00341                 String s = "SctGui is the user interface for end users.  See the manual for more information";                    
00342                 s += "\nSctGui Author: Dave Robinson.";
00343                 s += "\nSctDaqRod Authors: Alan Barr, Bruce Gallop, Matthew Palmer, Dave Robinson and Alexander Tricoli";
00344                 s += "\n\n" + v;
00345                 JOptionPane.showMessageDialog(guiControl, s, "About SctGui", JOptionPane.INFORMATION_MESSAGE);
00346             }
00347            });
00348       add(menu);
00349 
00350        add(javax.swing.Box.createHorizontalGlue());
00351 
00352 // Preferences menu
00353        PreferencesInterface prefs = PreferencesInterface.getInstance();
00354        menu = new JMenu("Preferences");
00355        menu.setBackground(backgroundColor);
00356        menu.setFont(menuFont);
00357        menu.setForeground(menuColor);
00358 
00359        for(int i=0;i<prefs.getNoPreferences();i++) {
00360          switch(i) {
00361          case PreferencesInterface.SCT_VIEW:
00362          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00363          preferenceItem[i].setFont(menuFont);
00364          menu.add(preferenceItem[i]);
00365              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00366              public void actionPerformed(java.awt.event.ActionEvent evt) {
00367                    Preference preference = new Preference(guiControl,PreferencesInterface.SCT_VIEW);   
00368                    guiControl.selectorPane.setSCTView(preference.getValue());                
00369                    }
00370               });
00371               break;
00372          case PreferencesInterface.INSTITUTE:
00373          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00374          preferenceItem[i].setFont(menuFont);
00375          menu.add(preferenceItem[i]);
00376              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00377              public void actionPerformed(java.awt.event.ActionEvent evt) {
00378                    Preference preference = new Preference(guiControl,PreferencesInterface.INSTITUTE);                   
00379                    }
00380               });
00381               break;
00382          case PreferencesInterface.PASSWORD:
00383          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00384          preferenceItem[i].setFont(menuFont);
00385          menu.add(preferenceItem[i]);
00386              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00387              public void actionPerformed(java.awt.event.ActionEvent evt) {
00388                    Preference preference = new Preference(guiControl,PreferencesInterface.PASSWORD);                   
00389                    }
00390               });
00391               break;
00392          case PreferencesInterface.PSVIEWER:
00393          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00394          preferenceItem[i].setFont(menuFont);
00395          menu.add(preferenceItem[i]);
00396              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00397              public void actionPerformed(java.awt.event.ActionEvent evt) {
00398                    Preference preference = new Preference(guiControl,PreferencesInterface.PSVIEWER);                   
00399                    }
00400               });
00401               break;
00402          case PreferencesInterface.SCRATCH_DIR:
00403          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00404          preferenceItem[i].setFont(menuFont);
00405          menu.add(preferenceItem[i]);
00406              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00407              public void actionPerformed(java.awt.event.ActionEvent evt) {
00408                    Preference preference = new Preference(guiControl,PreferencesInterface.SCRATCH_DIR);                   
00409                    }
00410               });
00411               break;
00412          case PreferencesInterface.UPLOAD_DIR:
00413          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00414          preferenceItem[i].setFont(menuFont);
00415          menu.add(preferenceItem[i]);
00416              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00417              public void actionPerformed(java.awt.event.ActionEvent evt) {
00418                    Preference preference = new Preference(guiControl,PreferencesInterface.UPLOAD_DIR);                   
00419                    }
00420               });
00421               break;
00422          case PreferencesInterface.WEB_LOOKUP_DIR:
00423          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00424          preferenceItem[i].setFont(menuFont);
00425          menu.add(preferenceItem[i]);
00426              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00427              public void actionPerformed(java.awt.event.ActionEvent evt) {
00428                    Preference preference = new Preference(guiControl,PreferencesInterface.WEB_LOOKUP_DIR);                   
00429                    }
00430               });
00431               break;
00432          default:
00433          }
00434 
00435          }
00436        add(menu);
00437 
00438        testFilterMenu = getTestFilterMenu();
00439   
00440        setBorder(javax.swing.BorderFactory.createEmptyBorder());
00441        setBackground(backgroundColor);
00442    }
00443 
00444 //****************************************************
00445     private void updateToolBar(int i) {
00446         if(displayChoiceToolbar!=null) displayChoiceToolbar.setButton(i);
00447     }
00448 
00449 //**********************************************************
00450     public void actionPerformed(ActionEvent e) {
00451         JMenuItem source = (JMenuItem)(e.getSource());
00452 
00453 
00454 // Scripting
00455         if(source==scriptBeanShellItem) {
00456             addNewConsole(ScriptingInterface.instance().getBeanShellInterpreter(), "BeanShell");
00457             return;
00458         }        
00459         /*if(source==scriptJavaScriptItem) {
00460             addNewConsole(ScriptingInterface.instance().getJavaScriptInterpreter(), "JavaScript");
00461             return;
00462             }*/
00463         if(source==scriptJythonItem) {
00464             addNewConsole(ScriptingInterface.instance().getJythonInterpreter(), "Jython");
00465             return;
00466             }
00467 // Tools
00468         if(source==isTreeItem) {
00469             if(isTree==null) isTree = new ISTree(guiControl,guiControl.isInterface.getISTree());
00470             else isTree.setTree(guiControl.isInterface.getISTree());
00471             return;
00472             }
00473 
00474 
00475         }
00476 //********************************************************
00477     public void enableCCMenuItems(boolean enabled) {
00478         java.awt.Component[] component = testMenu.getMenuComponents();
00479         for(int i=0;i<component.length;i++) {
00480             if(component[i].getClass().getName().startsWith("javax.swing.JPopupMenu")) break;
00481             if(!component[i].getClass().getName().startsWith("javax.swing.JMenu")) continue;             
00482             JMenu subMenu = (JMenu)component[i];
00483             for(int y=0;y<subMenu.getItemCount();y++) {
00484                 JMenuItem item = subMenu.getItem(y);
00485                 if(item!=null) item.setEnabled(enabled);
00486             }
00487         }       
00488         component = panelTestMenu.getMenuComponents();
00489         for(int i=0;i<component.length;i++) {
00490             if(component[i].getClass().getName().startsWith("javax.swing.JPopupMenu")) break;
00491             if(!component[i].getClass().getName().startsWith("javax.swing.JMenu")) continue;             
00492             JMenu subMenu = (JMenu)component[i];
00493             for(int y=0;y<subMenu.getItemCount();y++) {
00494                 JMenuItem item = subMenu.getItem(y);
00495                 if(item!=null) item.setEnabled(enabled);
00496             }
00497         }
00498     }
00499     
00500 
00501     public void enableDisplayMenuItems(boolean enabled) {
00502         displayMenu.setEnabled(enabled);
00503     }
00504            
00505     
00506     protected boolean addNewConsole(Interpreter interpreter, String suffix) {    
00507         if (interpreter == null) {
00508             System.out.println("Can only have 1 scripting window open at once\n");
00509             return false;
00510         }
00511         JFrame frame = new JFrame();
00512         JScrollPane scroll = new JScrollPane();
00513         scroll.setViewportView(interpreter.getConsole());
00514         frame.getContentPane().add(scroll);  
00515         frame.setTitle("Scripting Window:" + suffix);
00516         frame.show();
00517         frame.setSize(800, 500);        
00518         return true;
00519     }
00520        
00521    public void showCCPopupMenu(MouseEvent e) {
00522         JPopupMenu pMenu = ccDataOptionMenu.getPopupMenu();
00523         pMenu.show(e.getComponent(),e.getX(),e.getY());
00524         pMenu.setInvoker(ccDataOptionMenu);
00525         }
00526 //**********************************************
00527 // popup menus for tables
00528    public void showTablesPopupMenu(int clickedTable, MouseEvent e) {
00529         JPopupMenu pMenu;
00530         switch(clickedTable) {
00531         case 1:
00532           switch(guiControl.displayStatus.getStatus()) {
00533             case DisplayStatus.IS_MONITOR:
00534               pMenu = dataManagerSNMenu.getPopupMenu();
00535               pMenu.show(e.getComponent(),e.getX(),e.getY());
00536               pMenu.setInvoker(dataManagerSNMenu);
00537               break;
00538             case DisplayStatus.TEST_DATA:
00539               pMenu = testDataMenu.getPopupMenu();
00540               pMenu.show(e.getComponent(),e.getX(),e.getY());
00541               pMenu.setInvoker(testDataMenu);
00542               break;
00543             case DisplayStatus.SCTDB_DATA:
00544               pMenu = sctdbDataSNMenu.getPopupMenu();
00545               pMenu.show(e.getComponent(),e.getX(),e.getY());
00546               pMenu.setInvoker(sctdbDataSNMenu);
00547               break;
00548             case DisplayStatus.SCTDB_RODDAQ_DATA:
00549               pMenu = sctdbDataSNMenu.getPopupMenu();
00550               pMenu.show(e.getComponent(),e.getX(),e.getY());
00551               pMenu.setInvoker(sctdbDataSNMenu);
00552               break;
00553             case DisplayStatus.IV_DATA:
00554               pMenu = ivScanMenu.getPopupMenu();
00555               pMenu.show(e.getComponent(),e.getX(),e.getY());
00556               pMenu.setInvoker(ivScanMenu);
00557               break;
00558             default:
00559           }
00560           break;
00561          case 0:
00562           switch(guiControl.displayStatus.getStatus()) {
00563             case DisplayStatus.IS_MONITOR:
00564               pMenu = getTable0Menu().getPopupMenu();
00565               pMenu.show(e.getComponent(),e.getX(),e.getY());
00566 //              pMenu.setInvoker(tableDataOptionMenu);
00567               break;
00568             case DisplayStatus.TEST_DATA:
00569               pMenu = testFilterMenu.getPopupMenu();
00570               pMenu.show(e.getComponent(),e.getX(),e.getY());
00571               pMenu.setInvoker(testFilterMenu);
00572               break;
00573             default:
00574           }
00575           break;
00576          default:
00577          }
00578 
00579         }
00580 
00581    public void showPopupMenu(MouseEvent e) {
00582         JPopupMenu pMenu;
00583         JMenu newMenu = new JMenu();
00584         switch(guiControl.displayStatus.getStatus()) {
00585         case DisplayStatus.UNDEFINED:
00586            pMenu = configMenu.getPopupMenu();
00587            pMenu.show(e.getComponent(),e.getX(),e.getY());
00588            pMenu.setInvoker(configMenu);
00589            break;  
00590         case DisplayStatus.MODULE_GROUP_SELECTION:
00591            pMenu = displayMenu.getPopupMenu();
00592            pMenu.show(e.getComponent(),e.getX(),e.getY());
00593            pMenu.setInvoker(displayMenu);
00594            break;  
00595         case DisplayStatus.IS_MONITOR:
00596            newMenu.add(panelDisplayMenu);
00597            newMenu.add(panelTestMenu);
00598            newMenu.addSeparator();
00599            JMenuItem rItem = new JMenuItem("Retrieve Archived Data");
00600            rItem.setFont(menuFont);
00601            newMenu.add(rItem);
00602            rItem.addActionListener(new java.awt.event.ActionListener() {
00603             public void actionPerformed(java.awt.event.ActionEvent evt) {
00604                ArchiveQueryBox b = new ArchiveQueryBox(guiControl);
00605                b.setLocationRelativeTo(guiControl);
00606                b.setVisible(true);
00607             }
00608            });
00609 
00610 //           pMenu = testMenu.getPopupMenu();
00611            pMenu = newMenu.getPopupMenu();
00612            pMenu.show(e.getComponent(),e.getX(),e.getY());
00613 //           pMenu.setInvoker(testMenu);
00614            pMenu.setInvoker(newMenu);
00615            break;  
00616         case DisplayStatus.TEST_DATA:
00617            newMenu.add(panelDisplayMenu);
00618            newMenu.add(panelTestMenu);
00619            newMenu.add(panelTestDataOptionMenu);
00620            pMenu = newMenu.getPopupMenu();
00621            pMenu.show(e.getComponent(),e.getX(),e.getY());
00622            pMenu.setInvoker(newMenu);
00623            break;
00624         case DisplayStatus.SCTDB_DATA:
00625            newMenu.add(panelDisplayMenu);
00626            newMenu.add(panelsctdbSCTDAQOptionMenu);
00627            pMenu = newMenu.getPopupMenu();
00628            pMenu.show(e.getComponent(),e.getX(),e.getY());
00629            pMenu.setInvoker(newMenu);
00630            break;
00631         case DisplayStatus.SCTDB_RODDAQ_DATA:
00632            newMenu.add(panelDisplayMenu);
00633            newMenu.add(panelsctdbRODDAQOptionMenu);
00634            pMenu = newMenu.getPopupMenu();
00635            pMenu.show(e.getComponent(),e.getX(),e.getY());
00636            pMenu.setInvoker(newMenu);
00637            break;
00638         case DisplayStatus.DCS_DATA:
00639            newMenu.add(panelDisplayMenu);
00640            newMenu.add(panelTestMenu);
00641            pMenu = newMenu.getPopupMenu();
00642            pMenu.show(e.getComponent(),e.getX(),e.getY());
00643            pMenu.setInvoker(newMenu);
00644            break;
00645         case DisplayStatus.IV_DATA:
00646            newMenu.add(panelDisplayMenu);
00647            newMenu.add(ivScanOptionMenu);
00648            pMenu = newMenu.getPopupMenu();
00649            pMenu.show(e.getComponent(),e.getX(),e.getY());
00650            pMenu.setInvoker(newMenu);
00651            break;
00652   
00653         default:
00654            }
00655         }
00656 //**************************************************
00657    private JMenu getTestDataOptionMenu() {
00658        JMenu thisMenu = new JMenu("Test Results");
00659        thisMenu.setFont(menuFont);
00660        testDataOptions[0] = new JMenuItem("ROD Data");
00661        testDataOptions[0].setFont(menuFont);
00662        testDataOptions[0].addActionListener(new java.awt.event.ActionListener() {
00663                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00664                     guiControl.displayPane.setDisplayOption(0);                   
00665                      }
00666              });
00667        testDataOptions[1] = new JMenuItem("SCTDAQ Reference Data");
00668        testDataOptions[1].setFont(menuFont);
00669        testDataOptions[1].addActionListener(new java.awt.event.ActionListener() {
00670                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00671                     guiControl.displayPane.setDisplayOption(1);                   
00672                      }
00673              });
00674 
00675        testDataOptions[2] = new JMenuItem("Comparison ROD-SCTDAQ");
00676        testDataOptions[2].setFont(menuFont);
00677        testDataOptions[2].addActionListener(new java.awt.event.ActionListener() {
00678                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00679                     guiControl.displayPane.setDisplayOption(2);                   
00680                      }
00681              });
00682        thisMenu.add(testDataOptions[0]);
00683        thisMenu.add(testDataOptions[1]);
00684        thisMenu.add(testDataOptions[2]);
00685 
00686        JMenuItem item = new JMenuItem("Upload to SCT Database");
00687        item.setFont(menuFont);
00688        item.addActionListener(new java.awt.event.ActionListener() {
00689                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00690                     TestSelection t = guiControl.tablesDisplayPane.getTestSelection();
00691                     if(t==null) {
00692                       javax.swing.JOptionPane.showMessageDialog(null,"There is no Data to upload!");
00693                       return;
00694                       }
00695                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the data for Run/Scan "+t.getRunNo()+"/"+t.getScanNo()+"?");
00696                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
00697                     UploadManager upload = new UploadManager(guiControl);                   
00698                      }
00699              });
00700        thisMenu.addSeparator();
00701        thisMenu.add(item);
00702       
00703        return thisMenu;
00704        }
00705 //**************************************************************************
00706     private JMenu getDisplayOptionMenu() {
00707        JMenu thisMenu = new JMenu("Display");
00708        thisMenu.setFont(menuFont);
00709 
00710        JMenuItem item = new JMenuItem("Clear Result Cache");
00711        item.setFont(menuFont);
00712        item.addActionListener(new java.awt.event.ActionListener() {
00713                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00714                     System.out.println("SctGUI: Clearing cache (was "+guiControl.isInterface.cache.size()+" objects deep)");
00715                     guiControl.isInterface.cache.clear();
00716                  }
00717              });
00718        thisMenu.add(item);
00719 
00720        item = new JMenuItem("Reset all Color Scales");
00721        item.setFont(menuFont);
00722        item.addActionListener(new java.awt.event.ActionListener() {
00723                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00724                    int response = javax.swing.JOptionPane.showConfirmDialog(null,"This will permanently reset all color scales to their defaults. Continue?","Confirm",javax.swing.JOptionPane.YES_NO_OPTION,javax.swing.JOptionPane.INFORMATION_MESSAGE);
00725                    if(response==javax.swing.JOptionPane.YES_OPTION) {
00726                       ColorScaleManager.getInstance().clearAll();
00727                       guiControl.colorScalePane.setColorScale();
00728                       guiControl.displayPane.setDisplayColors();
00729                       guiControl.displayPane.refreshDisplay();
00730                       }
00731                         
00732                  }
00733              });
00734        thisMenu.add(item);
00735 
00736        autoSelectMode.setFont(menuFont);
00737        autoSelectMode.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.AUTO_TEST_SELECT).equals("TRUE"));
00738        thisMenu.add(autoSelectMode);
00739        autoSelectMode.addActionListener(new java.awt.event.ActionListener() {
00740                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00741                     String status = autoSelectMode.isSelected() ? "TRUE" : "FALSE";
00742                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.AUTO_TEST_SELECT,status);                        
00743                  }
00744              });
00745 
00746        return thisMenu;
00747        }
00748 
00749 //**************************************************************************
00750     private JMenu getBookkeepingMenu() {
00751        JMenu thisMenu = new JMenu("Book-keeping");
00752        thisMenu.setFont(menuFont);
00753 
00754 
00755 
00756        bookkeepingEnabled.setFont(menuFont);
00757        bookkeepingEnabled.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.BOOKKEEPING).equals("TRUE"));
00758        thisMenu.add(bookkeepingEnabled);
00759        bookkeepingEnabled.addActionListener(new java.awt.event.ActionListener() {
00760                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00761                     String status = bookkeepingEnabled.isSelected() ? "TRUE" : "FALSE";
00762                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.BOOKKEEPING,status);   
00763                     runPromptEnabled.setEnabled(bookkeepingEnabled.isSelected());  
00764                     testPromptEnabled.setEnabled(bookkeepingEnabled.isSelected());                   
00765                  }
00766              });
00767 
00768        thisMenu.addSeparator();
00769 
00770        runPromptEnabled.setFont(menuFont);
00771        runPromptEnabled.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.RUN_PROMPT).equals("TRUE"));
00772        thisMenu.add(runPromptEnabled);
00773        runPromptEnabled.addActionListener(new java.awt.event.ActionListener() {
00774                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00775                     String status = runPromptEnabled.isSelected() ? "TRUE" : "FALSE";
00776                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.RUN_PROMPT,status);                        
00777                  }
00778              });
00779 
00780        testPromptEnabled.setFont(menuFont);
00781        testPromptEnabled.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.TEST_PROMPT).equals("TRUE"));
00782        thisMenu.add(testPromptEnabled);
00783        testPromptEnabled.addActionListener(new java.awt.event.ActionListener() {
00784                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00785                     String status = testPromptEnabled.isSelected() ? "TRUE" : "FALSE";
00786                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.TEST_PROMPT,status);                        
00787                  }
00788              });
00789 
00790        return thisMenu;
00791        }
00792 //**************************************************************************
00793     private JMenu getTableDataOptionMenu() {
00794        JMenu thisMenu = new JMenu("Data Manager");
00795        thisMenu.setFont(menuFont);
00796 
00797        JMenuItem item = new JMenuItem("Plot Selected Data");
00798        item.setFont(menuFont);
00799        item.addActionListener(new java.awt.event.ActionListener() {
00800                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00801                     switch(guiControl.displayStatus.getStatus()) {
00802                        case DisplayStatus.IS_MONITOR:
00803                           String objectname;
00804                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewer(objectname);
00805                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00806                         break;
00807                     default:
00808                      }                                   
00809                  }
00810              });
00811        thisMenu.add(item);
00812 
00813       item = new JMenuItem("Plot (with Options) Selected Data");
00814        item.setFont(menuFont);
00815        item.addActionListener(new java.awt.event.ActionListener() {
00816                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00817                     switch(guiControl.displayStatus.getStatus()) {
00818                        case DisplayStatus.IS_MONITOR:
00819                           String objectname;
00820                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewerWithOptions(objectname);
00821                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00822                         break;
00823                     default:
00824                      }                                   
00825                  }
00826              });
00827        thisMenu.add(item);
00828 
00829        item = new JMenuItem("Delete Selected Test(s)");
00830        item.setFont(menuFont);
00831        item.addActionListener(new java.awt.event.ActionListener() {
00832                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00833                     switch(guiControl.displayStatus.getStatus()) {
00834                        case DisplayStatus.IS_MONITOR:
00835                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00836                          if(testSelection==null) {
00837                              javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00838                              return;
00839                              } 
00840                          int selectedRow = guiControl.tablesDisplayPane.getSelectedTest();
00841                          int response = JOptionPane.showConfirmDialog(null,"Delete "+testSelection.getTestName()+" test for Run/Scan "+testSelection.getRunNo()+"/"+testSelection.getScanNo()+"?","Confirm Deletion",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
00842                          if(response==JOptionPane.NO_OPTION) return;
00843                          guiControl.isInterface.removeTests(guiControl.tablesDisplayPane.getTestControlObjectNames(),selectedRow,selectedRow); 
00844                          guiControl.tablesDisplayPane.updateTables();
00845                          break;
00846                        default:
00847                      }                                   
00848                  }
00849              });
00850        thisMenu.add(item);
00851 
00852 
00853        item = new JMenuItem("View Selected IS Object");
00854        item.setFont(menuFont);
00855        item.addActionListener(new java.awt.event.ActionListener() {
00856                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00857                     switch(guiControl.displayStatus.getStatus()) {
00858                        case DisplayStatus.IS_MONITOR:
00859                           String objectname;
00860                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.viewISData(objectname);
00861                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00862                         break;
00863                     default:
00864                      }                                   
00865                  }
00866              });
00867 
00868        thisMenu.add(item);
00869 
00870        item = new JMenuItem("View Selected Module Configuration");
00871        item.setFont(menuFont);
00872        item.addActionListener(new java.awt.event.ActionListener() {
00873              public void actionPerformed(java.awt.event.ActionEvent evt) {
00874                String sn = guiControl.tablesDisplayPane.getSelectedSerialNo();
00875                if(sn==null) return;
00876                   JFrame frame2 = new JFrame("Module Configuration");                                
00877                   frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(sn));
00878                   frame2.pack();
00879                   frame2.show();
00880                      }
00881 
00882           });  
00883        thisMenu.add(item);
00884 
00885        item = new JMenuItem("Retrieve Archived Data");
00886        item.setFont(menuFont);
00887        item.addActionListener(new java.awt.event.ActionListener() {
00888             public void actionPerformed(java.awt.event.ActionEvent evt) {
00889                ArchiveQueryBox b = new ArchiveQueryBox(guiControl);
00890                b.setLocationRelativeTo(guiControl);
00891                b.setVisible(true);
00892             }
00893            });
00894        thisMenu.add(item);
00895 
00896        return thisMenu;
00897        }
00898 //**************************************************************************
00899     private JMenu getTable0Menu() {
00900        JMenu thisMenu = new JMenu("Data Manager - table0");
00901 
00902        thisMenu.setFont(menuFont);
00903 
00904        JMenuItem item = new JMenuItem("Delete Selected Test(s)");
00905        item.setFont(menuFont);
00906        item.addActionListener(new java.awt.event.ActionListener() {
00907                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00908                     switch(guiControl.displayStatus.getStatus()) {
00909                        case DisplayStatus.IS_MONITOR:
00910                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00911                          if(testSelection==null) {
00912                              javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00913                              return;
00914                              }
00915                          int selectedRow = guiControl.tablesDisplayPane.getSelectedTest();
00916                          int response = JOptionPane.showConfirmDialog(null,"Delete "+testSelection.getTestName()+" test for Run/Scan "+testSelection.getRunNo()+"/"+testSelection.getScanNo()+"?","Confirm Deletion",JOptionPane.YES_NO_OPTION,JOptionPane.QUESTION_MESSAGE);
00917                          if(response==JOptionPane.NO_OPTION) return;
00918                          guiControl.isInterface.removeTests(guiControl.tablesDisplayPane.getTestControlObjectNames(),selectedRow,selectedRow); 
00919                          guiControl.tablesDisplayPane.updateTables();
00920                          break;
00921                        default:
00922                      }                                   
00923                  }
00924              });
00925        thisMenu.add(item);
00926 
00927 
00928 
00929        return thisMenu;
00930        }
00931     private JMenu getDCSOptionMenu() {
00932        JMenu thisMenu = new JMenu("DCS");
00933 
00934        thisMenu.setFont(menuFont);
00935 
00936        JMenuItem item = new JMenuItem("IS Server Name...");
00937        item.setFont(menuFont);
00938        thisMenu.add(item);
00939        item.addActionListener(new java.awt.event.ActionListener() {
00940              public void actionPerformed(java.awt.event.ActionEvent evt) {
00941                    Preference preference = new Preference(guiControl,PreferencesInterface.DCS_SERVER_NAME);                      
00942                    }
00943               });
00944        item = new JMenuItem("IV Scan Data Directory...");
00945        item.setFont(menuFont);
00946        thisMenu.add(item);
00947        item.addActionListener(new java.awt.event.ActionListener() {
00948              public void actionPerformed(java.awt.event.ActionEvent evt) {
00949                    Preference preference = new Preference(guiControl,PreferencesInterface.IV_DIRECTORY);                      
00950                    }
00951               });
00952        thisMenu.addSeparator();
00953 
00954        item = new JMenuItem("Import IV Scans...");
00955        item.setFont(menuFont);
00956        thisMenu.add(item);
00957        item.addActionListener(new java.awt.event.ActionListener() {
00958              public void actionPerformed(java.awt.event.ActionEvent evt) {
00959                    new IVScanLister(guiControl.displayPane.getSCTView()).show();                     
00960                    }
00961               });
00962        item = new JMenuItem("Plot Selected IVScans");
00963        item.setFont(menuFont);
00964        thisMenu.add(item);
00965        item.addActionListener(new java.awt.event.ActionListener() {
00966              public void actionPerformed(java.awt.event.ActionEvent evt) {
00967                    plotIVScanData(null);                     
00968                    }
00969               });
00970        item = new JMenuItem("Upload Selected IVScans to SCT Database");
00971        item.setFont(menuFont);
00972        thisMenu.add(item);
00973        item.addActionListener(new java.awt.event.ActionListener() {
00974              public void actionPerformed(java.awt.event.ActionEvent evt) {
00975                     IVTestSelection i = guiControl.tablesDisplayPane.getIVTestSelection();
00976                     if(i==null) {
00977                       javax.swing.JOptionPane.showMessageDialog(null,"There is no IV scan Data to upload!");
00978                       return;
00979                       }
00980                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the IV scans for Run/Scan "+i.getRunNo()+"/"+i.getScanNo()+"?");
00981                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
00982                     UploadManager upload = new UploadManager(guiControl);                      
00983                    }
00984               });
00985 
00986        return thisMenu;
00987        }
00988 
00989     private JMenu getIVScanOptionMenu() {
00990        JMenu thisMenu = new JMenu("IV scans");
00991 
00992        thisMenu.setFont(menuFont);
00993 
00994 
00995        JMenuItem item = new JMenuItem("Import IV Scans...");
00996        item.setFont(menuFont);
00997        thisMenu.add(item);
00998        item.addActionListener(new java.awt.event.ActionListener() {
00999              public void actionPerformed(java.awt.event.ActionEvent evt) {
01000                    new IVScanLister(guiControl.displayPane.getSCTView()).show();                     
01001                    }
01002               });
01003        item = new JMenuItem("Upload to SCT Database");
01004        item.setFont(menuFont);
01005        thisMenu.add(item);
01006        item.addActionListener(new java.awt.event.ActionListener() {
01007              public void actionPerformed(java.awt.event.ActionEvent evt) {
01008                     IVTestSelection i = guiControl.tablesDisplayPane.getIVTestSelection();
01009                     if(i==null) {
01010                       javax.swing.JOptionPane.showMessageDialog(null,"There is no IV scan Data to upload!");
01011                       return;
01012                       }
01013                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the IV scans for Run/Scan "+i.getRunNo()+"/"+i.getScanNo()+"?");
01014                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01015                     UploadManager upload = new UploadManager(guiControl);                      
01016                    }
01017               });
01018 
01019        return thisMenu;
01020        }
01021 
01022 //****************************************************************************************
01023     private JMenu getDBSCTDAQDataOptionMenu(boolean isPanel) {
01024        JMenu thisMenu = new JMenu("SCTDAQ Reference");
01025 //       thisMenu.setBackground(backgroundColor);
01026        thisMenu.setFont(menuFont);
01027 //       thisMenu.setForeground(menuColor);
01028        JMenuItem item = new JMenuItem("Download SCTDAQ Reference Data");
01029        item.setFont(menuFont);
01030        thisMenu.add(item);
01031        item.addActionListener(new java.awt.event.ActionListener() {
01032              public void actionPerformed(java.awt.event.ActionEvent evt) {
01033                    guiControl.isInterface.downloadTests(-1);
01034                    }
01035               });
01036        item = new JMenuItem("SCTDAQ Test Location ...");
01037        item.setFont(menuFont);
01038        thisMenu.add(item);
01039        item.addActionListener(new java.awt.event.ActionListener() {
01040              public void actionPerformed(java.awt.event.ActionEvent evt) {
01041                  java.util.Vector listOfLocations = new java.util.Vector();
01042                  try {
01043                       listOfLocations = ProdDatabase.GeneralUtilities.getLocationList();
01044                  }catch(Exception e2){}
01045                  listOfLocations.insertElementAt("Any",0);
01046                  guiUtilities.userPrompt thisPrompt = new guiUtilities.userPrompt(guiControl,"Any","Institute", listOfLocations);
01047                  thisPrompt.pack();
01048                  thisPrompt.setLocationRelativeTo(guiControl);
01049                  thisPrompt.setVisible(true);
01050                  String thisLocation = thisPrompt.getValidatedText();
01051                  if (!thisLocation.equals("None")) {
01052                       guiControl.isInterface.setLocation(thisLocation);
01053 //                      guiControl.isInterface.setTestFilter(guiControl.tablesDisplayPane.getTestControlObjectName());
01054                       guiControl.selectorPane.initParamList(); // maybe require change of parameter menu
01055                       guiControl.colorScalePane.setColorScale(); // ditto for color scale
01056                       guiControl.displayPane.setDisplayColors();
01057                       guiControl.displayPane.refreshDisplay();
01058                       guiControl.tablesDisplayPane.listTestResults();
01059                       }
01060                    
01061                    }
01062               });
01063        if(!isPanel) {
01064          sctdbAutoDownload.setFont(menuFont);
01065          thisMenu.add(sctdbAutoDownload);
01066          }
01067        return thisMenu;
01068        }
01069 //****************************************************************************************
01070     private JMenu getDBRODDAQDataOptionMenu(boolean isPanel) {
01071        JMenu thisMenu = new JMenu("SctRodDaq Downloads");
01072 //       thisMenu.setBackground(backgroundColor);
01073        thisMenu.setFont(menuFont);
01074 //       thisMenu.setForeground(menuColor);
01075 
01076        JMenuItem item = new JMenuItem("Download SctRodDaq Data ...");
01077        item.setFont(menuFont);
01078        thisMenu.add(item);
01079        item.addActionListener(new java.awt.event.ActionListener() {
01080              public void actionPerformed(java.awt.event.ActionEvent evt) {
01081                    new DatabaseLister().show();                   
01082                    }
01083               });
01084 
01085        if(!isPanel) {
01086          sctdbAutoUpload.setFont(menuFont);
01087          thisMenu.add(sctdbAutoUpload);
01088          }
01089        return thisMenu;
01090        }
01091 //*************************************************************************************************8
01092    private JMenu getCCDataOptionMenu() {
01093        JMenu thisMenu = new JMenu("CalibrationController");
01094        thisMenu.setFont(menuFont);
01095        JMenuItem item = new JMenuItem("Ping");
01096        item.setFont(menuFont);
01097        item.addActionListener(new java.awt.event.ActionListener() {
01098              public void actionPerformed(java.awt.event.ActionEvent evt) {
01099                    try { 
01100                       ipc.InfoHolder infoHolder = new ipc.InfoHolder();
01101                       if (si.getCalibrationController() != null)  {
01102                           si.getCalibrationController().get_info(infoHolder);
01103                          ipc.Info info = infoHolder.value;
01104                          System.out.println("CalibrationController running: " + info.pid + " by " + info.owner + " on " +info.host + " since " + info.time);
01105                          } 
01106                        else System.out.println("CalibrationController not running");
01107                        }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
01108                     }
01109               });   
01110        thisMenu.add(item);
01111 
01112        thisMenu.addSeparator();
01113        javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
01114        for(int i=0;i<ccUpdateModes.length;i++) {
01115          ccUpdateModes[i] = new JCheckBox(ccUpdateStrings[i]);
01116          thisGroup.add(ccUpdateModes[i]);
01117          ccUpdateModes[i].setFont(menuFont);
01118          thisMenu.add(ccUpdateModes[i]);
01119          }
01120        item = new JMenuItem("Abort");
01121        item.setFont(menuFont);
01122        item.addActionListener(new java.awt.event.ActionListener() {
01123              public void actionPerformed(java.awt.event.ActionEvent evt) {
01124                    try { 
01125 //                       System.out.println("abort of CC not yet implemented");
01126                        si.getCalibrationController().abort();
01127                        }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
01128                     }
01129               });    
01130        thisMenu.addSeparator();
01131        thisMenu.add(item);   
01132                        
01133 
01134        ccUpdateModes[0].setSelected(true);
01135        for(int i=0;i<ccUpdateModes.length;i++) {  
01136            // ccUpdateModes[i].setEnabled(false);   
01137          switch(i) {
01138             case 0:
01139             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01140              public void actionPerformed(java.awt.event.ActionEvent evt) {
01141                    try {
01142                        si.getCalibrationController().setUpdateOption(UpdateOption.update);
01143                        checkCCUpdateMode();
01144                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01145                    }
01146               });
01147             break;
01148             case 1:
01149             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01150              public void actionPerformed(java.awt.event.ActionEvent evt) {
01151                    try {
01152                        si.getCalibrationController().setUpdateOption(UpdateOption.noupdate);
01153                        checkCCUpdateMode();
01154                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01155                    }
01156               });
01157             break;
01158             case 2:
01159             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01160              public void actionPerformed(java.awt.event.ActionEvent evt) {
01161                    try {
01162                        si.getCalibrationController().setUpdateOption(UpdateOption._wait);
01163                        checkCCUpdateMode();
01164                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01165                    }
01166               });
01167             break;
01168             default:
01169             }
01170         }
01171       return thisMenu;
01172       }
01173 //************************************************************************************
01174    public void checkCCUpdateMode() {
01175          if(guiControl.calibrationControllerPanel==null || guiControl.calibrationControllerPanel.status==null) {   // why is this necessary????
01176              System.out.println("CalibrationControllerPanel.status object not yet available... update mode not yet known");
01177              return;
01178              }
01179          String updateMode = guiControl.calibrationControllerPanel.status.updateOption;
01180          if(updateMode.equals("NOUPDATE")) ccUpdateModes[1].setSelected(true);
01181          else if(updateMode.equals("WAIT")) ccUpdateModes[2].setSelected(true);
01182          else   ccUpdateModes[0].setSelected(true);
01183          }
01184 
01185 //*************************************************************************************************8
01186    private JMenu getTestFilterMenu() {
01187        JMenu thisMenu = new JMenu("Test Filter");
01188        thisMenu.setFont(menuFont);
01189        javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
01190        testFilterButtons[0] = new JCheckBox("All tests");
01191        thisGroup.add(testFilterButtons[0]);
01192        testFilterButtons[0].setFont(menuFont);
01193        testFilterButtons[0].addActionListener(new java.awt.event.ActionListener() {
01194              public void actionPerformed(java.awt.event.ActionEvent evt) {
01195                    switch(guiControl.displayStatus.getStatus()) {
01196                    case DisplayStatus.TEST_DATA:
01197                      guiControl.displayStatus.setTestDataMode(-1);      
01198                      break;
01199                    case DisplayStatus.SCTDB_DATA:
01200                     guiControl.displayStatus.setSCTDBDataMode(-1); 
01201                      break;
01202                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01203                     guiControl.displayStatus.setSCTDBRodDaqMode(-1); 
01204                      break;
01205                    default:
01206                    }           
01207                  }
01208               });
01209         thisMenu.add(testFilterButtons[0]);
01210        for(int i=1;i<testFilterButtons.length;i++) {
01211          if(!testIsDefined[i-1]) continue;
01212          testFilterButtons[i] = new JCheckBox(testNames[i-1]);
01213          thisGroup.add(testFilterButtons[i]);
01214          testFilterButtons[i].setFont(menuFont);
01215          thisMenu.add(testFilterButtons[i]);
01216          }
01217        testFilterButtons[0].setSelected(true);
01218 
01219        for(int i=1;i<testFilterButtons.length;i++) {  
01220          if(!testIsDefined[i-1]) continue;
01221          switch(i-1) { 
01222           case TEST_FULLBYPASS:
01223              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01224                public void actionPerformed(java.awt.event.ActionEvent evt) {
01225                    switch(guiControl.displayStatus.getStatus()) {
01226                    case DisplayStatus.TEST_DATA:
01227                      guiControl.displayStatus.setTestDataMode(TEST_FULLBYPASS);      
01228                      break;
01229                    case DisplayStatus.SCTDB_DATA:
01230                     guiControl.displayStatus.setSCTDBDataMode(TEST_FULLBYPASS); 
01231                      break;
01232                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01233                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_FULLBYPASS); 
01234                      break;
01235                    default:
01236                    }           
01237                    }
01238               });
01239             break;
01240           case TEST_PIPELINE:
01241              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01242                public void actionPerformed(java.awt.event.ActionEvent evt) {
01243                    switch(guiControl.displayStatus.getStatus()) {
01244                    case DisplayStatus.TEST_DATA:
01245                      guiControl.displayStatus.setTestDataMode(TEST_PIPELINE);      
01246                      break;
01247                    case DisplayStatus.SCTDB_DATA:
01248                     guiControl.displayStatus.setSCTDBDataMode(TEST_PIPELINE); 
01249                      break;
01250                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01251                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_PIPELINE); 
01252                      break;
01253                    default:
01254                    }           
01255                    }
01256               });
01257             break;
01258           case TEST_STROBEDELAY:
01259              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01260                public void actionPerformed(java.awt.event.ActionEvent evt) {
01261                    switch(guiControl.displayStatus.getStatus()) {
01262                    case DisplayStatus.TEST_DATA:
01263                      guiControl.displayStatus.setTestDataMode(TEST_STROBEDELAY);      
01264                      break;
01265                    case DisplayStatus.SCTDB_DATA:
01266                     guiControl.displayStatus.setSCTDBDataMode(TEST_STROBEDELAY); 
01267                      break;
01268                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01269                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_STROBEDELAY); 
01270                      break;
01271                    default:
01272                    }           
01273                    }
01274               });
01275             break;
01276           case TEST_3PTGAIN:
01277              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01278                public void actionPerformed(java.awt.event.ActionEvent evt) {
01279                    switch(guiControl.displayStatus.getStatus()) {
01280                    case DisplayStatus.TEST_DATA:
01281                      guiControl.displayStatus.setTestDataMode(TEST_3PTGAIN);      
01282                      break;
01283                    case DisplayStatus.SCTDB_DATA:
01284                     guiControl.displayStatus.setSCTDBDataMode(TEST_3PTGAIN); 
01285                      break;
01286                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01287                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_3PTGAIN); 
01288                      break;
01289                    default:
01290                    }           
01291                    }
01292               });
01293             break;
01294           case TEST_TRIM:
01295              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01296                public void actionPerformed(java.awt.event.ActionEvent evt) {
01297                    switch(guiControl.displayStatus.getStatus()) {
01298                    case DisplayStatus.TEST_DATA:
01299                      guiControl.displayStatus.setTestDataMode(TEST_TRIM);      
01300                      break;
01301                    case DisplayStatus.SCTDB_DATA:
01302                     guiControl.displayStatus.setSCTDBDataMode(TEST_TRIM); 
01303                      break;
01304                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01305                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TRIM); 
01306                      break;
01307                    default:
01308                    }           
01309                    }
01310               });
01311             break;
01312           case TEST_NPTGAIN:
01313              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01314                public void actionPerformed(java.awt.event.ActionEvent evt) {
01315                    switch(guiControl.displayStatus.getStatus()) {
01316                    case DisplayStatus.TEST_DATA:
01317                      guiControl.displayStatus.setTestDataMode(TEST_NPTGAIN);      
01318                      break;
01319                    case DisplayStatus.SCTDB_DATA:
01320                     guiControl.displayStatus.setSCTDBDataMode(TEST_NPTGAIN); 
01321                      break;
01322                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01323                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NPTGAIN); 
01324                      break;
01325                    default:
01326                    }           
01327                    }
01328               });
01329             break;
01330           case TEST_NOISE:
01331              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01332                public void actionPerformed(java.awt.event.ActionEvent evt) {
01333                    switch(guiControl.displayStatus.getStatus()) {
01334                    case DisplayStatus.TEST_DATA:
01335                      guiControl.displayStatus.setTestDataMode(TEST_NOISE);      
01336                      break;
01337                    case DisplayStatus.SCTDB_DATA:
01338                     guiControl.displayStatus.setSCTDBDataMode(TEST_NOISE); 
01339                      break;
01340                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01341                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NOISE); 
01342                      break;
01343                    default:
01344                    }           
01345                    }
01346               });
01347             break;
01348           case TEST_TIMEWALK:
01349              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01350                public void actionPerformed(java.awt.event.ActionEvent evt) {
01351                    switch(guiControl.displayStatus.getStatus()) {
01352                    case DisplayStatus.TEST_DATA:
01353                      guiControl.displayStatus.setTestDataMode(TEST_TIMEWALK);      
01354                      break;
01355                    case DisplayStatus.SCTDB_DATA:
01356                     guiControl.displayStatus.setSCTDBDataMode(TEST_TIMEWALK); 
01357                      break;
01358                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01359                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TIMEWALK); 
01360                      break;
01361                    default:
01362                    }           
01363                    }
01364               });
01365             break;
01366           case TEST_NMASK:
01367              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01368                public void actionPerformed(java.awt.event.ActionEvent evt) {
01369                    switch(guiControl.displayStatus.getStatus()) {
01370                    case DisplayStatus.TEST_DATA:
01371                      guiControl.displayStatus.setTestDataMode(TEST_NMASK);      
01372                      break;
01373                    case DisplayStatus.SCTDB_DATA:
01374                     guiControl.displayStatus.setSCTDBDataMode(TEST_NMASK); 
01375                      break;
01376                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01377                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NMASK); 
01378                      break;
01379                    default:
01380                    }           
01381                    }
01382               });
01383             break;
01384              case TEST_RXTHRESHOLD:
01385              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01386                public void actionPerformed(java.awt.event.ActionEvent evt) {
01387                    switch(guiControl.displayStatus.getStatus()) {
01388                    case DisplayStatus.TEST_DATA:
01389                      guiControl.displayStatus.setTestDataMode(TEST_RXTHRESHOLD);      
01390                      break;
01391                    case DisplayStatus.SCTDB_DATA:
01392                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXTHRESHOLD); 
01393                      break;
01394                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01395                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXTHRESHOLD); 
01396                      break;
01397                    default:
01398                    }           
01399                    }
01400               });
01401             break;
01402              case TEST_RXDELAY:
01403              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01404                public void actionPerformed(java.awt.event.ActionEvent evt) {
01405                    switch(guiControl.displayStatus.getStatus()) {
01406                    case DisplayStatus.TEST_DATA:
01407                      guiControl.displayStatus.setTestDataMode(TEST_RXDELAY);      
01408                      break;
01409                    case DisplayStatus.SCTDB_DATA:
01410                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXDELAY); 
01411                      break;
01412                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01413                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXDELAY); 
01414                      break;
01415                    default:
01416                    }           
01417                    }
01418               });
01419             break;
01420             default:
01421             }
01422           }
01423       return thisMenu;
01424       }
01425 
01426    public void resetTestListFilter() {
01427       testFilterButtons[0].setSelected(true);
01428       }
01429 
01430    private JMenu getTestInvokeMenu() {
01431        JMenu thisMenu = new JMenu("Tests");
01432        JMenuItem menuItem;
01433 
01434        //===========================================================================================
01435 
01436        JMenu bocTestsMenu = new JMenu("Boc Setup");
01437        bocTestsMenu.setFont(menuFont);
01438        menuItem = new JMenuItem("Raw Scan");
01439        menuItem.setFont(menuFont);
01440        menuItem.addActionListener(new java.awt.event.ActionListener() {
01441                public void actionPerformed(java.awt.event.ActionEvent evt) {
01442                    si.getCalibrationController().doScan(si.getCalibrationController().getScanLibrary().rawScan(10));
01443                }
01444            });
01445 
01446        bocTestsMenu.add(menuItem);
01447 
01448        menuItem = new JMenuItem("RX Threshold");
01449        menuItem.setFont(menuFont);
01450        menuItem.addActionListener(new java.awt.event.ActionListener() {
01451                public void actionPerformed(java.awt.event.ActionEvent evt) {
01452                    //Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10);
01453                    //request.getScan().configure((short)50, 0., 200., 5.);
01454                    //si.getCalibrationController().doScan( request );
01455                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().rxThreshold()  );
01456                }
01457            });
01458        bocTestsMenu.add(menuItem);
01459 
01460        menuItem = new JMenuItem("RX Delay");
01461        menuItem.setFont(menuFont);
01462        menuItem.addActionListener(new java.awt.event.ActionListener() {
01463                public void actionPerformed(java.awt.event.ActionEvent evt) {
01464                    //Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10);
01465                    //request.getScan().configure((short)20, 0., 24., 1.);
01466                    //si.getCalibrationController().doScan( request );
01467                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().rxDelay()  );
01468                }
01469            });
01470        bocTestsMenu.add(menuItem);
01471 
01472        menuItem = new JMenuItem("TX Current");
01473        menuItem.setFont(menuFont);
01474        menuItem.addActionListener(new java.awt.event.ActionListener() {
01475                public void actionPerformed(java.awt.event.ActionEvent evt) {
01476                    Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10);
01477                    request.getScan().configure((short)53, 60., 200., 10.);
01478                    si.getCalibrationController().doScan( request );
01479                }
01480            });
01481        bocTestsMenu.add(menuItem);
01482 
01483        thisMenu.add(bocTestsMenu);
01484 
01485        //==========================================================================================
01486 
01487        JMenu digitalTestsMenu = new JMenu("Digital Tests");
01488        digitalTestsMenu.setFont(menuFont);
01489 
01490        menuItem = new JMenuItem("NMask");
01491        menuItem.setFont(menuFont);
01492 
01493        menuItem.addActionListener(new java.awt.event.ActionListener() {
01494                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01495 //                    guiControl.displayStatus.setTestDataMode(-1); 
01496                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().nmask());               
01497                      }
01498              });
01499 
01500 
01501        digitalTestsMenu.add(menuItem);
01502 
01503        menuItem = new JMenuItem("Pipeline");
01504        menuItem.setFont(menuFont);
01505        menuItem.addActionListener(new java.awt.event.ActionListener() {
01506                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01507  //                    guiControl.displayStatus.setTestDataMode(-1); 
01508                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().pipeline());           
01509                      }
01510              });
01511 
01512        digitalTestsMenu.add(menuItem);
01513 
01514        menuItem = new JMenuItem("FullByPass (Barrel)");
01515        menuItem.setFont(menuFont);
01516        menuItem.addActionListener(new java.awt.event.ActionListener() {
01517                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01518  //                    guiControl.displayStatus.setTestDataMode(-1); 
01519                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().fullBypassBarrel() );          
01520                      }
01521              });
01522 
01523        digitalTestsMenu.add(menuItem);
01524 
01525        menuItem = new JMenuItem("FullByPass (Endcap)");
01526        menuItem.setFont(menuFont); 
01527        menuItem.addActionListener(new java.awt.event.ActionListener() {
01528                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01529  //                    guiControl.displayStatus.setTestDataMode(-1); 
01530                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().fullBypassEndcap() );
01531                      }
01532              });
01533 
01534        digitalTestsMenu.add(menuItem);
01535 
01536        thisMenu.add(digitalTestsMenu);
01537 
01538 
01539        //===========================================================================================
01540 
01541        JMenu analogueTestsMenu = new JMenu("Analogue Tests");
01542        analogueTestsMenu.setFont(menuFont);
01543 
01544 
01545        menuItem = new JMenuItem("Strobe Delay");
01546        menuItem.setFont(menuFont);
01547        menuItem.addActionListener(new java.awt.event.ActionListener() {
01548                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01549  //                    guiControl.displayStatus.setTestDataMode(-1); 
01550                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().strobeDelay());         
01551                      }
01552              });
01553 
01554        analogueTestsMenu.add(menuItem);
01555 
01556        menuItem = new JMenuItem("3PtGain");
01557        menuItem.setFont(menuFont);
01558        menuItem.addActionListener(new java.awt.event.ActionListener() {
01559                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01560  //                    guiControl.displayStatus.setTestDataMode(-1); 
01561                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().threePointGain());        
01562                      }
01563              });
01564 
01565        analogueTestsMenu.add(menuItem);
01566 
01567        menuItem = new JMenuItem("Trim");
01568        menuItem.setFont(menuFont);
01569        menuItem.addActionListener(new java.awt.event.ActionListener() {
01570                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01571  //                    guiControl.displayStatus.setTestDataMode(-1); 
01572                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().trimRange() );       
01573                      }
01574              });
01575 
01576        analogueTestsMenu.add(menuItem);
01577 
01578        menuItem = new JMenuItem("ResponseCurve");
01579        menuItem.setFont(menuFont);
01580        menuItem.addActionListener(new java.awt.event.ActionListener() {
01581                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01582  //                    guiControl.displayStatus.setTestDataMode(-1); 
01583                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().responseCurve());      
01584                      }
01585              });
01586 
01587        analogueTestsMenu.add(menuItem);
01588 
01589        menuItem = new JMenuItem("Noise Occupancy");
01590        menuItem.setFont(menuFont);
01591        menuItem.addActionListener(new java.awt.event.ActionListener() {
01592                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01593  //                    guiControl.displayStatus.setTestDataMode(-1); 
01594                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().noiseOccupancy() );     
01595                      }
01596              });
01597 
01598        analogueTestsMenu.add(menuItem);
01599 
01600        menuItem = new JMenuItem("Time Walk");
01601        menuItem.setFont(menuFont);
01602        menuItem.addActionListener(new java.awt.event.ActionListener() {
01603                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01604  //                    guiControl.displayStatus.setTestDataMode(-1); 
01605                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().timeWalk());   
01606                      }
01607              });
01608 
01609        analogueTestsMenu.add(menuItem);
01610 
01611        thisMenu.add(analogueTestsMenu);
01612 
01613        JMenu sequencesMenu = new JMenu("Sequences");
01614        sequencesMenu.setFont(menuFont);
01615 
01616        menuItem = new JMenuItem("Characterisation");
01617        menuItem.setFont(menuFont);
01618        menuItem.addActionListener(new java.awt.event.ActionListener() {
01619                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01620  //                    guiControl.displayStatus.setTestDataMode(-1); 
01621                      si.getCalibrationController().doSequence(si.getCalibrationController().getSequenceLibrary().characterizationSequence()); 
01622                      }
01623              });
01624        sequencesMenu.add(menuItem);
01625        
01626        thisMenu.add(sequencesMenu);
01627 
01628        thisMenu.addSeparator();
01629        thisMenu.add(getSCTDAQMenu());
01630 
01631        return thisMenu;
01632        }
01633 
01634    public void updateMenuStates() {
01635       switch(guiControl.displayStatus.getStatus()) {
01636          case DisplayStatus.IS_MONITOR:
01637              enableDataManagerItems(true);
01638              break;
01639          default:
01640              enableDataManagerItems(false);
01641          }
01642     }
01643    
01644 
01645 
01646   private void enableDataManagerItems(boolean isEnabled) {
01647              for(int i=0;i<tableDataOptionMenu.getItemCount();i++) tableDataOptionMenu.getItem(i).setEnabled(isEnabled);
01648              }
01649 
01650   private JMenu getSCTDAQMenu() {
01651        JMenu sctdaqmenu = new JMenu("SCTDAQ Exerciser");
01652 
01653        sctdaqmenu.setFont(menuFont);
01654 
01655        menuItem = new JMenuItem("Ping");
01656        menuItem.setFont(menuFont);
01657        menuItem.addActionListener(new java.awt.event.ActionListener() {
01658                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01659                      //There is no ping method atm
01660                      //System.out.println(si.getTestApi().ping(""));
01661                      }
01662              });
01663        sctdaqmenu.add(menuItem);
01664        sctdaqmenu.addSeparator();
01665 
01666 
01667        for(int i=0;i<sctapiItems.length;i++) {
01668          if(!testIsDefined[i] || !testIsSCTDAQ[i]) continue;
01669          sctapiItems[i] = new JMenuItem(testMenuNames[i]);
01670          sctapiItems[i].setFont(menuFont);
01671          sctdaqmenu.add(sctapiItems[i]);
01672          switch(i) {
01673             case TEST_FULLBYPASS:
01674               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01675                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01676                    guiControl.displayStatus.setTestDataMode(-1); 
01677                    try {
01678                        if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().fullBypass();
01679                    } catch (SctTestApi.NoDataException nde) {}
01680 //                   System.out.println("Start full bypass test via sct_api_server");   
01681                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_FULLBYPASS);
01682                    }
01683               });
01684             case TEST_PIPELINE:
01685               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01686                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01687 //                    guiControl.displayStatus.setTestDataMode(-1);
01688                     try {
01689                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().pipeline();
01690                     } catch (SctTestApi.NoDataException nde) {}
01691 //                   System.out.println("Start pipeline test via sct_api_server");   
01692                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_PIPELINE);
01693                    }
01694               });
01695             break;
01696             case TEST_STROBEDELAY:
01697               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01698                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01699 //                    guiControl.displayStatus.setTestDataMode(-1); 
01700                     try {
01701                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().strobeDelay();
01702                     } catch (SctTestApi.NoDataException nde) {}
01703 //                    System.out.println("Start strobe delay test via sct_api_server");
01704                     if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_STROBEDELAY);
01705                    }
01706               });
01707              break;
01708             case TEST_3PTGAIN:
01709               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01710                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01711 //                    guiControl.displayStatus.setTestDataMode(-1); 
01712                     try {
01713                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().threePointGain();
01714                     } catch (SctTestApi.NoDataException nde) {}
01715 //                    System.out.println("Start 3PtGain test via sct_api_server");
01716                     if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_3PTGAIN);
01717                    }
01718               });
01719              break;
01720             case TEST_TRIM:
01721               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01722                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01723 //                    guiControl.displayStatus.setTestDataMode(-1); 
01724                     try {
01725                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().trim();
01726                     } catch (SctTestApi.NoDataException nde) {}
01727                    //System.out.println("Start Trim Range test via sct_api_server");
01728                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_TRIM);
01729                    }
01730               });
01731              break;
01732             case TEST_NPTGAIN:
01733               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01734                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01735 //                    guiControl.displayStatus.setTestDataMode(-1); 
01736                     try {
01737                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().responseCurve();
01738                     } catch (SctTestApi.NoDataException nde) {}
01739                    //System.out.println("Start NPtGain test via sct_api_server");
01740                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_NPTGAIN);
01741                    }
01742               });
01743              break;
01744             case TEST_NOISE:
01745               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01746                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01747 //                    guiControl.displayStatus.setTestDataMode(-1); 
01748                     try {
01749                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().noiseOccupancy();
01750                     } catch (SctTestApi.NoDataException nde) {}
01751                    //System.out.println("Start Noise test via sct_api_server");
01752                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_NOISE);
01753                    }
01754               });
01755              break;
01756             case TEST_TIMEWALK:
01757               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
01758                 public void actionPerformed(java.awt.event.ActionEvent evt) {
01759 //                    guiControl.displayStatus.setTestDataMode(-1); 
01760                     try {
01761                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().timeWalk();
01762                     } catch (SctTestApi.NoDataException nde) {}
01763                    //System.out.println("Start TimeWalk test via sct_api_server");
01764                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_TIMEWALK);
01765                    }
01766               });
01767              break;
01768              default:
01769              }
01770          }
01771     return sctdaqmenu;
01772     }
01773 
01774 //   public boolean dcsIsEnabled() {
01775 //      return dcsEnabled.isSelected();
01776 //      }
01777 
01778 
01779 
01780    private void getTestDataMenu() {
01781        testDataMenu = new JMenu("Test Data Options");
01782        testDataMenu.setFont(menuFont);
01783        JMenuItem item1 = new JMenuItem("Test Report");
01784        item1.setFont(menuFont);
01785        testDataMenu.add(item1);
01786        item1.addActionListener(new java.awt.event.ActionListener() {
01787              public void actionPerformed(java.awt.event.ActionEvent evt) {
01788 //                System.out.println("Selected "+popupCell.getSerialNo());
01789                    TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01790                    if(testSelection==null) {
01791                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01792                        return;
01793                        }
01794                    java.util.Map dcsMap = null;
01795                    if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
01796                    SummaryReader.DCSInfo dcsInfo = (dcsMap!=null) ? (SummaryReader.DCSInfo) dcsMap.get(getSelectedSerialNo()) : null;
01797                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(testSelection.getResultObjectHeader(),getSelectedSerialNo(), dcsInfo);              
01798                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showTestReport(getSelectedSerialNo(),testResult);
01799                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for this module");
01800               }
01801           });  
01802        item1 = new JMenuItem("Summary Plots");
01803        item1.setFont(menuFont);
01804        testDataMenu.add(item1);
01805        item1.addActionListener(new java.awt.event.ActionListener() {
01806              public void actionPerformed(java.awt.event.ActionEvent evt) {
01807                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01808                   if(testSelection==null) {
01809                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01810                        return;
01811                        }
01812                   String objectname;
01813                   if((objectname = testSelection.getTestObjectHeader())!=null) {
01814                      guiControl.isInterface.launchExternalViewer(objectname+getSelectedSerialNo());
01815                      }
01816                  }
01817           });  
01818        item1 = new JMenuItem("Summary Plots (with Options)");
01819        item1.setFont(menuFont);
01820        testDataMenu.add(item1);
01821        item1.addActionListener(new java.awt.event.ActionListener() {
01822              public void actionPerformed(java.awt.event.ActionEvent evt) {
01823                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01824                   if(testSelection==null) {
01825                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01826                        return;
01827                        }
01828                   String objectname;
01829                   if((objectname = testSelection.getTestObjectHeader())!=null) {
01830                      guiControl.isInterface.launchExternalViewerWithOptions(objectname+getSelectedSerialNo());
01831                      }
01832                  }
01833           });  
01834 
01835 
01836        item1 = new JMenuItem("Module Configuration");
01837        item1.setFont(menuFont);
01838        testDataMenu.add(item1);
01839        item1.addActionListener(new java.awt.event.ActionListener() {
01840              public void actionPerformed(java.awt.event.ActionEvent evt) {
01841             JFrame frame2 = new JFrame("Module Configuration");                    
01842             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(getSelectedSerialNo()));
01843             frame2.pack();
01844             frame2.show();
01845                      }
01846 
01847           });  
01848        item1 = new JMenuItem("Dump test result");
01849        item1.setFont(menuFont);
01850        testDataMenu.add(item1);
01851        item1.addActionListener(new java.awt.event.ActionListener() {
01852              public void actionPerformed(java.awt.event.ActionEvent evt) {
01853                      TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01854                      if(testSelection==null)  {
01855                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01856                        return;
01857                        }
01858                      String resultObject=testSelection.getResultObjectHeader()+getSelectedSerialNo();
01859                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
01860                            javax.swing.JOptionPane.showMessageDialog(null,"No result for "+getSelectedSerialNo());
01861                            return;
01862                            }
01863                      TestSummaryIS result = new TestSummaryIS(); 
01864                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
01865                      java.util.Vector thisData = new java.util.Vector();
01866                      thisData.addElement(getSelectedSerialNo()+".txt");
01867                      thisData.addElement(result.dataString);
01868                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
01869                      }
01870 
01871           });  
01872        item1 = new JMenuItem("Full SCTDB Module Report");
01873        item1.setFont(menuFont);
01874        testDataMenu.add(item1);
01875        item1.addActionListener(new java.awt.event.ActionListener() {
01876              public void actionPerformed(java.awt.event.ActionEvent evt) {
01877              String sn = getSelectedSerialNo();
01878              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
01879              if(d.isOkToStart()) d.start();
01880              }
01881 
01882           });  
01883 
01884        }
01885    private void getIVScanMenu() {
01886        ivScanMenu = new JMenu("IVScan");
01887        ivScanMenu.setFont(menuFont);
01888        JMenuItem item1 = new JMenuItem("Test Report");
01889        item1.setFont(menuFont);
01890        ivScanMenu.add(item1);
01891        item1.addActionListener(new java.awt.event.ActionListener() {
01892              public void actionPerformed(java.awt.event.ActionEvent evt) {
01893 //                System.out.println("Selected "+popupCell.getSerialNo());
01894                    IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
01895                    if(ivTestSelection==null) {
01896                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01897                        return;
01898                        }
01899                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(ivTestSelection.getResultObjectHeader(),getSelectedSerialNo(),null);              
01900                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showIVTestReport(getSelectedSerialNo(),testResult);
01901                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
01902               }
01903           });  
01904 
01905        item1 = new JMenuItem("Plot IVScan");
01906        item1.setFont(menuFont);
01907        ivScanMenu.add(item1);
01908        item1.addActionListener(new java.awt.event.ActionListener() {
01909              public void actionPerformed(java.awt.event.ActionEvent evt) {
01910                    plotIVScanData(guiControl.tablesDisplayPane.getSelectedSerialNo());
01911               }
01912           });  
01913 
01914        item1 = new JMenuItem("Dump test result");
01915        item1.setFont(menuFont);
01916        ivScanMenu.add(item1);
01917        item1.addActionListener(new java.awt.event.ActionListener() {
01918              public void actionPerformed(java.awt.event.ActionEvent evt) {
01919                      IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
01920                      if(ivTestSelection==null)  {
01921                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01922                        return;
01923                        }
01924                      String resultObject=ivTestSelection.getResultObjectHeader()+getSelectedSerialNo();
01925                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
01926                            javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
01927                            return;
01928                            }
01929                      TestSummaryIS result = new TestSummaryIS(); 
01930                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
01931                      java.util.Vector thisData = new java.util.Vector();
01932                      thisData.addElement(getSelectedSerialNo()+".txt");
01933                      thisData.addElement(result.dataString);
01934                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
01935                      }
01936 
01937           });  
01938        item1 = new JMenuItem("Full SCTDB Module Report");
01939        item1.setFont(menuFont);
01940        ivScanMenu.add(item1);
01941        item1.addActionListener(new java.awt.event.ActionListener() {
01942              public void actionPerformed(java.awt.event.ActionEvent evt) {
01943              String sn = getSelectedSerialNo();
01944              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
01945              if(d.isOkToStart()) d.start();
01946              }
01947 
01948           });  
01949 
01950        }
01951 
01952    private void getSCTDBDataMenu() {
01953        sctdbDataSNMenu = new JMenu("Data Options");
01954        sctdbDataSNMenu.setFont(menuFont);
01955 
01956        JMenuItem item1 = new JMenuItem("Test Report");
01957        item1.setFont(menuFont);
01958        sctdbDataSNMenu.add(item1);
01959        item1.addActionListener(new java.awt.event.ActionListener() {
01960              public void actionPerformed(java.awt.event.ActionEvent evt) {
01961                TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01962                if(testSelection==null)  {
01963                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01964                        return;
01965                        }
01966                String resultObject= (testSelection.isSCTDBRodDaqData()) ? testSelection.getSCTDBRodDaqObjectHeader()+getSelectedSerialNo() : testSelection.getSCTDBObjectHeader()+getSelectedSerialNo();
01967                if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
01968                   javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
01969                   return;
01970                   }
01971                SCTDB_Data result = new SCTDB_Data(); 
01972                Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
01973                ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.SCTDAQTESTDATA, result.testNumber, 0);
01974                if(d.isOkToStart()) d.start();
01975              }
01976 
01977           });  
01978        item1 = new JMenuItem("Full Module Report");
01979        item1.setFont(menuFont);
01980        sctdbDataSNMenu.add(item1);
01981        item1.addActionListener(new java.awt.event.ActionListener() {
01982              public void actionPerformed(java.awt.event.ActionEvent evt) {
01983              String sn = getSelectedSerialNo();
01984              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
01985              if(d.isOkToStart()) d.start();
01986              }
01987 
01988           });  
01989 
01990 
01991        }
01992 
01993 //**************************************************************************
01994     private void getTableDataSNMenu() {
01995        dataManagerSNMenu = new JMenu("Data Manager");
01996        dataManagerSNMenu.setFont(menuFont);
01997 
01998        JMenuItem item = new JMenuItem("Plot Selected Data");
01999        item.setFont(menuFont);
02000        item.addActionListener(new java.awt.event.ActionListener() {
02001                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02002                     switch(guiControl.displayStatus.getStatus()) {
02003                        case DisplayStatus.IS_MONITOR:
02004                           String objectname;
02005                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewer(objectname);
02006                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
02007                         break;
02008                     default:
02009                      }                                   
02010                  }
02011              });
02012        dataManagerSNMenu.add(item);
02013 
02014        item = new JMenuItem("Plot Selected Data (with Options)");
02015        item.setFont(menuFont);
02016        item.addActionListener(new java.awt.event.ActionListener() {
02017                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02018                     switch(guiControl.displayStatus.getStatus()) {
02019                        case DisplayStatus.IS_MONITOR:
02020                           String objectname;
02021                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewerWithOptions(objectname);
02022                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
02023                         break;
02024                     default:
02025                      }                                   
02026                  }
02027              });
02028        dataManagerSNMenu.add(item);
02029 
02030 
02031 
02032        item = new JMenuItem("View Selected IS Object");
02033        item.setFont(menuFont);
02034        item.addActionListener(new java.awt.event.ActionListener() {
02035                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02036                     switch(guiControl.displayStatus.getStatus()) {
02037                        case DisplayStatus.IS_MONITOR:
02038                           String objectname;
02039                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.viewISData(objectname);
02040                           else javax.swing.JOptionPane.showMessageDialog(null,"No data available.");
02041                         break;
02042                     default:
02043                      }                                   
02044                  }
02045              });
02046 
02047        dataManagerSNMenu.add(item);
02048        item = new JMenuItem("View Module Configuration");
02049        item.setFont(menuFont);
02050        item.addActionListener(new java.awt.event.ActionListener() {
02051              public void actionPerformed(java.awt.event.ActionEvent evt) {
02052             JFrame frame2 = new JFrame("Module Configuration");                    
02053             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(getSelectedSerialNo()));
02054             frame2.pack();
02055             frame2.show();
02056                      }
02057 
02058           });  
02059        dataManagerSNMenu.add(item);
02060        }
02061 
02062       private JMenu getDisplayMenu() {
02063        JMenu menu = new JMenu("Display");
02064        menu.setBackground(backgroundColor);
02065        menu.setFont(menuFont);
02066        menu.setForeground(menuColor);
02067 
02068        JMenuItem item;
02069        for(int i=1;i<DisplayStatus.statusNames.length;i++) {
02070           item = new JMenuItem(DisplayStatus.statusNames[i]);
02071           item.setFont(menuFont);
02072           switch(i) {
02073              case DisplayStatus.MODULE_GROUP_SELECTION:  // ModuleGroup Selection
02074              item.addActionListener(new java.awt.event.ActionListener() {
02075                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02076                    guiControl.displayStatus.setModuleGroupSelectionMode();  
02077                    updateToolBar(DisplayStatus.MODULE_GROUP_SELECTION);           
02078                      }
02079              });
02080              break;
02081              case DisplayStatus.IS_MONITOR:  // Data Manager
02082              item.addActionListener(new java.awt.event.ActionListener() {
02083                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02084                    guiControl.displayStatus.setISMode(); 
02085                    updateToolBar(DisplayStatus.IS_MONITOR);           
02086                      }
02087              });
02088              break;
02089              case DisplayStatus.TEST_DATA:   // Test Results
02090              item.addActionListener(new java.awt.event.ActionListener() {
02091                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02092                     guiControl.displayStatus.setTestDataMode(-1);   
02093                    updateToolBar(DisplayStatus.TEST_DATA);           
02094                      }
02095              });
02096              break;
02097              case DisplayStatus.SCTDB_DATA:    // SCTDB Data
02098              item.addActionListener(new java.awt.event.ActionListener() {
02099                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02100                      guiControl.displayStatus.setSCTDBDataMode(-1);  
02101                      updateToolBar(DisplayStatus.SCTDB_DATA);         
02102                      }
02103              });
02104              break;
02105              case DisplayStatus.DCS_DATA:    // DCS Data
02106              item.addActionListener(new java.awt.event.ActionListener() {
02107                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02108                      guiControl.displayStatus.setDCSDataMode();  
02109                      updateToolBar(DisplayStatus.DCS_DATA);         
02110                      }
02111              });
02112              break;
02113             case DisplayStatus.SCTDB_RODDAQ_DATA:    // SctRodDaq Archive Data
02114              item.addActionListener(new java.awt.event.ActionListener() {
02115                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02116                      guiControl.displayStatus.setSCTDBRodDaqMode(-1);  
02117                      updateToolBar(DisplayStatus.SCTDB_RODDAQ_DATA);         
02118                      }
02119              });
02120              break;
02121             case DisplayStatus.IV_DATA:    // SctRodDaq Archive Data
02122              item.addActionListener(new java.awt.event.ActionListener() {
02123                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02124                     String ivdirectory = PreferencesInterface.getInstance().getPreference(PreferencesInterface.IV_DIRECTORY);
02125                     if(ivdirectory.equals(PreferencesInterface.unDefinedString)) javax.swing.JOptionPane.showMessageDialog(null,"You have not defined the IV data directory. You need to do this before importing IV scan data.");                        
02126                      guiControl.displayStatus.setIVDataMode();  
02127                      updateToolBar(DisplayStatus.IV_DATA);         
02128                      }
02129              });
02130              break;
02131              default:
02132              }
02133           menu.add(item);
02134 
02135           }
02136           return menu;
02137       }
02138 
02139    private void plotIVScanData(String serialNo) {
02140                    IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
02141                    if(ivTestSelection==null) {
02142                        javax.swing.JOptionPane.showMessageDialog(null,"No IV Scan selected.");
02143                        return;
02144                        }
02145                    String summary = "IV Scan Plots for Run "+Integer.toString(ivTestSelection.getRunNo())+", Scan "+Integer.toString(ivTestSelection.getScanNo());
02146                    DisplayGUI.plotters.IVScansData ivScansData = new DisplayGUI.plotters.IVScansData(summary);
02147                    for(java.util.Enumeration e = ConfigurationInterface.getInstance().getSerialNumberMap(guiControl.displayPane.getSCTView()).elements(); e.hasMoreElements();) {
02148                        ModuleCell thisCell = (ModuleCell) e.nextElement();
02149                        String sn = thisCell.getSerialNo();
02150                        SummaryReader.IVData ivData = guiControl.isInterface.getIVData(ivTestSelection.getResultObjectHeader(),thisCell.getSerialNo());
02151                        if(ivData!=null) ivScansData.add(sn,ivData.getDataPointSet());
02152                        }
02153                     DisplayGUI.plotters.IVPlotDisplay ivPlotDisplay = new DisplayGUI.plotters.IVPlotDisplay();
02154                     ivPlotDisplay.showData(ivScansData,serialNo);
02155                     }
02156 
02157 
02158 }
02159      

Generated on Sat Jul 31 14:20:56 2004 for SCT DAQ/DCS Software - Java by doxygen 1.3.5