diff --git a/plugins/XPSSpectrum.form b/plugins/XPSSpectrum.form
index 4a61cffa..e25d4422 100644
--- a/plugins/XPSSpectrum.form
+++ b/plugins/XPSSpectrum.form
@@ -212,6 +212,9 @@
+
+
+
diff --git a/plugins/XPSSpectrum.java b/plugins/XPSSpectrum.java
index 79f75680..1447a918 100644
--- a/plugins/XPSSpectrum.java
+++ b/plugins/XPSSpectrum.java
@@ -15,6 +15,7 @@ import ch.psi.utils.Serializer;
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 java.awt.Component;
import java.io.File;
import java.nio.file.Files;
@@ -76,6 +77,34 @@ public class XPSSpectrum extends Panel {
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, ValueSelection.class)));
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JComboBox.class)));
setPersistedComponents(persistedComponents.toArray(new Component[0]));
+
+ ValueSelectionListener listener = new ValueSelectionListener() {
+ @Override
+ public void onValueChanged(ValueSelection origin, double value, boolean editing) {
+ try{
+ if (editing){
+ scienta = (Scienta) getDevice("Scienta");
+ if (origin == valueLow){
+ scienta.getLowEnergy().write(value);
+ } else if (origin == valueHigh){
+ scienta.getHighEnergy().write(value);
+ } else if (origin == valueTime){
+ scienta.getStepTime().write(value);
+ } else if (origin == valueSize){
+ scienta.getStepSize().write(value);
+ }
+ }
+ } catch (Exception ex){
+ getLogger().log(Level.WARNING, null, ex);
+ }
+ }
+ };
+
+ valueLow.addListener(listener);
+ valueHigh.addListener(listener);
+ valueTime.addListener(listener);
+ valueSize.addListener(listener);
+
}
@Override
@@ -84,8 +113,10 @@ public class XPSSpectrum extends Panel {
scienta.getTotalChannels().addListener(progressListener);
scienta.getCurrentChannel().addListener(progressListener);
dvpAcqTime.setDevice(scienta.getAcquisitionTime());
- startTimer(500, 100);
+ startTimer(500, 100);
}
+
+
@Override
public void onStateChange(State state, State former) {
@@ -300,6 +331,11 @@ public class XPSSpectrum extends Panel {
comboPass.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2", "5", "10", "20", "50", "100", "200" }));
comboPass.setSelectedIndex(4);
comboPass.setToolTipText("");
+ comboPass.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ comboPassActionPerformed(evt);
+ }
+ });
valueSize.setDecimals(3);
valueSize.setMaxValue(1000.0);
@@ -677,6 +713,18 @@ public class XPSSpectrum extends Panel {
}
}//GEN-LAST:event_buttonScientaSetupActionPerformed
+ private void comboPassActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboPassActionPerformed
+ try {
+ scienta = (Scienta) getDevice("Scienta");
+ int energy = Integer.valueOf(comboPass.getSelectedItem().toString());
+ if (energy != scienta.getPassEnergy()){
+ scienta.setPassEnergy(energy);
+ }
+ } catch (Exception ex) {
+ getLogger().log(Level.WARNING, null, ex);
+ }
+ }//GEN-LAST:event_comboPassActionPerformed
+
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton btLoad;
private javax.swing.JButton btSave;