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