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