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 import Sct_SctApi.*;
00024 import Sct.*;
00025 import sctConf.*;
00026 import SctData.*;
00027 
00028 public class GuiMenuBar2 extends JMenuBar implements displayParams,ActionListener,TestDataInfo {
00029     gui guiControl;
00030     ManualConfiguration manualConfiguration;
00031     private SystemInterface si;
00032     String option;
00033     private String[] configOptionNames={"Read Hardware Configuration","Manual Configuration..."};
00034 //    private String[] displayOptionNames={"ModuleGroup Selection","Data Manager","Test Results","SCTDAQ Reference","SctRodDaq Reference","DCS Info"};
00035     private String serialNumber;
00036 
00037     protected ISTree isTree;
00038     private JMenu menu, systemMenu, displayMenu, ccMenu, testMenu, panelTestMenu, panelDisplayMenu;
00039     private JMenu testResultMenu, sctdbDataMenu, configMenu, dcsOptionMenu, ivScanOptionMenu;
00040     public JMenu testDataMenu,sctdbDataSNMenu, dataManagerSNMenu, ivScanMenu;
00041     private JMenu testDataOptionMenu, panelTestDataOptionMenu, sctdbSCTDAQOptionMenu,sctdbRODDAQOptionMenu,tableDataOptionMenu, ccDataOptionMenu, displayOptionMenu, panelsctdbSCTDAQOptionMenu,panelsctdbRODDAQOptionMenu;
00042     private JMenuItem menuItem;
00043     private JMenuItem[] configOptions = new JMenuItem[configOptionNames.length];
00044 //    private JMenuItem[] displayOptions = new JMenuItem[DisplayStatus.statusNames.length-1];
00045 //     private JMenuItem ccPingItem, ccNMaskItem, ccStrobeDelayItem, ccThreePointGainItem, ccTrimItem, ccResponseCurveItem, ccNoiseItem, ccFullBypassItem, ccPipelineItem, ccTimeWalkItem;
00046  //    private JMenuItem ccCharacterisationItem;
00047 
00048     private JMenuItem sctapiPing, sctapiInitialise;
00049     private JMenuItem[] sctapiItems = new JMenuItem[testMenuNames.length];
00050 
00051     private JCheckBox sctdbAutoDownload = new JCheckBox("Enable SCTDAQ Auto-Download");
00052     private JCheckBox sctdbAutoUpload = new JCheckBox("Enable SctRodDaq Auto-Upload");
00053 //    private JCheckBox dcsEnabled = new JCheckBox("Enable DCS Monitoring");
00054     private String[] ccUpdateStrings = {"Update","No-Update","Wait"};
00055     private JCheckBox[] ccUpdateModes = new JCheckBox[ccUpdateStrings.length];
00056     public JCheckBox autoSelectMode = new JCheckBox("AutoSelect New Tests");
00057     public JCheckBox autoAssemblyMode = new JCheckBox("Auto-upload module positions");
00058 
00059 
00060     
00061     private JMenuItem scriptBeanShellItem, scriptJythonItem;
00062     private JMenuItem isTreeItem;
00063     private JCheckBox[] testFilterButtons = new JCheckBox[testMenuNames.length+1];
00064     private JMenu testFilterMenu;
00065 
00066     private JMenuItem[] testDataOptions = new JMenuItem[3];
00067 
00068     private JMenuItem[] preferenceItem = new JMenuItem[PreferencesInterface.getInstance().getNoPreferences()];
00069 
00070     private JMenuItem testReportItem;
00071 
00072     private JFrame hardwareWindow = null;
00073     
00074     private ModuleCommentPrompt moduleCommentPrompt = null;
00075     
00076     private ServiceStatusFrame serviceStatusFrame=null;
00077 
00078     int itemIndex;
00079 
00080     private DisplayChoiceToolbar displayChoiceToolbar;
00081 
00082     public GuiMenuBar2(gui parent) {
00083         guiControl=parent;
00084         createMenuBar();
00085     }
00086     public String getSelectedSerialNo() {
00087         return serialNumber;
00088     }
00089     public void setSelectedSerialNo(String sn) {
00090         serialNumber=sn;
00091     }
00092 
00093     public boolean autoUploadIsEnabled() {
00094       return sctdbAutoUpload.isSelected();
00095       }
00096 
00097     public void createMenuBar() {
00098 
00099 
00100         si = SystemInterface.getInstance();
00101 
00102 
00103        getTestDataMenu();
00104        getIVScanMenu();
00105        getSCTDBDataMenu();
00106        getTableDataSNMenu();
00107 
00108       
00109        systemMenu = new JMenu("System");
00110        systemMenu.setBackground(backgroundColor);
00111        systemMenu.setFont(menuFont);
00112        systemMenu.setForeground(menuColor);
00113 
00114        menuItem = new JMenuItem("Refresh");
00115        menuItem.setFont(menuFont);
00116        menuItem.addActionListener(new java.awt.event.ActionListener() {
00117                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00118                     si.refresh();  
00119                     guiControl.displayPane.refreshDisplay();                 
00120                      }
00121              });
00122        systemMenu.add(menuItem);
00123 
00124        menuItem = new JMenuItem("Hardware Configuration...");
00125        menuItem.setFont(menuFont);
00126        menuItem.addActionListener(new java.awt.event.ActionListener() {
00127              public void actionPerformed(java.awt.event.ActionEvent evt) {
00128             if(hardwareWindow==null) {
00129                 hardwareWindow = new JFrame("Hardware Configuration");
00130                 hardwareWindow.getContentPane().add(new HardwareConfigurationPanel());
00131                 hardwareWindow.pack();
00132                 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
00133                 java.awt.Dimension WSize = hardwareWindow.getSize();
00134                 hardwareWindow.setLocation((screenSize.width-(int)WSize.getWidth())/2,(screenSize.height-(int)WSize.getHeight())/2);
00135                 hardwareWindow.addWindowListener(new WindowAdapter() {
00136                             public void windowClosing(WindowEvent e) {
00137                                   hardwareWindow=null;
00138 //                                e.getWindow().dispose();
00139                             }
00140                         });
00141                 }
00142             hardwareWindow.show();
00143               }
00144           });
00145        systemMenu.add(menuItem);
00146        
00147        menuItem = new JMenuItem("Service Status...");
00148        menuItem.setFont(menuFont);
00149        menuItem.addActionListener(new java.awt.event.ActionListener() {
00150        public void actionPerformed(java.awt.event.ActionEvent evt) {
00151             if(serviceStatusFrame==null) serviceStatusFrame = new ServiceStatusFrame();
00152             else serviceStatusFrame.refresh();
00153               }
00154           });
00155        systemMenu.add(menuItem);      
00156 
00157 
00158 
00159        ccDataOptionMenu = getCCDataOptionMenu();
00160        systemMenu.add(ccDataOptionMenu);
00161        systemMenu.addSeparator();
00162        menuItem = new JMenuItem("Exit SctGUI");
00163        menuItem.setFont(menuFont);
00164        menuItem.addActionListener(new java.awt.event.ActionListener() {
00165                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00166                     guiControl.exitForm(null);                   
00167                      }
00168              });
00169        systemMenu.add(menuItem);
00170        add(systemMenu);      
00171 
00172 // Display menu
00173 
00174        displayMenu = getDisplayMenu();
00175        displayMenu.addSeparator();
00176        menuItem = new JMenuItem("Toolbar ...");
00177        menuItem.setFont(menuFont);
00178        menuItem.addActionListener(new java.awt.event.ActionListener() {
00179             public void actionPerformed(java.awt.event.ActionEvent evt) {
00180                      if(displayChoiceToolbar!=null) displayChoiceToolbar.setVisible(true);
00181                      else {
00182                          displayChoiceToolbar = new DisplayChoiceToolbar(guiControl);      
00183                          java.awt.Dimension s = displayChoiceToolbar.getSize();
00184                          displayChoiceToolbar.setSize((int)s.getWidth()+1,(int)s.getHeight()+1);
00185                          }                            
00186                      }
00187              });
00188        displayMenu.add(menuItem);
00189        add(displayMenu);
00190 
00191 // display menu for right mouse clicks on main display panel
00192        panelDisplayMenu = getDisplayMenu();
00193        panelDisplayMenu.setText("Select Display");
00194 
00195 // All tests
00196        testMenu = getTestInvokeMenu();
00197        testMenu.setBackground(backgroundColor);
00198        testMenu.setFont(menuFont);
00199        testMenu.setForeground(menuColor);
00200        add(testMenu);
00201 
00202        panelTestMenu = getTestInvokeMenu();
00203        panelTestMenu.setText("Invoke Tests");
00204        panelTestMenu.setFont(menuFont);
00205 
00206 // Options menu
00207        ivScanOptionMenu = getIVScanOptionMenu();
00208        dcsOptionMenu = getDCSOptionMenu();
00209        displayOptionMenu = getDisplayOptionMenu();
00210        testDataOptionMenu = getTestDataOptionMenu();
00211        tableDataOptionMenu = getTableDataOptionMenu();
00212        sctdbSCTDAQOptionMenu = getDBSCTDAQDataOptionMenu(false);
00213        sctdbRODDAQOptionMenu = getDBRODDAQDataOptionMenu(false);
00214        menu = new JMenu("Options");
00215        menu.setBackground(backgroundColor);
00216        menu.setFont(menuFont);
00217        menu.setForeground(menuColor);
00218 
00219        configMenu = new JMenu("Configuration");
00220        configMenu.setFont(menuFont);
00221        for(int i=0;i<configOptionNames.length;i++) {
00222           configOptions[i] = new JMenuItem(configOptionNames[i]);
00223           configOptions[i].setFont(menuFont);
00224           configMenu.add(configOptions[i]);
00225           switch(i) {
00226             case 0:
00227              configOptions[i].addActionListener(new java.awt.event.ActionListener() {
00228                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00229                     ConfigurationInterface.getInstance().Refresh();
00230                     guiControl.displayStatus.setConfigurationMode();                   
00231                      }
00232              });
00233              break;
00234             case 1:
00235              configOptions[i].addActionListener(new java.awt.event.ActionListener() {
00236                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00237                    guiControl.displayStatus.setModuleGroupSelectionMode();
00238                    if(manualConfiguration==null) manualConfiguration = new ManualConfiguration(guiControl);
00239                    else manualConfiguration.showFrame();                  
00240                      }
00241              });
00242             default:
00243             }
00244           }
00245        menu.add(configMenu);
00246        menu.add(displayOptionMenu);       
00247        menu.add(tableDataOptionMenu);
00248        menu.add(testDataOptionMenu);
00249      
00250        JMenu sctdbMenu = new JMenu("SCT Database");
00251        sctdbMenu.setFont(menuFont);
00252        sctdbMenu.add(sctdbSCTDAQOptionMenu);
00253        sctdbMenu.add(sctdbRODDAQOptionMenu);
00254        sctdbMenu.add(getAssemblyOptionMenu());
00255        menu.add(sctdbMenu);
00256        menu.add(dcsOptionMenu);
00257       
00258        menu.add(getBookkeepingMenu());
00259 
00260        add(menu);
00261 
00262        panelTestDataOptionMenu = getTestDataOptionMenu();
00263        panelsctdbSCTDAQOptionMenu = getDBSCTDAQDataOptionMenu(true);
00264        panelsctdbRODDAQOptionMenu = getDBRODDAQDataOptionMenu(true);
00265 
00266 
00267 // Tools menu
00268        menu = new JMenu("Tools");
00269        menu.setBackground(backgroundColor);
00270        menu.setFont(menuFont);
00271        menu.setForeground(menuColor);
00272        isTreeItem = new JMenuItem("IS Tree...");
00273        isTreeItem.setFont(menuFont);
00274        isTreeItem.addActionListener(this);
00275        menu.add(isTreeItem);
00276 
00277        JMenu menu2 = new JMenu("Scripting");
00278        menu2.setFont(menuFont);
00279        /*scriptJavaScriptItem = new JMenuItem("JavaScript");
00280        scriptJavaScriptItem.setFont(menuFont);
00281        scriptJavaScriptItem.addActionListener(this);
00282        menu2.add(scriptJavaScriptItem);*/
00283        scriptBeanShellItem = new JMenuItem("BeanShell");
00284        scriptBeanShellItem.setFont(menuFont);
00285        scriptBeanShellItem.addActionListener(this);
00286        menu2.add(scriptBeanShellItem);
00287        scriptJythonItem = new JMenuItem("Jython");
00288        scriptJythonItem.setFont(menuFont);
00289        scriptJythonItem.addActionListener(this);
00290        menu2.add(scriptJythonItem);
00291        menu.add(menu2);
00292 
00293        JMenuItem item = new JMenuItem("Run GarbageCollector");
00294        item.setFont(menuFont);
00295        item.addActionListener(new java.awt.event.ActionListener() {
00296             public void actionPerformed(java.awt.event.ActionEvent evt) {
00297                Runtime r = Runtime.getRuntime();
00298                long freeMem = r.freeMemory();        
00299                long maxMem = r.maxMemory();
00300                long totalMem = r.totalMemory();
00301                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.);
00302                r.gc();
00303                try {
00304                  Thread.sleep(500);
00305                } catch (InterruptedException ie) {}
00306                r.gc();
00307                freeMem = r.freeMemory();
00308                maxMem = r.maxMemory();
00309                totalMem = r.totalMemory();
00310                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.  );
00311                    }
00312               });
00313        menu.add(item);
00314        item = new JMenuItem("Refresh Display");
00315        item.setFont(menuFont);
00316        item.addActionListener(new java.awt.event.ActionListener() {
00317             public void actionPerformed(java.awt.event.ActionEvent evt) {
00318                guiControl.displayPane.setDisplayColors();
00319                guiControl.displayPane.refreshDisplay();
00320                    }
00321               });
00322        menu.add(item);
00323 
00324        item = new JMenuItem("Launch SctApi GUI");
00325        item.setFont(menuFont);
00326        item.addActionListener(new java.awt.event.ActionListener() {
00327             public void actionPerformed(java.awt.event.ActionEvent evt) {
00328                 JFrame frame = new JFrame("SctApi GUI");
00329                 frame.getContentPane().add(new GuiComponents.Panels.SctApiGui());
00330 
00331                 frame.pack();
00332                 frame.setVisible(true);
00333             }
00334            }); 
00335        menu.add(item);
00336 
00337        add(menu);
00338 
00339 // Help menu
00340        menu = new JMenu("Help");
00341        menu.setBackground(backgroundColor);
00342        menu.setFont(menuFont);
00343        menu.setForeground(menuColor);
00344        
00345        JMenuItem helpItem = new JMenuItem("View User Manual");
00346        helpItem.setFont(menuFont);
00347        menu.add(helpItem);
00348        helpItem.addActionListener(new java.awt.event.ActionListener() {
00349              public void actionPerformed(java.awt.event.ActionEvent evt) {
00350                    guiControl.htmlViewer.show("http://www.hep.phy.cam.ac.uk/~robinson/DisplayGUI.html","Online manual");
00351                    }
00352               });
00353               
00354        JMenuItem aboutItem = new JMenuItem("About");
00355        aboutItem.setFont(menuFont);
00356        menu.add(aboutItem);
00357        aboutItem.addActionListener(new java.awt.event.ActionListener() {
00358             public void actionPerformed(java.awt.event.ActionEvent evt) {
00359                 String v = Version.instance.getAllInformation();
00360                 String s = "SctGui is the user interface for end users.  See the manual for more information";                    
00361                 s += "\nSctGui Author: Dave Robinson.";
00362                 s += "\nSctDaqRod Authors: Alan Barr, Bruce Gallop, Matthew Palmer, Dave Robinson and Alexander Tricoli";
00363                 s += "\n\n" + v;
00364                 JOptionPane.showMessageDialog(guiControl, s, "About SctGui", JOptionPane.INFORMATION_MESSAGE);
00365             }
00366            });
00367       add(menu);
00368 
00369        add(javax.swing.Box.createHorizontalGlue());
00370 
00371 // Preferences menu
00372        PreferencesInterface prefs = PreferencesInterface.getInstance();
00373        menu = new JMenu("Preferences");
00374        menu.setBackground(backgroundColor);
00375        menu.setFont(menuFont);
00376        menu.setForeground(menuColor);
00377 
00378        for(int i=0;i<prefs.getNoPreferences();i++) {
00379          switch(i) {
00380          case PreferencesInterface.SCT_VIEW:
00381          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00382          preferenceItem[i].setFont(menuFont);
00383          menu.add(preferenceItem[i]);
00384              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00385              public void actionPerformed(java.awt.event.ActionEvent evt) {
00386                    Preference preference = new Preference(guiControl,PreferencesInterface.SCT_VIEW);   
00387                    guiControl.selectorPane.setSCTView(preference.getValue());                
00388                    }
00389               });
00390               break;
00391          case PreferencesInterface.INSTITUTE:
00392          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00393          preferenceItem[i].setFont(menuFont);
00394          menu.add(preferenceItem[i]);
00395              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00396              public void actionPerformed(java.awt.event.ActionEvent evt) {
00397                    Preference preference = new Preference(guiControl,PreferencesInterface.INSTITUTE);                   
00398                    }
00399               });
00400               break;
00401          case PreferencesInterface.PASSWORD:
00402          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00403          preferenceItem[i].setFont(menuFont);
00404          menu.add(preferenceItem[i]);
00405              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00406              public void actionPerformed(java.awt.event.ActionEvent evt) {
00407                    Preference preference = new Preference(guiControl,PreferencesInterface.PASSWORD);                   
00408                    }
00409               });
00410               break;
00411          case PreferencesInterface.PSVIEWER:
00412          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00413          preferenceItem[i].setFont(menuFont);
00414          menu.add(preferenceItem[i]);
00415              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00416              public void actionPerformed(java.awt.event.ActionEvent evt) {
00417                    Preference preference = new Preference(guiControl,PreferencesInterface.PSVIEWER);                   
00418                    }
00419               });
00420               break;
00421          case PreferencesInterface.SCRATCH_DIR:
00422          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00423          preferenceItem[i].setFont(menuFont);
00424          menu.add(preferenceItem[i]);
00425              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00426              public void actionPerformed(java.awt.event.ActionEvent evt) {
00427                    Preference preference = new Preference(guiControl,PreferencesInterface.SCRATCH_DIR);                   
00428                    }
00429               });
00430               break;
00431          case PreferencesInterface.UPLOAD_DIR:
00432          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00433          preferenceItem[i].setFont(menuFont);
00434          menu.add(preferenceItem[i]);
00435              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00436              public void actionPerformed(java.awt.event.ActionEvent evt) {
00437                    Preference preference = new Preference(guiControl,PreferencesInterface.UPLOAD_DIR);                   
00438                    }
00439               });
00440               break;
00441          case PreferencesInterface.WEB_LOOKUP_DIR:
00442          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
00443          preferenceItem[i].setFont(menuFont);
00444          menu.add(preferenceItem[i]);
00445              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
00446              public void actionPerformed(java.awt.event.ActionEvent evt) {
00447                    Preference preference = new Preference(guiControl,PreferencesInterface.WEB_LOOKUP_DIR);                   
00448                    }
00449               });
00450               break;
00451          default:
00452          }
00453 
00454          }
00455        add(menu);
00456 
00457        testFilterMenu = getTestFilterMenu();
00458   
00459        setBorder(javax.swing.BorderFactory.createEmptyBorder());
00460        setBackground(backgroundColor);
00461    }
00462 
00463 //****************************************************
00464     private void updateToolBar(int i) {
00465         if(displayChoiceToolbar!=null) displayChoiceToolbar.setButton(i);
00466     }
00467 
00468 //**********************************************************
00469     public void actionPerformed(ActionEvent e) {
00470         JMenuItem source = (JMenuItem)(e.getSource());
00471 
00472 
00473 // Scripting
00474         if(source==scriptBeanShellItem) {
00475             addNewConsole(ScriptingInterface.instance().getBeanShellInterpreter(), "BeanShell");
00476             return;
00477         }        
00478         /*if(source==scriptJavaScriptItem) {
00479             addNewConsole(ScriptingInterface.instance().getJavaScriptInterpreter(), "JavaScript");
00480             return;
00481             }*/
00482         if(source==scriptJythonItem) {
00483             addNewConsole(ScriptingInterface.instance().getJythonInterpreter(), "Jython");
00484             return;
00485             }
00486 // Tools
00487         if(source==isTreeItem) {
00488             if(isTree==null) isTree = new ISTree(guiControl,guiControl.isInterface.getISTree());
00489             else isTree.setTree(guiControl.isInterface.getISTree());
00490             return;
00491             }
00492 
00493 
00494         }
00495 //********************************************************
00496     public void enableCCMenuItems(boolean enabled) {
00497         java.awt.Component[] component = testMenu.getMenuComponents();
00498         for(int i=0;i<component.length;i++) {
00499             if(component[i].getClass().getName().startsWith("javax.swing.JPopupMenu")) break;
00500             if(!component[i].getClass().getName().startsWith("javax.swing.JMenu")) continue;             
00501             JMenu subMenu = (JMenu)component[i];
00502             for(int y=0;y<subMenu.getItemCount();y++) {
00503                 JMenuItem item = subMenu.getItem(y);
00504                 if(item!=null) item.setEnabled(enabled);
00505             }
00506         }       
00507         component = panelTestMenu.getMenuComponents();
00508         for(int i=0;i<component.length;i++) {
00509             if(component[i].getClass().getName().startsWith("javax.swing.JPopupMenu")) break;
00510             if(!component[i].getClass().getName().startsWith("javax.swing.JMenu")) continue;             
00511             JMenu subMenu = (JMenu)component[i];
00512             for(int y=0;y<subMenu.getItemCount();y++) {
00513                 JMenuItem item = subMenu.getItem(y);
00514                 if(item!=null) item.setEnabled(enabled);
00515             }
00516         }
00517     }
00518     
00519 
00520     public void enableDisplayMenuItems(boolean enabled) {
00521         displayMenu.setEnabled(enabled);
00522     }
00523            
00524     
00525     protected boolean addNewConsole(Interpreter interpreter, String suffix) {    
00526         if (interpreter == null) {
00527             System.out.println("Can only have 1 scripting window open at once\n");
00528             return false;
00529         }
00530         JFrame frame = new JFrame();
00531         JScrollPane scroll = new JScrollPane();
00532         scroll.setViewportView(interpreter.getConsole());
00533         frame.getContentPane().add(scroll);  
00534         frame.setTitle("Scripting Window:" + suffix);
00535         frame.show();
00536         frame.setSize(800, 500);        
00537         return true;
00538     }
00539     
00540 
00541    public void showCCPopupMenu(MouseEvent e) {
00542         JPopupMenu pMenu = ccDataOptionMenu.getPopupMenu();
00543         pMenu.show(e.getComponent(),e.getX(),e.getY());
00544         pMenu.setInvoker(ccDataOptionMenu);
00545         }
00546 //**********************************************
00547 // popup menus for tables
00548    public void showTablesPopupMenu(int clickedTable, MouseEvent e) {
00549         JPopupMenu pMenu;
00550         switch(clickedTable) {
00551         case 1:
00552           switch(guiControl.displayStatus.getStatus()) {
00553             case DisplayStatus.MODULE_GROUP_SELECTION:
00554               JMenu m = new JMenu("Comments");
00555               JMenuItem item = new JMenuItem("Edit/Add Module Comments...");
00556               item.setFont(menuFont);
00557               item.addActionListener(new java.awt.event.ActionListener() {
00558                 public void actionPerformed(java.awt.event.ActionEvent evt) {
00559                   showModuleCommentPrompt(getSelectedSerialNo());
00560                      }
00561 
00562                 });
00563             m.add(item);
00564             pMenu = m.getPopupMenu();
00565             pMenu.show(e.getComponent(),e.getX(),e.getY());
00566             break;
00567 
00568             case DisplayStatus.IS_MONITOR:
00569               pMenu = dataManagerSNMenu.getPopupMenu();
00570               pMenu.show(e.getComponent(),e.getX(),e.getY());
00571               pMenu.setInvoker(dataManagerSNMenu);
00572               break;
00573             case DisplayStatus.TEST_DATA:
00574               pMenu = testDataMenu.getPopupMenu();
00575               pMenu.show(e.getComponent(),e.getX(),e.getY());
00576               pMenu.setInvoker(testDataMenu);
00577               break;
00578             case DisplayStatus.SCTDB_DATA:
00579               pMenu = sctdbDataSNMenu.getPopupMenu();
00580               pMenu.show(e.getComponent(),e.getX(),e.getY());
00581               pMenu.setInvoker(sctdbDataSNMenu);
00582               break;
00583             case DisplayStatus.SCTDB_RODDAQ_DATA:
00584               pMenu = sctdbDataSNMenu.getPopupMenu();
00585               pMenu.show(e.getComponent(),e.getX(),e.getY());
00586               pMenu.setInvoker(sctdbDataSNMenu);
00587               break;
00588             case DisplayStatus.IV_DATA:
00589               pMenu = ivScanMenu.getPopupMenu();
00590               pMenu.show(e.getComponent(),e.getX(),e.getY());
00591               pMenu.setInvoker(ivScanMenu);
00592               break;
00593             default:
00594           }
00595           break;
00596          case 0:
00597           switch(guiControl.displayStatus.getStatus()) {
00598             case DisplayStatus.IS_MONITOR:
00599               pMenu = getTable0Menu().getPopupMenu();
00600               pMenu.show(e.getComponent(),e.getX(),e.getY());
00601 //              pMenu.setInvoker(tableDataOptionMenu);
00602               break;
00603             case DisplayStatus.TEST_DATA:
00604               pMenu = testFilterMenu.getPopupMenu();
00605               pMenu.show(e.getComponent(),e.getX(),e.getY());
00606               pMenu.setInvoker(testFilterMenu);
00607               break;
00608             default:
00609           }
00610           break;
00611          default:
00612          }
00613 
00614         }
00615 
00616    public void showPopupMenu(MouseEvent e) {
00617         JPopupMenu pMenu;
00618         JMenu newMenu = new JMenu();
00619         switch(guiControl.displayStatus.getStatus()) {
00620         case DisplayStatus.UNDEFINED:
00621            pMenu = configMenu.getPopupMenu();
00622            pMenu.show(e.getComponent(),e.getX(),e.getY());
00623            pMenu.setInvoker(configMenu);
00624            break;  
00625         case DisplayStatus.MODULE_GROUP_SELECTION:
00626            pMenu = displayMenu.getPopupMenu();
00627            pMenu.show(e.getComponent(),e.getX(),e.getY());
00628            pMenu.setInvoker(displayMenu);
00629            break;  
00630         case DisplayStatus.IS_MONITOR:
00631            newMenu.add(panelDisplayMenu);
00632            newMenu.add(panelTestMenu);
00633            newMenu.addSeparator();
00634            JMenuItem rItem = new JMenuItem("Retrieve Archived Data");
00635            rItem.setFont(menuFont);
00636            newMenu.add(rItem);
00637            rItem.addActionListener(new java.awt.event.ActionListener() {
00638             public void actionPerformed(java.awt.event.ActionEvent evt) {
00639                ArchiveQueryBox b = new ArchiveQueryBox(guiControl);
00640                b.setLocationRelativeTo(guiControl);
00641                b.setVisible(true);
00642             }
00643            });
00644 
00645 //           pMenu = testMenu.getPopupMenu();
00646            pMenu = newMenu.getPopupMenu();
00647            pMenu.show(e.getComponent(),e.getX(),e.getY());
00648 //           pMenu.setInvoker(testMenu);
00649            pMenu.setInvoker(newMenu);
00650            break;  
00651         case DisplayStatus.TEST_DATA:
00652            newMenu.add(panelDisplayMenu);
00653            newMenu.add(panelTestMenu);
00654            newMenu.add(panelTestDataOptionMenu);
00655            pMenu = newMenu.getPopupMenu();
00656            pMenu.show(e.getComponent(),e.getX(),e.getY());
00657            pMenu.setInvoker(newMenu);
00658            break;
00659         case DisplayStatus.SCTDB_DATA:
00660            newMenu.add(panelDisplayMenu);
00661            newMenu.add(panelsctdbSCTDAQOptionMenu);
00662            pMenu = newMenu.getPopupMenu();
00663            pMenu.show(e.getComponent(),e.getX(),e.getY());
00664            pMenu.setInvoker(newMenu);
00665            break;
00666         case DisplayStatus.SCTDB_RODDAQ_DATA:
00667            newMenu.add(panelDisplayMenu);
00668            newMenu.add(panelsctdbRODDAQOptionMenu);
00669            pMenu = newMenu.getPopupMenu();
00670            pMenu.show(e.getComponent(),e.getX(),e.getY());
00671            pMenu.setInvoker(newMenu);
00672            break;
00673         case DisplayStatus.DCS_DATA:
00674            newMenu.add(panelDisplayMenu);
00675            newMenu.add(panelTestMenu);
00676            pMenu = newMenu.getPopupMenu();
00677            pMenu.show(e.getComponent(),e.getX(),e.getY());
00678            pMenu.setInvoker(newMenu);
00679            break;
00680         case DisplayStatus.IV_DATA:
00681            newMenu.add(panelDisplayMenu);
00682            newMenu.add(ivScanOptionMenu);
00683            pMenu = newMenu.getPopupMenu();
00684            pMenu.show(e.getComponent(),e.getX(),e.getY());
00685            pMenu.setInvoker(newMenu);
00686            break;
00687   
00688         default:
00689            }
00690         }
00691 //**************************************************
00692    private JMenu getTestDataOptionMenu() {
00693        JMenu thisMenu = new JMenu("Test Results");
00694        thisMenu.setFont(menuFont);
00695        testDataOptions[0] = new JMenuItem("ROD Data");
00696        testDataOptions[0].setFont(menuFont);
00697        testDataOptions[0].addActionListener(new java.awt.event.ActionListener() {
00698                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00699                     guiControl.displayPane.setDisplayOption(0);                   
00700                      }
00701              });
00702        testDataOptions[1] = new JMenuItem("SCTDAQ Reference Data");
00703        testDataOptions[1].setFont(menuFont);
00704        testDataOptions[1].addActionListener(new java.awt.event.ActionListener() {
00705                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00706                     guiControl.displayPane.setDisplayOption(1);                   
00707                      }
00708              });
00709 
00710        testDataOptions[2] = new JMenuItem("Comparison ROD-SCTDAQ");
00711        testDataOptions[2].setFont(menuFont);
00712        testDataOptions[2].addActionListener(new java.awt.event.ActionListener() {
00713                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00714                     guiControl.displayPane.setDisplayOption(2);                   
00715                      }
00716              });
00717        thisMenu.add(testDataOptions[0]);
00718        thisMenu.add(testDataOptions[1]);
00719        thisMenu.add(testDataOptions[2]);
00720        
00721        thisMenu.addSeparator();
00722        
00723        JMenuItem item = new JMenuItem("Summary List...");
00724        item.setFont(menuFont);
00725        item.addActionListener(new java.awt.event.ActionListener() {
00726                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00727 
00728                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00729                   IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
00730                   int testIndex = (testSelection!=null) ? testSelection.getTestIndex() : -1;
00731                   if(testIndex==-1) {
00732                     javax.swing.JOptionPane.showMessageDialog(null,"No test is currently selected.");
00733                     return;
00734                     }
00735                   int parameterIndex = guiControl.selectorPane.getDisplayParameterIndex();
00736                   if(parameterIndex<0) {
00737                   javax.swing.JOptionPane.showMessageDialog(null,"No test parameter is currently selected.");
00738                     return;
00739                     }
00740 
00741                   String header = testSelection.getResultObjectHeader();
00742 
00743                   java.util.Vector theTable = new java.util.Vector();
00744                   java.util.Vector theLine = new java.util.Vector();
00745                   theLine.addElement("Serial No");
00746                   if(parameterIndex>3) for(int i=4;i<chipOptions.length;i++) theLine.addElement(chipOptions[i]);
00747                   else theLine.addElement("Data");
00748                   theTable.addElement(theLine);
00749 
00750                   java.util.Map dcsMap = null;
00751 //       if(displayStatus==DisplayStatus.DCS_DATA && guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
00752                  if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
00753 
00754 // enumerate through all modules
00755 
00756                   java.util.Set moduleList = guiControl.config.getSortedVector(guiControl.displayPane.getSCTView());
00757                   for (java.util.Iterator i = moduleList.iterator(); i.hasNext(); ) {
00758                     String sn=(String)i.next();
00759 
00760                     SummaryReader.DCSInfo dcsInfo = (dcsMap!=null) ? (SummaryReader.DCSInfo)dcsMap.get(sn) : null;
00761                     theLine = guiControl.isInterface.getTestDataLine(header,sn,testIndex,dcsInfo);
00762                     if(theLine!=null) theTable.addElement(theLine);
00763                     }
00764                    String param = guiControl.selectorPane.getDisplayParameter();
00765                    param+=" Data for "+testNames[testSelection.getTestIndex()]+" Run "+Integer.toString(testSelection.getRunNo())+" Scan "+Integer.toString(testSelection.getScanNo());
00766                    guiUtilities.SpreadsheetViewer.getInstance().update(param,theTable);
00767 
00768                      }
00769              });
00770       thisMenu.add(item);
00771       
00772        item = new JMenuItem("Reference Data Comparison Report");
00773        item.setFont(menuFont);
00774        item.addActionListener(new java.awt.event.ActionListener() {
00775                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00776 
00777                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00778                   int testIndex = (testSelection!=null) ? testSelection.getTestIndex() : -1;
00779                   if(testIndex==-1) {
00780                     javax.swing.JOptionPane.showMessageDialog(null,"No test is currently selected.");
00781                     return;
00782                     }
00783                   if(!testIsSCTDAQ[testIndex]) {
00784                     javax.swing.JOptionPane.showMessageDialog(null,testNames[testIndex]+" is not a SCTDAQ test - no reference comparison is possible.");
00785                     return;
00786                     }
00787 
00788                   String header = testSelection.getResultObjectHeader();
00789 
00790                   java.util.Vector theTable = new java.util.Vector();
00791                   java.util.Vector theLine = new java.util.Vector();
00792                   theLine.addElement("Serial No");
00793                   theLine.addElement("Parameter");
00794                   theLine.addElement("Tolerance");
00795                   theLine.addElement("SctRodDaq Data");
00796                   theLine.addElement("Reference Data");
00797                   theLine.addElement("Comments");
00798                   theTable.addElement(theLine);
00799                   
00800                   String resultObjectHeader = testSelection.getResultObjectHeader();
00801                   String sctdbObjectHeader = testSelection.getSCTDBObjectHeader();
00802 
00803 // enumerate through all modules
00804 
00805                   java.util.Set moduleList = guiControl.config.getSortedVector(guiControl.displayPane.getSCTView());
00806                   for (java.util.Iterator i = moduleList.iterator(); i.hasNext(); ) {
00807 
00808                     String sn=(String)i.next();
00809                     ModuleConfiguration mConfig=null;
00810                     try {
00811                        Sct_SctApi.SctApiIPC api = SystemInterface.getInstance().getSctApi();
00812                        if (api != null) {
00813                        int mid = api.findModuleSerial(sn);
00814                            ABCDModule data = api.retrieveModule(mid);
00815                            mConfig = new ModuleConfiguration(data);
00816                            }
00817                     }catch(Exception e2){System.err.println("SctGUI: Cannot access module config for module "+sn);}
00818 
00819                     SummaryReader.Test newTestResult = guiControl.isInterface.getTest(resultObjectHeader,sn,null);
00820                     if(newTestResult==null) continue;
00821                     SummaryReader.Test refTestResult = guiControl.isInterface.getSCTDBTest(sctdbObjectHeader+sn);
00822                     if(refTestResult==null) {
00823                         theLine = new java.util.Vector();
00824                         theLine.addElement(sn);
00825                         theLine.addElement("n/a");
00826                         theLine.addElement("n/a");
00827                         theLine.addElement("n/a");
00828                         theLine.addElement("NO DATA");
00829                         theLine.addElement("Please download reference data");
00830                         theTable.addElement(theLine);
00831                         continue;
00832                         }
00833 
00834 
00835                     // first look for defects
00836                     java.util.Map refDefectKeys = new java.util.HashMap();
00837                     for(int k=0;k<refTestResult.getNoDefects();k++) {
00838                        SummaryReader.DefectInfo defectInfo = refTestResult.getDefectInfo(k);
00839                        refDefectKeys.put(defectInfo.getDefectKey(),defectInfo.getName());
00840                        }
00841                     for(int k=0;k<newTestResult.getNoDefects();k++) {
00842                       SummaryReader.DefectInfo defectInfo = newTestResult.getDefectInfo(k);
00843                       String newKey = defectInfo.getDefectKey();
00844                       String newName = defectInfo.getName();
00845                       if(refDefectKeys.containsKey(newKey)) {
00846                         String name = (String)refDefectKeys.get(newKey);
00847                         if(name.equals(newName)) continue;
00848                         theLine = new java.util.Vector();
00849                         theLine.addElement(sn);
00850                         theLine.addElement("Defects");
00851                         theLine.addElement("Zero");
00852                         theLine.addElement(newKey+" ("+newName+")");
00853                         theLine.addElement(newKey+" ("+name+")");
00854                         theLine.addElement("Different defect type");
00855                         theTable.addElement(theLine);
00856                         continue;
00857                         }
00858                       theLine = new java.util.Vector();
00859                       theLine.addElement(sn);
00860                       theLine.addElement("Defects");
00861                       theLine.addElement("Zero");
00862                       theLine.addElement(newKey+" ("+newName+")");
00863                       theLine.addElement("Not Present");
00864                       theLine.addElement("NEW DEFECT");
00865                       theTable.addElement(theLine);
00866                       }
00867                       
00868                      java.util.Map newDefectKeys = new java.util.HashMap();
00869                     for(int k=0;k<newTestResult.getNoDefects();k++) {
00870                        SummaryReader.DefectInfo defectInfo = newTestResult.getDefectInfo(k);
00871                        newDefectKeys.put(defectInfo.getDefectKey(),defectInfo.getName());
00872                        }
00873                     for(int k=0;k<refTestResult.getNoDefects();k++) {
00874                       SummaryReader.DefectInfo defectInfo = refTestResult.getDefectInfo(k);
00875                       String refKey = defectInfo.getDefectKey();
00876                       String refName = defectInfo.getName();
00877                       if(!newDefectKeys.containsKey(refKey)) {
00878                          theLine = new java.util.Vector();
00879                          theLine.addElement(sn);
00880                          theLine.addElement("Defects");
00881                          theLine.addElement("Zero");
00882                          theLine.addElement("Not Present");
00883                          theLine.addElement(refKey+"  "+refName+")");
00884                          theLine.addElement("Old defect no longer present");
00885                          theTable.addElement(theLine);
00886                          }
00887                        }
00888 
00889                     PARAMLOOP:
00890                     for(int parameterIndex=0;parameterIndex<testParameters[testIndex].length;parameterIndex++) {
00891                       if(!testIsDefined[testIndex]) continue;
00892                       if(!doComparisons[testIndex][parameterIndex]) continue;
00893                       for(int k=4;k<chipOptions.length;k++) {
00894                         Double newData = newTestResult.getLastDataBlock().get(k,parameterIndex-parameterOffset);
00895                         Double refData = (refTestResult!=null) ? refTestResult.getLastDataBlock().get(k,parameterIndex-parameterOffset) : null;
00896                         if(refData==null) {
00897                           theLine = new java.util.Vector();
00898                           theLine.addElement(sn);
00899                           theLine.addElement(testParameters[testIndex][parameterIndex]);
00900                           theLine.addElement(Double.toString(testDataTolerances[testIndex][parameterIndex]));
00901                           theLine.addElement(newData.toString());
00902                           theLine.addElement("NO DATA");
00903                           theLine.addElement("Please download reference data!");
00904                           theTable.addElement(theLine);
00905                           break PARAMLOOP;
00906                           }
00907                         double referenceData = refData.doubleValue();
00908                         try {
00909                         // apply cfactor corrections if appropriate, as sctdaq was taken with cfactor=1.0
00910                         switch(testIndex) {
00911                            case TEST_3PTGAIN:
00912                            case TEST_NPTGAIN:
00913                              if(mConfig!=null) {
00914                                double cfactor =  (double)mConfig.getChipConfiguration(k-4).getCalFactor();
00915                                if(parameterIndex==11) referenceData *= cfactor;
00916                                else if(parameterIndex==6) referenceData /= cfactor;
00917                                }
00918                            break;
00919                            case TEST_NOISE:
00920                               if(mConfig!=null && parameterIndex==7) {
00921                                 double cfactor =  (double)mConfig.getChipConfiguration(k-4).getCalFactor();
00922                                 referenceData *= cfactor;
00923                                 }
00924                            break;
00925                            default:
00926                            }
00927                         }catch(Exception e3){System.err.println("Exception retrieving cfactor for chip "+Integer.toString(k-4)+", module "+sn);}
00928 
00929 
00930                         double diff = newData.doubleValue()-referenceData;
00931                         if(Math.abs(diff)>testDataTolerances[testIndex][parameterIndex]) {
00932                           theLine = new java.util.Vector();
00933                           theLine.addElement(sn);
00934                           theLine.addElement(testParameters[testIndex][parameterIndex]);
00935                           theLine.addElement(Double.toString(testDataTolerances[testIndex][parameterIndex]));
00936                           theLine.addElement(newData.toString());
00937                           theLine.addElement(refData.toString());
00938                           String label = (diff>0.) ? "too high" : "too Low";
00939                           theLine.addElement(chipOptions[k]+" data "+label);
00940                           theTable.addElement(theLine);
00941                           }
00942                        } // loop on chip
00943                     } // loop on parameterIndex
00944                   } // loop on moduleList
00945                   if(theTable.size()==1) { // titles only!
00946                     StringBuffer b = new StringBuffer("SctRodDaq in good agreement with SCTDAQ Reference Data");
00947                     b.append("\nfor "+testNames[testSelection.getTestIndex()]+" Run "+Integer.toString(testSelection.getRunNo())+" Scan "+Integer.toString(testSelection.getScanNo()));
00948                     b.append("\nParameters compared:");
00949                     for(int parameterIndex=0;parameterIndex<testParameters[testIndex].length;parameterIndex++) {
00950                       if(testIsDefined[testIndex] && doComparisons[testIndex][parameterIndex]) b.append("\n"+testParameters[testIndex][parameterIndex]);
00951                       }
00952                     javax.swing.JOptionPane.showMessageDialog(null,b.toString());
00953                     return;
00954                     }
00955                    String param = "SctRodDaq/SCTDAQ Discrepancy List for "+testNames[testSelection.getTestIndex()]+" Run "+Integer.toString(testSelection.getRunNo())+" Scan "+Integer.toString(testSelection.getScanNo());
00956                    guiUtilities.SpreadsheetViewer.getInstance().update(param,theTable);
00957 
00958                      }
00959              });
00960       thisMenu.add(item);
00961       thisMenu.addSeparator();
00962 
00963 
00964        item = new JMenuItem("Upload to SCT Database");
00965        item.setFont(menuFont);
00966        item.addActionListener(new java.awt.event.ActionListener() {
00967                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00968                     TestSelection t = guiControl.tablesDisplayPane.getTestSelection();
00969                     if(t==null) {
00970                       javax.swing.JOptionPane.showMessageDialog(null,"There is no Data to upload!");
00971                       return;
00972                       }
00973                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the data for Run/Scan "+t.getRunNo()+"/"+t.getScanNo()+"?");
00974                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
00975                     UploadManager upload = new UploadManager(guiControl);
00976                      }
00977              });
00978        thisMenu.add(item);
00979 
00980        return thisMenu;
00981        }
00982 //**************************************************************************
00983     private JMenu getDisplayOptionMenu() {
00984        JMenu thisMenu = new JMenu("Display");
00985        thisMenu.setFont(menuFont);
00986 
00987        JMenuItem item = new JMenuItem("Clear Result Cache");
00988        item.setFont(menuFont);
00989        item.addActionListener(new java.awt.event.ActionListener() {
00990                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00991                     System.out.println("SctGUI: Clearing cache (was "+guiControl.isInterface.cache.size()+" objects deep)");
00992                     guiControl.isInterface.cache.clear();
00993                  }
00994              });
00995        thisMenu.add(item);
00996 
00997        item = new JMenuItem("Reset all Color Scales");
00998        item.setFont(menuFont);
00999        item.addActionListener(new java.awt.event.ActionListener() {
01000                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01001                    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);
01002                    if(response==javax.swing.JOptionPane.YES_OPTION) {
01003                       ColorScaleManager.getInstance().clearAll();
01004                       guiControl.colorScalePane.setColorScale();
01005                       guiControl.displayPane.setDisplayColors();
01006                       guiControl.displayPane.refreshDisplay();
01007                       }
01008                         
01009                  }
01010              });
01011        thisMenu.add(item);
01012 
01013        autoSelectMode.setFont(menuFont);
01014        autoSelectMode.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.AUTO_TEST_SELECT).equals("TRUE"));
01015        thisMenu.add(autoSelectMode);
01016        autoSelectMode.addActionListener(new java.awt.event.ActionListener() {
01017                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01018                     String status = autoSelectMode.isSelected() ? "TRUE" : "FALSE";
01019                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.AUTO_TEST_SELECT,status);
01020                  }
01021              });
01022 
01023        return thisMenu;
01024        }
01025 
01026 //**************************************************************************
01027     private JMenu getBookkeepingMenu() {
01028        JMenu thisMenu = new JMenu("Book-keeping");
01029        thisMenu.setFont(menuFont);
01030 
01031        BookKeeper sbk = BookKeeper.getInstance();
01032 
01033        sbk.bookkeepingEnabled.setFont(menuFont);
01034        thisMenu.add(sbk.bookkeepingEnabled);
01035 
01036 
01037        thisMenu.addSeparator();
01038 
01039        sbk.runPromptEnabled.setFont(menuFont);
01040        thisMenu.add(sbk.runPromptEnabled);
01041 
01042 
01043        sbk.testPromptEnabled.setFont(menuFont);
01044        thisMenu.add(sbk.testPromptEnabled);
01045 
01046 
01047        return thisMenu;
01048        }
01049 //**************************************************************************
01050     private JMenu getTableDataOptionMenu() {
01051        JMenu thisMenu = new JMenu("Data Manager");
01052        thisMenu.setFont(menuFont);
01053 
01054        JMenuItem item = new JMenuItem("Plot Selected Data");
01055        item.setFont(menuFont);
01056        item.addActionListener(new java.awt.event.ActionListener() {
01057                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01058                     switch(guiControl.displayStatus.getStatus()) {
01059                        case DisplayStatus.IS_MONITOR:
01060                           String objectname;
01061                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewer(objectname);
01062                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01063                         break;
01064                     default:
01065                      }                                   
01066                  }
01067              });
01068        thisMenu.add(item);
01069 
01070       item = new JMenuItem("Plot (with Options) Selected Data");
01071        item.setFont(menuFont);
01072        item.addActionListener(new java.awt.event.ActionListener() {
01073                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01074                     switch(guiControl.displayStatus.getStatus()) {
01075                        case DisplayStatus.IS_MONITOR:
01076                           String objectname;
01077                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewerWithOptions(objectname);
01078                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01079                         break;
01080                     default:
01081                      }                                   
01082                  }
01083              });
01084        thisMenu.add(item);
01085 
01086        item = new JMenuItem("Delete Selected Test(s)");
01087        item.setFont(menuFont);
01088        item.addActionListener(new java.awt.event.ActionListener() {
01089                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01090                     switch(guiControl.displayStatus.getStatus()) {
01091                        case DisplayStatus.IS_MONITOR:
01092                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01093                          if(testSelection==null) {
01094                              javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01095                              return;
01096                              } 
01097                          int selectedRow = guiControl.tablesDisplayPane.getSelectedTest();
01098                          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);
01099                          if(response==JOptionPane.NO_OPTION) return;
01100                          guiControl.isInterface.removeTests(guiControl.tablesDisplayPane.getTestControlObjectNames(),selectedRow,selectedRow); 
01101                          guiControl.tablesDisplayPane.updateTables();
01102                          break;
01103                        default:
01104                      }                                   
01105                  }
01106              });
01107        thisMenu.add(item);
01108 
01109 
01110        item = new JMenuItem("View Selected IS Object");
01111        item.setFont(menuFont);
01112        item.addActionListener(new java.awt.event.ActionListener() {
01113                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01114                     switch(guiControl.displayStatus.getStatus()) {
01115                        case DisplayStatus.IS_MONITOR:
01116                           String objectname;
01117                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.viewISData(objectname);
01118                           else javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01119                         break;
01120                     default:
01121                      }                                   
01122                  }
01123              });
01124 
01125        thisMenu.add(item);
01126 
01127        item = new JMenuItem("View Selected Module Configuration");
01128        item.setFont(menuFont);
01129        item.addActionListener(new java.awt.event.ActionListener() {
01130              public void actionPerformed(java.awt.event.ActionEvent evt) {
01131                String sn = guiControl.tablesDisplayPane.getSelectedSerialNo();
01132                if(sn==null) return;
01133                   JFrame frame2 = new JFrame("Module Configuration");                                
01134                   frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(sn));
01135                   frame2.pack();
01136                   frame2.show();
01137                      }
01138 
01139           });  
01140        thisMenu.add(item);
01141 
01142        item = new JMenuItem("Retrieve Archived Data");
01143        item.setFont(menuFont);
01144        item.addActionListener(new java.awt.event.ActionListener() {
01145             public void actionPerformed(java.awt.event.ActionEvent evt) {
01146                ArchiveQueryBox b = new ArchiveQueryBox(guiControl);
01147                b.setLocationRelativeTo(guiControl);
01148                b.setVisible(true);
01149             }
01150            });
01151        thisMenu.add(item);
01152 
01153        return thisMenu;
01154        }
01155 //**************************************************************************
01156     private JMenu getTable0Menu() {
01157        JMenu thisMenu = new JMenu("Data Manager - table0");
01158 
01159        thisMenu.setFont(menuFont);
01160 
01161        JMenuItem item = new JMenuItem("Add/Edit Run Comments...");
01162        item.setFont(menuFont);
01163        item.addActionListener(new java.awt.event.ActionListener() {
01164                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01165                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01166                          if(testSelection==null) {
01167                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
01168                              return;
01169                              }
01170                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), null);                          
01171                  }
01172              });
01173        thisMenu.add(item);
01174 
01175        item = new JMenuItem("Add/Edit Test Comments...");
01176        item.setFont(menuFont);
01177        item.addActionListener(new java.awt.event.ActionListener() {
01178                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01179                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01180                          if(testSelection==null) {
01181                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
01182                              return;
01183                              }
01184                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), testSelection.getTestName());                          
01185                  }
01186              });
01187        thisMenu.add(item);
01188 
01189        thisMenu.addSeparator();
01190 
01191        item = new JMenuItem("Delete Selected Test(s)");
01192        item.setFont(menuFont);
01193        item.addActionListener(new java.awt.event.ActionListener() {
01194                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01195                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01196                          if(testSelection==null) {
01197                              javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01198                              return;
01199                              }
01200                          int selectedRow = guiControl.tablesDisplayPane.getSelectedTest();
01201                          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);
01202                          if(response==JOptionPane.NO_OPTION) return;
01203                          guiControl.isInterface.removeTests(guiControl.tablesDisplayPane.getTestControlObjectNames(),selectedRow,selectedRow); 
01204                          guiControl.tablesDisplayPane.updateTables();                       
01205                  }
01206              });
01207        thisMenu.add(item);
01208 
01209 
01210 
01211        return thisMenu;
01212        }
01213     private JMenu getDCSOptionMenu() {
01214        JMenu thisMenu = new JMenu("DCS");
01215 
01216        thisMenu.setFont(menuFont);
01217 
01218        JMenuItem item = new JMenuItem("IS Server Name...");
01219        item.setFont(menuFont);
01220        thisMenu.add(item);
01221        item.addActionListener(new java.awt.event.ActionListener() {
01222              public void actionPerformed(java.awt.event.ActionEvent evt) {
01223                    Preference preference = new Preference(guiControl,PreferencesInterface.DCS_SERVER_NAME);                      
01224                    }
01225               });
01226        item = new JMenuItem("IV Scan Data Directory...");
01227        item.setFont(menuFont);
01228        thisMenu.add(item);
01229        item.addActionListener(new java.awt.event.ActionListener() {
01230              public void actionPerformed(java.awt.event.ActionEvent evt) {
01231                    Preference preference = new Preference(guiControl,PreferencesInterface.IV_DIRECTORY);                      
01232                    }
01233               });
01234        thisMenu.addSeparator();
01235 
01236        item = new JMenuItem("Import IV Scans...");
01237        item.setFont(menuFont);
01238        thisMenu.add(item);
01239        item.addActionListener(new java.awt.event.ActionListener() {
01240              public void actionPerformed(java.awt.event.ActionEvent evt) {
01241                    new IVScanLister(guiControl.displayPane.getSCTView()).show();                     
01242                    }
01243               });
01244        item = new JMenuItem("Plot Selected IVScans");
01245        item.setFont(menuFont);
01246        thisMenu.add(item);
01247        item.addActionListener(new java.awt.event.ActionListener() {
01248              public void actionPerformed(java.awt.event.ActionEvent evt) {
01249                    plotIVScanData(null);                     
01250                    }
01251               });
01252        item = new JMenuItem("Upload Selected IVScans to SCT Database");
01253        item.setFont(menuFont);
01254        thisMenu.add(item);
01255        item.addActionListener(new java.awt.event.ActionListener() {
01256              public void actionPerformed(java.awt.event.ActionEvent evt) {
01257                     IVTestSelection i = guiControl.tablesDisplayPane.getIVTestSelection();
01258                     if(i==null) {
01259                       javax.swing.JOptionPane.showMessageDialog(null,"There is no IV scan Data to upload!");
01260                       return;
01261                       }
01262                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the IV scans for Run/Scan "+i.getRunNo()+"/"+i.getScanNo()+"?");
01263                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01264                     UploadManager upload = new UploadManager(guiControl);                      
01265                    }
01266               });
01267 
01268        return thisMenu;
01269        }
01270 
01271     private JMenu getIVScanOptionMenu() {
01272        JMenu thisMenu = new JMenu("IV scans");
01273 
01274        thisMenu.setFont(menuFont);
01275 
01276 
01277        JMenuItem item = new JMenuItem("Import IV Scans...");
01278        item.setFont(menuFont);
01279        thisMenu.add(item);
01280        item.addActionListener(new java.awt.event.ActionListener() {
01281              public void actionPerformed(java.awt.event.ActionEvent evt) {
01282                    new IVScanLister(guiControl.displayPane.getSCTView()).show();                     
01283                    }
01284               });
01285        item = new JMenuItem("Upload to SCT Database");
01286        item.setFont(menuFont);
01287        thisMenu.add(item);
01288        item.addActionListener(new java.awt.event.ActionListener() {
01289              public void actionPerformed(java.awt.event.ActionEvent evt) {
01290                     IVTestSelection i = guiControl.tablesDisplayPane.getIVTestSelection();
01291                     if(i==null) {
01292                       javax.swing.JOptionPane.showMessageDialog(null,"There is no IV scan Data to upload!");
01293                       return;
01294                       }
01295                     int response = JOptionPane.showConfirmDialog(null,"Are you sure want to upload the IV scans for Run/Scan "+i.getRunNo()+"/"+i.getScanNo()+"?");
01296                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01297                     UploadManager upload = new UploadManager(guiControl);                      
01298                    }
01299               });
01300 
01301        return thisMenu;
01302        }
01303 
01304 //****************************************************************************************
01305     private JMenu getAssemblyOptionMenu() {
01306        JMenu thisMenu = new JMenu("Assembly");
01307 //       thisMenu.setBackground(backgroundColor);
01308        thisMenu.setFont(menuFont);
01309 //       thisMenu.setForeground(menuColor);
01310 
01311        autoAssemblyMode.setFont(menuFont);
01312        autoAssemblyMode.setSelected(PreferencesInterface.getInstance().getPreference(PreferencesInterface.ASSEMBLY_UPLOADS).equals("TRUE"));
01313        thisMenu.add(autoAssemblyMode);
01314        autoAssemblyMode.addActionListener(new java.awt.event.ActionListener() {
01315                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01316                     String status = autoAssemblyMode.isSelected() ? "TRUE" : "FALSE";
01317                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.ASSEMBLY_UPLOADS,status);
01318                  }
01319              });
01320 
01321        thisMenu.addSeparator();
01322 
01323        JMenuItem item = new JMenuItem("Upload Module Assembly Positions");
01324        item.setFont(menuFont);
01325        thisMenu.add(item);
01326        item.addActionListener(new java.awt.event.ActionListener() {
01327              public void actionPerformed(java.awt.event.ActionEvent evt) {
01328                    guiControl.isInterface.uploadAssemblyInfo();
01329                    }
01330               });
01331 
01332        return thisMenu;
01333        }
01334 
01335 //****************************************************************************************
01336     private JMenu getDBSCTDAQDataOptionMenu(boolean isPanel) {
01337        JMenu thisMenu = new JMenu("SCTDAQ Reference");
01338 //       thisMenu.setBackground(backgroundColor);
01339        thisMenu.setFont(menuFont);
01340 //       thisMenu.setForeground(menuColor);
01341        JMenuItem item = new JMenuItem("Download SCTDAQ Reference Data");
01342        item.setFont(menuFont);
01343        thisMenu.add(item);
01344        item.addActionListener(new java.awt.event.ActionListener() {
01345              public void actionPerformed(java.awt.event.ActionEvent evt) {
01346                    guiControl.isInterface.downloadTests(-1);
01347                    }
01348               });
01349        item = new JMenuItem("SCTDAQ Test Location ...");
01350        item.setFont(menuFont);
01351        thisMenu.add(item);
01352        item.addActionListener(new java.awt.event.ActionListener() {
01353              public void actionPerformed(java.awt.event.ActionEvent evt) {
01354                  java.util.Vector listOfLocations = new java.util.Vector();
01355                  try {
01356                       listOfLocations = ProdDatabase.GeneralUtilities.getLocationList();
01357                  }catch(Exception e2){}
01358                  listOfLocations.insertElementAt("Any",0);
01359                  guiUtilities.userPrompt thisPrompt = new guiUtilities.userPrompt(guiControl,"Any","Institute", listOfLocations);
01360                  thisPrompt.pack();
01361                  thisPrompt.setLocationRelativeTo(guiControl);
01362                  thisPrompt.setVisible(true);
01363                  String thisLocation = thisPrompt.getValidatedText();
01364                  if (!thisLocation.equals("None")) {
01365                       guiControl.isInterface.setLocation(thisLocation);
01366 //                      guiControl.isInterface.setTestFilter(guiControl.tablesDisplayPane.getTestControlObjectName());
01367                       guiControl.selectorPane.initParamList(); // maybe require change of parameter menu
01368                       guiControl.colorScalePane.setColorScale(); // ditto for color scale
01369                       guiControl.displayPane.setDisplayColors();
01370                       guiControl.displayPane.refreshDisplay();
01371                       guiControl.tablesDisplayPane.listTestResults();
01372                       }
01373 
01374                    }
01375               });
01376        if(!isPanel) {
01377          sctdbAutoDownload.setFont(menuFont);
01378          thisMenu.add(sctdbAutoDownload);
01379          }
01380        return thisMenu;
01381        }
01382 //****************************************************************************************
01383     private JMenu getDBRODDAQDataOptionMenu(boolean isPanel) {
01384        JMenu thisMenu = new JMenu("SctRodDaq Downloads");
01385 //       thisMenu.setBackground(backgroundColor);
01386        thisMenu.setFont(menuFont);
01387 //       thisMenu.setForeground(menuColor);
01388 
01389        JMenuItem item = new JMenuItem("Download SctRodDaq Data ...");
01390        item.setFont(menuFont);
01391        thisMenu.add(item);
01392        item.addActionListener(new java.awt.event.ActionListener() {
01393              public void actionPerformed(java.awt.event.ActionEvent evt) {
01394                    new DatabaseLister().show();                   
01395                    }
01396               });
01397 
01398        if(!isPanel) {
01399          sctdbAutoUpload.setFont(menuFont);
01400          thisMenu.add(sctdbAutoUpload);
01401          }
01402        return thisMenu;
01403        }
01404 //*************************************************************************************************8
01405    private JMenu getCCDataOptionMenu() {
01406        JMenu thisMenu = new JMenu("CalibrationController");
01407        thisMenu.setFont(menuFont);
01408        JMenuItem item = new JMenuItem("Ping");
01409        item.setFont(menuFont);
01410        item.addActionListener(new java.awt.event.ActionListener() {
01411              public void actionPerformed(java.awt.event.ActionEvent evt) {
01412                    try { 
01413                       if (si.getCalibrationController() != null)  {
01414                          ipc.servantPackage.info info = si.getCalibrationController().information();
01415                          System.out.println("CalibrationController running: " + info.pid + " by " + info.owner + " on " +info.host + " since " + info.time);
01416                       } else System.out.println("CalibrationController not running");
01417                       }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
01418                     }
01419               });   
01420        thisMenu.add(item);
01421 
01422        thisMenu.addSeparator();
01423        javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
01424        for(int i=0;i<ccUpdateModes.length;i++) {
01425          ccUpdateModes[i] = new JCheckBox(ccUpdateStrings[i]);
01426          thisGroup.add(ccUpdateModes[i]);
01427          ccUpdateModes[i].setFont(menuFont);
01428          thisMenu.add(ccUpdateModes[i]);
01429          }
01430        item = new JMenuItem("Abort");
01431        item.setFont(menuFont);
01432        item.addActionListener(new java.awt.event.ActionListener() {
01433              public void actionPerformed(java.awt.event.ActionEvent evt) {
01434                    try { 
01435 //                       System.out.println("abort of CC not yet implemented");
01436                        si.getCalibrationController().abort();
01437                        }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
01438                     }
01439               });    
01440        thisMenu.addSeparator();
01441        thisMenu.add(item);   
01442                        
01443 
01444        ccUpdateModes[0].setSelected(true);
01445        for(int i=0;i<ccUpdateModes.length;i++) {  
01446            // ccUpdateModes[i].setEnabled(false);   
01447          switch(i) {
01448             case 0:
01449             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01450              public void actionPerformed(java.awt.event.ActionEvent evt) {
01451                    try {
01452                        si.getCalibrationController().setUpdateOption(UpdateOption.update);
01453                        checkCCUpdateMode();
01454                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01455                    }
01456               });
01457             break;
01458             case 1:
01459             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01460              public void actionPerformed(java.awt.event.ActionEvent evt) {
01461                    try {
01462                        si.getCalibrationController().setUpdateOption(UpdateOption.noupdate);
01463                        checkCCUpdateMode();
01464                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01465                    }
01466               });
01467             break;
01468             case 2:
01469             ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
01470              public void actionPerformed(java.awt.event.ActionEvent evt) {
01471                    try {
01472                        si.getCalibrationController().setUpdateOption(UpdateOption._wait);
01473                        checkCCUpdateMode();
01474                    }catch(Exception e){System.err.println("Error : "+e.toString());}
01475                    }
01476               });
01477             break;
01478             default:
01479             }
01480         }
01481       return thisMenu;
01482       }
01483 //************************************************************************************
01484    public void checkCCUpdateMode() {
01485          if(guiControl.calibrationControllerPanel==null || guiControl.calibrationControllerPanel.status==null) {   // why is this necessary????
01486              System.out.println("CalibrationControllerPanel.status object not yet available... update mode not yet known");
01487              return;
01488              }
01489          String updateMode = guiControl.calibrationControllerPanel.status.updateOption;
01490          if(updateMode.equals("NOUPDATE")) ccUpdateModes[1].setSelected(true);
01491          else if(updateMode.equals("WAIT")) ccUpdateModes[2].setSelected(true);
01492          else   ccUpdateModes[0].setSelected(true);
01493          }
01494 
01495 //*************************************************************************************************8
01496    private JMenu getTestFilterMenu() {
01497        JMenu thisMenu = new JMenu("Test Filter");
01498        thisMenu.setFont(menuFont);
01499 
01500        JMenuItem item = new JMenuItem("Add/Edit Run Comments...");
01501        item.setFont(menuFont);
01502        item.addActionListener(new java.awt.event.ActionListener() {
01503                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01504                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01505                          if(testSelection==null) {
01506                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
01507                              return;
01508                              }
01509                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), null);                          
01510                  }
01511              });
01512        thisMenu.add(item);
01513 
01514        item = new JMenuItem("Add/Edit Test Comments...");
01515        item.setFont(menuFont);
01516        item.addActionListener(new java.awt.event.ActionListener() {
01517                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01518                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01519                          if(testSelection==null) {
01520                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
01521                              return;
01522                              }
01523                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), testSelection.getTestName());                          
01524                  }
01525              });
01526        thisMenu.add(item);
01527 
01528        thisMenu.addSeparator();
01529 
01530        javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
01531        testFilterButtons[0] = new JCheckBox("All tests");
01532        thisGroup.add(testFilterButtons[0]);
01533        testFilterButtons[0].setFont(menuFont);
01534        testFilterButtons[0].addActionListener(new java.awt.event.ActionListener() {
01535              public void actionPerformed(java.awt.event.ActionEvent evt) {
01536                    switch(guiControl.displayStatus.getStatus()) {
01537                    case DisplayStatus.TEST_DATA:
01538                      guiControl.displayStatus.setTestDataMode(-1);      
01539                      break;
01540                    case DisplayStatus.SCTDB_DATA:
01541                     guiControl.displayStatus.setSCTDBDataMode(-1); 
01542                      break;
01543                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01544                     guiControl.displayStatus.setSCTDBRodDaqMode(-1); 
01545                      break;
01546                    default:
01547                    }           
01548                  }
01549               });
01550         thisMenu.add(testFilterButtons[0]);
01551        for(int i=1;i<testFilterButtons.length;i++) {
01552          if(!testIsDefined[i-1]) continue;
01553          testFilterButtons[i] = new JCheckBox(testNames[i-1]);
01554          thisGroup.add(testFilterButtons[i]);
01555          testFilterButtons[i].setFont(menuFont);
01556          thisMenu.add(testFilterButtons[i]);
01557          }
01558        testFilterButtons[0].setSelected(true);
01559 
01560        for(int i=1;i<testFilterButtons.length;i++) {  
01561          if(!testIsDefined[i-1]) continue;
01562          switch(i-1) { 
01563           case TEST_FULLBYPASS:
01564              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01565                public void actionPerformed(java.awt.event.ActionEvent evt) {
01566                    switch(guiControl.displayStatus.getStatus()) {
01567                    case DisplayStatus.TEST_DATA:
01568                      guiControl.displayStatus.setTestDataMode(TEST_FULLBYPASS);      
01569                      break;
01570                    case DisplayStatus.SCTDB_DATA:
01571                     guiControl.displayStatus.setSCTDBDataMode(TEST_FULLBYPASS); 
01572                      break;
01573                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01574                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_FULLBYPASS); 
01575                      break;
01576                    default:
01577                    }           
01578                    }
01579               });
01580             break;
01581           case TEST_PIPELINE:
01582              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01583                public void actionPerformed(java.awt.event.ActionEvent evt) {
01584                    switch(guiControl.displayStatus.getStatus()) {
01585                    case DisplayStatus.TEST_DATA:
01586                      guiControl.displayStatus.setTestDataMode(TEST_PIPELINE);      
01587                      break;
01588                    case DisplayStatus.SCTDB_DATA:
01589                     guiControl.displayStatus.setSCTDBDataMode(TEST_PIPELINE); 
01590                      break;
01591                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01592                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_PIPELINE); 
01593                      break;
01594                    default:
01595                    }           
01596                    }
01597               });
01598             break;
01599           case TEST_STROBEDELAY:
01600              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01601                public void actionPerformed(java.awt.event.ActionEvent evt) {
01602                    switch(guiControl.displayStatus.getStatus()) {
01603                    case DisplayStatus.TEST_DATA:
01604                      guiControl.displayStatus.setTestDataMode(TEST_STROBEDELAY);      
01605                      break;
01606                    case DisplayStatus.SCTDB_DATA:
01607                     guiControl.displayStatus.setSCTDBDataMode(TEST_STROBEDELAY); 
01608                      break;
01609                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01610                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_STROBEDELAY); 
01611                      break;
01612                    default:
01613                    }           
01614                    }
01615               });
01616             break;
01617           case TEST_3PTGAIN:
01618              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01619                public void actionPerformed(java.awt.event.ActionEvent evt) {
01620                    switch(guiControl.displayStatus.getStatus()) {
01621                    case DisplayStatus.TEST_DATA:
01622                      guiControl.displayStatus.setTestDataMode(TEST_3PTGAIN);      
01623                      break;
01624                    case DisplayStatus.SCTDB_DATA:
01625                     guiControl.displayStatus.setSCTDBDataMode(TEST_3PTGAIN); 
01626                      break;
01627                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01628                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_3PTGAIN); 
01629                      break;
01630                    default:
01631                    }           
01632                    }
01633               });
01634             break;
01635           case TEST_TRIM:
01636              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01637                public void actionPerformed(java.awt.event.ActionEvent evt) {
01638                    switch(guiControl.displayStatus.getStatus()) {
01639                    case DisplayStatus.TEST_DATA:
01640                      guiControl.displayStatus.setTestDataMode(TEST_TRIM);      
01641                      break;
01642                    case DisplayStatus.SCTDB_DATA:
01643                     guiControl.displayStatus.setSCTDBDataMode(TEST_TRIM); 
01644                      break;
01645                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01646                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TRIM); 
01647                      break;
01648                    default:
01649                    }           
01650                    }
01651               });
01652             break;
01653           case TEST_NPTGAIN:
01654              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01655                public void actionPerformed(java.awt.event.ActionEvent evt) {
01656                    switch(guiControl.displayStatus.getStatus()) {
01657                    case DisplayStatus.TEST_DATA:
01658                      guiControl.displayStatus.setTestDataMode(TEST_NPTGAIN);      
01659                      break;
01660                    case DisplayStatus.SCTDB_DATA:
01661                     guiControl.displayStatus.setSCTDBDataMode(TEST_NPTGAIN); 
01662                      break;
01663                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01664                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NPTGAIN); 
01665                      break;
01666                    default:
01667                    }           
01668                    }
01669               });
01670             break;
01671           case TEST_NOISE:
01672              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01673                public void actionPerformed(java.awt.event.ActionEvent evt) {
01674                    switch(guiControl.displayStatus.getStatus()) {
01675                    case DisplayStatus.TEST_DATA:
01676                      guiControl.displayStatus.setTestDataMode(TEST_NOISE);      
01677                      break;
01678                    case DisplayStatus.SCTDB_DATA:
01679                     guiControl.displayStatus.setSCTDBDataMode(TEST_NOISE); 
01680                      break;
01681                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01682                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NOISE); 
01683                      break;
01684                    default:
01685                    }           
01686                    }
01687               });
01688             break;
01689           case TEST_TIMEWALK:
01690              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01691                public void actionPerformed(java.awt.event.ActionEvent evt) {
01692                    switch(guiControl.displayStatus.getStatus()) {
01693                    case DisplayStatus.TEST_DATA:
01694                      guiControl.displayStatus.setTestDataMode(TEST_TIMEWALK);      
01695                      break;
01696                    case DisplayStatus.SCTDB_DATA:
01697                     guiControl.displayStatus.setSCTDBDataMode(TEST_TIMEWALK); 
01698                      break;
01699                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01700                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TIMEWALK); 
01701                      break;
01702                    default:
01703                    }           
01704                    }
01705               });
01706             break;
01707           case TEST_NMASK:
01708              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01709                public void actionPerformed(java.awt.event.ActionEvent evt) {
01710                    switch(guiControl.displayStatus.getStatus()) {
01711                    case DisplayStatus.TEST_DATA:
01712                      guiControl.displayStatus.setTestDataMode(TEST_NMASK);      
01713                      break;
01714                    case DisplayStatus.SCTDB_DATA:
01715                     guiControl.displayStatus.setSCTDBDataMode(TEST_NMASK); 
01716                      break;
01717                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01718                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NMASK); 
01719                      break;
01720                    default:
01721                    }           
01722                    }
01723               });
01724             break;
01725              case TEST_RXTHRESHOLD:
01726              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01727                public void actionPerformed(java.awt.event.ActionEvent evt) {
01728                    switch(guiControl.displayStatus.getStatus()) {
01729                    case DisplayStatus.TEST_DATA:
01730                      guiControl.displayStatus.setTestDataMode(TEST_RXTHRESHOLD);      
01731                      break;
01732                    case DisplayStatus.SCTDB_DATA:
01733                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXTHRESHOLD); 
01734                      break;
01735                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01736                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXTHRESHOLD); 
01737                      break;
01738                    default:
01739                    }           
01740                    }
01741               });
01742             break;
01743              case TEST_RXTHRESHOLDBASEDONCONFIGREGISTER:
01744              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01745                public void actionPerformed(java.awt.event.ActionEvent evt) {
01746                    switch(guiControl.displayStatus.getStatus()) {
01747                    case DisplayStatus.TEST_DATA:
01748                      guiControl.displayStatus.setTestDataMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER);      
01749                      break;
01750                    case DisplayStatus.SCTDB_DATA:
01751                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER); 
01752                      break;
01753                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01754                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER); 
01755                      break;
01756                    default:
01757                    }           
01758                    }
01759               });
01760             break;
01761              case TEST_RXDELAY:
01762              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
01763                public void actionPerformed(java.awt.event.ActionEvent evt) {
01764                    switch(guiControl.displayStatus.getStatus()) {
01765                    case DisplayStatus.TEST_DATA:
01766                      guiControl.displayStatus.setTestDataMode(TEST_RXDELAY);      
01767                      break;
01768                    case DisplayStatus.SCTDB_DATA:
01769                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXDELAY); 
01770                      break;
01771                    case DisplayStatus.SCTDB_RODDAQ_DATA:
01772                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXDELAY); 
01773                      break;
01774                    default:
01775                    }           
01776                    }
01777               });
01778             break;
01779             default:
01780             }
01781           }
01782       return thisMenu;
01783       }
01784 
01785    public void resetTestListFilter() {
01786       testFilterButtons[0].setSelected(true);
01787       }
01788 
01789    private JMenu getTestInvokeMenu() {
01790        JMenu thisMenu = new JMenu("Tests");
01791        JMenuItem menuItem;
01792 
01793        //===========================================================================================
01794 
01795        JMenu bocTestsMenu = new JMenu("Boc Setup");
01796        bocTestsMenu.setFont(menuFont);
01797        menuItem = new JMenuItem("Raw Scan");
01798        menuItem.setFont(menuFont);
01799        menuItem.addActionListener(new java.awt.event.ActionListener() {
01800                public void actionPerformed(java.awt.event.ActionEvent evt) {
01801                    si.getCalibrationController().doScan(si.getCalibrationController().getScanLibrary().rawScan(10,false));
01802                }
01803            });
01804 
01805        bocTestsMenu.add(menuItem);
01806 
01807        menuItem = new JMenuItem("RX Threshold (Old Clk/2)");
01808        menuItem.setFont(menuFont);
01809        menuItem.addActionListener(new java.awt.event.ActionListener() {
01810                public void actionPerformed(java.awt.event.ActionEvent evt) {
01811                    //Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10);
01812                    //request.getScan().configure((short)50, 0., 200., 5.);
01813                    //si.getCalibrationController().doScan( request );
01814                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("RxThreshold")  );
01815                }
01816            });
01817        bocTestsMenu.add(menuItem);
01818 
01819        menuItem = new JMenuItem("RX Threshold (Config Register)");
01820        menuItem.setFont(menuFont);
01821        menuItem.addActionListener(new java.awt.event.ActionListener() {
01822                public void actionPerformed(java.awt.event.ActionEvent evt) {
01823                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("RxThresholdBasedOnConfigRegister")  );
01824                }
01825            });
01826        bocTestsMenu.add(menuItem);
01827 
01828        menuItem = new JMenuItem("RX Delay");
01829        menuItem.setFont(menuFont);
01830        menuItem.addActionListener(new java.awt.event.ActionListener() {
01831                public void actionPerformed(java.awt.event.ActionEvent evt) {
01832                    //Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10);
01833                    //request.getScan().configure((short)20, 0., 24., 1.);
01834                    //si.getCalibrationController().doScan( request );
01835                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("RxDelay")  );
01836                }
01837            });
01838        bocTestsMenu.add(menuItem);
01839 
01840        menuItem = new JMenuItem("TX Current (old, no analysis)");
01841        menuItem.setFont(menuFont);
01842        menuItem.addActionListener(new java.awt.event.ActionListener() {
01843                public void actionPerformed(java.awt.event.ActionEvent evt) {
01844                    Sct_CalibrationController.ScanRequest request = si.getCalibrationController().getScanLibrary().rawScan(10,false);
01845                    request.getScanCorba().configure((short)53, 60., 200., 10.);
01846                    si.getCalibrationController().doScan( request );
01847                }
01848            });
01849        bocTestsMenu.add(menuItem);
01850 
01851        menuItem = new JMenuItem("TX Current (Config Register)");
01852        menuItem.setFont(menuFont);
01853        menuItem.addActionListener(new java.awt.event.ActionListener() {
01854                public void actionPerformed(java.awt.event.ActionEvent evt) {
01855                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("TxCurrent")  );
01856                }
01857            });
01858        bocTestsMenu.add(menuItem);
01859 
01860        thisMenu.add(bocTestsMenu);
01861 
01862        //==========================================================================================
01863 
01864        JMenu digitalTestsMenu = new JMenu("Digital Tests");
01865        digitalTestsMenu.setFont(menuFont);
01866 
01867        menuItem = new JMenuItem("NMask");
01868        menuItem.setFont(menuFont);
01869 
01870        menuItem.addActionListener(new java.awt.event.ActionListener() {
01871                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01872 //                    guiControl.displayStatus.setTestDataMode(-1); 
01873                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("NMask"));               
01874                      }
01875              });
01876 
01877 
01878        digitalTestsMenu.add(menuItem);
01879 
01880        menuItem = new JMenuItem("Pipeline");
01881        menuItem.setFont(menuFont);
01882        menuItem.addActionListener(new java.awt.event.ActionListener() {
01883                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01884  //                    guiControl.displayStatus.setTestDataMode(-1); 
01885                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("Pipeline"));           
01886                      }
01887              });
01888 
01889        digitalTestsMenu.add(menuItem);
01890 
01891        menuItem = new JMenuItem("FullByPass (Barrel)");
01892        menuItem.setFont(menuFont);
01893        menuItem.addActionListener(new java.awt.event.ActionListener() {
01894                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01895  //                    guiControl.displayStatus.setTestDataMode(-1); 
01896                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("FullBypassBarrel") );          
01897                  }
01898              });
01899 
01900        digitalTestsMenu.add(menuItem);
01901 
01902        menuItem = new JMenuItem("FullByPass (Endcap)");
01903        menuItem.setFont(menuFont); 
01904        menuItem.addActionListener(new java.awt.event.ActionListener() {
01905                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01906  //                    guiControl.displayStatus.setTestDataMode(-1); 
01907                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("FullBypassEndcap") );
01908                  }
01909              });
01910 
01911        digitalTestsMenu.add(menuItem);
01912 
01913 
01914 
01915        thisMenu.add(digitalTestsMenu);
01916 
01917 
01918        //===========================================================================================
01919 
01920        JMenu analogueTestsMenu = new JMenu("Analogue Tests");
01921        analogueTestsMenu.setFont(menuFont);
01922 
01923 
01924        menuItem = new JMenuItem("Strobe Delay");
01925        menuItem.setFont(menuFont);
01926        menuItem.addActionListener(new java.awt.event.ActionListener() {
01927                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01928  //                    guiControl.displayStatus.setTestDataMode(-1); 
01929                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("StrobeDelay"));         
01930                      }
01931              });
01932 
01933        analogueTestsMenu.add(menuItem);
01934 
01935        menuItem = new JMenuItem("3PtGain");
01936        menuItem.setFont(menuFont);
01937        menuItem.addActionListener(new java.awt.event.ActionListener() {
01938                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01939  //                    guiControl.displayStatus.setTestDataMode(-1); 
01940                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("ThreePointGain"));        
01941                      }
01942              });
01943 
01944        analogueTestsMenu.add(menuItem);
01945 
01946        menuItem = new JMenuItem("Trim");
01947        menuItem.setFont(menuFont);
01948        menuItem.addActionListener(new java.awt.event.ActionListener() {
01949                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01950  //                    guiControl.displayStatus.setTestDataMode(-1); 
01951                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("TrimRange") );       
01952                      }
01953              });
01954 
01955        analogueTestsMenu.add(menuItem);
01956 
01957         menuItem = new JMenuItem("QuickTrim");
01958        menuItem.setFont(menuFont);
01959        menuItem.addActionListener(new java.awt.event.ActionListener() {
01960                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01961                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("QuickTrimRange") );       
01962                      }
01963              });
01964 
01965        analogueTestsMenu.add(menuItem);
01966 
01967        menuItem = new JMenuItem("ResponseCurve");
01968        menuItem.setFont(menuFont);
01969        menuItem.addActionListener(new java.awt.event.ActionListener() {
01970                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01971  //                    guiControl.displayStatus.setTestDataMode(-1); 
01972                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("ResponseCurve"));      
01973                      }
01974              });
01975 
01976        analogueTestsMenu.add(menuItem);
01977        menuItem = new JMenuItem("Five point gain");
01978        menuItem.setFont(menuFont);
01979        menuItem.addActionListener(new java.awt.event.ActionListener() {
01980                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01981  //                    guiControl.displayStatus.setTestDataMode(-1); 
01982                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("FivePointGain"));      
01983                      }
01984              });
01985 
01986        analogueTestsMenu.add(menuItem);
01987 
01988        menuItem = new JMenuItem("Noise Occupancy");
01989        menuItem.setFont(menuFont);
01990        menuItem.addActionListener(new java.awt.event.ActionListener() {
01991                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01992  //                    guiControl.displayStatus.setTestDataMode(-1); 
01993                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("NoiseOccupancy") );     
01994                      }
01995              });
01996 
01997        analogueTestsMenu.add(menuItem);
01998 
01999        menuItem = new JMenuItem("Time Walk");
02000        menuItem.setFont(menuFont);
02001        menuItem.addActionListener(new java.awt.event.ActionListener() {
02002                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02003  //                    guiControl.displayStatus.setTestDataMode(-1); 
02004                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("TimeWalk"));   
02005                      }
02006              });
02007 
02008        analogueTestsMenu.add(menuItem);
02009 
02010        menuItem = new JMenuItem("Double Trigger Noise");
02011        menuItem.setFont(menuFont);
02012        menuItem.addActionListener(new java.awt.event.ActionListener() {
02013                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02014  //                    guiControl.displayStatus.setTestDataMode(-1); 
02015                      si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("DoubleTriggerNoise"));   
02016                      }
02017              });
02018 
02019        analogueTestsMenu.add(menuItem);
02020 
02021        menuItem = new JMenuItem("Synch Trigger Noise");
02022        menuItem.setFont(menuFont);
02023        menuItem.addActionListener(new java.awt.event.ActionListener() {
02024                public void actionPerformed(java.awt.event.ActionEvent evt) {
02025                    si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName("SynchTriggerNoise"));   
02026                }
02027            });
02028 
02029        analogueTestsMenu.add(menuItem);
02030 
02031        thisMenu.add(analogueTestsMenu);
02032 
02033        //thisMenu.addSeparator();
02034        {
02035            JMenu autoTestsMenu = new JMenu("Automagical Tests");
02036            {
02037                autoTestsMenu.setFont(menuFont);
02038                if (si!=null) {
02039                    Sct_CalibrationController.CalibrationController cc = si.getCalibrationController();
02040                    if (cc!=null) {
02041                        Sct_CalibrationController.TestLibrary tl = cc.getTestLibrary();
02042                        if (tl!=null) {
02043                            String[] testNames = si.getCalibrationController().getTestLibrary().getTestNames();
02044                            for (int i=0; i<testNames.length; ++i) {
02045                                final String name = testNames[i];
02046                                menuItem = new JMenuItem(name);
02047                                menuItem.setFont(menuFont);
02048                                menuItem.addActionListener(new java.awt.event.ActionListener() {
02049                                        public void actionPerformed(java.awt.event.ActionEvent evt) {
02050                                            si.getCalibrationController().doTest(si.getCalibrationController().getTestLibrary().getTestRequestByName(name));               
02051                                        }
02052                                    });
02053                                
02054                                autoTestsMenu.add(menuItem);
02055                            };
02056                        };
02057                    };
02058                };
02059            };
02060            thisMenu.add(autoTestsMenu);
02061        };
02062        //thisMenu.addSeparator();
02063 
02064        JMenu sequencesMenu = new JMenu("Sequences");
02065        sequencesMenu.setFont(menuFont);
02066 
02067        menuItem = new JMenuItem("Characterization");
02068        menuItem.setFont(menuFont);
02069        menuItem.addActionListener(new java.awt.event.ActionListener() {
02070                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02071  //                    guiControl.displayStatus.setTestDataMode(-1); 
02072                      si.getCalibrationController().doSequence(si.getCalibrationController().getSequenceLibrary().characterizationSequence()); 
02073                      }
02074              });
02075        sequencesMenu.add(menuItem);
02076        
02077        thisMenu.add(sequencesMenu);
02078 
02079        thisMenu.addSeparator();
02080        thisMenu.add(getSCTDAQMenu());
02081 
02082        return thisMenu;
02083        }
02084 
02085    public void updateMenuStates() {
02086       switch(guiControl.displayStatus.getStatus()) {
02087          case DisplayStatus.IS_MONITOR:
02088              enableDataManagerItems(true);
02089              break;
02090          default:
02091              enableDataManagerItems(false);
02092          }
02093     }
02094    
02095 
02096 
02097   private void enableDataManagerItems(boolean isEnabled) {
02098              for(int i=0;i<tableDataOptionMenu.getItemCount();i++) tableDataOptionMenu.getItem(i).setEnabled(isEnabled);
02099              }
02100 
02101   private JMenu getSCTDAQMenu() {
02102        JMenu sctdaqmenu = new JMenu("SCTDAQ Exerciser");
02103 
02104        sctdaqmenu.setFont(menuFont);
02105 
02106        menuItem = new JMenuItem("Ping");
02107        menuItem.setFont(menuFont);
02108        menuItem.addActionListener(new java.awt.event.ActionListener() {
02109                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02110                      //There is no ping method atm
02111                      //System.out.println(si.getTestApi().ping(""));
02112                      }
02113              });
02114        sctdaqmenu.add(menuItem);
02115        sctdaqmenu.addSeparator();
02116 
02117 
02118        for(int i=0;i<sctapiItems.length;i++) {
02119          if(!testIsDefined[i] || !testIsSCTDAQ[i]) continue;
02120          sctapiItems[i] = new JMenuItem(testMenuNames[i]);
02121          sctapiItems[i].setFont(menuFont);
02122          sctdaqmenu.add(sctapiItems[i]);
02123          switch(i) {
02124             case TEST_FULLBYPASS:
02125               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02126                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02127                    guiControl.displayStatus.setTestDataMode(-1); 
02128                    try {
02129                        if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().fullBypass();
02130                    } catch (SctTestApi.NoDataException nde) {}
02131 //                   System.out.println("Start full bypass test via sct_api_server");   
02132                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_FULLBYPASS);
02133                    }
02134               });
02135             case TEST_PIPELINE:
02136               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02137                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02138 //                    guiControl.displayStatus.setTestDataMode(-1);
02139                     try {
02140                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().pipeline();
02141                     } catch (SctTestApi.NoDataException nde) {}
02142 //                   System.out.println("Start pipeline test via sct_api_server");   
02143                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_PIPELINE);
02144                    }
02145               });
02146             break;
02147             case TEST_STROBEDELAY:
02148               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02149                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02150 //                    guiControl.displayStatus.setTestDataMode(-1); 
02151                     try {
02152                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().strobeDelay();
02153                     } catch (SctTestApi.NoDataException nde) {}
02154 //                    System.out.println("Start strobe delay test via sct_api_server");
02155                     if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_STROBEDELAY);
02156                    }
02157               });
02158              break;
02159             case TEST_3PTGAIN:
02160               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02161                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02162 //                    guiControl.displayStatus.setTestDataMode(-1); 
02163                     try {
02164                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().threePointGain();
02165                     } catch (SctTestApi.NoDataException nde) {}
02166 //                    System.out.println("Start 3PtGain test via sct_api_server");
02167                     if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_3PTGAIN);
02168                    }
02169               });
02170              break;
02171             case TEST_TRIM:
02172               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02173                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02174 //                    guiControl.displayStatus.setTestDataMode(-1); 
02175                     try {
02176                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().trim();
02177                     } catch (SctTestApi.NoDataException nde) {}
02178                    //System.out.println("Start Trim Range test via sct_api_server");
02179                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_TRIM);
02180                    }
02181               });
02182              break;
02183             case TEST_NPTGAIN:
02184               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02185                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02186 //                    guiControl.displayStatus.setTestDataMode(-1); 
02187                     try {
02188                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().responseCurve();
02189                     } catch (SctTestApi.NoDataException nde) {}
02190                    //System.out.println("Start NPtGain test via sct_api_server");
02191                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_NPTGAIN);
02192                    }
02193               });
02194              break;
02195             case TEST_NOISE:
02196               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02197                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02198 //                    guiControl.displayStatus.setTestDataMode(-1); 
02199                     try {
02200                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().noiseOccupancy();
02201                     } catch (SctTestApi.NoDataException nde) {}
02202                    //System.out.println("Start Noise test via sct_api_server");
02203                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_NOISE);
02204                    }
02205               });
02206              break;
02207             case TEST_TIMEWALK:
02208               sctapiItems[i].addActionListener(new java.awt.event.ActionListener() {
02209                 public void actionPerformed(java.awt.event.ActionEvent evt) {
02210 //                    guiControl.displayStatus.setTestDataMode(-1); 
02211                     try {
02212                         if((si.getTestHighLevelApi())!=null) si.getTestHighLevelApi().timeWalk();
02213                     } catch (SctTestApi.NoDataException nde) {}
02214                    //System.out.println("Start TimeWalk test via sct_api_server");
02215                    if(sctdbAutoDownload.isSelected()) guiControl.isInterface.downloadTests(TEST_TIMEWALK);
02216                    }
02217               });
02218              break;
02219              default:
02220              }
02221          }
02222     return sctdaqmenu;
02223     }
02224 
02225 //   public boolean dcsIsEnabled() {
02226 //      return dcsEnabled.isSelected();
02227 //      }
02228 
02229 
02230 
02231    private void getTestDataMenu() {
02232        testDataMenu = new JMenu("Test Data Options");
02233        testDataMenu.setFont(menuFont);
02234  
02235        JMenuItem item1 = new JMenuItem("Test Report");
02236        item1.setFont(menuFont);
02237        testDataMenu.add(item1);
02238        item1.addActionListener(new java.awt.event.ActionListener() {
02239              public void actionPerformed(java.awt.event.ActionEvent evt) {
02240 //                System.out.println("Selected "+popupCell.getSerialNo());
02241                    TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
02242                    if(testSelection==null) {
02243                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02244                        return;
02245                        }
02246                    java.util.Map dcsMap = null;
02247                    if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
02248                    SummaryReader.DCSInfo dcsInfo = (dcsMap!=null) ? (SummaryReader.DCSInfo) dcsMap.get(getSelectedSerialNo()) : null;
02249                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(testSelection.getResultObjectHeader(),getSelectedSerialNo(), dcsInfo);
02250                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showTestReport(getSelectedSerialNo(),testResult);
02251                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for this module");
02252               }
02253           });  
02254        item1 = new JMenuItem("Summary Plots");
02255        item1.setFont(menuFont);
02256        testDataMenu.add(item1);
02257        item1.addActionListener(new java.awt.event.ActionListener() {
02258              public void actionPerformed(java.awt.event.ActionEvent evt) {
02259                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
02260                   if(testSelection==null) {
02261                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02262                        return;
02263                        }
02264                   String objectname;
02265                   if((objectname = testSelection.getTestObjectHeader())!=null) {
02266                      guiControl.isInterface.launchExternalViewer(objectname+getSelectedSerialNo());
02267                      }
02268                  }
02269           });  
02270        item1 = new JMenuItem("Summary Plots (with Options)");
02271        item1.setFont(menuFont);
02272        testDataMenu.add(item1);
02273        item1.addActionListener(new java.awt.event.ActionListener() {
02274              public void actionPerformed(java.awt.event.ActionEvent evt) {
02275                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
02276                   if(testSelection==null) {
02277                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02278                        return;
02279                        }
02280                   String objectname;
02281                   if((objectname = testSelection.getTestObjectHeader())!=null) {
02282                      guiControl.isInterface.launchExternalViewerWithOptions(objectname+getSelectedSerialNo());
02283                      }
02284                  }
02285           });  
02286 
02287 
02288        item1 = new JMenuItem("Module Configuration");
02289        item1.setFont(menuFont);
02290        testDataMenu.add(item1);
02291        item1.addActionListener(new java.awt.event.ActionListener() {
02292              public void actionPerformed(java.awt.event.ActionEvent evt) {
02293             JFrame frame2 = new JFrame("Module Configuration");                    
02294             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(getSelectedSerialNo()));
02295             frame2.pack();
02296             frame2.show();
02297                      }
02298 
02299           });  
02300        item1 = new JMenuItem("Dump test result");
02301        item1.setFont(menuFont);
02302        testDataMenu.add(item1);
02303        item1.addActionListener(new java.awt.event.ActionListener() {
02304              public void actionPerformed(java.awt.event.ActionEvent evt) {
02305                      TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
02306                      if(testSelection==null)  {
02307                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02308                        return;
02309                        }
02310                      String resultObject=testSelection.getResultObjectHeader()+getSelectedSerialNo();
02311                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
02312                            javax.swing.JOptionPane.showMessageDialog(null,"No result for "+getSelectedSerialNo());
02313                            return;
02314                            }
02315                      TestSummaryIS result = new TestSummaryIS(); 
02316                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
02317                      java.util.Vector thisData = new java.util.Vector();
02318                      thisData.addElement(getSelectedSerialNo()+".txt");
02319                      thisData.addElement(result.dataString);
02320                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
02321                      }
02322 
02323           });  
02324        item1 = new JMenuItem("Full SCTDB Module Report");
02325        item1.setFont(menuFont);
02326        testDataMenu.add(item1);
02327        item1.addActionListener(new java.awt.event.ActionListener() {
02328              public void actionPerformed(java.awt.event.ActionEvent evt) {
02329              String sn = getSelectedSerialNo();
02330              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
02331              if(d.isOkToStart()) d.start();
02332              }
02333 
02334           });  
02335        item1 = new JMenuItem("Edit/Add Module Comments...");
02336        item1.setFont(menuFont);
02337        item1.addActionListener(new java.awt.event.ActionListener() {
02338              public void actionPerformed(java.awt.event.ActionEvent evt) {
02339                 showModuleCommentPrompt(getSelectedSerialNo());
02340                      }
02341 
02342           });
02343        testDataMenu.add(item1);
02344 
02345 
02346        }
02347    private void getIVScanMenu() {
02348        ivScanMenu = new JMenu("IVScan");
02349        ivScanMenu.setFont(menuFont);
02350        JMenuItem item1 = new JMenuItem("Test Report");
02351        item1.setFont(menuFont);
02352        ivScanMenu.add(item1);
02353        item1.addActionListener(new java.awt.event.ActionListener() {
02354              public void actionPerformed(java.awt.event.ActionEvent evt) {
02355 //                System.out.println("Selected "+popupCell.getSerialNo());
02356                    IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
02357                    if(ivTestSelection==null) {
02358                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02359                        return;
02360                        }
02361                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(ivTestSelection.getResultObjectHeader(),getSelectedSerialNo(),null);              
02362                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showIVTestReport(getSelectedSerialNo(),testResult);
02363                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
02364               }
02365           });  
02366 
02367        item1 = new JMenuItem("Plot IVScan");
02368        item1.setFont(menuFont);
02369        ivScanMenu.add(item1);
02370        item1.addActionListener(new java.awt.event.ActionListener() {
02371              public void actionPerformed(java.awt.event.ActionEvent evt) {
02372                    plotIVScanData(guiControl.tablesDisplayPane.getSelectedSerialNo());
02373               }
02374           });  
02375 
02376        item1 = new JMenuItem("Dump test result");
02377        item1.setFont(menuFont);
02378        ivScanMenu.add(item1);
02379        item1.addActionListener(new java.awt.event.ActionListener() {
02380              public void actionPerformed(java.awt.event.ActionEvent evt) {
02381                      IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
02382                      if(ivTestSelection==null)  {
02383                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02384                        return;
02385                        }
02386                      String resultObject=ivTestSelection.getResultObjectHeader()+getSelectedSerialNo();
02387                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
02388                            javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
02389                            return;
02390                            }
02391                      TestSummaryIS result = new TestSummaryIS(); 
02392                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
02393                      java.util.Vector thisData = new java.util.Vector();
02394                      thisData.addElement(getSelectedSerialNo()+".txt");
02395                      thisData.addElement(result.dataString);
02396                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
02397                      }
02398 
02399           });  
02400        item1 = new JMenuItem("Full SCTDB Module Report");
02401        item1.setFont(menuFont);
02402        ivScanMenu.add(item1);
02403        item1.addActionListener(new java.awt.event.ActionListener() {
02404              public void actionPerformed(java.awt.event.ActionEvent evt) {
02405              String sn = getSelectedSerialNo();
02406              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
02407              if(d.isOkToStart()) d.start();
02408              }
02409 
02410           });  
02411        item1 = new JMenuItem("Edit/Add Module Comments...");
02412        item1.setFont(menuFont);
02413        item1.addActionListener(new java.awt.event.ActionListener() {
02414              public void actionPerformed(java.awt.event.ActionEvent evt) {
02415                 showModuleCommentPrompt(getSelectedSerialNo());
02416                      }
02417 
02418           });
02419        ivScanMenu.add(item1);
02420 
02421 
02422        }
02423 
02424    private void getSCTDBDataMenu() {
02425        sctdbDataSNMenu = new JMenu("Data Options");
02426        sctdbDataSNMenu.setFont(menuFont);
02427 
02428        JMenuItem item1 = new JMenuItem("Test Report");
02429        item1.setFont(menuFont);
02430        sctdbDataSNMenu.add(item1);
02431        item1.addActionListener(new java.awt.event.ActionListener() {
02432              public void actionPerformed(java.awt.event.ActionEvent evt) {
02433                TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
02434                if(testSelection==null)  {
02435                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
02436                        return;
02437                        }
02438                String resultObject= (testSelection.isSCTDBRodDaqData()) ? testSelection.getSCTDBRodDaqObjectHeader()+getSelectedSerialNo() : testSelection.getSCTDBObjectHeader()+getSelectedSerialNo();
02439                if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
02440                   javax.swing.JOptionPane.showMessageDialog(null,"No data for "+getSelectedSerialNo());
02441                   return;
02442                   }
02443                SCTDB_Data result = new SCTDB_Data(); 
02444                Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
02445                ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.SCTDAQTESTDATA, result.testNumber, 0);
02446                if(d.isOkToStart()) d.start();
02447              }
02448 
02449           });  
02450        item1 = new JMenuItem("Full Module Report");
02451        item1.setFont(menuFont);
02452        sctdbDataSNMenu.add(item1);
02453        item1.addActionListener(new java.awt.event.ActionListener() {
02454              public void actionPerformed(java.awt.event.ActionEvent evt) {
02455              String sn = getSelectedSerialNo();
02456              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
02457              if(d.isOkToStart()) d.start();
02458              }
02459 
02460           });  
02461 
02462 
02463        }
02464 
02465 //**************************************************************************
02466     private void getTableDataSNMenu() {
02467        dataManagerSNMenu = new JMenu("Data Manager");
02468        dataManagerSNMenu.setFont(menuFont);
02469 
02470        JMenuItem item = new JMenuItem("Plot Selected Data");
02471        item.setFont(menuFont);
02472        item.addActionListener(new java.awt.event.ActionListener() {
02473                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02474                     switch(guiControl.displayStatus.getStatus()) {
02475                        case DisplayStatus.IS_MONITOR:
02476                           String objectname;
02477                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewer(objectname);
02478                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
02479                         break;
02480                     default:
02481                      }                                   
02482                  }
02483              });
02484        dataManagerSNMenu.add(item);
02485 
02486        item = new JMenuItem("Plot Selected Data (with Options)");
02487        item.setFont(menuFont);
02488        item.addActionListener(new java.awt.event.ActionListener() {
02489                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02490                     switch(guiControl.displayStatus.getStatus()) {
02491                        case DisplayStatus.IS_MONITOR:
02492                           String objectname;
02493                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewerWithOptions(objectname);
02494                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
02495                         break;
02496                     default:
02497                      }                                   
02498                  }
02499              });
02500        dataManagerSNMenu.add(item);
02501 
02502 
02503 
02504        item = new JMenuItem("View Selected IS Object");
02505        item.setFont(menuFont);
02506        item.addActionListener(new java.awt.event.ActionListener() {
02507                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02508                     switch(guiControl.displayStatus.getStatus()) {
02509                        case DisplayStatus.IS_MONITOR:
02510                           String objectname;
02511                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.viewISData(objectname);
02512                           else javax.swing.JOptionPane.showMessageDialog(null,"No data available.");
02513                         break;
02514                     default:
02515                      }                                   
02516                  }
02517              });
02518 
02519        dataManagerSNMenu.add(item);
02520        item = new JMenuItem("View Module Configuration");
02521        item.setFont(menuFont);
02522        item.addActionListener(new java.awt.event.ActionListener() {
02523              public void actionPerformed(java.awt.event.ActionEvent evt) {
02524             JFrame frame2 = new JFrame("Module Configuration");
02525             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(getSelectedSerialNo()));
02526             frame2.pack();
02527             frame2.show();
02528                      }
02529 
02530           });  
02531       dataManagerSNMenu.add(item);
02532           
02533       item = new JMenuItem("Edit/Add Module Comments...");
02534        item.setFont(menuFont);
02535        item.addActionListener(new java.awt.event.ActionListener() {
02536              public void actionPerformed(java.awt.event.ActionEvent evt) {
02537                 showModuleCommentPrompt(getSelectedSerialNo());
02538                      }
02539 
02540           });
02541 
02542        dataManagerSNMenu.add(item);
02543        }
02544 
02545       private JMenu getDisplayMenu() {
02546        JMenu menu = new JMenu("Display");
02547        menu.setBackground(backgroundColor);
02548        menu.setFont(menuFont);
02549        menu.setForeground(menuColor);
02550 
02551        JMenuItem item;
02552        for(int i=1;i<DisplayStatus.statusNames.length;i++) {
02553           item = new JMenuItem(DisplayStatus.statusNames[i]);
02554           item.setFont(menuFont);
02555           switch(i) {
02556              case DisplayStatus.MODULE_GROUP_SELECTION:  // ModuleGroup Selection
02557              item.addActionListener(new java.awt.event.ActionListener() {
02558                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02559                    guiControl.displayStatus.setModuleGroupSelectionMode();  
02560                    updateToolBar(DisplayStatus.MODULE_GROUP_SELECTION);           
02561                      }
02562              });
02563              break;
02564              case DisplayStatus.IS_MONITOR:  // Data Manager
02565              item.addActionListener(new java.awt.event.ActionListener() {
02566                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02567                    guiControl.displayStatus.setISMode(); 
02568                    updateToolBar(DisplayStatus.IS_MONITOR);           
02569                      }
02570              });
02571              break;
02572              case DisplayStatus.TEST_DATA:   // Test Results
02573              item.addActionListener(new java.awt.event.ActionListener() {
02574                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02575                     guiControl.displayStatus.setTestDataMode(-1);   
02576                    updateToolBar(DisplayStatus.TEST_DATA);           
02577                      }
02578              });
02579              break;
02580              case DisplayStatus.SCTDB_DATA:    // SCTDB Data
02581              item.addActionListener(new java.awt.event.ActionListener() {
02582                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02583                      guiControl.displayStatus.setSCTDBDataMode(-1);  
02584                      updateToolBar(DisplayStatus.SCTDB_DATA);         
02585                      }
02586              });
02587              break;
02588              case DisplayStatus.DCS_DATA:    // DCS Data
02589              item.addActionListener(new java.awt.event.ActionListener() {
02590                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02591                      guiControl.displayStatus.setDCSDataMode();  
02592                      updateToolBar(DisplayStatus.DCS_DATA);         
02593                      }
02594              });
02595              break;
02596             case DisplayStatus.SCTDB_RODDAQ_DATA:    // SctRodDaq Archive Data
02597              item.addActionListener(new java.awt.event.ActionListener() {
02598                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02599                      guiControl.displayStatus.setSCTDBRodDaqMode(-1);  
02600                      updateToolBar(DisplayStatus.SCTDB_RODDAQ_DATA);         
02601                      }
02602              });
02603              break;
02604             case DisplayStatus.IV_DATA:    // SctRodDaq Archive Data
02605              item.addActionListener(new java.awt.event.ActionListener() {
02606                  public void actionPerformed(java.awt.event.ActionEvent evt) {
02607                     String ivdirectory = PreferencesInterface.getInstance().getPreference(PreferencesInterface.IV_DIRECTORY);
02608                     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.");                        
02609                      guiControl.displayStatus.setIVDataMode();  
02610                      updateToolBar(DisplayStatus.IV_DATA);         
02611                      }
02612              });
02613              break;
02614              default:
02615              }
02616           menu.add(item);
02617 
02618           }
02619           return menu;
02620       }
02621 
02622    private void plotIVScanData(String serialNo) {
02623                    IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
02624                    if(ivTestSelection==null) {
02625                        javax.swing.JOptionPane.showMessageDialog(null,"No IV Scan selected.");
02626                        return;
02627                        }
02628                    String summary = "IV Scan Plots for Run "+Integer.toString(ivTestSelection.getRunNo())+", Scan "+Integer.toString(ivTestSelection.getScanNo());
02629                    DisplayGUI.plotters.IVScansData ivScansData = new DisplayGUI.plotters.IVScansData(summary);
02630                    for(java.util.Enumeration e = ConfigurationInterface.getInstance().getSerialNumberMap(guiControl.displayPane.getSCTView()).elements(); e.hasMoreElements();) {
02631                        ModuleCell thisCell = (ModuleCell) e.nextElement();
02632                        String sn = thisCell.getSerialNo();
02633                        SummaryReader.IVData ivData = guiControl.isInterface.getIVData(ivTestSelection.getResultObjectHeader(),thisCell.getSerialNo());
02634                        if(ivData!=null) ivScansData.add(sn,ivData.getDataPointSet());
02635                        }
02636                     DisplayGUI.plotters.IVPlotDisplay ivPlotDisplay = new DisplayGUI.plotters.IVPlotDisplay();
02637                     ivPlotDisplay.showData(ivScansData,serialNo);
02638                     }
02639    private void showModuleCommentPrompt(String serialNo) {
02640        if(moduleCommentPrompt==null) moduleCommentPrompt=new ModuleCommentPrompt(serialNo);
02641        else moduleCommentPrompt.update(serialNo);
02642        }
02643 
02644 
02645 }
02646      

Generated on Thu Feb 3 17:42:19 2005 for SCT DAQ/DCS Software - Java by doxygen 1.3.5