diff --git a/plugins/HoloScan.form b/plugins/HoloScan.form
index a900aa33..6b555c44 100644
--- a/plugins/HoloScan.form
+++ b/plugins/HoloScan.form
@@ -24,7 +24,7 @@
-
+
@@ -38,9 +38,9 @@
-
-
-
+
+
+
@@ -56,7 +56,7 @@
-
+
@@ -72,7 +72,7 @@
-
+
@@ -347,7 +347,7 @@
-
+
@@ -357,7 +357,7 @@
-
+
@@ -405,7 +405,7 @@
-
+
@@ -519,7 +519,7 @@
-
+
@@ -541,7 +541,7 @@
-
+
@@ -559,7 +559,7 @@
-
+
@@ -569,7 +569,7 @@
-
+
diff --git a/plugins/HoloScan.java b/plugins/HoloScan.java
index d72ecb77..7527a59a 100644
--- a/plugins/HoloScan.java
+++ b/plugins/HoloScan.java
@@ -67,12 +67,10 @@ public class HoloScan extends Panel {
(int)(Math.abs((Double)spinnerToPhi.getValue() - (Double)spinnerFromPhi.getValue()) / (Double)spinnerStepSizePhi.getValue() + 1) *
(int)(Math.abs((Double)spinnerToTheta.getValue() - (Double)spinnerFromTheta.getValue()) / (Double)spinnerStepSizeTheta.getValue() +1));
int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * steps);
- LocalTime time = LocalTime.ofSecondOfDay(seconds);
- textTotalTime.setText(time.toString());
+ textTotalTime.setText(LocalTime.ofSecondOfDay(seconds).toString());
} catch (Exception ex){
textTotalTime.setText("");
}
-
}
@Override
@@ -201,7 +199,7 @@ public class HoloScan extends Panel {
textTotalTime = new javax.swing.JLabel();
panelPositioners.setBorder(javax.swing.BorderFactory.createTitledBorder("Positioners"));
- panelPositioners.setPreferredSize(new java.awt.Dimension(239, 538));
+ panelPositioners.setPreferredSize(new java.awt.Dimension(248, 543));
buttonGroup1.add(radioStepSize);
radioStepSize.setSelected(true);
@@ -274,7 +272,7 @@ public class HoloScan extends Panel {
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(motorPanelPhi, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionersLayout.createSequentialGroup()
- .addGap(0, 23, Short.MAX_VALUE)
+ .addGap(0, 32, Short.MAX_VALUE)
.addGroup(panelPositionersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionersLayout.createSequentialGroup()
.addGroup(panelPositionersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -376,7 +374,7 @@ public class HoloScan extends Panel {
);
panelSensors.setBorder(javax.swing.BorderFactory.createTitledBorder("Sensors"));
- panelSensors.setPreferredSize(new java.awt.Dimension(239, 422));
+ panelSensors.setPreferredSize(new java.awt.Dimension(248, 543));
checkImage.setSelected(true);
checkImage.setText("Scienta Image");
@@ -441,7 +439,7 @@ public class HoloScan extends Panel {
.addGroup(panelSensorsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE)
.addComponent(checkImage)
.addComponent(checkImageIntegration)
.addComponent(checkSpectrum)
@@ -486,13 +484,13 @@ public class HoloScan extends Panel {
.addComponent(checkCur2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkCur3)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 163, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 97, Short.MAX_VALUE)
.addComponent(buttonScientaSetup)
.addGap(26, 26, 26))
);
panelScan.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control"));
- panelScan.setPreferredSize(new java.awt.Dimension(239, 119));
+ panelScan.setPreferredSize(new java.awt.Dimension(248, 543));
buttonStart.setText("Start");
buttonStart.addActionListener(new java.awt.event.ActionListener() {
@@ -536,7 +534,7 @@ public class HoloScan extends Panel {
.addGroup(panelScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(textTotalTime, javax.swing.GroupLayout.Alignment.TRAILING)
.addComponent(dvpAcqTime, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addGap(0, 0, Short.MAX_VALUE))
+ .addGap(0, 1, Short.MAX_VALUE))
.addGroup(panelScanLayout.createSequentialGroup()
.addComponent(checkEndScan)
.addGap(53, 53, 53)))
@@ -554,7 +552,7 @@ public class HoloScan extends Panel {
.addComponent(buttonStart)
.addGap(18, 18, 18)
.addComponent(buttonAbort)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 170, Short.MAX_VALUE)
.addGroup(panelScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(labelAcqTime)
.addComponent(dvpAcqTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
@@ -562,7 +560,7 @@ public class HoloScan extends Panel {
.addGroup(panelScanLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(textTotalTime)
.addComponent(labelTotalTime))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 168, Short.MAX_VALUE)
.addComponent(checkEndScan)
.addGap(26, 26, 26))
);
@@ -575,7 +573,7 @@ public class HoloScan extends Panel {
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
- .addComponent(panelSensors, javax.swing.GroupLayout.PREFERRED_SIZE, 233, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(panelSensors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelPositioners, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
@@ -583,16 +581,16 @@ public class HoloScan extends Panel {
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
- layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelPositioners, panelScan});
+ layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelPositioners, panelScan, panelSensors});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(layout.createSequentialGroup()
.addContainerGap()
.addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(panelPositioners, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
- .addComponent(panelSensors, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE)
- .addComponent(panelScan, javax.swing.GroupLayout.DEFAULT_SIZE, 543, Short.MAX_VALUE))
+ .addComponent(panelPositioners, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelSensors, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelScan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
}// //GEN-END:initComponents
diff --git a/plugins/ManipulatorScan.form b/plugins/ManipulatorScan.form
index fe5bb76c..cca66d2c 100644
--- a/plugins/ManipulatorScan.form
+++ b/plugins/ManipulatorScan.form
@@ -7,6 +7,11 @@
+
+
+
+
+
@@ -22,14 +27,14 @@
-
+
-
+
-
+
@@ -172,7 +177,7 @@
-
+
@@ -345,7 +350,7 @@
-
+
@@ -393,7 +398,7 @@
-
+
@@ -510,18 +515,32 @@
-
+
-
-
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -532,6 +551,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -560,6 +589,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/ManipulatorScan.java b/plugins/ManipulatorScan.java
index 6a70f6a3..f180c78e 100644
--- a/plugins/ManipulatorScan.java
+++ b/plugins/ManipulatorScan.java
@@ -8,6 +8,7 @@ import ch.psi.pshell.ui.Panel;
import ch.psi.utils.State;
import ch.psi.utils.swing.SwingUtils;
import java.awt.Component;
+import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -31,14 +32,29 @@ public class ManipulatorScan extends Panel {
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JSpinner.class)));
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JComboBox.class)));
setPersistedComponents(persistedComponents.toArray(new Component[0]));
-
+ startTimer(1000);
}
//Overridable callbacks
@Override
public void onInitialize(int runCount) {
comboMotorActionPerformed(null);
+ Scienta scienta = (Scienta) getDevice("Scienta");
+ dvpAcqTime.setDevice(scienta.getAcquisitionTime());
}
+
+ protected void onTimer(){
+ try{
+ int steps = radioSteps.isSelected() ?
+ (Integer)spinnerSteps.getValue():
+ (int)(Math.abs((Double)spinnerTo.getValue() - (Double)spinnerFrom.getValue()) / (Double)spinnerStepSize.getValue() + 1);
+ int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * steps);
+ textTotalTime.setText(LocalTime.ofSecondOfDay(seconds).toString());
+ } catch (Exception ex){
+ textTotalTime.setText("");
+ }
+ }
+
@Override
public void onStateChange(State state, State former) {
@@ -183,6 +199,12 @@ public class ManipulatorScan extends Panel {
buttonStart = new javax.swing.JButton();
buttonAbort = new javax.swing.JButton();
checkEndScan = new javax.swing.JCheckBox();
+ textTotalTime = new javax.swing.JLabel();
+ labelTotalTime = new javax.swing.JLabel();
+ labelAcqTime = new javax.swing.JLabel();
+ dvpAcqTime = new ch.psi.pshell.swing.DeviceValuePanel();
+
+ setPreferredSize(new java.awt.Dimension(792, 567));
panelPositioner.setBorder(javax.swing.BorderFactory.createTitledBorder("Positioner"));
@@ -352,7 +374,7 @@ public class ManipulatorScan extends Panel {
.addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel3)
.addComponent(spinnerLatency, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addContainerGap(55, Short.MAX_VALUE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
panelSensors.setBorder(javax.swing.BorderFactory.createTitledBorder("Sensors"));
@@ -419,7 +441,7 @@ public class ManipulatorScan extends Panel {
.addGroup(panelSensorsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE)
.addComponent(checkImage)
.addComponent(checkImageIntegration)
.addComponent(checkSpectrum)
@@ -464,7 +486,7 @@ public class ManipulatorScan extends Panel {
.addComponent(checkCur2)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkCur3)
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 97, Short.MAX_VALUE)
.addComponent(buttonScientaSetup)
.addGap(26, 26, 26))
);
@@ -487,6 +509,15 @@ public class ManipulatorScan extends Panel {
checkEndScan.setText("Turn off beam at end");
+ textTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ textTotalTime.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+
+ labelTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ labelTotalTime.setText("Total time:");
+
+ labelAcqTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ labelAcqTime.setText("Acquisition time(s):");
+
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
@@ -494,13 +525,29 @@ public class ManipulatorScan extends Panel {
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel3Layout.createSequentialGroup()
- .addComponent(checkEndScan)
- .addGap(0, 0, Short.MAX_VALUE))
.addComponent(buttonStart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE))
+ .addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(labelAcqTime)
+ .addComponent(labelTotalTime))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textTotalTime, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(dvpAcqTime, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(1, 1, 1)))
.addContainerGap())
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(checkEndScan)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
);
+
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
+
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelAcqTime, labelTotalTime});
+
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
@@ -509,25 +556,35 @@ public class ManipulatorScan extends Panel {
.addGap(18, 18, 18)
.addComponent(buttonAbort)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(labelAcqTime)
+ .addComponent(dvpAcqTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(labelTotalTime)
+ .addComponent(textTotalTime))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkEndScan)
.addGap(26, 26, 26))
);
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(layout.createSequentialGroup()
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelSensors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(panelPositioner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap())
);
- layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel3, panelPositioner});
+ layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel3, panelPositioner, panelSensors});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -616,6 +673,7 @@ public class ManipulatorScan extends Panel {
private javax.swing.JCheckBox checkSpectrum;
private javax.swing.JCheckBox checkTotalCount;
private javax.swing.JComboBox comboMotor;
+ private ch.psi.pshell.swing.DeviceValuePanel dvpAcqTime;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
@@ -624,6 +682,8 @@ public class ManipulatorScan extends Panel {
private javax.swing.JLabel jLabel7;
private javax.swing.JLabel jLabel8;
private javax.swing.JPanel jPanel3;
+ private javax.swing.JLabel labelAcqTime;
+ private javax.swing.JLabel labelTotalTime;
private ch.psi.pshell.swing.MotorReadoutPanel motorPanel;
private javax.swing.JPanel panelPositioner;
private javax.swing.JPanel panelSensors;
@@ -637,6 +697,7 @@ public class ManipulatorScan extends Panel {
private javax.swing.JSpinner spinnerStepSize;
private javax.swing.JSpinner spinnerSteps;
private javax.swing.JSpinner spinnerTo;
+ private javax.swing.JLabel textTotalTime;
private javax.swing.JLabel txtSize;
// End of variables declaration//GEN-END:variables
}
diff --git a/plugins/PhotonEnergy.form b/plugins/PhotonEnergy.form
index 33e23f33..e3c4a543 100644
--- a/plugins/PhotonEnergy.form
+++ b/plugins/PhotonEnergy.form
@@ -24,12 +24,12 @@
-
+
-
+
-
-
+
+
@@ -105,7 +105,7 @@
-
+
@@ -354,7 +354,7 @@
-
+
@@ -520,15 +520,27 @@
-
+
-
+
-
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -542,6 +554,16 @@
+
+
+
+
+
+
+
+
+
+
@@ -570,6 +592,30 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
diff --git a/plugins/PhotonEnergy.java b/plugins/PhotonEnergy.java
index d3aacbff..6313ca6d 100644
--- a/plugins/PhotonEnergy.java
+++ b/plugins/PhotonEnergy.java
@@ -2,6 +2,7 @@
* Copyright (c) 2014 Paul Scherrer Institute. All rights reserved.
*/
+import ch.psi.pshell.epics.Scienta;
import ch.psi.pshell.scan.Scan;
import ch.psi.pshell.scan.ScanListener;
import ch.psi.pshell.scan.ScanRecord;
@@ -10,6 +11,7 @@ import ch.psi.utils.Convert;
import ch.psi.utils.State;
import ch.psi.utils.swing.SwingUtils;
import java.awt.Component;
+import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -30,7 +32,7 @@ public class PhotonEnergy extends Panel {
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JToggleButton.class)));
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JSpinner.class)));
setPersistedComponents(persistedComponents.toArray(new Component[0]));
-
+ startTimer(1000);
}
boolean running;
@@ -49,8 +51,19 @@ public class PhotonEnergy extends Panel {
@Override
public void onInitialize(int runCount) {
+ Scienta scienta = (Scienta) getDevice("Scienta");
+ dvpAcqTime.setDevice(scienta.getAcquisitionTime());
updateTable();
}
+
+ protected void onTimer(){
+ try{
+ int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * table.getRowCount());
+ textTotalTime.setText(LocalTime.ofSecondOfDay(seconds).toString());
+ } catch (Exception ex){
+ textTotalTime.setText("");
+ }
+ }
ScanListener scanListener = new ScanListener() {
@Override
@@ -229,6 +242,10 @@ public class PhotonEnergy extends Panel {
buttonStart = new javax.swing.JButton();
buttonAbort = new javax.swing.JButton();
checkEndScan = new javax.swing.JCheckBox();
+ labelAcqTime = new javax.swing.JLabel();
+ dvpAcqTime = new ch.psi.pshell.swing.DeviceValuePanel();
+ textTotalTime = new javax.swing.JLabel();
+ labelTotalTime = new javax.swing.JLabel();
panelPositioner.setBorder(javax.swing.BorderFactory.createTitledBorder("Acquisition"));
@@ -374,7 +391,7 @@ public class PhotonEnergy extends Panel {
.addComponent(jLabel4)
.addComponent(jLabel5)
.addComponent(jLabel6))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 62, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
.addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
.addComponent(spinnerStep, javax.swing.GroupLayout.DEFAULT_SIZE, 120, Short.MAX_VALUE)
.addComponent(spinnerEnd)
@@ -489,7 +506,7 @@ public class PhotonEnergy extends Panel {
.addGroup(panelSensorsLayout.createSequentialGroup()
.addContainerGap()
.addGroup(panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, 212, Short.MAX_VALUE)
.addComponent(checkImage)
.addComponent(checkImageIntegration)
.addComponent(checkSpectrum)
@@ -557,6 +574,15 @@ public class PhotonEnergy extends Panel {
checkEndScan.setText("Turn off beam at end");
+ labelAcqTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ labelAcqTime.setText("Acquisition time(s):");
+
+ textTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
+ textTotalTime.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
+
+ labelTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ labelTotalTime.setText("Total time:");
+
javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
jPanel3.setLayout(jPanel3Layout);
jPanel3Layout.setHorizontalGroup(
@@ -566,11 +592,25 @@ public class PhotonEnergy extends Panel {
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addComponent(checkEndScan)
- .addGap(0, 84, Short.MAX_VALUE))
+ .addGap(0, 0, Short.MAX_VALUE))
.addComponent(buttonStart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
- .addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE))
+ .addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
+ .addGap(0, 1, Short.MAX_VALUE)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(labelAcqTime)
+ .addComponent(labelTotalTime))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(textTotalTime, javax.swing.GroupLayout.Alignment.TRAILING)
+ .addComponent(dvpAcqTime, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 76, javax.swing.GroupLayout.PREFERRED_SIZE))))
.addContainerGap())
);
+
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
+
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {labelAcqTime, labelTotalTime});
+
jPanel3Layout.setVerticalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
@@ -579,10 +619,20 @@ public class PhotonEnergy extends Panel {
.addGap(18, 18, 18)
.addComponent(buttonAbort)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(dvpAcqTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(labelAcqTime))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
+ .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(labelTotalTime)
+ .addComponent(textTotalTime))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkEndScan)
.addGap(26, 26, 26))
);
+ jPanel3Layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
+
javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
this.setLayout(layout);
layout.setHorizontalGroup(
@@ -594,10 +644,10 @@ public class PhotonEnergy extends Panel {
.addComponent(panelPositioner, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
- .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addContainerGap(60, Short.MAX_VALUE))
);
- layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel3, panelPositioner});
+ layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel3, panelPositioner, panelSensors});
layout.setVerticalGroup(
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
@@ -669,6 +719,7 @@ public class PhotonEnergy extends Panel {
private javax.swing.JCheckBox checkImageIntegration;
private javax.swing.JCheckBox checkSpectrum;
private javax.swing.JCheckBox checkTotalCount;
+ private ch.psi.pshell.swing.DeviceValuePanel dvpAcqTime;
private javax.swing.JLabel jLabel3;
private javax.swing.JLabel jLabel4;
private javax.swing.JLabel jLabel5;
@@ -678,6 +729,8 @@ public class PhotonEnergy extends Panel {
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel3;
private javax.swing.JScrollPane jScrollPane1;
+ private javax.swing.JLabel labelAcqTime;
+ private javax.swing.JLabel labelTotalTime;
private javax.swing.JPanel panelPositioner;
private javax.swing.JPanel panelSensors;
private javax.swing.JRadioButton radioCfs;
@@ -692,5 +745,6 @@ public class PhotonEnergy extends Panel {
private javax.swing.JSpinner spinnerStart;
private javax.swing.JSpinner spinnerStep;
private javax.swing.JTable table;
+ private javax.swing.JLabel textTotalTime;
// End of variables declaration//GEN-END:variables
}