GuiMenus.java

00001 /*
00002  * GuiMenus class
00003  * This class defines the standard (static) gui menus and
00004  * the methods to access them
00005  *
00006  * @author robinson
00007  *
00008  */
00009 package DisplayGUI;
00010 import javax.swing.JMenuBar;
00011 import javax.swing.JMenuItem;
00012 import javax.swing.JMenu;
00013 
00014 import Preferences.*;
00015 import guiUtilities.ChoiceDialog;
00016 //
00017 import Sct.Version;
00018 import GuiComponents.System.*;
00019 import GuiComponents.scripting.*;
00020 import GuiComponents.Console.JConsole;
00021 import Sct_SctApi.*;
00022 
00024 public class GuiMenus extends JMenuBar implements displayParams,TestDataInfo {
00025     gui guiControl;
00026 
00027         private DisplayChoiceToolbar displayChoiceToolbar = null;
00028         private javax.swing.JFrame hardwareWindow = null;
00029         private ServiceStatusFrame serviceStatusFrame=null;
00030         private ModuleCommentPrompt moduleCommentPrompt = null;
00031     protected ISTree isTree;
00032         private ManualConfiguration manualConfiguration;
00033 
00034     private javax.swing.JCheckBox[] testFilterButtons = new javax.swing.JCheckBox[testMenuNames.length+1];
00035     public boolean autoSelectMode = false;
00036     private JMenuItem autoSelectModeItem = new JMenuItem();
00037         private TestsMenu[] testsMenu = new TestsMenu[2];
00038         private JMenuItem[] testDataOptions = new JMenuItem[3];
00039 
00040         public static final int PANEL_PROBE=0;
00041         public static final int MODULE_BOC=1;
00042         public static final int MODULE_PROBE=2;
00043         public static final int PANEL_DISPLAY=3;
00044         public static final int MENUBAR_DISPLAY=4;
00045         public static final int MENUBAR_SYSTEM=5;
00046         public static final int MODULE_DCS=6;
00047         public static final int PANEL_DCS=7;
00048         public static final int MODULE_RESULTS=8;
00049         public static final int MENUBAR_PREFERENCES=9;
00050         public static final int MENUBAR_HELP=10;
00051         public static final int MODULE_SCTDB=11;
00052         public static final int MODULE_DATA_MANAGER=12;
00053         public static final int MODULE_IVSCAN=13;
00054         public static final int PANEL_TESTMENU=14;
00055         public static final int MENUBAR_TESTMENU=15;
00056         public static final int MENUBAR_TOOLS=16;
00057         public static final int OPTIONS_DISPLAY=17;
00058         public static final int TEST_FILTER=18;
00059         public static final int OPTIONS_IVSCAN=19;
00060         public static final int OPTIONS_CONFIG=20;
00061         public static final int PANEL_TESTDATA=21;
00062 
00063         private int N_MENUS=22;
00064 
00065         private JMenu[] guiMenu;
00066 
00067         public GuiMenus(gui guiControl) {
00068                 this.guiControl = guiControl;
00069 
00070                 guiMenu = new JMenu[N_MENUS];
00071                 for(int imenu=0;imenu<N_MENUS;imenu++) {
00072                         switch(imenu) {
00073                                 case PANEL_PROBE:
00074                                         guiMenu[imenu]=getProbeMenu();
00075                                         break;
00076                                 case MODULE_PROBE:
00077                                         guiMenu[imenu]=getModuleProbeMenu();
00078                                         break;
00079                                 case MODULE_BOC:
00080                                         guiMenu[imenu]=getModuleBOCMenu();
00081                                         break;
00082                                 case MENUBAR_DISPLAY:
00083                                         guiMenu[imenu]=getDisplayMenu();
00084                                 guiMenu[imenu].addSeparator();
00085                                 JMenuItem menuItem = new JMenuItem("Toolbar ...");
00086                                 menuItem.setFont(menuFont);
00087                                 menuItem.addActionListener(new java.awt.event.ActionListener() {
00088                                 public void actionPerformed(java.awt.event.ActionEvent evt) {
00089                                                         showToolBar();
00090                                                         }
00091                                 });
00092                                 guiMenu[imenu].add(menuItem);
00093                                         guiMenu[imenu].setForeground(menuColor);
00094                                         break;
00095                                 case PANEL_DISPLAY:
00096                                         guiMenu[imenu]=getDisplayMenu();
00097                                         guiMenu[imenu].setText("Select Display");
00098                                         break;
00099                                 case MENUBAR_SYSTEM:
00100                                         guiMenu[imenu]=getSystemMenu();
00101                                         break;
00102                                 case MODULE_DCS:
00103                                         guiMenu[imenu]=getDDCModuleMenu();
00104                                         break;
00105                                 case PANEL_DCS:
00106                                         guiMenu[imenu]=getDCSPanelMenu();
00107                                         break;
00108                                 case MODULE_RESULTS:
00109                                         guiMenu[imenu]=getModuleResultMenu();
00110                                         break;
00111                                 case MENUBAR_PREFERENCES:
00112                                         guiMenu[imenu]=getPreferencesMenu();
00113                                         break;
00114                                 case MENUBAR_HELP:
00115                                         guiMenu[imenu]=getSctHelpMenu();
00116                                         guiMenu[imenu].setForeground(menuColor);
00117                                         break;
00118                                 case MODULE_SCTDB:
00119                                         guiMenu[imenu]=getModuleSCTDBMenu();
00120                                         break;
00121                                 case MODULE_DATA_MANAGER:
00122                                         guiMenu[imenu]=getModuleDataManagerMenu();
00123                                         break;
00124                                 case MODULE_IVSCAN:
00125                                         guiMenu[imenu]=getIVScanMenu();
00126                                         break;
00127                                 case PANEL_TESTMENU:
00128                                         guiMenu[imenu]=getTestMenu(0);
00129                                         guiMenu[imenu].setText("Invoke Tests");
00130                                         break;
00131                                 case MENUBAR_TESTMENU:
00132                                         guiMenu[imenu]=getTestMenu(1);
00133                                         guiMenu[imenu].setForeground(menuColor);
00134                                         break;
00135                                 case MENUBAR_TOOLS:
00136                                         guiMenu[imenu]=getToolsMenu();
00137                                         break;
00138                                 case OPTIONS_DISPLAY:
00139                                         guiMenu[imenu]=getDisplayOptionMenu();
00140                                         break;
00141                                 case TEST_FILTER:
00142                                         guiMenu[imenu]=getTestFilterMenu();
00143                                         break;
00144                                 case OPTIONS_IVSCAN:
00145                                         guiMenu[imenu]=getIVScanOptionMenu();
00146                                         break;
00147                                 case OPTIONS_CONFIG:
00148                                         guiMenu[imenu]=getConfigsOptionMenu();
00149                                         break;
00150                                 case PANEL_TESTDATA:
00151                                         guiMenu[imenu]=getPanelTestMenu();
00152                                         break;
00153                                 default:
00154                                 }
00155                         guiMenu[imenu].setFont(menuFont);
00156                         guiMenu[imenu].setBackground(backgroundColor);
00157             // guiMenu[imenu].setForeground(menuColor);
00158                         }
00159                 }
00160 
00161         public JMenu getMenu(int menu) {
00162                 return guiMenu[menu];
00163                 }
00164         public javax.swing.JPopupMenu getPopupMenu(int menu) {
00165                 return guiMenu[menu].getPopupMenu();
00166                 }
00167 
00168         //**************************************************
00169    private JMenu getPanelTestMenu() {
00170        JMenu thisMenu = new JMenu("Test Results");
00171        testDataOptions[0] = new JMenuItem("ROD Data");
00172        testDataOptions[0].setFont(menuFont);
00173        testDataOptions[0].addActionListener(new java.awt.event.ActionListener() {
00174                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00175                     guiControl.displayPane.setDisplayOption(0);
00176                      }
00177              });
00178        testDataOptions[1] = new JMenuItem("SCTDAQ Reference Data");
00179        testDataOptions[1].setFont(menuFont);
00180        testDataOptions[1].addActionListener(new java.awt.event.ActionListener() {
00181                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00182                     guiControl.displayPane.setDisplayOption(1);
00183                      }
00184              });
00185 
00186        testDataOptions[2] = new JMenuItem("Comparison ROD-SCTDAQ");
00187        testDataOptions[2].setFont(menuFont);
00188        testDataOptions[2].addActionListener(new java.awt.event.ActionListener() {
00189                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00190                     guiControl.displayPane.setDisplayOption(2);
00191                      }
00192              });
00193        thisMenu.add(testDataOptions[0]);
00194        thisMenu.add(testDataOptions[1]);
00195        thisMenu.add(testDataOptions[2]);
00196 
00197        thisMenu.addSeparator();
00198 
00199        JMenuItem item = new JMenuItem("Summary List...");
00200        item.setFont(menuFont);
00201        item.addActionListener(new java.awt.event.ActionListener() {
00202                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00203 
00204                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00205                   IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
00206                   int testIndex = (testSelection!=null) ? testSelection.getTestIndex() : -1;
00207                   if(testIndex==-1) {
00208                     javax.swing.JOptionPane.showMessageDialog(null,"No test is currently selected.");
00209                     return;
00210                     }
00211                   int parameterIndex = guiControl.selectorPane.getDisplayParameterIndex();
00212                   if(parameterIndex<0) {
00213                   javax.swing.JOptionPane.showMessageDialog(null,"No test parameter is currently selected.");
00214                     return;
00215                     }
00216 
00217                   String header = testSelection.getResultObjectHeader();
00218 
00219                   java.util.Vector theTable = new java.util.Vector();
00220                   java.util.Vector theLine = new java.util.Vector();
00221                   theLine.addElement("Serial No");
00222                   if(parameterIndex>3) for(int i=4;i<chipOptions.length;i++) theLine.addElement(chipOptions[i]);
00223                   else theLine.addElement("Data");
00224                   theTable.addElement(theLine);
00225 
00226           java.util.Map dcsMap = null;
00227 //       if(displayStatus==DisplayStatus.DCS_DATA && guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
00228           if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
00229 
00230 // enumerate through all modules
00231 
00232         for (java.util.Iterator m = ConfigurationInterface.getInstance().getSerialNumberList(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex()).iterator(); m.hasNext(); ) {
00233                String sn=(String)m.next();
00234                SummaryReader.DCSInfo dcsInfo = (dcsMap!=null) ? (SummaryReader.DCSInfo)dcsMap.get(sn) : null;
00235                theLine = guiControl.isInterface.getTestDataLine(header,sn,testIndex,dcsInfo);
00236                     if(theLine!=null) theTable.addElement(theLine);
00237                     }
00238                    String param = guiControl.selectorPane.getDisplayParameter();
00239                    param+=" Data for "+testNames[testSelection.getTestIndex()]+" Run "+Integer.toString(testSelection.getRunNo())+" Scan "+Integer.toString(testSelection.getScanNo());
00240                    guiUtilities.SpreadsheetViewer.getInstance().update(param,theTable);
00241 
00242                      }
00243              });
00244       thisMenu.add(item);
00245 
00246        item = new JMenuItem("SCTDAQ Reference Comparison Report");
00247        item.setFont(menuFont);
00248        item.addActionListener(new java.awt.event.ActionListener() {
00249                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00250                      guiControl.menuActions.makeComparisonReport(true);
00251                      }
00252              });
00253       thisMenu.add(item);
00254 
00255        item = new JMenuItem("SctRodDaq Reference Comparison Report");
00256        item.setFont(menuFont);
00257       item.addActionListener(new java.awt.event.ActionListener() {
00258                public void actionPerformed(java.awt.event.ActionEvent evt) {
00259                                 guiControl.menuActions.makeComparisonReport(false);
00260                      }
00261             });
00262       thisMenu.add(item);
00263 
00264 
00265       thisMenu.addSeparator();
00266 
00267 
00268        item = new JMenuItem("Upload to SCT Database");
00269        item.setFont(menuFont);
00270        item.addActionListener(new java.awt.event.ActionListener() {
00271                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00272                     TestSelection t = guiControl.tablesDisplayPane.getTestSelection();
00273                     if(t==null) {
00274                       javax.swing.JOptionPane.showMessageDialog(null,"There is no Data to upload!");
00275                       return;
00276                       }
00277                     int response = javax.swing.JOptionPane.showConfirmDialog(null,"Are you sure want to upload the data for Run/Scan "+t.getRunNo()+"/"+t.getScanNo()+"?");
00278                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
00279                     UploadManager upload = new UploadManager(guiControl);
00280                      }
00281              });
00282        thisMenu.add(item);
00283 
00284        return thisMenu;
00285        }
00286 
00287 
00288         private JMenu getConfigsOptionMenu() {
00289            JMenu configMenu = new JMenu("Configuration");
00290        JMenuItem item = new JMenuItem("Get Configuration");
00291        item.setFont(menuFont);
00292        configMenu.add(item);
00293        item.addActionListener(new java.awt.event.ActionListener() {
00294                 public void actionPerformed(java.awt.event.ActionEvent evt) {
00295                     ConfigurationInterface.getInstance().Refresh();
00296                     guiControl.displayStatus.setConfigurationMode();
00297                     }
00298              });
00299            item= new JMenuItem("Manual Configuration...");
00300            item.setFont(menuFont);
00301            configMenu.add(item);
00302            item.addActionListener(new java.awt.event.ActionListener() {
00303                 public void actionPerformed(java.awt.event.ActionEvent evt) {
00304                    guiControl.displayStatus.setModuleGroupSelectionMode();
00305                    if(manualConfiguration==null) manualConfiguration = new ManualConfiguration(guiControl);
00306                    else manualConfiguration.showFrame();
00307                    }
00308              });
00309 
00310                  return configMenu;
00311                  }
00312 
00313         private JMenu getIVScanOptionMenu() {
00314        JMenu thisMenu = new JMenu("IV scans");
00315 
00316        JMenuItem item = new JMenuItem("IV Scan Data Directory...");
00317        item.setFont(menuFont);
00318        thisMenu.add(item);
00319        item.addActionListener(new java.awt.event.ActionListener() {
00320              public void actionPerformed(java.awt.event.ActionEvent evt) {
00321                    Preference preference = new Preference(guiControl,PreferencesInterface.IV_DIRECTORY);
00322                    }
00323               });
00324 
00325 
00326        item = new JMenuItem("Import IV Scans...");
00327        item.setFont(menuFont);
00328        thisMenu.add(item);
00329        item.addActionListener(new java.awt.event.ActionListener() {
00330              public void actionPerformed(java.awt.event.ActionEvent evt) {
00331                    new IVScanLister(ConfigurationInterface.getInstance().getSerialNumberList(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex())).setVisible(true);
00332                    }
00333               });
00334 
00335        item = new JMenuItem("Plot Selected IVScans");
00336        item.setFont(menuFont);
00337        thisMenu.add(item);
00338        item.addActionListener(new java.awt.event.ActionListener() {
00339              public void actionPerformed(java.awt.event.ActionEvent evt) {
00340                    guiControl.menuActions.plotIVScanData(null);
00341                    }
00342               });
00343 
00344        item = new JMenuItem("Upload to SCT Database");
00345        item.setFont(menuFont);
00346        thisMenu.add(item);
00347        item.addActionListener(new java.awt.event.ActionListener() {
00348              public void actionPerformed(java.awt.event.ActionEvent evt) {
00349                     IVTestSelection i = guiControl.tablesDisplayPane.getIVTestSelection();
00350                     if(i==null) {
00351                       javax.swing.JOptionPane.showMessageDialog(null,"There is no IV scan Data to upload!");
00352                       return;
00353                       }
00354                     int response = javax.swing.JOptionPane.showConfirmDialog(null,"Are you sure want to upload the IV scans for Run/Scan "+i.getRunNo()+"/"+i.getScanNo()+"?");
00355                     if(response!=javax.swing.JOptionPane.YES_OPTION) return;
00356                     UploadManager upload = new UploadManager(guiControl);
00357                    }
00358               });
00359 
00360        return thisMenu;
00361        }
00362 
00363    private JMenu getTestFilterMenu() {
00364        JMenu thisMenu = new JMenu("Test Filter");
00365 
00366        JMenuItem item = new JMenuItem("Add/Edit Run Comments...");
00367        item.setFont(menuFont);
00368        item.addActionListener(new java.awt.event.ActionListener() {
00369                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00370                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00371                          if(testSelection==null) {
00372                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
00373                              return;
00374                              }
00375                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), null);
00376                  }
00377              });
00378        thisMenu.add(item);
00379 
00380        item = new JMenuItem("Add/Edit Test Comments...");
00381        item.setFont(menuFont);
00382        item.addActionListener(new java.awt.event.ActionListener() {
00383                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00384                          TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00385                          if(testSelection==null) {
00386                              javax.swing.JOptionPane.showMessageDialog(null,"No test selected.");
00387                              return;
00388                              }
00389                          BookKeeper.getInstance().showCommentPrompt(testSelection.getRunNo(), testSelection.getScanNo(), testSelection.getTestName());
00390                  }
00391              });
00392        thisMenu.add(item);
00393 
00394        thisMenu.addSeparator();
00395 
00396        javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
00397        testFilterButtons[0] = new javax.swing.JCheckBox("All tests");
00398        thisGroup.add(testFilterButtons[0]);
00399        testFilterButtons[0].setFont(menuFont);
00400        testFilterButtons[0].addActionListener(new java.awt.event.ActionListener() {
00401              public void actionPerformed(java.awt.event.ActionEvent evt) {
00402                    switch(guiControl.displayStatus.getStatus()) {
00403                    case DisplayStatus.TEST_DATA:
00404                      guiControl.displayStatus.setTestDataMode(-1);      
00405                      break;
00406                    case DisplayStatus.SCTDB_DATA:
00407                     guiControl.displayStatus.setSCTDBDataMode(-1);
00408                      break;
00409                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00410                     guiControl.displayStatus.setSCTDBRodDaqMode(-1); 
00411                      break;
00412                    default:
00413                    }
00414                  }
00415               });
00416         thisMenu.add(testFilterButtons[0]);
00417        for(int i=1;i<testFilterButtons.length;i++) {
00418          if(!testIsDefined[i-1]) continue;
00419          testFilterButtons[i] = new javax.swing.JCheckBox(testNames[i-1]);
00420          thisGroup.add(testFilterButtons[i]);
00421          testFilterButtons[i].setFont(menuFont);
00422          thisMenu.add(testFilterButtons[i]);
00423          }
00424        testFilterButtons[0].setSelected(true);
00425 
00426        for(int i=1;i<testFilterButtons.length;i++) {
00427          if(!testIsDefined[i-1]) continue;
00428          switch(i-1) {
00429           case TEST_FULLBYPASS:
00430              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00431                public void actionPerformed(java.awt.event.ActionEvent evt) {
00432                    switch(guiControl.displayStatus.getStatus()) {
00433                    case DisplayStatus.TEST_DATA:
00434                      guiControl.displayStatus.setTestDataMode(TEST_FULLBYPASS);
00435                      break;
00436                    case DisplayStatus.SCTDB_DATA:
00437                     guiControl.displayStatus.setSCTDBDataMode(TEST_FULLBYPASS);
00438                      break;
00439                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00440                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_FULLBYPASS);
00441                      break;
00442                    default:
00443                    }
00444                    }
00445               });
00446             break;
00447           case TEST_PIPELINE:
00448              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00449                public void actionPerformed(java.awt.event.ActionEvent evt) {
00450                    switch(guiControl.displayStatus.getStatus()) {
00451                    case DisplayStatus.TEST_DATA:
00452                      guiControl.displayStatus.setTestDataMode(TEST_PIPELINE);
00453                      break;
00454                    case DisplayStatus.SCTDB_DATA:
00455                     guiControl.displayStatus.setSCTDBDataMode(TEST_PIPELINE);
00456                      break;
00457                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00458                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_PIPELINE);
00459                      break;
00460                    default:
00461                    }
00462                    }
00463               });
00464             break;
00465           case TEST_STROBEDELAY:
00466              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00467                public void actionPerformed(java.awt.event.ActionEvent evt) {
00468                    switch(guiControl.displayStatus.getStatus()) {
00469                    case DisplayStatus.TEST_DATA:
00470                      guiControl.displayStatus.setTestDataMode(TEST_STROBEDELAY);
00471                      break;
00472                    case DisplayStatus.SCTDB_DATA:
00473                     guiControl.displayStatus.setSCTDBDataMode(TEST_STROBEDELAY);
00474                      break;
00475                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00476                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_STROBEDELAY);
00477                      break;
00478                    default:
00479                    }
00480                    }
00481               });
00482             break;
00483           case TEST_3PTGAIN:
00484              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00485                public void actionPerformed(java.awt.event.ActionEvent evt) {
00486                    switch(guiControl.displayStatus.getStatus()) {
00487                    case DisplayStatus.TEST_DATA:
00488                      guiControl.displayStatus.setTestDataMode(TEST_3PTGAIN);
00489                      break;
00490                    case DisplayStatus.SCTDB_DATA:
00491                     guiControl.displayStatus.setSCTDBDataMode(TEST_3PTGAIN);
00492                      break;
00493                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00494                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_3PTGAIN);
00495                      break;
00496                    default:
00497                    }
00498                    }
00499               });
00500             break;
00501           case TEST_TRIM:
00502              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00503                public void actionPerformed(java.awt.event.ActionEvent evt) {
00504                    switch(guiControl.displayStatus.getStatus()) {
00505                    case DisplayStatus.TEST_DATA:
00506                      guiControl.displayStatus.setTestDataMode(TEST_TRIM);
00507                      break;
00508                    case DisplayStatus.SCTDB_DATA:
00509                     guiControl.displayStatus.setSCTDBDataMode(TEST_TRIM);
00510                      break;
00511                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00512                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TRIM);
00513                      break;
00514                    default:
00515                    }
00516                    }
00517               });
00518             break;
00519           case TEST_NPTGAIN:
00520              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00521                public void actionPerformed(java.awt.event.ActionEvent evt) {
00522                    switch(guiControl.displayStatus.getStatus()) {
00523                    case DisplayStatus.TEST_DATA:
00524                      guiControl.displayStatus.setTestDataMode(TEST_NPTGAIN);
00525                      break;
00526                    case DisplayStatus.SCTDB_DATA:
00527                     guiControl.displayStatus.setSCTDBDataMode(TEST_NPTGAIN);
00528                      break;
00529                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00530                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NPTGAIN);
00531                      break;
00532                    default:
00533                    }
00534                    }
00535               });
00536             break;
00537           case TEST_NOISE:
00538              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00539                public void actionPerformed(java.awt.event.ActionEvent evt) {
00540                    switch(guiControl.displayStatus.getStatus()) {
00541                    case DisplayStatus.TEST_DATA:
00542                      guiControl.displayStatus.setTestDataMode(TEST_NOISE);
00543                      break;
00544                    case DisplayStatus.SCTDB_DATA:
00545                     guiControl.displayStatus.setSCTDBDataMode(TEST_NOISE); 
00546                      break;
00547                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00548                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NOISE);
00549                      break;
00550                    default:
00551                    }
00552                    }
00553               });
00554             break;
00555           case TEST_TIMEWALK:
00556              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00557                public void actionPerformed(java.awt.event.ActionEvent evt) {
00558                    switch(guiControl.displayStatus.getStatus()) {
00559                    case DisplayStatus.TEST_DATA:
00560                      guiControl.displayStatus.setTestDataMode(TEST_TIMEWALK);
00561                      break;
00562                    case DisplayStatus.SCTDB_DATA:
00563                     guiControl.displayStatus.setSCTDBDataMode(TEST_TIMEWALK);
00564                      break;
00565                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00566                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_TIMEWALK);
00567                      break;
00568                    default:
00569                    }
00570                    }
00571               });
00572             break;
00573           case TEST_NMASK:
00574              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00575                public void actionPerformed(java.awt.event.ActionEvent evt) {
00576                    switch(guiControl.displayStatus.getStatus()) {
00577                    case DisplayStatus.TEST_DATA:
00578                      guiControl.displayStatus.setTestDataMode(TEST_NMASK);
00579                      break;
00580                    case DisplayStatus.SCTDB_DATA:
00581                     guiControl.displayStatus.setSCTDBDataMode(TEST_NMASK);
00582                      break;
00583                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00584                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_NMASK);
00585                      break;
00586                    default:
00587                    }
00588                    }
00589               });
00590             break;
00591              case TEST_RXTHRESHOLD:
00592              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00593                public void actionPerformed(java.awt.event.ActionEvent evt) {
00594                    switch(guiControl.displayStatus.getStatus()) {
00595                    case DisplayStatus.TEST_DATA:
00596                      guiControl.displayStatus.setTestDataMode(TEST_RXTHRESHOLD);
00597                      break;
00598                    case DisplayStatus.SCTDB_DATA:
00599                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXTHRESHOLD);
00600                      break;
00601                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00602                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXTHRESHOLD);
00603                      break;
00604                    default:
00605                    }
00606                    }
00607               });
00608             break;
00609              case TEST_RXTHRESHOLDBASEDONCONFIGREGISTER:
00610              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00611                public void actionPerformed(java.awt.event.ActionEvent evt) {
00612                    switch(guiControl.displayStatus.getStatus()) {
00613                    case DisplayStatus.TEST_DATA:
00614                      guiControl.displayStatus.setTestDataMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER);
00615                      break;
00616                    case DisplayStatus.SCTDB_DATA:
00617                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER);
00618                      break;
00619                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00620                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXTHRESHOLDBASEDONCONFIGREGISTER);
00621                      break;
00622                    default:
00623                    }
00624                    }
00625               });
00626             break;
00627              case TEST_RXDELAY:
00628              testFilterButtons[i].addActionListener(new java.awt.event.ActionListener() {
00629                public void actionPerformed(java.awt.event.ActionEvent evt) {
00630                    switch(guiControl.displayStatus.getStatus()) {
00631                    case DisplayStatus.TEST_DATA:
00632                      guiControl.displayStatus.setTestDataMode(TEST_RXDELAY);
00633                      break;
00634                    case DisplayStatus.SCTDB_DATA:
00635                     guiControl.displayStatus.setSCTDBDataMode(TEST_RXDELAY);
00636                      break;
00637                    case DisplayStatus.SCTDB_RODDAQ_DATA:
00638                      guiControl.displayStatus.setSCTDBRodDaqMode(TEST_RXDELAY);
00639                      break;
00640                    default:
00641                    }
00642                    }
00643               });
00644             break;
00645             default:
00646             }
00647           }
00648       return thisMenu;
00649       }
00650 
00651    public void resetTestListFilter() {
00652       testFilterButtons[0].setSelected(true);
00653       }
00654 
00655    private void setAutoSelectItem() {
00656         autoSelectModeItem.setText(autoSelectMode ? "Disable test auto-select (currently enabled)" : "Enable test auto-select (currently disabled)");
00657         }
00658 
00659     private JMenu getDisplayOptionMenu() {
00660        JMenu thisMenu = new JMenu("Display");
00661 
00662        JMenuItem item = new JMenuItem("Clear Result Cache");
00663        item.setFont(menuFont);
00664        item.addActionListener(new java.awt.event.ActionListener() {
00665                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00666                     System.out.println("SctGUI: Clearing cache (was "+guiControl.isInterface.cache.size()+" objects deep)");
00667                     guiControl.isInterface.cache.clear();
00668                  }
00669              });
00670        thisMenu.add(item);
00671 
00672        item = new JMenuItem("Reset all Color Scales");
00673        item.setFont(menuFont);
00674        item.addActionListener(new java.awt.event.ActionListener() {
00675                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00676                    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);
00677                    if(response==javax.swing.JOptionPane.YES_OPTION) {
00678                       ColorScaleManager.getInstance().clearAll();
00679                       guiControl.colorScalePane.setColorScale();
00680                       guiControl.displayPane.setDisplayColors();
00681                       guiControl.displayPane.refreshDisplay();
00682                       }
00683 
00684                  }
00685              });
00686        thisMenu.add(item);
00687 
00688          autoSelectModeItem = new JMenuItem();
00689        autoSelectModeItem.setFont(menuFont);
00690        autoSelectMode = PreferencesInterface.getInstance().getPreference(PreferencesInterface.AUTO_TEST_SELECT).equals("TRUE");
00691        setAutoSelectItem();
00692          thisMenu.add(autoSelectModeItem);
00693        autoSelectModeItem.addActionListener(new java.awt.event.ActionListener() {
00694                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00695                     autoSelectMode = !autoSelectMode;
00696                           setAutoSelectItem();
00697                     PreferencesInterface.getInstance().setPreference(PreferencesInterface.AUTO_TEST_SELECT,autoSelectMode ? "TRUE" : "FALSE");
00698                  }
00699              });
00700 
00701        return thisMenu;
00702        }
00703 
00704 
00705         private JMenu getToolsMenu() {
00706        JMenu menu = new JMenu("Tools");
00707        menu.setBackground(backgroundColor);
00708        menu.setForeground(menuColor);
00709         JMenuItem item = new JMenuItem("IS Tree...");
00710        item.setFont(menuFont);
00711        item.addActionListener(new java.awt.event.ActionListener() {
00712             public void actionPerformed(java.awt.event.ActionEvent evt) {
00713                                 if(isTree==null) isTree = new ISTree(guiControl,guiControl.isInterface.getISTree());
00714                 else isTree.setTree(guiControl.isInterface.getISTree());
00715                          }
00716               });
00717        menu.add(item);
00718 
00719        JMenu menu2 = new JMenu("Scripting");
00720            menu2.setFont(menuFont);
00721            menu2.setBackground(backgroundColor);
00722       // menu2.setForeground(menuColor);
00723        /*scriptJavaScriptItem = new JMenuItem("JavaScript");
00724        scriptJavaScriptItem.setFont(menuFont);
00725        scriptJavaScriptItem.addActionListener(this);
00726        menu2.add(scriptJavaScriptItem);*/
00727        item = new JMenuItem("BeanShell");
00728        item.setFont(menuFont);
00729        item.addActionListener(new java.awt.event.ActionListener() {
00730             public void actionPerformed(java.awt.event.ActionEvent evt) {
00731                         guiControl.menuActions.addNewConsole(ScriptingInterface.instance().getBeanShellInterpreter(), "BeanShell");
00732                          }
00733               });
00734            menu2.add(item);
00735        item = new JMenuItem("Jython");
00736        item.setFont(menuFont);
00737        item.addActionListener(new java.awt.event.ActionListener() {
00738             public void actionPerformed(java.awt.event.ActionEvent evt) {
00739                 guiControl.menuActions.addNewConsole(ScriptingInterface.instance().getJythonInterpreter(), "Jython");
00740                          }
00741               });
00742        menu2.add(item);
00743        menu.add(menu2);
00744 
00745        item = new JMenuItem("Run GarbageCollector");
00746        item.setFont(menuFont);
00747        item.addActionListener(new java.awt.event.ActionListener() {
00748             public void actionPerformed(java.awt.event.ActionEvent evt) {
00749                Runtime r = Runtime.getRuntime();
00750                long freeMem = r.freeMemory();
00751                long maxMem = r.maxMemory();
00752                long totalMem = r.totalMemory();
00753                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.);
00754                r.gc();
00755                try {
00756                  Thread.sleep(500);
00757                } catch (InterruptedException ie) {}
00758                r.gc();
00759                freeMem = r.freeMemory();
00760                maxMem = r.maxMemory();
00761                totalMem = r.totalMemory();
00762                System.out.println("Total Mem: " + totalMem/1024. + ", Max Mem:" + maxMem/1024. + " , Free Mem: " + freeMem/1024.  );
00763                    }
00764               });
00765        menu.add(item);
00766        item = new JMenuItem("Refresh Display");
00767        item.setFont(menuFont);
00768        item.addActionListener(new java.awt.event.ActionListener() {
00769             public void actionPerformed(java.awt.event.ActionEvent evt) {
00770                guiControl.displayPane.setDisplayColors();
00771                guiControl.displayPane.refreshDisplay();
00772                    }
00773               });
00774        menu.add(item);
00775 
00776        item = new JMenuItem("Launch SctApi GUI");
00777        item.setFont(menuFont);
00778        item.addActionListener(new java.awt.event.ActionListener() {
00779             public void actionPerformed(java.awt.event.ActionEvent evt) {
00780                 javax.swing.JFrame frame = new javax.swing.JFrame("SctApi GUI");
00781                 frame.getContentPane().add(new GuiComponents.Panels.SctApiGui());
00782 
00783                 frame.pack();
00784                 frame.setVisible(true);
00785             }
00786            });
00787        menu.add(item);
00788         return menu;
00789         }
00790 
00791         private JMenu getTestMenu(int mindex) {
00792 
00793        JMenu thisMenu = new JMenu("Tests");
00794            testsMenu[mindex] = new TestsMenu(guiControl);
00795        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.BOCTESTS_MENU));
00796        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.DIGITALTESTS_MENU));
00797            thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.ANALOGUETESTS_MENU));
00798        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.TIMINGTESTS_MENU));
00799        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.QUICKTESTS_MENU));
00800        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.ALLTESTS_MENU));
00801        thisMenu.add(testsMenu[mindex].getMenu(TestsMenu.SEQUENCES_MENU));
00802  //      thisMenu.addSeparator();
00803  //      thisMenu.add(getSCTDAQMenu());
00804        return thisMenu;
00805        }
00806 
00807         private JMenu getIVScanMenu() {
00808        JMenu ivScanMenu = new JMenu("IVScan");
00809        JMenuItem item1 = new JMenuItem("Test Report");
00810        ivScanMenu.add(item1);
00811        item1.addActionListener(new java.awt.event.ActionListener() {
00812              public void actionPerformed(java.awt.event.ActionEvent evt) {
00813 //                System.out.println("Selected "+popupCell.getSerialNo());
00814                    IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
00815                    if(ivTestSelection==null) {
00816                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00817                        return;
00818                        }
00819                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(ivTestSelection.getResultObjectHeader(),guiControl.displayPane.getLastClickedCell().getSerialNo(),null);
00820                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showIVTestReport(guiControl.displayPane.getLastClickedCell().getSerialNo(),testResult);
00821                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for "+guiControl.displayPane.getLastClickedCell().getSerialNo());
00822               }
00823           });
00824 
00825        item1 = new JMenuItem("Plot IVScan");
00826        item1.setFont(menuFont);
00827        ivScanMenu.add(item1);
00828        item1.addActionListener(new java.awt.event.ActionListener() {
00829              public void actionPerformed(java.awt.event.ActionEvent evt) {
00830                    guiControl.menuActions.plotIVScanData(guiControl.displayPane.getLastClickedCell().getSerialNo());
00831               }
00832           });
00833 
00834        item1 = new JMenuItem("Dump test result");
00835        item1.setFont(menuFont);
00836        ivScanMenu.add(item1);
00837        item1.addActionListener(new java.awt.event.ActionListener() {
00838              public void actionPerformed(java.awt.event.ActionEvent evt) {
00839                      IVTestSelection ivTestSelection = guiControl.tablesDisplayPane.getIVTestSelection();
00840                      if(ivTestSelection==null)  {
00841                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00842                        return;
00843                        }
00844                      String resultObject=ivTestSelection.getResultObjectHeader()+guiControl.displayPane.getLastClickedCell().getSerialNo();
00845                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
00846                            javax.swing.JOptionPane.showMessageDialog(null,"No data for "+guiControl.displayPane.getLastClickedCell().getSerialNo());
00847                            return;
00848                            }
00849                      TestSummaryIS result = new TestSummaryIS();
00850                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result); 
00851                      java.util.Vector thisData = new java.util.Vector();
00852                      thisData.addElement(guiControl.displayPane.getLastClickedCell().getSerialNo()+".txt");
00853                      thisData.addElement(result.dataString);
00854                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
00855                      }
00856 
00857           });
00858        item1 = new JMenuItem("Full SCTDB Module Report");
00859        item1.setFont(menuFont);
00860        ivScanMenu.add(item1);
00861        item1.addActionListener(new java.awt.event.ActionListener() {
00862              public void actionPerformed(java.awt.event.ActionEvent evt) {
00863              String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
00864              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
00865              if(d.isOkToStart()) d.start();
00866              }
00867 
00868           });
00869        item1 = new JMenuItem("Edit/Add Module Comments...");
00870        item1.setFont(menuFont);
00871        item1.addActionListener(new java.awt.event.ActionListener() {
00872              public void actionPerformed(java.awt.event.ActionEvent evt) {
00873                 showModuleCommentPrompt(guiControl.displayPane.getLastClickedCell().getSerialNo());
00874                      }
00875 
00876           });
00877        ivScanMenu.add(item1);
00878         return ivScanMenu;
00879 
00880        }
00881 
00882 
00883 
00884         //**************************************************************************
00885     private JMenu getModuleDataManagerMenu() {
00886        JMenu dataManagerSNMenu = new JMenu("Data Manager");
00887 
00888        JMenuItem item = new JMenuItem("Plot Selected Data");
00889        item.setFont(menuFont);
00890        item.addActionListener(new java.awt.event.ActionListener() {
00891                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00892                     switch(guiControl.displayStatus.getStatus()) {
00893                        case DisplayStatus.IS_MONITOR:
00894                           String objectname;
00895                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewer(objectname);
00896                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
00897                         break;
00898                     default:
00899                      }
00900                  }
00901              });
00902        dataManagerSNMenu.add(item);
00903 
00904        item = new JMenuItem("Plot Selected Data (with Options)");
00905        item.setFont(menuFont);
00906        item.addActionListener(new java.awt.event.ActionListener() {
00907                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00908                     switch(guiControl.displayStatus.getStatus()) {
00909                        case DisplayStatus.IS_MONITOR:
00910                           String objectname;
00911                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.launchExternalViewerWithOptions(objectname);
00912                           else javax.swing.JOptionPane.showMessageDialog(null,"No plot data available.");
00913                         break;
00914                     default:
00915                      }
00916                  }
00917              });
00918        dataManagerSNMenu.add(item);
00919 
00920 
00921 
00922        item = new JMenuItem("View Selected IS Object");
00923        item.setFont(menuFont);
00924        item.addActionListener(new java.awt.event.ActionListener() {
00925                  public void actionPerformed(java.awt.event.ActionEvent evt) {
00926                     switch(guiControl.displayStatus.getStatus()) {
00927                        case DisplayStatus.IS_MONITOR:
00928                           String objectname;
00929                           if((objectname = guiControl.tablesDisplayPane.getSelectedObject())!=null) guiControl.isInterface.viewISData(objectname);
00930                           else javax.swing.JOptionPane.showMessageDialog(null,"No data available.");
00931                         break;
00932                     default:
00933                      }
00934                  }
00935              });
00936 
00937        dataManagerSNMenu.add(item);
00938        item = new JMenuItem("View Module Configuration");
00939        item.setFont(menuFont);
00940        item.addActionListener(new java.awt.event.ActionListener() {
00941              public void actionPerformed(java.awt.event.ActionEvent evt) {
00942             javax.swing.JFrame frame2 = new javax.swing.JFrame("Module Configuration");
00943             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(guiControl.displayPane.getLastClickedCell().getSerialNo()));
00944             frame2.pack();
00945             frame2.show();
00946                      }
00947 
00948           });
00949       dataManagerSNMenu.add(item);
00950 
00951       item = new JMenuItem("Edit/Add Module Comments...");
00952        item.setFont(menuFont);
00953        item.addActionListener(new java.awt.event.ActionListener() {
00954              public void actionPerformed(java.awt.event.ActionEvent evt) {
00955                 showModuleCommentPrompt(guiControl.displayPane.getLastClickedCell().getSerialNo());
00956                      }
00957 
00958           });
00959 
00960        dataManagerSNMenu.add(item);
00961            return dataManagerSNMenu;
00962        }
00963 
00964         private JMenu getModuleSCTDBMenu() {
00965        JMenu sctdbDataSNMenu = new JMenu("Data Options");
00966        sctdbDataSNMenu.setFont(menuFont);
00967 
00968        JMenuItem item1 = new JMenuItem("Test Report");
00969        item1.setFont(menuFont);
00970        sctdbDataSNMenu.add(item1);
00971        item1.addActionListener(new java.awt.event.ActionListener() {
00972              public void actionPerformed(java.awt.event.ActionEvent evt) {
00973                TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
00974                if(testSelection==null)  {
00975                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
00976                        return;
00977                        }
00978                String resultObject= (testSelection.isSCTDBRodDaqData()) ? testSelection.getSCTDBRodDaqObjectHeader()+guiControl.displayPane.getLastClickedCell().getSerialNo() : testSelection.getSCTDBObjectHeader()+guiControl.displayPane.getLastClickedCell().getSerialNo();
00979                if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
00980                   javax.swing.JOptionPane.showMessageDialog(null,"No data for "+guiControl.displayPane.getLastClickedCell().getSerialNo());
00981                   return;
00982                   }
00983                SCTDB_Data result = new SCTDB_Data();
00984                Sct.IS.SctNames.getISRepository().getValue(resultObject, result);
00985                ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.SCTDAQTESTDATA, result.testNumber, 0);
00986                if(d.isOkToStart()) d.start();
00987              }
00988 
00989           });
00990        item1 = new JMenuItem("Full Module Report");
00991        item1.setFont(menuFont);
00992        sctdbDataSNMenu.add(item1);
00993        item1.addActionListener(new java.awt.event.ActionListener() {
00994              public void actionPerformed(java.awt.event.ActionEvent evt) {
00995              String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
00996              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
00997              if(d.isOkToStart()) d.start();
00998              }
00999 
01000           });
01001 
01002        return sctdbDataSNMenu;
01003        }
01004 
01005         private JMenu getSctHelpMenu() {
01006            JMenu menu = new JMenu("Help");
01007 
01008        JMenuItem helpItem = new JMenuItem("View User Manual");
01009        helpItem.setFont(menuFont);
01010        menu.add(helpItem);
01011        helpItem.addActionListener(new java.awt.event.ActionListener() {
01012              public void actionPerformed(java.awt.event.ActionEvent evt) {
01013                    guiControl.htmlViewer.show("http://www.hep.phy.cam.ac.uk/~robinson/DisplayGUI.html","Online manual");
01014                    }
01015               });
01016 
01017        JMenuItem aboutItem = new JMenuItem("About");
01018        aboutItem.setFont(menuFont);
01019        menu.add(aboutItem);
01020        aboutItem.addActionListener(new java.awt.event.ActionListener() {
01021             public void actionPerformed(java.awt.event.ActionEvent evt) {
01022                 String v = Version.instance.getAllInformation();
01023                 String s = "SctGui is the user interface for end users.  See the manual for more information";
01024                 s += "\nSctGui Author: Dave Robinson.";
01025                 s += "\nSctDaqRod Authors: Alan Barr, Bruce Gallop, Matthew Palmer, Dave Robinson and Alexander Tricoli";
01026                 s += "\n\n" + v;
01027                 javax.swing.JOptionPane.showMessageDialog(guiControl, s, "About SctGui", javax.swing.JOptionPane.INFORMATION_MESSAGE);
01028             }
01029            });
01030                 return menu;
01031                 }
01032     private JMenu getPreferencesMenu() {
01033         // Preferences menu
01034        PreferencesInterface prefs = PreferencesInterface.getInstance();
01035            JMenuItem[] preferenceItem = new JMenuItem[prefs.getNoPreferences()];
01036        JMenu menu = new JMenu("Preferences");
01037        menu.setBackground(backgroundColor);
01038        menu.setFont(menuFont);
01039        menu.setForeground(menuColor);
01040 
01041        for(int i=0;i<prefs.getNoPreferences();i++) {
01042          switch(i) {
01043          case PreferencesInterface.SCT_VIEW:
01044          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01045          preferenceItem[i].setFont(menuFont);
01046          menu.add(preferenceItem[i]);
01047              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01048              public void actionPerformed(java.awt.event.ActionEvent evt) {
01049                    Preference preference = new Preference(guiControl,PreferencesInterface.SCT_VIEW);
01050                    guiControl.selectorPane.setSCTView(preference.getValue());
01051                    }
01052               });
01053               break;
01054          case PreferencesInterface.INSTITUTE:
01055          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01056          preferenceItem[i].setFont(menuFont);
01057          menu.add(preferenceItem[i]);
01058              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01059              public void actionPerformed(java.awt.event.ActionEvent evt) {
01060                    Preference preference = new Preference(guiControl,PreferencesInterface.INSTITUTE);
01061                    }
01062               });
01063               break;
01064          case PreferencesInterface.PASSWORD:
01065          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01066          preferenceItem[i].setFont(menuFont);
01067          menu.add(preferenceItem[i]);
01068              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01069              public void actionPerformed(java.awt.event.ActionEvent evt) {
01070                    Preference preference = new Preference(guiControl,PreferencesInterface.PASSWORD);
01071                    }
01072               });
01073               break;
01074          case PreferencesInterface.PSVIEWER:
01075          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01076          preferenceItem[i].setFont(menuFont);
01077          menu.add(preferenceItem[i]);
01078              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01079              public void actionPerformed(java.awt.event.ActionEvent evt) {
01080                    Preference preference = new Preference(guiControl,PreferencesInterface.PSVIEWER);                   
01081                    }
01082               });
01083               break;
01084          case PreferencesInterface.SCRATCH_DIR:
01085          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01086          preferenceItem[i].setFont(menuFont);
01087          menu.add(preferenceItem[i]);
01088              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01089              public void actionPerformed(java.awt.event.ActionEvent evt) {
01090                    Preference preference = new Preference(guiControl,PreferencesInterface.SCRATCH_DIR);
01091                    }
01092               });
01093               break;
01094          case PreferencesInterface.UPLOAD_DIR:
01095          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01096          preferenceItem[i].setFont(menuFont);
01097          menu.add(preferenceItem[i]);
01098              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01099              public void actionPerformed(java.awt.event.ActionEvent evt) {
01100                    Preference preference = new Preference(guiControl,PreferencesInterface.UPLOAD_DIR);                   
01101                    }
01102               });
01103               break;
01104          case PreferencesInterface.WEB_LOOKUP_DIR:
01105          preferenceItem[i] = new JMenuItem(prefs.getDescription(i));
01106          preferenceItem[i].setFont(menuFont);
01107          menu.add(preferenceItem[i]);
01108              preferenceItem[i].addActionListener(new java.awt.event.ActionListener() {
01109              public void actionPerformed(java.awt.event.ActionEvent evt) {
01110                    Preference preference = new Preference(guiControl,PreferencesInterface.WEB_LOOKUP_DIR);
01111                    }
01112               });
01113               break;
01114          default:
01115          }
01116                 }
01117                 return menu;
01118     }
01119 
01120         private JMenu getModuleResultMenu() {
01121        JMenu testDataMenu = new JMenu("Test Data Options");
01122        testDataMenu.setFont(menuFont);
01123 
01124        JMenuItem item1 = new JMenuItem("Test Report");
01125        item1.setFont(menuFont);
01126        testDataMenu.add(item1);
01127        item1.addActionListener(new java.awt.event.ActionListener() {
01128              public void actionPerformed(java.awt.event.ActionEvent evt) {
01129 //                System.out.println("Selected "+popupCell.getSerialNo());
01130                    TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01131                    if(testSelection==null) {
01132                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01133                        return;
01134                        }
01135                    java.util.Map dcsMap = null;
01136                    if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
01137                    SummaryReader.DCSInfo dcsInfo = (dcsMap!=null) ? (SummaryReader.DCSInfo) dcsMap.get(guiControl.displayPane.getLastClickedCell().getSerialNo()) : null;
01138                    SummaryReader.Test testResult = (SummaryReader.Test) guiControl.isInterface.getTest(testSelection.getResultObjectHeader(),guiControl.displayPane.getLastClickedCell().getSerialNo(), dcsInfo);
01139                    if(testResult!=null) SummaryReader.ReaderReportUtilities.showTestReport(guiControl.displayPane.getLastClickedCell().getSerialNo(),testResult);
01140                    else javax.swing.JOptionPane.showMessageDialog(null,"No data for this module");
01141               }
01142           });
01143        item1 = new JMenuItem("Analysis Plots");
01144        item1.setFont(menuFont);
01145        testDataMenu.add(item1);
01146        item1.addActionListener(new java.awt.event.ActionListener() {
01147              public void actionPerformed(java.awt.event.ActionEvent evt) {
01148                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01149                   if(testSelection==null) {
01150                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01151                        return;
01152                        }
01153                   String objectname;
01154                   if((objectname = testSelection.getTestObjectHeader())!=null) {
01155                      guiControl.isInterface.launchExternalViewer(objectname+guiControl.displayPane.getLastClickedCell().getSerialNo());
01156                      }
01157                  }
01158           });
01159        item1 = new JMenuItem("Raw Data Plots");
01160        item1.setFont(menuFont);
01161        testDataMenu.add(item1);
01162        item1.addActionListener(new java.awt.event.ActionListener() {
01163              public void actionPerformed(java.awt.event.ActionEvent evt) {
01164                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01165                   if(testSelection==null) {
01166                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01167                        return;
01168                        }
01169                      java.util.Vector oVector = guiControl.isInterface.getDataObjectList(guiControl.displayPane.getLastClickedCell().getSerialNo(), 0);
01170                      if(oVector==null || oVector.size()==0) {
01171                        javax.swing.JOptionPane.showMessageDialog(null,"No raw data objects available for plotting.");
01172                        return;
01173                        }
01174                      String objectname = null;
01175                      if(oVector.size()==1) objectname=(String)oVector.elementAt(0);
01176                      else {
01177                        guiUtilities.ChoiceDialog cd = new guiUtilities.ChoiceDialog(guiControl,"Select Raw Data object",100,16,oVector.toArray(),false);
01178                        cd.pack();
01179                        cd.setLocationRelativeTo(guiControl);
01180                        cd.setVisible(true);
01181                        Object[] objectnames = cd.getSelectedObjects();
01182                        if(objectnames==null || objectnames.length!=1) return;
01183                        objectname = (String)objectnames[0];
01184                        }
01185                      if(objectname==null) return;
01186                      guiControl.isInterface.launchExternalViewer(objectname);
01187                      }
01188           });
01189        item1 = new JMenuItem("Fitted Data Plots");
01190        item1.setFont(menuFont);
01191        testDataMenu.add(item1);
01192        item1.addActionListener(new java.awt.event.ActionListener() {
01193              public void actionPerformed(java.awt.event.ActionEvent evt) {
01194                  TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01195                   if(testSelection==null) {
01196                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01197                        return;
01198                        }
01199                      java.util.Vector oVector = guiControl.isInterface.getDataObjectList(guiControl.displayPane.getLastClickedCell().getSerialNo(), 1);
01200                      if(oVector==null || oVector.size()==0) {
01201                        javax.swing.JOptionPane.showMessageDialog(null,"No fit data objects available for plotting.");
01202                        return;
01203                        }
01204                      String objectname = null;
01205                      if(oVector.size()==1) objectname=(String)oVector.elementAt(0);
01206                      else {
01207                        guiUtilities.ChoiceDialog cd = new guiUtilities.ChoiceDialog(guiControl,"Select Fit Data object",100,16,oVector.toArray(),false);
01208                        cd.pack();
01209                        cd.setLocationRelativeTo(guiControl);
01210                        cd.setVisible(true);
01211                        Object[] objectnames = cd.getSelectedObjects();
01212                        if(objectnames==null || objectnames.length!=1) return;
01213                        objectname = (String)objectnames[0];
01214                        }
01215                      if(objectname==null) return;
01216                      guiControl.isInterface.launchExternalViewer(objectname);
01217              
01218 
01219                      }
01220           });
01221        item1 = new JMenuItem("Analysis Plots (with Options)");
01222        item1.setFont(menuFont);
01223        testDataMenu.add(item1);
01224        item1.addActionListener(new java.awt.event.ActionListener() {
01225              public void actionPerformed(java.awt.event.ActionEvent evt) {
01226                   TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01227                   if(testSelection==null) {
01228                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01229                        return;
01230                        }
01231                   String objectname;
01232                   if((objectname = testSelection.getTestObjectHeader())!=null) {
01233                      guiControl.isInterface.launchExternalViewerWithOptions(objectname+guiControl.displayPane.getLastClickedCell().getSerialNo());
01234                      }
01235                  }
01236           });
01237 
01238 
01239        item1 = new JMenuItem("Module Configuration");
01240        item1.setFont(menuFont);
01241        testDataMenu.add(item1);
01242        item1.addActionListener(new java.awt.event.ActionListener() {
01243              public void actionPerformed(java.awt.event.ActionEvent evt) {
01244             javax.swing.JFrame frame2 = new javax.swing.JFrame("Module Configuration");
01245             frame2.getContentPane().add(new GuiComponents.Panels.ModuleConfigurationPanel(guiControl.displayPane.getLastClickedCell().getSerialNo()));
01246             frame2.pack();
01247             frame2.show();
01248                      }
01249 
01250           });
01251        item1 = new JMenuItem("Dump test result");
01252        item1.setFont(menuFont);
01253        testDataMenu.add(item1);
01254        item1.addActionListener(new java.awt.event.ActionListener() {
01255              public void actionPerformed(java.awt.event.ActionEvent evt) {
01256                      TestSelection testSelection = guiControl.tablesDisplayPane.getTestSelection();
01257                      if(testSelection==null)  {
01258                        javax.swing.JOptionPane.showMessageDialog(null,"No data selected.");
01259                        return;
01260                        }
01261                      String resultObject=testSelection.getResultObjectHeader()+guiControl.displayPane.getLastClickedCell().getSerialNo();
01262                      if(!Sct.IS.SctNames.getISRepository().contains(resultObject)) {
01263                            javax.swing.JOptionPane.showMessageDialog(null,"No result for "+guiControl.displayPane.getLastClickedCell().getSerialNo());
01264                            return;
01265                            }
01266                      TestSummaryIS result = new TestSummaryIS();
01267                      Sct.IS.SctNames.getISRepository().getValue(resultObject, result);
01268                      java.util.Vector thisData = new java.util.Vector();
01269                      thisData.addElement(guiControl.displayPane.getLastClickedCell().getSerialNo()+".txt");
01270                      thisData.addElement(result.dataString);
01271                      guiUtilities.RawDataViewer.getInstance().showNewData(thisData,"Result String for "+resultObject);
01272                      }
01273 
01274           });
01275        item1 = new JMenuItem("Full SCTDB Module Report");
01276        item1.setFont(menuFont);
01277        testDataMenu.add(item1);
01278        item1.addActionListener(new java.awt.event.ActionListener() {
01279              public void actionPerformed(java.awt.event.ActionEvent evt) {
01280              String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
01281              ProdDatabase.ReportDownloader d = new ProdDatabase.ReportDownloader(guiUtilities.HTMLViewer.MODULESUMMARY,sn,0);
01282              if(d.isOkToStart()) d.start();
01283              }
01284 
01285           });
01286        item1 = new JMenuItem("Edit/Add Module Comments...");
01287        item1.setFont(menuFont);
01288        item1.addActionListener(new java.awt.event.ActionListener() {
01289              public void actionPerformed(java.awt.event.ActionEvent evt) {
01290                 showModuleCommentPrompt(guiControl.displayPane.getLastClickedCell().getSerialNo());
01291                      }
01292 
01293           });
01294        testDataMenu.add(item1);
01295            return testDataMenu;
01296 
01297        }
01298 
01299         private JMenu getDCSPanelMenu() {
01300        JMenu thisMenu = new JMenu("DCS");
01301 
01302        thisMenu.setFont(menuFont);
01303 
01304        JMenuItem item = new JMenuItem("IS Server Name...");
01305        item.setFont(menuFont);
01306        thisMenu.add(item);
01307        item.addActionListener(new java.awt.event.ActionListener() {
01308              public void actionPerformed(java.awt.event.ActionEvent evt) {
01309                    Preference preference = new Preference(guiControl,PreferencesInterface.DCS_SERVER_NAME);
01310                    }
01311               });
01312 
01313        item = new JMenuItem("LV/HV Control for all modules...");
01314        item.setFont(menuFont);
01315        thisMenu.add(item);
01316        item.addActionListener(new java.awt.event.ActionListener() {
01317              public void actionPerformed(java.awt.event.ActionEvent evt) {
01318                   DDCModuleSwitcher ddcModuleSwitcher = new DDCModuleSwitcher(ConfigurationInterface.getInstance().getSerialNumberList(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex()));
01319                   ddcModuleSwitcher.setLocationRelativeTo(guiControl);
01320                   }
01321               });
01322 
01323 
01324        return thisMenu;
01325        }
01326 
01327         private JMenu getDDCModuleMenu() {
01328       JMenu ddcModuleMenu = new JMenu("DDC Commands");
01329       ddcModuleMenu.setFont(menuFont);
01330 
01331       JMenuItem item1 = new JMenuItem("LV/HV Control...");
01332       item1.setFont(menuFont);
01333       ddcModuleMenu.add(item1);
01334       item1.addActionListener(new java.awt.event.ActionListener() {
01335              public void actionPerformed(java.awt.event.ActionEvent evt) {
01336                   String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
01337                   DDCModuleSwitcher ddcModuleSwitcher = new DDCModuleSwitcher(ConfigurationInterface.getInstance().getSerialNumberList(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex()),sn);
01338                   ddcModuleSwitcher.setLocationRelativeTo(guiControl);
01339               }
01340           });
01341         return ddcModuleMenu;
01342 
01343      }
01344         private JMenu getSystemMenu() {
01345            JMenu systemMenu = new JMenu("System");
01346        systemMenu.setBackground(backgroundColor);
01347        systemMenu.setFont(menuFont);
01348        systemMenu.setForeground(menuColor);
01349 
01350        JMenuItem menuItem = new JMenuItem("Refresh");
01351        menuItem.setFont(menuFont);
01352        menuItem.addActionListener(new java.awt.event.ActionListener() {
01353                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01354                     SystemInterface.getInstance().refresh();
01355                     guiControl.displayPane.refreshDisplay();
01356                      }
01357              });
01358        systemMenu.add(menuItem);
01359 
01360        menuItem = new JMenuItem("Hardware Configuration...");
01361        menuItem.setFont(menuFont);
01362        menuItem.addActionListener(new java.awt.event.ActionListener() {
01363              public void actionPerformed(java.awt.event.ActionEvent evt) {
01364             if(hardwareWindow==null) {
01365                 hardwareWindow = new javax.swing.JFrame("Hardware Configuration");
01366                 hardwareWindow.getContentPane().add(new HardwareConfigurationPanel());
01367                 hardwareWindow.pack();
01368                 java.awt.Dimension screenSize = java.awt.Toolkit.getDefaultToolkit().getScreenSize();
01369                 java.awt.Dimension WSize = hardwareWindow.getSize();
01370                 hardwareWindow.setLocation((screenSize.width-(int)WSize.getWidth())/2,(screenSize.height-(int)WSize.getHeight())/2);
01371                 hardwareWindow.addWindowListener(new java.awt.event.WindowAdapter() {
01372                             public void windowClosing(java.awt.event.WindowEvent e) {
01373                                   hardwareWindow=null;
01374 //                                e.getWindow().dispose();
01375                             }
01376                         });
01377                 }
01378             hardwareWindow.setVisible(true);
01379               }
01380           });
01381        systemMenu.add(menuItem);
01382 
01383        menuItem = new JMenuItem("Service Status...");
01384        menuItem.setFont(menuFont);
01385        menuItem.addActionListener(new java.awt.event.ActionListener() {
01386        public void actionPerformed(java.awt.event.ActionEvent evt) {
01387             if(serviceStatusFrame==null) serviceStatusFrame = new ServiceStatusFrame();
01388             else serviceStatusFrame.refresh();
01389               }
01390           });
01391        systemMenu.add(menuItem);
01392 
01393        systemMenu.addSeparator();
01394        menuItem = new JMenuItem("Exit SctGUI");
01395        menuItem.setFont(menuFont);
01396        menuItem.addActionListener(new java.awt.event.ActionListener() {
01397                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01398                     guiControl.exitForm(null);                   
01399                      }
01400              });
01401        systemMenu.add(menuItem);
01402            return systemMenu;
01403            }
01404 
01405     private JMenu getDisplayMenu() {
01406        JMenu menu = new JMenu("Display");
01407        menu.setBackground(backgroundColor);
01408        menu.setFont(menuFont);
01409        menu.setForeground(menuColor);
01410 
01411        JMenuItem item;
01412        for(int i=1;i<DisplayStatus.statusNames.length;i++) {
01413           item = new JMenuItem(DisplayStatus.statusNames[i]);
01414           item.setFont(menuFont);
01415           switch(i) {
01416              case DisplayStatus.MODULE_GROUP_SELECTION:  // ModuleGroup Selection
01417              item.addActionListener(new java.awt.event.ActionListener() {
01418                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01419                    guiControl.displayStatus.setModuleGroupSelectionMode();
01420                    updateToolBar(DisplayStatus.MODULE_GROUP_SELECTION);
01421                      }
01422              });
01423              break;
01424              case DisplayStatus.IS_MONITOR:  // Data Manager
01425              item.addActionListener(new java.awt.event.ActionListener() {
01426                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01427                    guiControl.displayStatus.setISMode();
01428                    updateToolBar(DisplayStatus.IS_MONITOR);
01429                      }
01430              });
01431              break;
01432              case DisplayStatus.TEST_DATA:   // Test Results
01433              item.addActionListener(new java.awt.event.ActionListener() {
01434                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01435                     guiControl.displayStatus.setTestDataMode(-1);   
01436                    updateToolBar(DisplayStatus.TEST_DATA);
01437                      }
01438              });
01439              break;
01440              case DisplayStatus.SCTDB_DATA:    // SCTDB Data
01441              item.addActionListener(new java.awt.event.ActionListener() {
01442                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01443                      guiControl.displayStatus.setSCTDBDataMode(-1);
01444                      updateToolBar(DisplayStatus.SCTDB_DATA);
01445                      }
01446              });
01447              break;
01448              case DisplayStatus.DCS_DATA:    // DCS Data
01449              item.addActionListener(new java.awt.event.ActionListener() {
01450                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01451                      guiControl.displayStatus.setDCSDataMode();
01452                      updateToolBar(DisplayStatus.DCS_DATA);
01453                      }
01454              });
01455              break;
01456             case DisplayStatus.SCTDB_RODDAQ_DATA:    // SctRodDaq Archive Data
01457              item.addActionListener(new java.awt.event.ActionListener() {
01458                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01459                      guiControl.displayStatus.setSCTDBRodDaqMode(-1);
01460                      updateToolBar(DisplayStatus.SCTDB_RODDAQ_DATA);
01461                      }
01462              });
01463              break;
01464             case DisplayStatus.IV_DATA:    // SctRodDaq Archive Data
01465              item.addActionListener(new java.awt.event.ActionListener() {
01466                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01467                     String ivdirectory = PreferencesInterface.getInstance().getPreference(PreferencesInterface.IV_DIRECTORY);
01468                     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.");
01469                      guiControl.displayStatus.setIVDataMode();
01470                      updateToolBar(DisplayStatus.IV_DATA);
01471                      }
01472              });
01473              break;
01474             case DisplayStatus.PROBE_DATA:    // SctRodDaq Archive Data
01475              item.addActionListener(new java.awt.event.ActionListener() {
01476                  public void actionPerformed(java.awt.event.ActionEvent evt) {
01477                      guiControl.displayStatus.setProbeDataMode();
01478                      updateToolBar(DisplayStatus.PROBE_DATA);
01479                      }
01480              });
01481              break;
01482              default:
01483              }
01484           menu.add(item);
01485 
01486           }
01487           return menu;
01488       }
01489 
01490 
01491    private JMenu getModuleProbeMenu() {
01492       JMenu probePanelMenu = new JMenu("DDC Commands");
01493       JMenuItem item1 = new JMenuItem("Hard Reset...");
01494       item1.setFont(menuFont);
01495       probePanelMenu.add(item1);
01496         guiControl.menuActions.tagMenu(item1);
01497       item1.addActionListener(new java.awt.event.ActionListener() {
01498              public void actionPerformed(java.awt.event.ActionEvent evt) {
01499 
01500                   //if(!guiControl.menuActions.canProbeModules("Hard Reset")) return;
01501                 String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
01502                   ConfigurationInterface conf = ConfigurationInterface.getInstance();
01503                   String crate = conf.getSNInfo(sn,SNInfo.DCS_CRATE);
01504                   String channel = conf.getSNInfo(sn,SNInfo.DCS_CHANNEL);
01505                   int response = javax.swing.JOptionPane.showConfirmDialog(null,"Hard Reset "+sn+" (Crate "+crate+", Channel "+channel+")?","Confirm Hard Reset request",javax.swing.JOptionPane.OK_CANCEL_OPTION);
01506                   if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01507                   try {
01508                     Sct_SctApi.SctApiDDCServer api = SystemInterface.getInstance().getSctApiDDCServer();
01509                     if(api!=null) api.ddcHardReset(Integer.valueOf(crate).intValue(), Integer.valueOf(channel).intValue());
01510                     else javax.swing.JOptionPane.showMessageDialog(null,"null SctApi pointer");
01511                     }catch(Exception e){javax.swing.JOptionPane.showMessageDialog(null,"Exception "+e.toString());}
01512 
01513               }
01514           });
01515                 return probePanelMenu;
01516       }
01517 
01518     private JMenu getProbeMenu() {
01519        JMenu probeMenu = new JMenu("Actions");
01520 
01521        JMenuItem item = new JMenuItem("ReProbe modules");
01522        item.setFont(menuFont);
01523        probeMenu.add(item);
01524        item.addActionListener(new java.awt.event.ActionListener() {
01525              public void actionPerformed(java.awt.event.ActionEvent evt) {
01526                  // if(!guiControl.menuActions.canProbeModules("ReProbe Modules")) return;
01527                   try {
01528                  SctApiInfo.getInstance().probe(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex());
01529                      guiControl.displayPane.setDisplayColors();
01530                      guiControl.displayPane.refreshDisplay();
01531                      guiControl.tablesDisplayPane.updateTables();
01532                     }catch(Exception e){javax.swing.JOptionPane.showMessageDialog(null,"Exception "+e.toString());}
01533                   }
01534               });
01535        guiControl.menuActions.tagMenu(item);
01536 
01537        item = new JMenuItem("Probe & Fix");
01538        item.setFont(menuFont);
01539          guiControl.menuActions.tagMenu(item);
01540        probeMenu.add(item);
01541        item.addActionListener(new java.awt.event.ActionListener() {
01542              public void actionPerformed(java.awt.event.ActionEvent evt) {
01543 //                      int response = JOptionPane.showConfirmDialog(null,"Probe & Fix (probe, reset all modules not returning events, send configurations and reprobe)?","Confirm",javax.swing.JOptionPane.OK_CANCEL_OPTION);
01544 //                  if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01545 
01546                         //if(!guiControl.menuActions.canProbeModules("Probe & Fix")) return;
01547 
01548                         try {
01549                         Sct_SctApi.SctApiDDCServer api = SystemInterface.getInstance().getSctApiDDCServer();
01550                         if(api==null) {
01551                                 javax.swing.JOptionPane.showMessageDialog(null,"Null ref to SctApiDDCServer");
01552                                 return;
01553                                 }
01554                         Sct_SctApi.SctApiIPC SctApi = SystemInterface.getInstance().getSctApi();
01555                         if(SctApi==null) {
01556                                 javax.swing.JOptionPane.showMessageDialog(null,"null SctApi pointer");
01557                                 return;
01558                                 }
01559                         ConfigurationInterface conf = ConfigurationInterface.getInstance();
01560 
01561                         // probe modules and create list of modules not returning events
01562 
01563                         SctApiInfo.getInstance().probe(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex(),true);
01564 
01565                         int nresets = SctApiInfo.getInstance().getErrorModuleList().size();
01566 
01567                         if(nresets==0) javax.swing.JOptionPane.showMessageDialog(null,"All modules are returning events.");
01568                         if(nresets>0 && javax.swing.JOptionPane.showConfirmDialog(null,"You need to reset "+Integer.toString(nresets)+" modules. Continue?","Confirm",javax.swing.JOptionPane.OK_CANCEL_OPTION)==javax.swing.JOptionPane.YES_OPTION) {
01569 
01570                                 // reset any modules not returning events
01571                                 for (java.util.Iterator i = SctApiInfo.getInstance().getErrorModuleList().iterator(); i.hasNext(); ) {
01572                                 String sn=(String)i.next();
01573                                         String crate = conf.getSNInfo(sn,SNInfo.DCS_CRATE);
01574                                         String channel = conf.getSNInfo(sn,SNInfo.DCS_CHANNEL);
01575                                         System.out.println("SctGUI: Sending hard reset to "+sn+" (DCS crate/channel "+crate+"/"+channel+")");
01576                                         api.ddcHardReset(Integer.valueOf(crate).intValue(), Integer.valueOf(channel).intValue());
01577                                         }
01578 
01579                                 // resend configurations
01580                                 System.out.println("SctGUI: Sending module configurations...");
01581                         SctApi.sendABCDModules(Sct_SctApi.BankType.PHYSICS_CONFIG);
01582 
01583                                 // now reprobe modules
01584                         SctApiInfo.getInstance().probe(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex());
01585 
01586                                 }
01587 
01588                     // redisplay the probe data
01589                         guiControl.displayPane.setDisplayColors();
01590                         guiControl.displayPane.refreshDisplay();
01591                         guiControl.tablesDisplayPane.updateTables();
01592                     }catch(Exception e){javax.swing.JOptionPane.showMessageDialog(null,"Exception "+e.toString());}
01593                     }
01594               });
01595 
01596        item = new JMenuItem("Check Modules...");
01597        item.setFont(menuFont);
01598        probeMenu.add(item);
01599          guiControl.menuActions.tagMenu(item);
01600        item.addActionListener(new java.awt.event.ActionListener() {
01601              public void actionPerformed(java.awt.event.ActionEvent evt) {
01602                         //if(!guiControl.menuActions.canProbeModules("Check Modules")) return;
01603                   SctApiInfo.getInstance().checkProbe();
01604                   }
01605               });
01606 
01607        probeMenu.addSeparator();
01608 
01609        item = new JMenuItem("Hard Reset all modules...");
01610        item.setFont(menuFont);
01611        probeMenu.add(item);
01612          guiControl.menuActions.tagMenu(item);
01613        item.addActionListener(new java.awt.event.ActionListener() {
01614              public void actionPerformed(java.awt.event.ActionEvent evt) {
01615                  //if(!guiControl.menuActions.canProbeModules("Hard Reset all modules")) return;
01616                   int response = javax.swing.JOptionPane.showConfirmDialog(null,"Send hard reset to all modules?","Confirm",javax.swing.JOptionPane.OK_CANCEL_OPTION);
01617               if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01618                   try {
01619                     Sct_SctApi.SctApiDDCServer api = SystemInterface.getInstance().getSctApiDDCServer();
01620                     if(api==null) {
01621                        javax.swing.JOptionPane.showMessageDialog(null,"null SctApi pointer");
01622                        return;
01623                        }
01624                     ConfigurationInterface conf = ConfigurationInterface.getInstance();
01625                     java.util.Set crateSet = new java.util.HashSet();
01626                 for (java.util.Iterator m = conf.getSerialNumberList(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex()).iterator(); m.hasNext(); ) {
01627                 String sn=(String)m.next();
01628                             String crate = conf.getSNInfo(sn,SNInfo.DCS_CRATE);
01629                               if(crateSet.contains(crate)) continue;
01630                               System.out.println("sctGUI - sending hard reset to DCS crate "+crate);
01631                   api.ddcHardResetAll(Integer.valueOf(crate).intValue());
01632                               crateSet.add(crate);
01633                               }
01634                     System.out.println("Hard reset completed.");
01635                     }catch(Exception e){javax.swing.JOptionPane.showMessageDialog(null,"Exception "+e.toString());}
01636                   }
01637               });
01638 
01639        item = new JMenuItem("Send Module Configurations...");
01640        item.setFont(menuFont);
01641        probeMenu.add(item);
01642          guiControl.menuActions.tagMenu(item);
01643        item.addActionListener(new java.awt.event.ActionListener() {
01644              public void actionPerformed(java.awt.event.ActionEvent evt) {
01645                  //if(!guiControl.menuActions.canProbeModules("Send Module Configurations")) return;
01646                   int response = javax.swing.JOptionPane.showConfirmDialog(null,"Send configuration to all modules?","Confirm",javax.swing.JOptionPane.OK_CANCEL_OPTION);
01647               if(response!=javax.swing.JOptionPane.YES_OPTION) return;
01648                   Sct_SctApi.SctApiIPC api = SystemInterface.getInstance().getSctApi();
01649                   if(api==null) {
01650                     javax.swing.JOptionPane.showMessageDialog(null,"null SctApi pointer");
01651                     return;
01652                     }
01653               try {api.sendABCDModules(Sct_SctApi.BankType.PHYSICS_CONFIG);}
01654                   catch(SctApiException s) {javax.swing.JOptionPane.showMessageDialog(null, "Failed to Configure modules: " + s.detail);}
01655 
01656               }
01657               });
01658 
01659                 return probeMenu;
01660 
01661 
01662        }
01663 
01664     private JMenu getModuleBOCMenu() {
01665        JMenu moduleConfigMenu = new JMenu("Module Configuration");
01666 
01667        JMenuItem item = new JMenuItem("Modify...");
01668        item.setFont(menuFont);
01669        moduleConfigMenu.add(item);
01670          guiControl.menuActions.tagMenu(item);
01671         item.addActionListener(new java.awt.event.ActionListener() {
01672         public void actionPerformed(java.awt.event.ActionEvent evt) {
01673                 int configParam = guiControl.selectorPane.getDisplayParameterIndex();
01674                 String configLabel = configParamLabels[configParam];
01675                 String queryText = configParams[configParam];
01676                 String sn = guiControl.displayPane.getLastClickedCell().getSerialNo();
01677                 if(configParams_links[configParam]) {
01678                         int option = guiControl.selectorPane.getMouseClickIndex();
01679                         if(option>=0) {
01680                                 String lbl = Integer.toString(option);
01681                                 queryText += " (link "+lbl+")";
01682                                 configLabel += lbl;
01683                        }
01684                         else {
01685                                 javax.swing.JOptionPane.showMessageDialog(null,"Invalid option?");
01686                                 return;
01687                                 }
01688                         }
01689                 queryText += " for module "+sn;
01690 
01691                 Double data = guiControl.displayPane.getLastClickedCell().getData();
01692                 if(data==null) {
01693                         javax.swing.JOptionPane.showMessageDialog(null,"No data available for "+queryText);
01694                         return;
01695                         }
01696                 int data2 = (int)data.doubleValue();
01697                 String txt = javax.swing.JOptionPane.showInputDialog(null,"Modify "+queryText,Integer.toString(data2));
01698                 if(txt==null) return;
01699                 int value;
01700                 try {
01701                         value = Integer.parseInt(txt);
01702                 }catch(Exception e) {
01703                         javax.swing.JOptionPane.showMessageDialog(null,"Not a valid BOC parameter value.");
01704                         return;
01705                         }
01706                 if(value<0) {
01707                         javax.swing.JOptionPane.showMessageDialog(null,"Negative values not permitted.");
01708                         return;
01709                         }
01710 
01711 
01712                 try {
01713                         Sct_SctApi.SctApiIPC api = SystemInterface.getInstance().getSctApi();
01714                         if(api==null) {
01715                                 javax.swing.JOptionPane.showMessageDialog(null,"null IPC ref to Sctapi");
01716                                 return;
01717                                 }
01718                         ConfigurationInterface conf = ConfigurationInterface.getInstance();
01719                         int partition = Integer.parseInt(conf.getSNInfo(sn,SNInfo.PARTITION));
01720                         int crate = Integer.parseInt(conf.getSNInfo(sn,SNInfo.ROD_CRATE));
01721                         int channel = Integer.parseInt(conf.getSNInfo(sn,SNInfo.ROD_CHANNEL));
01722                         int rod = Integer.parseInt(conf.getSNInfo(sn,SNInfo.ROD_NUMBER));
01723                         api.modifyBOCParam(partition, crate, rod, channel, Sct.ScanDescriptors.getInstance().valueFor(configLabel), value);
01724                         // ok it updated, now refresh display
01725                         SctApiInfo.getInstance().probeConfig(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex(),guiControl.selectorPane.getDisplayParameterIndex());
01726                         guiControl.displayPane.setDisplayColors();
01727                         guiControl.displayPane.refreshDisplay();
01728                         guiControl.tablesDisplayPane.updateTables();
01729                 }catch(Exception e){javax.swing.JOptionPane.showMessageDialog(null,"SctApi Exception "+e.toString());}
01730 
01731                   }
01732               });
01733 
01734                 return moduleConfigMenu;
01735 
01736 
01737        }
01738 
01739         private void showToolBar() {
01740             if(displayChoiceToolbar!=null) displayChoiceToolbar.setVisible(true);
01741         else {
01742                         displayChoiceToolbar = new DisplayChoiceToolbar(guiControl);
01743             java.awt.Dimension s = displayChoiceToolbar.getSize();
01744             displayChoiceToolbar.setSize((int)s.getWidth()+1,(int)s.getHeight()+1);
01745             }
01746         }
01747         private void updateToolBar(int display) {
01748                         if(displayChoiceToolbar!=null) displayChoiceToolbar.setButton(display);
01749                         }
01750         private void showModuleCommentPrompt(String serialNo) {
01751        if(moduleCommentPrompt==null) moduleCommentPrompt=new ModuleCommentPrompt(serialNo);
01752        else moduleCommentPrompt.update(serialNo);
01753        }
01754 
01755         public void rebuildTestMenus() {
01756                 for(int i=0;i<2;i++) testsMenu[i].buildAutoTestsMenu();
01757                 }
01758 
01759     public void enableSubMenuItems(JMenu menu, boolean enabled) {
01760                 // enable or disable items in submenus
01761                 java.awt.Component[] component = menu.getMenuComponents();
01762                 for(int i=0;i<component.length;i++) {
01763                 if(component[i].getClass().getName().startsWith("javax.swing.JPopupMenu")) break;
01764                 if(!component[i].getClass().getName().startsWith("javax.swing.JMenu")) continue;
01765                 JMenu subMenu = (JMenu)component[i];
01766                 for(int y=0;y<subMenu.getItemCount();y++) {
01767                                 JMenuItem item = subMenu.getItem(y);
01768                                 if(item!=null) item.setEnabled(enabled);
01769                         }
01770                         }
01771                 }
01772 }

Generated on Mon Feb 6 14:12:12 2006 for SCT DAQ/DCS Software - Java by  doxygen 1.4.6