00001
00002
00003
00004
00005
00006 package DisplayGUI;
00007
00008 import javax.swing.JMenu;
00009 import javax.swing.JMenuItem;
00010
00011 import GuiComponents.System.SystemInterface;
00012 import Sct_CalibrationController.CalibrationControllerPackage.*;
00013
00021 public class CalibrationControllerPanelMenu extends JMenu implements displayParams {
00022
00023 gui guiControl;
00024
00025 private String[] ccUpdateStrings = {"Update","No-Update","Wait"};
00026
00027 private static final int UPDATE=0;
00028 private static final int NO_UPDATE=1;
00029 private static final int WAIT=2;
00030
00031 private javax.swing.JCheckBox[] ccUpdateModes = new javax.swing.JCheckBox[ccUpdateStrings.length];
00032
00033 public CalibrationControllerPanelMenu(gui guiControl) {
00034 super("CalibrationController");
00035 this.guiControl = guiControl;
00036 setFont(menuFont);
00037 JMenuItem item = new JMenuItem("Ping");
00038 item.setFont(menuFont);
00039 item.addActionListener(new java.awt.event.ActionListener() {
00040 public void actionPerformed(java.awt.event.ActionEvent evt) {
00041 try {
00042 if (SystemInterface.getInstance().getCalibrationController() != null) {
00043 ipc.servantPackage.info info = SystemInterface.getInstance().getCalibrationController().information();
00044 System.out.println("CalibrationController running: " + info.pid + " by " + info.owner + " on " +info.host + " since " + info.time);
00045 } else System.out.println("CalibrationController not running");
00046 }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
00047 }
00048 });
00049 add(item);
00050
00051 addSeparator();
00052
00053 javax.swing.ButtonGroup thisGroup = new javax.swing.ButtonGroup();
00054 for(int i=0;i<ccUpdateModes.length;i++) {
00055 ccUpdateModes[i] = new javax.swing.JCheckBox(ccUpdateStrings[i]);
00056 thisGroup.add(ccUpdateModes[i]);
00057 ccUpdateModes[i].setFont(menuFont);
00058 add(ccUpdateModes[i]);
00059 }
00060 item = new JMenuItem("Abort");
00061 item.setFont(menuFont);
00062 item.addActionListener(new java.awt.event.ActionListener() {
00063 public void actionPerformed(java.awt.event.ActionEvent evt) {
00064 try {
00065
00066 SystemInterface.getInstance().getCalibrationController().abort();
00067 }catch(Exception eNoAbort){System.err.println("Error aborting calibrationController: "+eNoAbort.toString());}
00068 }
00069 });
00070 addSeparator();
00071 add(item);
00072
00073
00074 ccUpdateModes[UPDATE].setSelected(true);
00075
00076 for(int i=0;i<ccUpdateModes.length;i++) {
00077
00078 switch(i) {
00079 case UPDATE:
00080 ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
00081 public void actionPerformed(java.awt.event.ActionEvent evt) {
00082 try {
00083 SystemInterface.getInstance().getCalibrationController().setUpdateOption(UpdateOption.update);
00084 checkCCUpdateMode();
00085 }catch(Exception e){System.err.println("Error : "+e.toString());}
00086 }
00087 });
00088 break;
00089 case NO_UPDATE:
00090 ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
00091 public void actionPerformed(java.awt.event.ActionEvent evt) {
00092 try {
00093 SystemInterface.getInstance().getCalibrationController().setUpdateOption(UpdateOption.noupdate);
00094 checkCCUpdateMode();
00095 }catch(Exception e){System.err.println("Error : "+e.toString());}
00096 }
00097 });
00098 break;
00099 case WAIT:
00100 ccUpdateModes[i].addActionListener(new java.awt.event.ActionListener() {
00101 public void actionPerformed(java.awt.event.ActionEvent evt) {
00102 try {
00103 SystemInterface.getInstance().getCalibrationController().setUpdateOption(UpdateOption._wait);
00104 checkCCUpdateMode();
00105 }catch(Exception e){System.err.println("Error : "+e.toString());}
00106 }
00107 });
00108 break;
00109 default:
00110 }
00111 }
00112 }
00113 public void checkCCUpdateMode() {
00114 if(guiControl.calibrationControllerPanel==null || guiControl.calibrationControllerPanel.status==null) {
00115 System.out.println("CalibrationControllerPanel.status object not yet available... update mode not yet known");
00116 return;
00117 }
00118 String updateMode = guiControl.calibrationControllerPanel.status.updateOption;
00119 if(updateMode.equals("NOUPDATE")) ccUpdateModes[NO_UPDATE].setSelected(true);
00120 else if(updateMode.equals("WAIT")) ccUpdateModes[WAIT].setSelected(true);
00121 else ccUpdateModes[UPDATE].setSelected(true);
00122 }
00123
00124 }