This commit is contained in:
x03daop
2016-07-26 17:54:09 +02:00
parent 2bcbd6c704
commit 9ab9ecfbb7
6 changed files with 281 additions and 69 deletions

View File

@@ -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
}