Closedown

This commit is contained in:
x03daop
2016-09-06 10:51:37 +02:00
parent 2ba874b372
commit b4fd307b9d
6 changed files with 160 additions and 34 deletions

View File

@@ -18,6 +18,7 @@ import ch.psi.pshell.swing.ValueSelection;
import java.awt.Component;
import java.io.File;
import java.nio.file.Files;
import java.time.LocalTime;
import java.util.ArrayList;
import java.util.Arrays;
import java.util.HashMap;
@@ -82,6 +83,8 @@ public class XPSSpectrum extends Panel {
scienta = (Scienta) getDevice("Scienta");
scienta.getTotalChannels().addListener(progressListener);
scienta.getCurrentChannel().addListener(progressListener);
dvpAcqTime.setDevice(scienta.getAcquisitionTime());
startTimer(500,100);
}
@Override
@@ -90,7 +93,7 @@ public class XPSSpectrum extends Panel {
if (!state.isProcessing()){
buttonSkip.setVisible(false);
if (running){
stopTimer();
//stopTimer();
running = false;
getView().getStatusBar().setProgress(-1);
}
@@ -168,33 +171,48 @@ public class XPSSpectrum extends Panel {
@Override
protected void onTimer() {
try{
Object index = XPSSpectrum.this.eval(CURRERNT_RANGE_VAR, true);
if ((index!=null) && (index instanceof Integer) && ((Integer)index >= 0)){
int scanIndex = (Integer)index;
if (scanIndex!=currentScanIndex){
buttonSkip.setEnabled(true);
}
currentScanIndex = scanIndex;
if (running){
Object index = XPSSpectrum.this.eval(CURRERNT_RANGE_VAR, true);
if ((index!=null) && (index instanceof Integer) && ((Integer)index >= 0)){
int scanIndex = (Integer)index;
if (scanIndex!=currentScanIndex){
buttonSkip.setEnabled(true);
}
currentScanIndex = scanIndex;
int current_iteration = (Integer) XPSSpectrum.this.eval(CURRERNT_ITERATION_VAR, true);
int iterations = (Integer)scanRanges[currentScanIndex].getVars()[2];
int current_iteration = (Integer) XPSSpectrum.this.eval(CURRERNT_ITERATION_VAR, true);
int iterations = (Integer)scanRanges[currentScanIndex].getVars()[2];
buttonSkip.setVisible((iterations>1) && (current_iteration < (iterations-1)));
buttonSkip.setVisible((iterations>1) && (current_iteration < (iterations-1)));
if (detailedScan){
RangeSelection range = rangeSelectionPanel.getRangesOrdered()[scanIndex];
for (int row = 0; row< rangeSelectionPanel.getTable().getRowCount(); row++){
if (range.equals((Double)rangeSelectionPanel.getTable().getValueAt(row, 0), (Double)rangeSelectionPanel.getTable().getValueAt(row, 2))){
rangeSelectionPanel.getTable().setRowSelectionInterval(row, row);
break;
}
if (row == (rangeSelectionPanel.getTable().getRowCount()-1)){
rangeSelectionPanel.getTable().clearSelection();
}
}
if (detailedScan){
RangeSelection range = rangeSelectionPanel.getRangesOrdered()[scanIndex];
for (int row = 0; row< rangeSelectionPanel.getTable().getRowCount(); row++){
if (range.equals((Double)rangeSelectionPanel.getTable().getValueAt(row, 0), (Double)rangeSelectionPanel.getTable().getValueAt(row, 2))){
rangeSelectionPanel.getTable().setRowSelectionInterval(row, row);
break;
}
if (row == (rangeSelectionPanel.getTable().getRowCount()-1)){
rangeSelectionPanel.getTable().clearSelection();
}
}
}
} else {
rangeSelectionPanel.getTable().clearSelection();
}
} else {
rangeSelectionPanel.getTable().clearSelection();
int steps = 0;
RangeSelection[] r = rangeSelectionPanel.getRanges();
if ((buttonDetailedScan.isEnabled()) && (r.length>0)){
for (int i=0;i<r.length;i++){
int iterations = (Integer)scanRanges[i].getVars()[2];
steps += iterations;
}
} else {
steps = Math.max(1, (int)valueIterations.getValue());
}
int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * steps);
textTotalTime.setText(LocalTime.ofSecondOfDay(seconds).toString());
}
} catch (Exception ex){
getLogger().log(Level.FINE, null, ex);
@@ -209,7 +227,7 @@ public class XPSSpectrum extends Panel {
args.put("ENDSCAN", checkEndScan.isSelected());
currentScanIndex = -1;
runAsync("XPSSpectrum", args);
startTimer(500,10);
//startTimer(500,10);
running = true;
}
@@ -234,6 +252,10 @@ public class XPSSpectrum extends Panel {
buttonScientaSetup = new javax.swing.JButton();
checkEndScan = new javax.swing.JCheckBox();
checkSaveImage = new javax.swing.JCheckBox();
textTotalTime = new javax.swing.JLabel();
dvpAcqTime = new ch.psi.pshell.swing.DeviceValuePanel();
labelAcqTime = new javax.swing.JLabel();
labelTotalTime = new javax.swing.JLabel();
jPanel2 = new javax.swing.JPanel();
btLoad = new javax.swing.JButton();
btSave = new javax.swing.JButton();
@@ -316,6 +338,15 @@ public class XPSSpectrum extends Panel {
checkSaveImage.setText("Save Scienta image");
textTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.CENTER);
textTotalTime.setBorder(javax.swing.BorderFactory.createTitledBorder(""));
labelAcqTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelAcqTime.setText("Acquisition time(s):");
labelTotalTime.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
labelTotalTime.setText("Total time:");
javax.swing.GroupLayout panelArgumentsLayout = new javax.swing.GroupLayout(panelArguments);
panelArguments.setLayout(panelArgumentsLayout);
panelArgumentsLayout.setHorizontalGroup(
@@ -349,7 +380,16 @@ public class XPSSpectrum extends Panel {
.addComponent(valueIterations, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addComponent(buttonScientaSetup, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(checkEndScan)
.addComponent(checkSaveImage))
.addComponent(checkSaveImage)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelArgumentsLayout.createSequentialGroup()
.addGap(0, 0, Short.MAX_VALUE)
.addGroup(panelArgumentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(labelAcqTime)
.addComponent(labelTotalTime))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelArgumentsLayout.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())
);
@@ -357,6 +397,8 @@ public class XPSSpectrum extends Panel {
panelArgumentsLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel11, jLabel17, jLabel2, jLabel8, jLabel9});
panelArgumentsLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
panelArgumentsLayout.setVerticalGroup(
panelArgumentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelArgumentsLayout.createSequentialGroup()
@@ -380,11 +422,19 @@ public class XPSSpectrum extends Panel {
.addGroup(panelArgumentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(jLabel17)
.addComponent(valueIterations, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, Short.MAX_VALUE)
.addGap(18, 18, 18)
.addGroup(panelArgumentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(jLabel11)
.addComponent(comboPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addGap(18, 18, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
.addGroup(panelArgumentsLayout.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.RELATED)
.addGroup(panelArgumentsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
.addComponent(textTotalTime)
.addComponent(labelTotalTime))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 32, Short.MAX_VALUE)
.addComponent(checkEndScan)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSaveImage)
@@ -393,6 +443,8 @@ public class XPSSpectrum extends Panel {
.addGap(26, 26, 26))
);
panelArgumentsLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {dvpAcqTime, textTotalTime});
jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control"));
btLoad.setText("Load");
@@ -456,7 +508,7 @@ public class XPSSpectrum extends Panel {
.addComponent(buttonInitialScan)
.addGap(18, 18, 18)
.addComponent(buttonDetailedScan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 66, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 13, Short.MAX_VALUE)
.addComponent(buttonSkip)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(buttonAbort))
@@ -630,6 +682,7 @@ public class XPSSpectrum extends Panel {
private javax.swing.JCheckBox checkEndScan;
private javax.swing.JCheckBox checkSaveImage;
private javax.swing.JComboBox comboPass;
private ch.psi.pshell.swing.DeviceValuePanel dvpAcqTime;
private javax.swing.JLabel jLabel1;
private javax.swing.JLabel jLabel11;
private javax.swing.JLabel jLabel17;
@@ -637,8 +690,11 @@ public class XPSSpectrum extends Panel {
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JPanel jPanel2;
private javax.swing.JLabel labelAcqTime;
private javax.swing.JLabel labelTotalTime;
private javax.swing.JPanel panelArguments;
private ch.psi.pshell.swing.RangeSelectionPanel rangeSelectionPanel;
private javax.swing.JLabel textTotalTime;
private ch.psi.pshell.swing.ValueSelection valueHigh;
private ch.psi.pshell.swing.ValueSelection valueIterations;
private ch.psi.pshell.swing.ValueSelection valueLow;