diff --git a/pom.xml b/pom.xml
index bec2506..b290e13 100644
--- a/pom.xml
+++ b/pom.xml
@@ -11,10 +11,21 @@
1.8
+
+ artifactory
+ artifactory
+ https://artifacts.psi.ch/artifactory/releases/
+
+
+ artifactory_libs
+ artifactory_libs
+ https://artifacts.psi.ch/artifactory/libs-snapshots-local/
+
- jcenter
- jcenter
- https://jcenter.bintray.com/
+ central
+ Default Repository
+ default
+ https://repo.maven.apache.org/maven2/
@@ -22,25 +33,19 @@
freehep
http://java.freehep.org/maven2/
-
+
imagej
imagej
http://maven.imagej.net/content/repositories/public
-
-
- bintray-hltools
- bintray
- https://dl.bintray.com/paulscherrerinstitute/hltools
-
Scienta
${project.groupId}
pshell
- 1.16.0
+ 1.19.0
${project.groupId}
diff --git a/src/main/java/ScientaPanel.form b/src/main/java/ScientaPanel.form
index 1a1c004..48e1f67 100644
--- a/src/main/java/ScientaPanel.form
+++ b/src/main/java/ScientaPanel.form
@@ -486,6 +486,7 @@
+
@@ -502,6 +503,7 @@
+
@@ -516,6 +518,7 @@
+
@@ -530,6 +533,7 @@
+
@@ -637,6 +641,7 @@
+
@@ -651,6 +656,7 @@
+
@@ -665,6 +671,7 @@
+
@@ -679,6 +686,7 @@
+
diff --git a/src/main/java/ScientaPanel.java b/src/main/java/ScientaPanel.java
index e186a1a..3f77503 100644
--- a/src/main/java/ScientaPanel.java
+++ b/src/main/java/ScientaPanel.java
@@ -198,8 +198,9 @@ public final class ScientaPanel extends DevicePanel {
dd.elementSet = getDevice().getElementSet();
} catch (DeviceInvalidParameterException ex){
dd.elementSet = null;
- } try{
- dd.acquisitionMode = getDevice().getAcquisitionMode();
+ }
+ try{
+ dd.acquisitionMode = getDevice().getAcquisitionMode();
} catch (DeviceInvalidParameterException ex){
dd.acquisitionMode = null;
}
@@ -532,6 +533,7 @@ public final class ScientaPanel extends DevicePanel {
comboPass.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2", "5", "10", "20", "50", "100", "200" }));
comboPass.setToolTipText("");
+ comboPass.setName("scienta.passEnergy"); // NOI18N
comboPass.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
comboPassActionPerformed(evt);
@@ -544,6 +546,7 @@ public final class ScientaPanel extends DevicePanel {
valueLow.setDecimals(2);
valueLow.setMaxValue(2000.0);
valueLow.setMinValue(0.0);
+ valueLow.setName("scienta.lowEnergy"); // NOI18N
valueLow.setShowButtons(false);
jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -552,6 +555,7 @@ public final class ScientaPanel extends DevicePanel {
valueCenter.setDecimals(2);
valueCenter.setMaxValue(2000.0);
valueCenter.setMinValue(0.0);
+ valueCenter.setName("scienta.centerEnergy"); // NOI18N
valueCenter.setShowButtons(false);
jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -560,6 +564,7 @@ public final class ScientaPanel extends DevicePanel {
valueHigh.setDecimals(2);
valueHigh.setMaxValue(2000.0);
valueHigh.setMinValue(0.0);
+ valueHigh.setName("scienta.highEnergy"); // NOI18N
valueHigh.setShowButtons(false);
jLabel15.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -631,6 +636,7 @@ public final class ScientaPanel extends DevicePanel {
valueTime.setDecimals(2);
valueTime.setMaxValue(1000.0);
valueTime.setMinValue(0.0);
+ valueTime.setName("scienta.stepTime"); // NOI18N
valueTime.setShowButtons(false);
jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -639,6 +645,7 @@ public final class ScientaPanel extends DevicePanel {
valueSize.setDecimals(2);
valueSize.setMaxValue(1000.0);
valueSize.setMinValue(0.0);
+ valueSize.setName("scienta.stepSize"); // NOI18N
valueSize.setShowButtons(false);
jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -647,6 +654,7 @@ public final class ScientaPanel extends DevicePanel {
valueSlices.setDecimals(0);
valueSlices.setMaxValue(1000.0);
valueSlices.setMinValue(0.0);
+ valueSlices.setName("scienta.slices"); // NOI18N
valueSlices.setShowButtons(false);
jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
@@ -655,6 +663,7 @@ public final class ScientaPanel extends DevicePanel {
valueIterations.setDecimals(0);
valueIterations.setMaxValue(1000.0);
valueIterations.setMinValue(0.0);
+ valueIterations.setName("scienta.iterations"); // NOI18N
valueIterations.setShowButtons(false);
javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
diff --git a/src/main/java/ScientaParametersDialog.form b/src/main/java/ScientaParametersDialog.form
new file mode 100644
index 0000000..6a31252
--- /dev/null
+++ b/src/main/java/ScientaParametersDialog.form
@@ -0,0 +1,97 @@
+
+
+
diff --git a/src/main/java/ScientaParametersDialog.java b/src/main/java/ScientaParametersDialog.java
new file mode 100644
index 0000000..8ceab4e
--- /dev/null
+++ b/src/main/java/ScientaParametersDialog.java
@@ -0,0 +1,179 @@
+import ch.psi.pshell.core.Context;
+import ch.psi.utils.swing.StandardDialog;
+import java.awt.Window;
+import java.util.Map;
+
+/**
+ *
+ */
+public class ScientaParametersDialog extends StandardDialog {
+
+ public ScientaParametersDialog(Window parent, boolean modal) {
+ super(parent,"Region Parameters", modal);
+ initComponents();
+ }
+
+ @Override
+ protected void onOpened() {
+ setLocationRelativeTo(this.getParent());
+ }
+
+ public ScientaParametersDialog(Window parent, boolean modal, Map pars) {
+ this(parent, modal);
+ if (pars ==null ){
+ showDeviceData();
+ } else {
+ setValues((Map)pars);
+ }
+ }
+
+ public void setValues(Map values){
+ Object name = values.get("name");
+ textName.setText((name==null) ? "" : name.toString().trim());
+ parametersPanel.setValues(values);
+ }
+
+ public Map getValues(){
+ Map ret = parametersPanel.getValues();
+ ret.put("name", textName.getText().trim());
+ return ret;
+ }
+
+ public void showDeviceData(){
+ parametersPanel.setDevice(Context.getInstance().getDevicePool().getByName("scienta", Scienta.class));
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form.
+ * WARNING: Do NOT modify this code. The content of this method is always
+ * regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ parametersPanel = new ScientaParametersPanel();
+ buttonOk = new javax.swing.JButton();
+ buttonCancel = new javax.swing.JButton();
+ jLabel1 = new javax.swing.JLabel();
+ textName = new javax.swing.JTextField();
+
+ setDefaultCloseOperation(javax.swing.WindowConstants.DISPOSE_ON_CLOSE);
+ setSize(new java.awt.Dimension(489, 236));
+
+ buttonOk.setText("Ok");
+ buttonOk.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonOkActionPerformed(evt);
+ }
+ });
+
+ buttonCancel.setText("Cancel");
+ buttonCancel.addActionListener(new java.awt.event.ActionListener() {
+ public void actionPerformed(java.awt.event.ActionEvent evt) {
+ buttonCancelActionPerformed(evt);
+ }
+ });
+
+ jLabel1.setText("Name:");
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(getContentPane());
+ getContentPane().setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(parametersPanel, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addGroup(layout.createSequentialGroup()
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(buttonCancel)
+ .addGap(37, 37, 37)
+ .addComponent(buttonOk)
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap()
+ .addComponent(jLabel1)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(textName)))
+ .addGap(10, 10, 10))
+ );
+
+ layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCancel, buttonOk});
+
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addGap(5, 5, 5)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel1)
+ .addComponent(textName, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(parametersPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(buttonOk)
+ .addComponent(buttonCancel))
+ .addContainerGap())
+ );
+
+ pack();
+ }// //GEN-END:initComponents
+
+ private void buttonCancelActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCancelActionPerformed
+ cancel();
+ }//GEN-LAST:event_buttonCancelActionPerformed
+
+ private void buttonOkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOkActionPerformed
+ accept();
+ }//GEN-LAST:event_buttonOkActionPerformed
+
+ /**
+ * @param args the command line arguments
+ */
+ public static void main(String args[]) {
+ /* Set the Nimbus look and feel */
+ //
+ /* If Nimbus (introduced in Java SE 6) is not available, stay with the default look and feel.
+ * For details see http://download.oracle.com/javase/tutorial/uiswing/lookandfeel/plaf.html
+ */
+ try {
+ for (javax.swing.UIManager.LookAndFeelInfo info : javax.swing.UIManager.getInstalledLookAndFeels()) {
+ if ("Nimbus".equals(info.getName())) {
+ javax.swing.UIManager.setLookAndFeel(info.getClassName());
+ break;
+ }
+ }
+ } catch (ClassNotFoundException ex) {
+ java.util.logging.Logger.getLogger(ScientaParametersDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (InstantiationException ex) {
+ java.util.logging.Logger.getLogger(ScientaParametersDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (IllegalAccessException ex) {
+ java.util.logging.Logger.getLogger(ScientaParametersDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ } catch (javax.swing.UnsupportedLookAndFeelException ex) {
+ java.util.logging.Logger.getLogger(ScientaParametersDialog.class.getName()).log(java.util.logging.Level.SEVERE, null, ex);
+ }
+ //
+
+ /* Create and display the dialog */
+ java.awt.EventQueue.invokeLater(new Runnable() {
+ public void run() {
+ ScientaParametersDialog dialog = new ScientaParametersDialog(new javax.swing.JFrame(), true);
+ dialog.addWindowListener(new java.awt.event.WindowAdapter() {
+ @Override
+ public void windowClosing(java.awt.event.WindowEvent e) {
+ System.exit(0);
+ }
+ });
+ dialog.setVisible(true);
+ }
+ });
+ }
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JButton buttonCancel;
+ private javax.swing.JButton buttonOk;
+ private javax.swing.JLabel jLabel1;
+ private ScientaParametersPanel parametersPanel;
+ private javax.swing.JTextField textName;
+ // End of variables declaration//GEN-END:variables
+}
diff --git a/src/main/java/ScientaParametersPanel.form b/src/main/java/ScientaParametersPanel.form
new file mode 100644
index 0000000..823065a
--- /dev/null
+++ b/src/main/java/ScientaParametersPanel.form
@@ -0,0 +1,509 @@
+
+
+
diff --git a/src/main/java/ScientaParametersPanel.java b/src/main/java/ScientaParametersPanel.java
new file mode 100644
index 0000000..49d1893
--- /dev/null
+++ b/src/main/java/ScientaParametersPanel.java
@@ -0,0 +1,586 @@
+import ch.psi.pshell.device.Device;
+import ch.psi.pshell.device.DeviceBase.DeviceInvalidParameterException;
+import ch.psi.pshell.plot.LinePlotSeries;
+import ch.psi.pshell.swing.DevicePanel;
+import ch.psi.pshell.swing.ValueSelection;
+import ch.psi.utils.swing.SwingUtils;
+import java.awt.Component;
+import java.io.IOException;
+import java.util.HashMap;
+import java.util.Map;
+import java.util.logging.Level;
+import javax.swing.DefaultComboBoxModel;
+import javax.swing.JComboBox;
+
+
+/**
+ *
+ */
+public final class ScientaParametersPanel extends DevicePanel {
+
+ LinePlotSeries spectrumSeries;
+
+ public ScientaParametersPanel() {
+ initComponents();
+ spectrumSeries = new LinePlotSeries("intensity");
+ SwingUtils.setEnumCombo(comboLens, Scienta.LensMode.class);
+ SwingUtils.setEnumCombo(comboElement, Scienta.ElementSet.class);
+ SwingUtils.setEnumCombo(comboAcquisition, Scienta.AcquisitionMode.class);
+ SwingUtils.setEnumCombo(comboEnergy, Scienta.EnergyMode.class);
+ SwingUtils.setEnumCombo(comboDetector, Scienta.DetectorMode.class);
+
+ DefaultComboBoxModel model = new DefaultComboBoxModel();
+ for (Integer energy : Scienta.PASS_ENERGY_VALUES) {
+ model.addElement(energy);
+ }
+ comboPass.setModel(model);
+ }
+
+ @Override
+ public Scienta getDevice() {
+ return (Scienta) super.getDevice();
+ }
+
+ @Override
+ public void setDevice(Device device) {
+
+ super.setDevice(device);
+ if (device != null) {
+ startBackgroundUpdate();
+ }
+ }
+
+
+
+ public class DeviceData {
+
+ double[] spectrum;
+ Scienta.LensMode lensMode;
+ Scienta.ElementSet elementSet;
+ Scienta.AcquisitionMode acquisitionMode;
+ Scienta.EnergyMode energyMode;
+ Scienta.DetectorMode detectorMode;
+ Integer pass;
+ double low;
+ double center;
+ double high;
+ double width;
+ //int frames;
+ double time;
+ double size;
+ int slices;
+ int iterations;
+
+ }
+
+ @Override
+ protected DeviceData doBackgroundUpdate() throws IOException, InterruptedException {
+ DeviceData dd = new DeviceData();
+ //read-once
+
+ dd.spectrum = getDevice().getSpectrum().getValue();
+
+ try{
+ dd.lensMode = getDevice().getLensMode();
+ } catch (DeviceInvalidParameterException ex){
+ dd.lensMode = null;
+ }
+ try{
+ dd.elementSet = getDevice().getElementSet();
+ } catch (DeviceInvalidParameterException ex){
+ dd.elementSet = null;
+ }
+ try{
+ dd.acquisitionMode = getDevice().getAcquisitionMode();
+ } catch (DeviceInvalidParameterException ex){
+ dd.acquisitionMode = null;
+ }
+ try{
+ dd.energyMode = getDevice().getEnergyMode();
+ } catch (DeviceInvalidParameterException ex){
+ dd.energyMode = null;
+ }
+ try{
+ dd.detectorMode = getDevice().getDetectorMode();
+ } catch (DeviceInvalidParameterException ex){
+ dd.detectorMode = null;
+ }
+ try{
+ dd.pass = getDevice().getPassEnergy();
+ } catch (DeviceInvalidParameterException ex){
+ dd.pass = null;
+ }
+ dd.low = getDevice().getLowEnergy().getValue();
+ dd.center = getDevice().getCenterEnergy().getValue();
+ dd.high = getDevice().getHighEnergy().getValue();
+ dd.width = getDevice().getEnergyWidth().getValue();
+ //dd.frames = getDevice().getFrames().getValue();
+ dd.time = getDevice().getStepTime().getValue();
+ dd.size = getDevice().getStepSize().getValue();
+ dd.slices = getDevice().getSlices().getValue();
+
+ dd.iterations = getDevice().getIterations();
+ return dd;
+ }
+
+ void updateValueField(ValueSelection field, double value) {
+ try {
+ field.setValue(value);
+ } catch (Exception ex) {
+ getLogger().log(Level.FINE, null, ex);
+ }
+ }
+
+ void updateComboField(JComboBox field, Object value) {
+ try {
+ if (field.getSelectedItem() != value) {
+ field.setSelectedItem(value);
+ }
+ } catch (Exception ex) {
+ getLogger().log(Level.FINE, null, ex);
+ }
+ }
+
+ @Override
+ protected void onBackgroundUpdateFinished(Object data) {
+ DeviceData dd = (DeviceData) data;
+ updateValueField(valueLow, dd.low);
+ updateValueField(valueCenter, dd.center);
+ updateValueField(valueHigh, dd.high);
+ updateValueField(valueTime, dd.time);
+ updateValueField(valueSize, dd.size);
+ updateValueField(valueSlices, dd.slices);
+ updateValueField(valueIterations, dd.iterations);
+ updateComboField(comboLens, dd.lensMode);
+ updateComboField(comboAcquisition, dd.acquisitionMode);
+ updateComboField(comboDetector, dd.detectorMode);
+ updateComboField(comboEnergy, dd.energyMode);
+ updateComboField(comboElement, dd.elementSet);
+ updateComboField(comboPass, dd.pass);
+ }
+
+ public void setValues(Map values){
+ for (String name:values.keySet()){
+ try{
+ Component child = SwingUtils.getComponentByName(root, name);
+ if (child!=null){
+ Object value = values.get(name);
+ //if (value!=null){
+ if (child instanceof JComboBox){
+ if (value instanceof String){
+ if (((String)value).isBlank()){
+ continue;
+ }
+ Class comboClass = ((JComboBox)child).getModel().getElementAt(0).getClass();
+ if (comboClass.isEnum()){
+ value = Enum.valueOf(comboClass, (String)value);
+ }
+ }
+ ((JComboBox)child).setSelectedItem(value);
+ } else if (child instanceof ValueSelection){
+ if (value!=null){
+ ((ValueSelection)child).setValue((Double)value);
+ }
+ }
+ //}
+ }
+ } catch (Exception ex){
+ getLogger().log(Level.WARNING, null, ex);
+ }
+ }
+ }
+
+ public Map getValues(){
+ HashMap ret = new HashMap();
+ for (Component child : SwingUtils.getComponentsByType(root, JComboBox.class)){
+ if ((child.getName()!=null) && (!child.getName().isBlank())){
+ ret.put(child.getName(), ((JComboBox)child).getSelectedItem());
+ }
+ }
+ for (Component child : SwingUtils.getComponentsByType(root, ValueSelection.class)){
+ if ((child.getName()!=null) && (!child.getName().isBlank())){
+ ret.put(child.getName(), ((ValueSelection)child).getValue());
+ }
+ }
+ return ret;
+ }
+
+ /**
+ * This method is called from within the constructor to initialize the form. WARNING: Do NOT
+ * modify this code. The content of this method is always regenerated by the Form Editor.
+ */
+ @SuppressWarnings("unchecked")
+ // //GEN-BEGIN:initComponents
+ private void initComponents() {
+
+ jToggleButton1 = new javax.swing.JToggleButton();
+ root = new javax.swing.JPanel();
+ jPanel1 = new javax.swing.JPanel();
+ jLabel1 = new javax.swing.JLabel();
+ comboLens = new javax.swing.JComboBox();
+ jLabel2 = new javax.swing.JLabel();
+ comboAcquisition = new javax.swing.JComboBox();
+ jLabel3 = new javax.swing.JLabel();
+ comboEnergy = new javax.swing.JComboBox();
+ jLabel4 = new javax.swing.JLabel();
+ comboDetector = new javax.swing.JComboBox();
+ jLabel5 = new javax.swing.JLabel();
+ comboElement = new javax.swing.JComboBox();
+ jPanel4 = new javax.swing.JPanel();
+ jLabel11 = new javax.swing.JLabel();
+ comboPass = new javax.swing.JComboBox();
+ jLabel12 = new javax.swing.JLabel();
+ valueLow = new ch.psi.pshell.swing.ValueSelection();
+ jLabel13 = new javax.swing.JLabel();
+ valueCenter = new ch.psi.pshell.swing.ValueSelection();
+ jLabel14 = new javax.swing.JLabel();
+ valueHigh = new ch.psi.pshell.swing.ValueSelection();
+ jPanel2 = new javax.swing.JPanel();
+ jLabel8 = new javax.swing.JLabel();
+ valueTime = new ch.psi.pshell.swing.ValueSelection();
+ jLabel9 = new javax.swing.JLabel();
+ valueSize = new ch.psi.pshell.swing.ValueSelection();
+ jLabel10 = new javax.swing.JLabel();
+ valueSlices = new ch.psi.pshell.swing.ValueSelection();
+ jLabel17 = new javax.swing.JLabel();
+ valueIterations = new ch.psi.pshell.swing.ValueSelection();
+
+ jToggleButton1.setText("jToggleButton1");
+
+ jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Modes"));
+
+ jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel1.setText("Lens:");
+
+ comboLens.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ comboLens.setName("scienta.lensMode"); // NOI18N
+
+ jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel2.setText("Acquisition:");
+
+ comboAcquisition.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ comboAcquisition.setName("scienta.acquisitionMode"); // NOI18N
+
+ jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel3.setText("Energy:");
+
+ comboEnergy.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ comboEnergy.setName("scienta.energyMode"); // NOI18N
+
+ jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel4.setText("Detector:");
+
+ comboDetector.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ comboDetector.setName("scienta.detectorMode"); // NOI18N
+
+ jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel5.setText("Element:");
+
+ comboElement.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "Item 1", "Item 2", "Item 3", "Item 4" }));
+ comboElement.setName("scienta.elementSet"); // NOI18N
+
+ javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
+ jPanel1.setLayout(jPanel1Layout);
+ jPanel1Layout.setHorizontalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel5)
+ .addComponent(jLabel4)
+ .addComponent(jLabel3)
+ .addComponent(jLabel2)
+ .addComponent(jLabel1))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(comboLens, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(comboAcquisition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(comboElement, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(comboDetector, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(comboEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap())
+ );
+
+ jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel1, jLabel2, jLabel3, jLabel4, jLabel5});
+
+ jPanel1Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboAcquisition, comboDetector, comboElement, comboEnergy, comboLens});
+
+ jPanel1Layout.setVerticalGroup(
+ jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel1Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel1)
+ .addComponent(comboLens, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel2)
+ .addComponent(comboAcquisition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel3)
+ .addComponent(comboEnergy, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel4)
+ .addComponent(comboDetector, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
+ .addComponent(jLabel5)
+ .addComponent(comboElement, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(17, Short.MAX_VALUE))
+ );
+
+ jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Energy"));
+
+ jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel11.setText("Pass:");
+
+ comboPass.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "2", "5", "10", "20", "50", "100", "200" }));
+ comboPass.setToolTipText("");
+ comboPass.setName("scienta.passEnergy"); // NOI18N
+
+ jLabel12.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel12.setText("Low:");
+
+ valueLow.setDecimals(2);
+ valueLow.setMaxValue(2000.0);
+ valueLow.setMinValue(0.0);
+ valueLow.setName("scienta.lowEnergy"); // NOI18N
+ valueLow.setShowButtons(false);
+
+ jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel13.setText("Center:");
+
+ valueCenter.setDecimals(2);
+ valueCenter.setMaxValue(2000.0);
+ valueCenter.setMinValue(0.0);
+ valueCenter.setName("scienta.centerEnergy"); // NOI18N
+ valueCenter.setShowButtons(false);
+
+ jLabel14.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel14.setText("High:");
+
+ valueHigh.setDecimals(2);
+ valueHigh.setMaxValue(2000.0);
+ valueHigh.setMinValue(0.0);
+ valueHigh.setName("scienta.highEnergy"); // NOI18N
+ valueHigh.setShowButtons(false);
+
+ javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
+ jPanel4.setLayout(jPanel4Layout);
+ jPanel4Layout.setHorizontalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel4Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel14)
+ .addComponent(jLabel13)
+ .addComponent(jLabel12)
+ .addComponent(jLabel11))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(valueHigh, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(valueCenter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(comboPass, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(valueLow, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ jPanel4Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboPass, valueCenter, valueHigh, valueLow});
+
+ jPanel4Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel11, jLabel12, jLabel13, jLabel14});
+
+ jPanel4Layout.setVerticalGroup(
+ jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel4Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel4Layout.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))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel12)
+ .addComponent(valueLow, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel13)
+ .addComponent(valueCenter, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER)
+ .addComponent(jLabel14)
+ .addComponent(valueHigh, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addContainerGap(43, Short.MAX_VALUE))
+ );
+
+ jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Step"));
+
+ jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel8.setText("Time:");
+
+ valueTime.setDecimals(2);
+ valueTime.setMaxValue(1000.0);
+ valueTime.setMinValue(0.0);
+ valueTime.setName("scienta.stepTime"); // NOI18N
+ valueTime.setShowButtons(false);
+
+ jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel9.setText("Size:");
+
+ valueSize.setDecimals(2);
+ valueSize.setMaxValue(1000.0);
+ valueSize.setMinValue(0.0);
+ valueSize.setName("scienta.stepSize"); // NOI18N
+ valueSize.setShowButtons(false);
+
+ jLabel10.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel10.setText("Slices:");
+
+ valueSlices.setDecimals(0);
+ valueSlices.setMaxValue(1000.0);
+ valueSlices.setMinValue(0.0);
+ valueSlices.setName("scienta.slices"); // NOI18N
+ valueSlices.setShowButtons(false);
+
+ jLabel17.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING);
+ jLabel17.setText("Iter:");
+
+ valueIterations.setDecimals(0);
+ valueIterations.setMaxValue(1000.0);
+ valueIterations.setMinValue(0.0);
+ valueIterations.setName("scienta.iterations"); // NOI18N
+ valueIterations.setShowButtons(false);
+
+ javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
+ jPanel2.setLayout(jPanel2Layout);
+ jPanel2Layout.setHorizontalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel9)
+ .addComponent(jLabel8))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(valueSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addComponent(valueTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGap(0, 0, Short.MAX_VALUE))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
+ .addGap(0, 0, Short.MAX_VALUE)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
+ .addComponent(jLabel10)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(valueSlices, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel2Layout.createSequentialGroup()
+ .addComponent(jLabel17)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(valueIterations, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))))
+ .addContainerGap())
+ );
+
+ jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel10, jLabel17, jLabel8, jLabel9});
+
+ jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {valueIterations, valueSize, valueSlices, valueTime});
+
+ jPanel2Layout.setVerticalGroup(
+ jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(jPanel2Layout.createSequentialGroup()
+ .addContainerGap()
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel10)
+ .addComponent(valueSlices, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel8)
+ .addComponent(valueTime, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addComponent(jLabel9)
+ .addComponent(valueSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addGroup(jPanel2Layout.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))
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+
+ javax.swing.GroupLayout rootLayout = new javax.swing.GroupLayout(root);
+ root.setLayout(rootLayout);
+ rootLayout.setHorizontalGroup(
+ rootLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(rootLayout.createSequentialGroup()
+ .addGap(0, 0, 0)
+ .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
+ .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
+ );
+ rootLayout.setVerticalGroup(
+ rootLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(rootLayout.createSequentialGroup()
+ .addGap(0, 0, 0)
+ .addGroup(rootLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false)
+ .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ .addGap(0, 0, 0))
+ );
+
+ rootLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel1, jPanel4});
+
+ javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this);
+ this.setLayout(layout);
+ layout.setHorizontalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(root, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+ layout.setVerticalGroup(
+ layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(layout.createSequentialGroup()
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(root, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
+ .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
+ );
+ }// //GEN-END:initComponents
+
+ // Variables declaration - do not modify//GEN-BEGIN:variables
+ private javax.swing.JComboBox comboAcquisition;
+ private javax.swing.JComboBox comboDetector;
+ private javax.swing.JComboBox comboElement;
+ private javax.swing.JComboBox comboEnergy;
+ private javax.swing.JComboBox comboLens;
+ private javax.swing.JComboBox comboPass;
+ private javax.swing.JLabel jLabel1;
+ private javax.swing.JLabel jLabel10;
+ private javax.swing.JLabel jLabel11;
+ private javax.swing.JLabel jLabel12;
+ private javax.swing.JLabel jLabel13;
+ private javax.swing.JLabel jLabel14;
+ private javax.swing.JLabel jLabel17;
+ private javax.swing.JLabel jLabel2;
+ private javax.swing.JLabel jLabel3;
+ private javax.swing.JLabel jLabel4;
+ private javax.swing.JLabel jLabel5;
+ private javax.swing.JLabel jLabel8;
+ private javax.swing.JLabel jLabel9;
+ private javax.swing.JPanel jPanel1;
+ private javax.swing.JPanel jPanel2;
+ private javax.swing.JPanel jPanel4;
+ private javax.swing.JToggleButton jToggleButton1;
+ private javax.swing.JPanel root;
+ private ch.psi.pshell.swing.ValueSelection valueCenter;
+ private ch.psi.pshell.swing.ValueSelection valueHigh;
+ private ch.psi.pshell.swing.ValueSelection valueIterations;
+ private ch.psi.pshell.swing.ValueSelection valueLow;
+ private ch.psi.pshell.swing.ValueSelection valueSize;
+ private ch.psi.pshell.swing.ValueSelection valueSlices;
+ private ch.psi.pshell.swing.ValueSelection valueTime;
+ // End of variables declaration//GEN-END:variables
+}