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