From 2721cf1b9aec3493221d64b358e009abe1a20e13 Mon Sep 17 00:00:00 2001 From: gac-x03da Date: Fri, 5 Aug 2022 10:22:50 +0200 Subject: [PATCH] Startup --- plugins/PhotonEnergy.form | 4 +- plugins/PhotonEnergy.java | 16 ++--- plugins/XPSSpectrum.form | 53 ++++++++++------ plugins/XPSSpectrum.java | 129 +++++++++++++++++++++----------------- 4 files changed, 117 insertions(+), 85 deletions(-) diff --git a/plugins/PhotonEnergy.form b/plugins/PhotonEnergy.form index 9e4b8a07..b513f989 100644 --- a/plugins/PhotonEnergy.form +++ b/plugins/PhotonEnergy.form @@ -354,7 +354,7 @@ - + @@ -530,7 +530,7 @@ - + diff --git a/plugins/PhotonEnergy.java b/plugins/PhotonEnergy.java index bc8c1fe2..fc0d5ec8 100644 --- a/plugins/PhotonEnergy.java +++ b/plugins/PhotonEnergy.java @@ -36,7 +36,7 @@ public class PhotonEnergy extends ScriptProcessor { setPersistedComponents(persistedComponents.toArray(new Component[0])); startTimer(1000); } - boolean running; + //boolean running; //Overridable callbacks @Override @@ -71,7 +71,7 @@ public class PhotonEnergy extends ScriptProcessor { ScanListener scanListener = new ScanListener() { @Override public void onScanStarted(Scan scan, String string) { - if (running) { + if (isRunning()) { table.setRowSelectionInterval(0, 0); SwingUtils.scrollToVisible(table, 0, 0); } @@ -79,7 +79,7 @@ public class PhotonEnergy extends ScriptProcessor { @Override public void onNewRecord(Scan scan, ScanRecord rec) { - if (running) { + if (isRunning()) { int index = rec.getIndex() + 1; if (index < table.getRowCount()) { table.setRowSelectionInterval(index, index); @@ -90,7 +90,7 @@ public class PhotonEnergy extends ScriptProcessor { @Override public void onScanEnded(Scan scan, Exception ex) { - if (running) { + if (isRunning()) { table.clearSelection(); } } @@ -99,9 +99,9 @@ public class PhotonEnergy extends ScriptProcessor { @Override public void onStateChange(State state, State former) { setEnabled(isEnabled()); - if (!state.isProcessing()) { - running = false; - } + //if (!state.isProcessing()) { + // running = false; + //} } @Override @@ -179,11 +179,13 @@ public class PhotonEnergy extends ScriptProcessor { }); } + /* @Override public void execute() throws Exception { super.execute(); running = true; } + */ @Override public String getScript() { diff --git a/plugins/XPSSpectrum.form b/plugins/XPSSpectrum.form index 356c5be6..23f2faf2 100644 --- a/plugins/XPSSpectrum.form +++ b/plugins/XPSSpectrum.form @@ -1,6 +1,10 @@
+ + + + @@ -333,13 +337,14 @@ - - + + + + + - - - + @@ -355,14 +360,15 @@ - - + + + - + @@ -390,20 +396,12 @@ - + - + - - - - - - - - - + @@ -437,6 +435,23 @@ + + + + + + + + + + + + + + + + + diff --git a/plugins/XPSSpectrum.java b/plugins/XPSSpectrum.java index 69239bc4..094b26b7 100644 --- a/plugins/XPSSpectrum.java +++ b/plugins/XPSSpectrum.java @@ -17,6 +17,7 @@ import ch.psi.utils.State; import ch.psi.utils.swing.SwingUtils; import ch.psi.pshell.swing.ValueSelection; import ch.psi.pshell.swing.ValueSelection.ValueSelectionListener; +import ch.psi.pshell.ui.ScriptProcessor; import java.awt.Component; import java.io.File; import java.nio.file.Files; @@ -24,7 +25,9 @@ import java.time.LocalTime; import java.util.ArrayList; import java.util.Arrays; import java.util.HashMap; +import java.util.Map; import java.util.logging.Level; +import javax.swing.JCheckBox; import javax.swing.JComboBox; import javax.swing.JFileChooser; import javax.swing.JToggleButton; @@ -37,7 +40,7 @@ import javax.swing.table.DefaultTableModel; /** * */ -public class XPSSpectrum extends Panel { +public class XPSSpectrum extends ScriptProcessor { boolean detailedScan; boolean running; @@ -244,10 +247,13 @@ public class XPSSpectrum extends Panel { } void updateButtons() { - buttonInitialScan.setEnabled(isEnabled()); - buttonDetailedScan.setEnabled(isEnabled() && rangeSelectionPanel.getPlot().getSelectedRanges().length > 0); + buttonStart.setEnabled(isEnabled()); + radioDetailed.setEnabled(isEnabled() && rangeSelectionPanel.getPlot().getSelectedRanges().length > 0); + if (!radioDetailed.isEnabled()){ + radioInitial.setSelected(true); + } btLoad.setEnabled(isEnabled()); - btSave.setEnabled(buttonDetailedScan.isEnabled()); + btSave.setEnabled(radioDetailed.isEnabled()); } DeviceListener progressListener = new DeviceAdapter() { @@ -300,7 +306,7 @@ public class XPSSpectrum extends Panel { try{ int steps = 0; RangeSelection[] r = rangeSelectionPanel.getRanges(); - if ((buttonDetailedScan.isEnabled()) && (r.length > 0)) { + if ((radioDetailed.isEnabled()) && (r.length > 0)) { for (int i = 0; i < r.length; i++) { int iterations = (Integer) r[i].getVars()[2]; steps += iterations; @@ -319,23 +325,46 @@ public class XPSSpectrum extends Panel { getLogger().log(Level.FINE, null, ex); } } + + @Override + public String getScript() { + return "XPSSpectrum"; + } - void start() throws Context.ContextStateException { + @Override + public Map getArgs() { + if (radioInitial.isSelected()){ + RangeSelection initialRange = new RangeSelection(valueLow.getValue(), valueHigh.getValue()); + int iterations = (int) valueIterations.getValue(); + initialRange.setVars(new Object[]{valueTime.getValue(), valueSize.getValue(), iterations, Double.NaN}); + scanRanges = new RangeSelection[]{initialRange}; + rangeSelectionPanel.clear(); //TODO: should be done in execute? + } else { + scanRanges = rangeSelectionPanel.getRanges(); + } + detailedScan = !radioInitial.isSelected(); + HashMap args = new HashMap<>(); + args.put("DETAILED", !detailedScan); args.put("ranges", scanRanges); args.put("pass_energy", Integer.valueOf(comboPass.getSelectedItem().toString())); args.put("save_scienta_image", checkSaveImage.isSelected()); - args.put("ENDSCAN", checkEndScan.isSelected()); - currentScanIndex = -1; - runAsync("XPSSpectrum", args); - //startTimer(500,10); + args.put("ENDSCAN", checkEndScan.isSelected()); + return args; + } + + @Override + public void execute() throws Exception { + currentScanIndex = -1; + super.execute(); running = true; - } + } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { + buttonGroup1 = new javax.swing.ButtonGroup(); panelArguments = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); valueIterations = new ch.psi.pshell.swing.ValueSelection(); @@ -359,8 +388,7 @@ public class XPSSpectrum extends Panel { jPanel2 = new javax.swing.JPanel(); btLoad = new javax.swing.JButton(); btSave = new javax.swing.JButton(); - buttonInitialScan = new javax.swing.JButton(); - buttonDetailedScan = new javax.swing.JButton(); + buttonStart = new javax.swing.JButton(); rangeSelectionPanel = new ch.psi.pshell.swing.RangeSelectionPanel() { protected void onSeriesChanged() { updateButtons(); @@ -373,6 +401,8 @@ public class XPSSpectrum extends Panel { buttonAbort = new javax.swing.JButton(); buttonSkip = new javax.swing.JButton(); checkCIS = new javax.swing.JCheckBox(); + radioInitial = new javax.swing.JRadioButton(); + radioDetailed = new javax.swing.JRadioButton(); panelArguments.setBorder(javax.swing.BorderFactory.createTitledBorder("Arguments")); @@ -569,17 +599,10 @@ public class XPSSpectrum extends Panel { } }); - buttonInitialScan.setText("Initial Scan"); - buttonInitialScan.addActionListener(new java.awt.event.ActionListener() { + buttonStart.setText("Start"); + buttonStart.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonInitialScanActionPerformed(evt); - } - }); - - buttonDetailedScan.setText("Detailed Scan"); - buttonDetailedScan.addActionListener(new java.awt.event.ActionListener() { - public void actionPerformed(java.awt.event.ActionEvent evt) { - buttonDetailedScanActionPerformed(evt); + buttonStartActionPerformed(evt); } }); @@ -601,6 +624,13 @@ public class XPSSpectrum extends Panel { checkCIS.setText("Constant Initial State"); + buttonGroup1.add(radioInitial); + radioInitial.setSelected(true); + radioInitial.setText("Initial Scan"); + + buttonGroup1.add(radioDetailed); + radioDetailed.setText("Detailed"); + javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( @@ -614,13 +644,14 @@ public class XPSSpectrum extends Panel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btSave)) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, jPanel2Layout.createSequentialGroup() - .addGap(20, 20, 20) - .addComponent(buttonInitialScan) + .addComponent(buttonStart) + .addGap(18, 18, 18) + .addComponent(radioInitial) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(radioDetailed) .addGap(18, 18, 18) - .addComponent(buttonDetailedScan, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(checkCIS) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 139, Short.MAX_VALUE) .addComponent(buttonSkip) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonAbort)) @@ -628,20 +659,21 @@ public class XPSSpectrum extends Panel { .addContainerGap()) ); - jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btLoad, btSave, buttonAbort, buttonDetailedScan, buttonInitialScan, buttonSkip}); + jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btLoad, btSave, buttonAbort, buttonSkip, buttonStart}); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(buttonInitialScan) - .addComponent(buttonDetailedScan) + .addComponent(buttonStart) .addComponent(buttonAbort) .addComponent(buttonSkip) - .addComponent(checkCIS)) + .addComponent(checkCIS) + .addComponent(radioInitial) + .addComponent(radioDetailed)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) - .addComponent(rangeSelectionPanel, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) + .addComponent(rangeSelectionPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 294, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btLoad, javax.swing.GroupLayout.Alignment.TRAILING) @@ -680,33 +712,14 @@ public class XPSSpectrum extends Panel { } }//GEN-LAST:event_buttonAbortActionPerformed - private void buttonInitialScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonInitialScanActionPerformed + private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartActionPerformed try { - rangeSelectionPanel.clear(); - detailedScan = false; - - RangeSelection initialRange = new RangeSelection(valueLow.getValue(), valueHigh.getValue()); - int iterations = (int) valueIterations.getValue(); - initialRange.setVars(new Object[]{valueTime.getValue(), valueSize.getValue(), iterations, Double.NaN}); - scanRanges = new RangeSelection[]{initialRange}; - - start(); + execute(); } catch (Exception ex) { showException(ex); } - }//GEN-LAST:event_buttonInitialScanActionPerformed - - private void buttonDetailedScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDetailedScanActionPerformed - try { - detailedScan = true; - scanRanges = rangeSelectionPanel.getRanges(); - - start(); - } catch (Exception ex) { - showException(ex); - } - }//GEN-LAST:event_buttonDetailedScanActionPerformed + }//GEN-LAST:event_buttonStartActionPerformed private void btSaveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btSaveActionPerformed try { @@ -814,10 +827,10 @@ public class XPSSpectrum extends Panel { private javax.swing.JButton btLoad; private javax.swing.JButton btSave; private javax.swing.JButton buttonAbort; - private javax.swing.JButton buttonDetailedScan; - private javax.swing.JButton buttonInitialScan; + private javax.swing.ButtonGroup buttonGroup1; private javax.swing.JButton buttonScientaSetup; private javax.swing.JButton buttonSkip; + private javax.swing.JButton buttonStart; private javax.swing.JCheckBox checkCIS; private javax.swing.JCheckBox checkEndScan; private javax.swing.JCheckBox checkSaveImage; @@ -833,6 +846,8 @@ public class XPSSpectrum extends Panel { private javax.swing.JLabel labelAcqTime; private javax.swing.JLabel labelTotalTime; private javax.swing.JPanel panelArguments; + private javax.swing.JRadioButton radioDetailed; + private javax.swing.JRadioButton radioInitial; private ch.psi.pshell.swing.RangeSelectionPanel rangeSelectionPanel; private javax.swing.JLabel textTotalTime; private ch.psi.pshell.swing.ValueSelection valueHigh;