00001
00002
00003
00004
00005
00006
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
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
00228 if(guiControl.tablesDisplayPane.getTestControlObjectName()!=null) dcsMap=guiControl.isInterface.getDCSMap(guiControl.tablesDisplayPane.getTestControlObjectName());
00229
00230
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
00723
00724
00725
00726
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
00803
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
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
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
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
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:
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:
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:
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:
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:
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:
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:
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:
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
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
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
01544
01545
01546
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
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
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
01580 System.out.println("SctGUI: Sending module configurations...");
01581 SctApi.sendABCDModules(Sct_SctApi.BankType.PHYSICS_CONFIG);
01582
01583
01584 SctApiInfo.getInstance().probe(guiControl.selectorPane.getViewCategoryIndex(),guiControl.selectorPane.getViewIndex());
01585
01586 }
01587
01588
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
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
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
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
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
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 }