diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form
index 33ecba2..f7e4814 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.form
+++ b/src/main/java/ch/psi/mxsc/MainPanel.form
@@ -17,29 +17,29 @@
-
+
-
-
+
+
-
+
-
+
-
+
-
+
-
+
-
+
-
+
@@ -48,22 +48,22 @@
-
+
-
+
-
-
+
+
-
-
-
-
-
-
+
+
+
+
+
+
@@ -330,21 +330,21 @@
-
+
-
+
-
+
-
+
@@ -377,12 +377,12 @@
-
+
-
+
@@ -420,7 +420,7 @@
-
+
@@ -544,7 +544,7 @@
-
+
@@ -582,7 +582,7 @@
-
+
@@ -600,7 +600,7 @@
-
+
@@ -686,7 +686,7 @@
-
+
@@ -694,7 +694,7 @@
-
+
@@ -754,7 +754,7 @@
-
+
@@ -802,7 +802,7 @@
-
+
@@ -867,7 +867,7 @@
-
+
@@ -944,7 +944,7 @@
-
+
@@ -958,7 +958,7 @@
-
+
@@ -966,26 +966,26 @@
-
-
-
+
+
+
-
+
-
+
-
+
@@ -1126,7 +1126,7 @@
-
+
@@ -1151,11 +1151,11 @@
-
+
-
+
@@ -1180,7 +1180,7 @@
-
+
diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java
index 4ba4944..fb84bc4 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.java
+++ b/src/main/java/ch/psi/mxsc/MainPanel.java
@@ -12,6 +12,7 @@ import ch.psi.pshell.imaging.Source;
import ch.psi.pshell.ui.App;
import ch.psi.pshell.ui.Panel;
import ch.psi.utils.Config;
+import ch.psi.utils.State;
import ch.psi.utils.swing.ConfigDialog;
import ch.psi.utils.swing.PropertiesDialog;
import ch.psi.utils.swing.StandardDialog;
@@ -136,6 +137,12 @@ public class MainPanel extends Panel {
updateCameraView();
}
+
+ @Override
+ public void onStateChange(State state, State former) {
+ buttonStartLoading.setEnabled(state.isNormal());
+ }
+
@Override
protected void onTimer() {
@@ -348,10 +355,10 @@ public class MainPanel extends Panel {
}
void setDetail(Component c) {
- panelContext.removeAll();
- panelContext.setLayout(new BorderLayout());
+ panelDetail.removeAll();
+ panelDetail.setLayout(new BorderLayout());
//panelContext.setLayout(new GridBagLayout());
- panelContext.add(c);
+ panelDetail.add(c);
updateUI();
}
@@ -360,7 +367,7 @@ public class MainPanel extends Panel {
}
Dimension getDetailSize() {
- return panelContext.getSize();
+ return panelDetail.getSize();
}
/**
@@ -393,7 +400,7 @@ public class MainPanel extends Panel {
panelViewType = new javax.swing.JPanel();
buttonCamera = new javax.swing.JToggleButton();
buttonDrawing = new javax.swing.JToggleButton();
- jPanel1 = new javax.swing.JPanel();
+ panelLN2Level = new javax.swing.JPanel();
jPanel3 = new javax.swing.JPanel();
jSeparator1 = new javax.swing.JSeparator();
jLabel1 = new javax.swing.JLabel();
@@ -402,9 +409,9 @@ public class MainPanel extends Panel {
jSeparator2 = new javax.swing.JSeparator();
jLabel3 = new javax.swing.JLabel();
jLabel2 = new javax.swing.JLabel();
- jPanel2 = new javax.swing.JPanel();
+ panelWaterLevel = new javax.swing.JPanel();
progressWater = new javax.swing.JProgressBar();
- jPanel5 = new javax.swing.JPanel();
+ panelDevices = new javax.swing.JPanel();
devicesPanel = new ch.psi.mxsc.DevicesPanel();
checkExpert = new javax.swing.JCheckBox();
buttonExpertCommands = new javax.swing.JButton();
@@ -412,7 +419,7 @@ public class MainPanel extends Panel {
buttonCalibrateImage = new javax.swing.JButton();
buttonCalibrateCover = new javax.swing.JButton();
buttonConfig = new javax.swing.JButton();
- jPanel4 = new javax.swing.JPanel();
+ panelLN2Control = new javax.swing.JPanel();
ledFillingControl = new ch.psi.pshell.swing.Led();
ledFillingDewar = new ch.psi.pshell.swing.Led();
jLabel4 = new javax.swing.JLabel();
@@ -420,19 +427,19 @@ public class MainPanel extends Panel {
deviceValuePanel1 = new ch.psi.pshell.swing.DeviceValuePanel();
jLabel14 = new javax.swing.JLabel();
labelRoomTemperature = new javax.swing.JLabel();
- jPanel7 = new javax.swing.JPanel();
+ panelBeamlineStatus = new javax.swing.JPanel();
led5 = new ch.psi.pshell.swing.Led();
led6 = new ch.psi.pshell.swing.Led();
jLabel8 = new javax.swing.JLabel();
jLabel9 = new javax.swing.JLabel();
- jPanel8 = new javax.swing.JPanel();
+ panelDatamatrix = new javax.swing.JPanel();
jLabel11 = new javax.swing.JLabel();
jLabel13 = new javax.swing.JLabel();
textSample = new javax.swing.JTextField();
textType = new javax.swing.JTextField();
- jPanel10 = new javax.swing.JPanel();
- buttonInitHexiposi1 = new javax.swing.JButton();
- jPanel13 = new javax.swing.JPanel();
+ PanelSampleLoad = new javax.swing.JPanel();
+ buttonStartLoading = new javax.swing.JButton();
+ panelSystemStatus = new javax.swing.JPanel();
ledAirPressure = new ch.psi.pshell.swing.Led();
jLabel24 = new javax.swing.JLabel();
jLabel25 = new javax.swing.JLabel();
@@ -444,10 +451,10 @@ public class MainPanel extends Panel {
buttonRelease = new javax.swing.JButton();
filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 32767));
labeManualMode = new javax.swing.JLabel();
- jPanel12 = new javax.swing.JPanel();
+ panelDisplayMode = new javax.swing.JPanel();
btViewDewar = new javax.swing.JToggleButton();
btViewRT = new javax.swing.JToggleButton();
- panelContext = new javax.swing.JPanel();
+ panelDetail = new javax.swing.JPanel();
basePlatePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Dewar"));
@@ -584,18 +591,18 @@ public class MainPanel extends Panel {
panelHexiposiLayout.setHorizontalGroup(
panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelHexiposiLayout.createSequentialGroup()
- .addContainerGap(13, Short.MAX_VALUE)
+ .addContainerGap(9, Short.MAX_VALUE)
.addGroup(panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDetectCover)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(14, Short.MAX_VALUE))
+ .addContainerGap(9, Short.MAX_VALUE))
);
panelHexiposiLayout.setVerticalGroup(
panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelHexiposiLayout.createSequentialGroup()
- .addContainerGap(15, Short.MAX_VALUE)
+ .addContainerGap(14, Short.MAX_VALUE)
.addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 10, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE)
.addComponent(buttonDetectCover)
.addContainerGap())
);
@@ -622,11 +629,11 @@ public class MainPanel extends Panel {
panelViewTypeLayout.setHorizontalGroup(
panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup()
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addContainerGap(8, Short.MAX_VALUE)
.addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(buttonDrawing)
.addComponent(buttonCamera))
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap(8, Short.MAX_VALUE))
);
panelViewTypeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCamera, buttonDrawing});
@@ -674,7 +681,7 @@ public class MainPanel extends Panel {
basePlatePanelLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {panelHexiposi, panelLegend});
- jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Level"));
+ panelLN2Level.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Level"));
jLabel1.setText("Stop
Filling");
@@ -697,7 +704,7 @@ public class MainPanel extends Panel {
.addGap(4, 4, 4)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(jSeparator2)
- .addComponent(jLabel3, javax.swing.GroupLayout.DEFAULT_SIZE, 35, Short.MAX_VALUE)))
+ .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, Short.MAX_VALUE)))
.addGroup(jPanel3Layout.createSequentialGroup()
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE))
@@ -733,47 +740,47 @@ public class MainPanel extends Panel {
.addGap(0, 0, 0))
);
- javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
- jPanel1.setLayout(jPanel1Layout);
- jPanel1Layout.setHorizontalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelLN2LevelLayout = new javax.swing.GroupLayout(panelLN2Level);
+ panelLN2Level.setLayout(panelLN2LevelLayout);
+ panelLN2LevelLayout.setHorizontalGroup(
+ panelLN2LevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2LevelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
- jPanel1Layout.setVerticalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ panelLN2LevelLayout.setVerticalGroup(
+ panelLN2LevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2LevelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
- jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Water Level"));
+ panelWaterLevel.setBorder(javax.swing.BorderFactory.createTitledBorder("Water Level"));
progressWater.setMaximum(1000);
progressWater.setOrientation(1);
- javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
- jPanel2.setLayout(jPanel2Layout);
- jPanel2Layout.setHorizontalGroup(
- jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel2Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelWaterLevelLayout = new javax.swing.GroupLayout(panelWaterLevel);
+ panelWaterLevel.setLayout(panelWaterLevelLayout);
+ panelWaterLevelLayout.setHorizontalGroup(
+ panelWaterLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelWaterLevelLayout.createSequentialGroup()
.addContainerGap(31, Short.MAX_VALUE)
.addComponent(progressWater, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(32, Short.MAX_VALUE))
);
- jPanel2Layout.setVerticalGroup(
- jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel2Layout.createSequentialGroup()
+ panelWaterLevelLayout.setVerticalGroup(
+ panelWaterLevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelWaterLevelLayout.createSequentialGroup()
.addContainerGap()
.addComponent(progressWater, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addContainerGap())
);
- jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Devices"));
- jPanel5.setPreferredSize(new java.awt.Dimension(300, 282));
+ panelDevices.setBorder(javax.swing.BorderFactory.createTitledBorder("Devices"));
+ panelDevices.setPreferredSize(new java.awt.Dimension(300, 282));
devicesPanel.setActive(false);
@@ -813,22 +820,22 @@ public class MainPanel extends Panel {
}
});
- buttonConfig.setText("Config");
+ buttonConfig.setText("Settings");
buttonConfig.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonConfigActionPerformed(evt);
}
});
- javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5);
- jPanel5.setLayout(jPanel5Layout);
- jPanel5Layout.setHorizontalGroup(
- jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel5Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelDevicesLayout = new javax.swing.GroupLayout(panelDevices);
+ panelDevices.setLayout(panelDevicesLayout);
+ panelDevicesLayout.setHorizontalGroup(
+ panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDevicesLayout.createSequentialGroup()
.addContainerGap()
.addComponent(devicesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 81, Short.MAX_VALUE)
- .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 50, Short.MAX_VALUE)
+ .addGroup(panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(buttonExpertCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkExpert, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonRecovery, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@@ -837,12 +844,12 @@ public class MainPanel extends Panel {
.addComponent(buttonConfig, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
- jPanel5Layout.setVerticalGroup(
- jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup()
+ panelDevicesLayout.setVerticalGroup(
+ panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDevicesLayout.createSequentialGroup()
.addComponent(devicesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(9, 9, 9))
- .addGroup(jPanel5Layout.createSequentialGroup()
+ .addGroup(panelDevicesLayout.createSequentialGroup()
.addGap(17, 17, 17)
.addComponent(checkExpert)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
@@ -858,7 +865,7 @@ public class MainPanel extends Panel {
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
- jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Control"));
+ panelLN2Control.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Control"));
jLabel4.setText("Control Active");
@@ -873,89 +880,89 @@ public class MainPanel extends Panel {
labelRoomTemperature.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
labelRoomTemperature.setText("Room Temperature");
- javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
- jPanel4.setLayout(jPanel4Layout);
- jPanel4Layout.setHorizontalGroup(
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelLN2ControlLayout = new javax.swing.GroupLayout(panelLN2Control);
+ panelLN2Control.setLayout(panelLN2ControlLayout);
+ panelLN2ControlLayout.setHorizontalGroup(
+ panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(labelRoomTemperature, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(jPanel4Layout.createSequentialGroup()
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
.addComponent(ledFillingDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
.addComponent(jLabel14)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(jLabel5)))
- .addGroup(jPanel4Layout.createSequentialGroup()
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
.addComponent(ledFillingControl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel4)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))))
);
- jPanel4Layout.setVerticalGroup(
- jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel4Layout.createSequentialGroup()
+ panelLN2ControlLayout.setVerticalGroup(
+ panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledFillingControl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel4))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledFillingDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel5))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelLN2ControlLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel14)
.addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 25, Short.MAX_VALUE)
.addComponent(labelRoomTemperature)
.addContainerGap())
);
- jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Beamline Status"));
+ panelBeamlineStatus.setBorder(javax.swing.BorderFactory.createTitledBorder("Beamline Status"));
jLabel8.setText("Valve state");
jLabel9.setText("Transfer permitted");
- javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7);
- jPanel7.setLayout(jPanel7Layout);
- jPanel7Layout.setHorizontalGroup(
- jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel7Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelBeamlineStatusLayout = new javax.swing.GroupLayout(panelBeamlineStatus);
+ panelBeamlineStatus.setLayout(panelBeamlineStatusLayout);
+ panelBeamlineStatusLayout.setHorizontalGroup(
+ panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelBeamlineStatusLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel7Layout.createSequentialGroup()
+ .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelBeamlineStatusLayout.createSequentialGroup()
.addComponent(led5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel8))
- .addGroup(jPanel7Layout.createSequentialGroup()
+ .addGroup(panelBeamlineStatusLayout.createSequentialGroup()
.addComponent(led6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(jLabel9)))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
- jPanel7Layout.setVerticalGroup(
- jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel7Layout.createSequentialGroup()
+ panelBeamlineStatusLayout.setVerticalGroup(
+ panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelBeamlineStatusLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(led5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel8))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(led6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel9))
.addGap(0, 0, 0))
);
- jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder("Datamatrix"));
+ panelDatamatrix.setBorder(javax.swing.BorderFactory.createTitledBorder("Datamatrix"));
jLabel11.setText("Puck:");
@@ -967,68 +974,68 @@ public class MainPanel extends Panel {
textType.setEditable(false);
textType.setBackground(new java.awt.Color(214, 217, 223));
- javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8);
- jPanel8.setLayout(jPanel8Layout);
- jPanel8Layout.setHorizontalGroup(
- jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel8Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelDatamatrixLayout = new javax.swing.GroupLayout(panelDatamatrix);
+ panelDatamatrix.setLayout(panelDatamatrixLayout);
+ panelDatamatrixLayout.setHorizontalGroup(
+ panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDatamatrixLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel8Layout.createSequentialGroup()
+ .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDatamatrixLayout.createSequentialGroup()
.addComponent(jLabel13)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textSample, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE))
- .addGroup(jPanel8Layout.createSequentialGroup()
+ .addGroup(panelDatamatrixLayout.createSequentialGroup()
.addComponent(jLabel11)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(textType)))
.addContainerGap())
);
- jPanel8Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel11, jLabel13});
+ panelDatamatrixLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel11, jLabel13});
- jPanel8Layout.setVerticalGroup(
- jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel8Layout.createSequentialGroup()
+ panelDatamatrixLayout.setVerticalGroup(
+ panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDatamatrixLayout.createSequentialGroup()
.addContainerGap(29, Short.MAX_VALUE)
- .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel11)
.addComponent(textType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, 18)
- .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel13)
.addComponent(textSample, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(30, Short.MAX_VALUE))
);
- jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Sample Load"));
+ PanelSampleLoad.setBorder(javax.swing.BorderFactory.createTitledBorder("Sample Load"));
- buttonInitHexiposi1.setText("Start");
- buttonInitHexiposi1.setEnabled(false);
- buttonInitHexiposi1.addActionListener(new java.awt.event.ActionListener() {
+ buttonStartLoading.setText("Start");
+ buttonStartLoading.setEnabled(false);
+ buttonStartLoading.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
- buttonInitHexiposi1ActionPerformed(evt);
+ buttonStartLoadingActionPerformed(evt);
}
});
- javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10);
- jPanel10.setLayout(jPanel10Layout);
- jPanel10Layout.setHorizontalGroup(
- jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel10Layout.createSequentialGroup()
+ javax.swing.GroupLayout PanelSampleLoadLayout = new javax.swing.GroupLayout(PanelSampleLoad);
+ PanelSampleLoad.setLayout(PanelSampleLoadLayout);
+ PanelSampleLoadLayout.setHorizontalGroup(
+ PanelSampleLoadLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PanelSampleLoadLayout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(buttonInitHexiposi1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(buttonStartLoading, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
- jPanel10Layout.setVerticalGroup(
- jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel10Layout.createSequentialGroup()
- .addContainerGap(23, Short.MAX_VALUE)
- .addComponent(buttonInitHexiposi1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(24, Short.MAX_VALUE))
+ PanelSampleLoadLayout.setVerticalGroup(
+ PanelSampleLoadLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, PanelSampleLoadLayout.createSequentialGroup()
+ .addContainerGap(29, Short.MAX_VALUE)
+ .addComponent(buttonStartLoading, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(30, Short.MAX_VALUE))
);
- jPanel13.setBorder(javax.swing.BorderFactory.createTitledBorder("System Status"));
+ panelSystemStatus.setBorder(javax.swing.BorderFactory.createTitledBorder("System Status"));
jLabel24.setText("Air Pressure");
@@ -1049,67 +1056,67 @@ public class MainPanel extends Panel {
labeManualMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
labeManualMode.setText("Manual Mode");
- javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13);
- jPanel13.setLayout(jPanel13Layout);
- jPanel13Layout.setHorizontalGroup(
- jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel13Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelSystemStatusLayout = new javax.swing.GroupLayout(panelSystemStatus);
+ panelSystemStatus.setLayout(panelSystemStatusLayout);
+ panelSystemStatusLayout.setHorizontalGroup(
+ panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(ledAirPressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ledN2Pressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ledLocalSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(ledPsysSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel24)
.addComponent(jLabel25)
.addComponent(jLabel26)
.addComponent(jLabell21))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(labeManualMode)
.addComponent(buttonRelease))
.addComponent(filler1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
- jPanel13Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonRelease, labeManualMode});
+ panelSystemStatusLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonRelease, labeManualMode});
- jPanel13Layout.setVerticalGroup(
- jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel13Layout.createSequentialGroup()
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel13Layout.createSequentialGroup()
+ panelSystemStatusLayout.setVerticalGroup(
+ panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createSequentialGroup()
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createSequentialGroup()
.addContainerGap()
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledAirPressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel24)))
- .addGroup(jPanel13Layout.createSequentialGroup()
+ .addGroup(panelSystemStatusLayout.createSequentialGroup()
.addGap(20, 20, 20)
.addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE)))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel13Layout.createSequentialGroup()
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSystemStatusLayout.createSequentialGroup()
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledN2Pressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel25))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledLocalSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabel26))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(ledPsysSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(jLabell21)))
- .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel13Layout.createSequentialGroup()
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelSystemStatusLayout.createSequentialGroup()
.addComponent(labeManualMode)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(buttonRelease))))
);
- jPanel12.setBorder(javax.swing.BorderFactory.createTitledBorder("Mode"));
+ panelDisplayMode.setBorder(javax.swing.BorderFactory.createTitledBorder("Mode"));
btViewDewar.setSelected(true);
btViewDewar.setText("Dewar");
@@ -1126,41 +1133,41 @@ public class MainPanel extends Panel {
}
});
- javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12);
- jPanel12.setLayout(jPanel12Layout);
- jPanel12Layout.setHorizontalGroup(
- jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel12Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelDisplayModeLayout = new javax.swing.GroupLayout(panelDisplayMode);
+ panelDisplayMode.setLayout(panelDisplayModeLayout);
+ panelDisplayModeLayout.setHorizontalGroup(
+ panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDisplayModeLayout.createSequentialGroup()
.addContainerGap(32, Short.MAX_VALUE)
- .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(btViewDewar)
.addComponent(btViewRT))
.addContainerGap(33, Short.MAX_VALUE))
);
- jPanel12Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btViewDewar, btViewRT});
+ panelDisplayModeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btViewDewar, btViewRT});
- jPanel12Layout.setVerticalGroup(
- jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel12Layout.createSequentialGroup()
- .addContainerGap(18, Short.MAX_VALUE)
+ panelDisplayModeLayout.setVerticalGroup(
+ panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelDisplayModeLayout.createSequentialGroup()
+ .addContainerGap(23, Short.MAX_VALUE)
.addComponent(btViewDewar, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(btViewRT, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(18, Short.MAX_VALUE))
+ .addContainerGap(24, Short.MAX_VALUE))
);
- panelContext.setBorder(javax.swing.BorderFactory.createTitledBorder("Detail"));
- panelContext.setPreferredSize(new java.awt.Dimension(300, 95));
+ panelDetail.setBorder(javax.swing.BorderFactory.createTitledBorder("Detail"));
+ panelDetail.setPreferredSize(new java.awt.Dimension(300, 95));
- javax.swing.GroupLayout panelContextLayout = new javax.swing.GroupLayout(panelContext);
- panelContext.setLayout(panelContextLayout);
- panelContextLayout.setHorizontalGroup(
- panelContextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ javax.swing.GroupLayout panelDetailLayout = new javax.swing.GroupLayout(panelDetail);
+ panelDetail.setLayout(panelDetailLayout);
+ panelDetailLayout.setHorizontalGroup(
+ panelDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 298, Short.MAX_VALUE)
);
- panelContextLayout.setVerticalGroup(
- panelContextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ panelDetailLayout.setVerticalGroup(
+ panelDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGap(0, 204, Short.MAX_VALUE)
);
@@ -1169,54 +1176,54 @@ public class MainPanel extends Panel {
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
- .addComponent(jPanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(panelLN2Level, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(basePlatePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel5, 310, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addComponent(panelContext, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(panelDevices, 310, 310, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(panelDetail, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(panelWaterLevel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGroup(layout.createSequentialGroup()
- .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelLN2Control, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelSystemStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelBeamlineStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelDatamatrix, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelDisplayMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
- .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addComponent(PanelSampleLoad, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
- layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel5, panelContext});
+ layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelDetail, panelDevices});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
.addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup()
- .addComponent(panelContext, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE)
+ .addComponent(panelDetail, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE))
- .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelDevices, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE))
+ .addComponent(panelWaterLevel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelLN2Level, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(basePlatePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(jPanel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addComponent(panelLN2Control, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelBeamlineStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelSystemStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelDatamatrix, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelDisplayMode, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(PanelSampleLoad, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap())
);
- layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel10, jPanel12, jPanel13, jPanel4, jPanel7, jPanel8});
+ layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {PanelSampleLoad, panelBeamlineStatus, panelDatamatrix, panelDisplayMode, panelLN2Control, panelSystemStatus});
}// //GEN-END:initComponents
@@ -1280,9 +1287,18 @@ public class MainPanel extends Panel {
execute("release_safety()", true);
}//GEN-LAST:event_buttonReleaseActionPerformed
- private void buttonInitHexiposi1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonInitHexiposi1ActionPerformed
- // TODO add your handling code here:
- }//GEN-LAST:event_buttonInitHexiposi1ActionPerformed
+ PuckLoadDialog puckLoadDialog;
+
+ private void buttonStartLoadingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartLoadingActionPerformed
+ if ((puckLoadDialog==null) || (!puckLoadDialog.isShowing())){
+ puckLoadDialog = new PuckLoadDialog(this.getTopLevel(), false);
+ }
+ //puckLoadDialog.setBounds(panelContext.getLocationOnScreen().x, panelContext.getLocationOnScreen().y, (int)getBounds().getMaxX() - panelContext.getX(), (int)getBounds().getMaxY() - panelContext.getY());
+ puckLoadDialog.setBounds(panelLN2Control.getLocationOnScreen().x, panelLN2Control.getLocationOnScreen().y,
+ (int)getBounds().getMaxX() - panelLN2Control.getX(), (int)getBounds().getMaxY() - panelLN2Control.getY());
+ puckLoadDialog.setVisible(true);
+ puckLoadDialog.refresh();
+ }//GEN-LAST:event_buttonStartLoadingActionPerformed
private void checkExpertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkExpertActionPerformed
setExpertMode(checkExpert.isSelected());
@@ -1337,36 +1353,12 @@ public class MainPanel extends Panel {
}//GEN-LAST:event_buttonCalibrateCoverActionPerformed
private void buttonConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonConfigActionPerformed
- try {
- final PropertiesDialog dlg = new PropertiesDialog((Frame) getTopLevelAncestor(), false);
- dlg.setTitle("System Configuration");
- Properties props = new Properties();
- String fileName = getSessionPath() + "/OpenedFiles.dat";
- try (FileInputStream in = new FileInputStream(fileName)) {
- props.load(in);
- }
-
- dlg.setDefaultCloseOperation(WindowConstants.DISPOSE_ON_CLOSE);
- dlg.setListener((StandardDialog sd, boolean accepted) -> {
- if (sd.getResult()) {
- try (FileOutputStream out = new FileOutputStream(fileName);) {
- props.store(out, null);
- } catch (IOException ex) {
- SwingUtils.showException(MainPanel.this, ex);
- }
- }
- });
- dlg.setVisible(true);
- SwingUtils.centerComponent(getTopLevelAncestor(), dlg);
- dlg.requestFocus();
-
- } catch (Exception ex) {
- SwingUtils.showException(MainPanel.this, ex);
- }
+ this.showSettingsEditor(false);
}//GEN-LAST:event_buttonConfigActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JPanel PanelSampleLoad;
private ch.psi.mxsc.BasePlatePanel basePlatePanel;
private javax.swing.JToggleButton btViewDewar;
private javax.swing.JToggleButton btViewRT;
@@ -1378,10 +1370,10 @@ public class MainPanel extends Panel {
private javax.swing.JButton buttonDetectCover;
private javax.swing.JToggleButton buttonDrawing;
private javax.swing.JButton buttonExpertCommands;
- private javax.swing.JButton buttonInitHexiposi1;
private javax.swing.JButton buttonPuckDet;
private javax.swing.JButton buttonRecovery;
private javax.swing.JButton buttonRelease;
+ private javax.swing.JButton buttonStartLoading;
private javax.swing.JCheckBox checkExpert;
private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1;
private ch.psi.mxsc.DevicesPanel devicesPanel;
@@ -1406,16 +1398,7 @@ public class MainPanel extends Panel {
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JLabel jLabell21;
- private javax.swing.JPanel jPanel1;
- private javax.swing.JPanel jPanel10;
- private javax.swing.JPanel jPanel12;
- private javax.swing.JPanel jPanel13;
- private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
- private javax.swing.JPanel jPanel4;
- private javax.swing.JPanel jPanel5;
- private javax.swing.JPanel jPanel7;
- private javax.swing.JPanel jPanel8;
private javax.swing.JSeparator jSeparator1;
private javax.swing.JSeparator jSeparator2;
private javax.swing.JSeparator jSeparator3;
@@ -1434,11 +1417,19 @@ public class MainPanel extends Panel {
private ch.psi.pshell.swing.Led ledLocalSafety;
private ch.psi.pshell.swing.Led ledN2Pressure;
private ch.psi.pshell.swing.Led ledPsysSafety;
- private javax.swing.JPanel panelContext;
+ private javax.swing.JPanel panelBeamlineStatus;
+ private javax.swing.JPanel panelDatamatrix;
+ private javax.swing.JPanel panelDetail;
private javax.swing.JPanel panelDetection;
+ private javax.swing.JPanel panelDevices;
+ private javax.swing.JPanel panelDisplayMode;
private javax.swing.JPanel panelHexiposi;
+ private javax.swing.JPanel panelLN2Control;
+ private javax.swing.JPanel panelLN2Level;
private javax.swing.JPanel panelLegend;
+ private javax.swing.JPanel panelSystemStatus;
private javax.swing.JPanel panelViewType;
+ private javax.swing.JPanel panelWaterLevel;
private javax.swing.JProgressBar progressLN2;
private javax.swing.JProgressBar progressWater;
private javax.swing.JTextField textSample;
diff --git a/src/main/java/ch/psi/mxsc/PuckLoadDialog.form b/src/main/java/ch/psi/mxsc/PuckLoadDialog.form
new file mode 100644
index 0000000..6c935d9
--- /dev/null
+++ b/src/main/java/ch/psi/mxsc/PuckLoadDialog.form
@@ -0,0 +1,56 @@
+
+
+
diff --git a/src/main/java/ch/psi/mxsc/PuckLoadDialog.java b/src/main/java/ch/psi/mxsc/PuckLoadDialog.java
new file mode 100644
index 0000000..c151236
--- /dev/null
+++ b/src/main/java/ch/psi/mxsc/PuckLoadDialog.java
@@ -0,0 +1,142 @@
+package ch.psi.mxsc;
+
+import ch.psi.pshell.core.Context;
+import ch.psi.pshell.core.JsonSerializer;
+import ch.psi.utils.swing.StandardDialog;
+import java.util.logging.Level;
+import java.util.logging.Logger;
+import javax.swing.table.DefaultTableModel;
+
+/**
+ *
+ */
+public class PuckLoadDialog extends StandardDialog {
+
+
+ String[] HEADER = new String[]{"Puck Address", "Mount Count", "User Name", "Puck Name", "Sample Status",
+ "Sample Name", "Sample Position", "Puck Barcode", "Dewar Name", "Puck Type"};
+
+ public PuckLoadDialog(java.awt.Frame parent, boolean modal) {
+ super(parent, modal);
+ initComponents();
+ refresh();
+ }
+
+ void refresh() {
+ try {
+ String json = (String) Context.getInstance().evalLineBackground("get_samples_info()");
+
+ //SamplesInfo sampleInfo = (SamplesInfo) JsonSerializer.decode(json, SampleInfo.class);
+ SampleInfo[] samples = (SampleInfo[]) JsonSerializer.decode(json, SampleInfo[].class);
+
+ Object[][] sampleData = new Object[samples.length][];
+ for (int i=0; i< samples.length; i++) {
+ sampleData[i] = samples[i].getData();
+ }
+
+
+ table.setModel(new DefaultTableModel(
+ sampleData,
+ HEADER
+ ));
+ } catch (Exception ex) {
+ clear();
+ Logger.getLogger(PuckLoadDialog.class.getName()).log(Level.SEVERE, null, ex);
+ }
+
+ }
+
+ void clear() {
+ table.setModel(new DefaultTableModel(
+ new Object[][]{},
+ HEADER
+ ));
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jScrollPane1 = new javax.swing.JScrollPane();
+ table = new javax.swing.JTable();
+
+ setTitle("Puck Loading");
+
+ table.setModel(new javax.swing.table.DefaultTableModel(
+ new Object [][] {
+
+ },
+ new String [] {
+
+ }
+ ));
+ jScrollPane1.setViewportView(table);
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 395, Short.MAX_VALUE)
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addComponent(jScrollPane1, javax.swing.GroupLayout.PREFERRED_SIZE, 277, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addGap(0, 79, Short.MAX_VALUE))
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(PuckLoadDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(PuckLoadDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(PuckLoadDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(PuckLoadDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the dialog */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ PuckLoadDialog dialog = new PuckLoadDialog(new javax.swing.JFrame(), true);
+ dialog.addWindowListener(new java.awt.event.WindowAdapter() {
+ @Override
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ System.exit(0);
+ }
+ });
+ dialog.setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JTable table;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/main/java/ch/psi/mxsc/SampleInfo.java b/src/main/java/ch/psi/mxsc/SampleInfo.java
new file mode 100644
index 0000000..d537db8
--- /dev/null
+++ b/src/main/java/ch/psi/mxsc/SampleInfo.java
@@ -0,0 +1,49 @@
+package ch.psi.mxsc;
+
+import java.util.HashMap;
+
+/**
+ *
+ */
+public class SampleInfo extends HashMap {
+
+ public enum PuckType {
+ Unipuck,
+ MiniSpine,
+ Unknown
+ }
+
+ public enum SampleStatus {
+ Mounted,
+ HasBeenMounted,
+ Present,
+ Unknown
+ }
+
+ Object[] getData() {
+ return new Object[]{getStr("puckAddress"), getInt("sampleMountCount"), getStr("userName"), getStr("puckName"),
+ getEnum("sampleStatus", SampleStatus.class, SampleStatus.Unknown), getStr("sampleName"), getInt("samplePosition"),
+ getStr("puckBarcode"), getStr("dewarName"), getEnum("puckType", PuckType.class, PuckType.Unknown)};
+ }
+
+ String getStr(String key) {
+ return String.valueOf(get(key));
+ }
+
+ int getInt(String key) {
+ try {
+ return Integer.valueOf((String) get(key));
+ } catch (Exception ex) {
+ return -1;
+ }
+ }
+
+ Object getEnum(String key, Class cls, Object def) {
+ try {
+ return Enum.valueOf(cls, getStr(key));
+ } catch (Exception ex) {
+ return def;
+ }
+ }
+
+}