From f5737189be12b0a11f5fc45c61d75c7026f8def7 Mon Sep 17 00:00:00 2001 From: Alexandre Gobbo Date: Wed, 15 Aug 2018 17:54:06 +0200 Subject: [PATCH] Included config, properties and app settings editors to Plugin interface --- src/main/java/ch/psi/mxsc/MainPanel.form | 94 ++-- src/main/java/ch/psi/mxsc/MainPanel.java | 445 +++++++++--------- src/main/java/ch/psi/mxsc/PuckLoadDialog.form | 56 +++ src/main/java/ch/psi/mxsc/PuckLoadDialog.java | 142 ++++++ src/main/java/ch/psi/mxsc/SampleInfo.java | 49 ++ 5 files changed, 512 insertions(+), 274 deletions(-) create mode 100644 src/main/java/ch/psi/mxsc/PuckLoadDialog.form create mode 100644 src/main/java/ch/psi/mxsc/PuckLoadDialog.java create mode 100644 src/main/java/ch/psi/mxsc/SampleInfo.java 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; + } + } + +}