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