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

Generated on Fri Jan 14 12:49:53 2005 for SCT DAQ/DCS Software - Java by doxygen 1.3.5