/* * Copyright (c) 2014 Paul Scherrer Institute. All rights reserved. */ import ch.psi.pshell.device.Motor; import ch.psi.pshell.ui.Panel; import ch.psi.pshell.ui.Plugin; import ch.psi.utils.State; import ch.psi.utils.swing.SwingUtils; import java.awt.Component; import java.util.ArrayList; import java.util.HashMap; import javax.swing.JCheckBox; import javax.swing.SpinnerNumberModel; /** * */ public class ManipulatorScan extends Panel { public ManipulatorScan() { initComponents(); } //Overridable callbacks @Override public void onInitialize(int runCount) { comboMotorActionPerformed(null); } @Override public void onStateChange(State state, State former) { setEnabled(isEnabled()); } @Override public void onExecutedFile(String fileName, Object result) { } @Override public void setEnabled(boolean value) { super.setEnabled(value); buttonAbort.setEnabled(value && getState().isInitialized()); boolean enableControls = (value && (getState() == State.Ready)); for (Component c : panelSensors.getComponents()) { c.setEnabled(enableControls); } for (Component c : panelPositioner.getComponents()) { c.setEnabled(enableControls); } buttonStart.setEnabled(enableControls); spinnerStepSize.setEnabled(enableControls && radioStepSize.isSelected()); spinnerSteps.setEnabled(enableControls && radioSteps.isSelected()); spinnerFrom.setEnabled(enableControls && radioAbsolute.isSelected()); spinnerTo.setEnabled(enableControls && radioAbsolute.isSelected()); spinnerRange.setEnabled(enableControls && !radioAbsolute.isSelected()); } void updateTable(){ } void startScan() throws Exception { HashMap args = new HashMap<>(); args.put("MOTOR", comboMotor.getSelectedItem().toString()); ArrayList sensors = new ArrayList(); for (Component c : panelSensors.getComponents()) { if ((c instanceof JCheckBox) && ((JCheckBox) c).isSelected()) { sensors.add(c.getName()); } } args.put("SENSORS", sensors); if (radioRelative.isSelected()) { args.put("RANGE", new Double[]{-(Double) spinnerRange.getValue() / 2, (Double) spinnerRange.getValue() / 2}); } else { args.put("RANGE", new Double[]{(Double) spinnerFrom.getValue(), (Double) spinnerTo.getValue()}); } if (radioStepSize.isSelected()) { ArrayList steps = new ArrayList(); steps.add((Double) spinnerStepSize.getValue()); args.put("STEPS", steps); } else { args.put("STEPS", (Integer) spinnerSteps.getValue()); } args.put("LATENCY", (Double) spinnerLatency.getValue()); args.put("RELATIVE", radioRelative.isSelected()); runAsync("ManipulatorScan", args); /* getContext().setExecutingContext("manip_scan"); String scan ="lscan(" + comboMotor.getSelectedItem().toString() + ", ( " ; for (Component c : panelSensors.getComponents()) { if ((c instanceof JCheckBox) && ((JCheckBox)c).isSelected()) scan += c.getName() + ", "; } scan+="), "; if (radioRelative.isSelected()){ double halfRange = (Double)spinnerRange.getValue()/2; scan+= (-halfRange) + ", " + (halfRange)+ ", "; } else { Double from = (Double)spinnerFrom.getValue(); Double to = (Double)spinnerTo.getValue(); if (to <= from){ throw new Exception ("Invalid range"); } scan+= from + ", " + to + ", "; } scan+= (radioStepSize.isSelected()) ? "(" +((Double)spinnerStepSize.getValue())+",)" :((Integer)spinnerSteps.getValue()); scan+=", " + (Double)spinnerLatency.getValue() + ", "; if (radioRelative.isSelected()){ scan+="True, "; //Relative } scan+="before_read=trig_scienta)"; //Relative if (checkImageIntegration.isSelected()){ scan = "set_preference(Preference.PLOT_TYPES,{'integration':1}); " + scan; } evalAsync(scan); */ } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { buttonGroup1 = new javax.swing.ButtonGroup(); buttonGroup2 = new javax.swing.ButtonGroup(); panelPositioner = new javax.swing.JPanel(); jLabel1 = new javax.swing.JLabel(); comboMotor = new javax.swing.JComboBox(); motorPanel = new ch.psi.pshell.swing.MotorReadoutPanel(); txtSize = new javax.swing.JLabel(); spinnerRange = new javax.swing.JSpinner(); radioStepSize = new javax.swing.JRadioButton(); radioSteps = new javax.swing.JRadioButton(); spinnerStepSize = new javax.swing.JSpinner(); spinnerSteps = new javax.swing.JSpinner(); jLabel3 = new javax.swing.JLabel(); spinnerLatency = new javax.swing.JSpinner(); radioAbsolute = new javax.swing.JRadioButton(); spinnerFrom = new javax.swing.JSpinner(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); spinnerTo = new javax.swing.JSpinner(); radioRelative = new javax.swing.JRadioButton(); jLabel6 = new javax.swing.JLabel(); jLabel7 = new javax.swing.JLabel(); jLabel8 = new javax.swing.JLabel(); panelSensors = new javax.swing.JPanel(); checkImage = new javax.swing.JCheckBox(); checkImageIntegration = new javax.swing.JCheckBox(); checkSpectrum = new javax.swing.JCheckBox(); checkCounts1 = new javax.swing.JCheckBox(); checkTotalCount = new javax.swing.JCheckBox(); checkCounts2 = new javax.swing.JCheckBox(); checkCounts3 = new javax.swing.JCheckBox(); checkCounts4 = new javax.swing.JCheckBox(); checkCurrent = new javax.swing.JCheckBox(); checkCur1 = new javax.swing.JCheckBox(); checkCur2 = new javax.swing.JCheckBox(); checkCur3 = new javax.swing.JCheckBox(); buttonScientaSetup = new javax.swing.JButton(); jPanel3 = new javax.swing.JPanel(); buttonStart = new javax.swing.JButton(); buttonAbort = new javax.swing.JButton(); panelPositioner.setBorder(javax.swing.BorderFactory.createTitledBorder("Positioner")); jLabel1.setText("Motor:"); comboMotor.setModel(new javax.swing.DefaultComboBoxModel(new String[] { "motor", "x", "y", "z", "theta", "tilt", "phi" })); comboMotor.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { comboMotorActionPerformed(evt); } }); txtSize.setText("Size:"); spinnerRange.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.001d, 100.0d, 1.0d)); spinnerRange.setEnabled(false); buttonGroup1.add(radioStepSize); radioStepSize.setSelected(true); radioStepSize.setText("Step Size"); radioStepSize.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioStepSizeActionPerformed(evt); } }); buttonGroup1.add(radioSteps); radioSteps.setText("Number of Steps"); radioSteps.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioStepSizeActionPerformed(evt); } }); spinnerStepSize.setModel(new javax.swing.SpinnerNumberModel(0.1d, 0.001d, 10.0d, 0.1d)); spinnerSteps.setModel(new javax.swing.SpinnerNumberModel(10, 1, 1000, 1)); spinnerSteps.setEnabled(false); jLabel3.setText("Latency(s):"); spinnerLatency.setModel(new javax.swing.SpinnerNumberModel(0.0d, 0.0d, 10.0d, 0.1d)); buttonGroup2.add(radioAbsolute); radioAbsolute.setSelected(true); radioAbsolute.setText("Absolute Scan"); radioAbsolute.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioAbsoluteActionPerformed(evt); } }); spinnerFrom.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.0d, 1.0d, 1.0d)); jLabel4.setText("From:"); jLabel5.setText("To:"); spinnerTo.setModel(new javax.swing.SpinnerNumberModel(1.0d, 0.0d, 1.0d, 1.0d)); buttonGroup2.add(radioRelative); radioRelative.setText("Relative Scan"); radioRelative.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioAbsoluteActionPerformed(evt); } }); jLabel6.setText("Position:"); jLabel7.setText("Range:"); jLabel8.setText("Steps:"); javax.swing.GroupLayout panelPositionerLayout = new javax.swing.GroupLayout(panelPositioner); panelPositioner.setLayout(panelPositionerLayout); panelPositionerLayout.setHorizontalGroup( panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPositionerLayout.createSequentialGroup() .addContainerGap() .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(radioSteps, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelPositionerLayout.createSequentialGroup() .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel6) .addComponent(jLabel1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(motorPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(comboMotor, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))) .addGroup(panelPositionerLayout.createSequentialGroup() .addComponent(jLabel3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 85, Short.MAX_VALUE) .addComponent(spinnerLatency, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(panelPositionerLayout.createSequentialGroup() .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(radioStepSize) .addComponent(radioAbsolute) .addComponent(radioRelative)) .addGap(0, 0, Short.MAX_VALUE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionerLayout.createSequentialGroup() .addGap(0, 0, Short.MAX_VALUE) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionerLayout.createSequentialGroup() .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel4) .addComponent(jLabel5) .addComponent(jLabel7)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(spinnerFrom, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(spinnerRange, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(spinnerTo, javax.swing.GroupLayout.Alignment.TRAILING))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionerLayout.createSequentialGroup() .addComponent(jLabel8) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerSteps, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelPositionerLayout.createSequentialGroup() .addComponent(txtSize) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerStepSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))))) .addContainerGap()) ); panelPositionerLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerLatency, spinnerRange, spinnerStepSize, spinnerSteps}); panelPositionerLayout.setVerticalGroup( panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPositionerLayout.createSequentialGroup() .addContainerGap() .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel1) .addComponent(comboMotor, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel6) .addComponent(motorPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(18, 18, 18) .addComponent(radioAbsolute) .addGap(3, 3, 3) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerFrom, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4)) .addGap(3, 3, 3) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerTo, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5)) .addGap(18, 18, 18) .addComponent(radioRelative) .addGap(1, 1, 1) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerRange, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel7)) .addGap(18, 18, 18) .addComponent(radioStepSize) .addGap(0, 0, 0) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerStepSize, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(txtSize)) .addGap(12, 12, 12) .addComponent(radioSteps) .addGap(0, 0, 0) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(spinnerSteps, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8)) .addGap(18, 18, 18) .addGroup(panelPositionerLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(spinnerLatency, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelSensors.setBorder(javax.swing.BorderFactory.createTitledBorder("Sensors")); checkImage.setSelected(true); checkImage.setText("Scienta Image"); checkImage.setToolTipText(""); checkImage.setContentAreaFilled(false); checkImage.setName("det.dataMatrix"); // NOI18N checkImageIntegration.setSelected(true); checkImageIntegration.setText("Scienta Image Integration"); checkImageIntegration.setToolTipText(""); checkImageIntegration.setContentAreaFilled(false); checkImageIntegration.setName("integration"); // NOI18N checkSpectrum.setSelected(true); checkSpectrum.setText("Scienta Spectrum"); checkSpectrum.setName("scienta.spectrum"); // NOI18N checkCounts1.setText("Counts Region 1"); checkCounts1.setName("countsr1"); // NOI18N checkTotalCount.setSelected(true); checkTotalCount.setText("Total Counts"); checkTotalCount.setName("scienta.stats[0]"); // NOI18N checkCounts2.setText("Counts Region 2"); checkCounts2.setName("countsr2"); // NOI18N checkCounts3.setText("Counts Region 3"); checkCounts3.setName("countsr3"); // NOI18N checkCounts4.setText("Counts Region 4"); checkCounts4.setName("countsr4"); // NOI18N checkCurrent.setText("Current"); checkCurrent.setName("current"); // NOI18N checkCur1.setText("Cur 1"); checkCur1.setName("cur1"); // NOI18N checkCur2.setText("Cur 2"); checkCur2.setName("cur2"); // NOI18N checkCur3.setText("Cur 3"); checkCur3.setName("cur3"); // NOI18N buttonScientaSetup.setText("Scienta Setup"); buttonScientaSetup.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonScientaSetupActionPerformed(evt); } }); javax.swing.GroupLayout panelSensorsLayout = new javax.swing.GroupLayout(panelSensors); panelSensors.setLayout(panelSensorsLayout); panelSensorsLayout.setHorizontalGroup( panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .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) .addGroup(panelSensorsLayout.createSequentialGroup() .addGroup(panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(checkImage) .addComponent(checkImageIntegration) .addComponent(checkSpectrum) .addComponent(checkCounts1) .addComponent(checkTotalCount) .addComponent(checkCounts2) .addComponent(checkCounts3) .addComponent(checkCurrent) .addComponent(checkCur1) .addComponent(checkCur2) .addComponent(checkCur3) .addComponent(checkCounts4)) .addGap(0, 52, Short.MAX_VALUE))) .addContainerGap()) ); panelSensorsLayout.setVerticalGroup( panelSensorsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSensorsLayout.createSequentialGroup() .addContainerGap() .addComponent(checkImage) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkImageIntegration) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkSpectrum) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkTotalCount) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCounts1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCounts2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCounts3) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCounts4) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCurrent) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCur1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCur2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(checkCur3) .addGap(18, 18, Short.MAX_VALUE) .addComponent(buttonScientaSetup) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control")); buttonStart.setText("Start"); buttonStart.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonStartActionPerformed(evt); } }); buttonAbort.setText("Abort"); buttonAbort.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonAbortActionPerformed(evt); } }); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(buttonStart, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonAbort, javax.swing.GroupLayout.DEFAULT_SIZE, 203, Short.MAX_VALUE)) .addContainerGap()) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup() .addContainerGap() .addComponent(buttonStart) .addGap(18, 18, 18) .addComponent(buttonAbort) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); 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() .addComponent(panelSensors, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .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)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel3, panelPositioner, panelSensors}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addContainerGap() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelPositioner, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelSensors, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); }// //GEN-END:initComponents private void buttonScientaSetupActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonScientaSetupActionPerformed try { showDevicePanel("scienta"); } catch (Exception ex) { SwingUtils.showException(this, ex); } }//GEN-LAST:event_buttonScientaSetupActionPerformed private void buttonStartActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonStartActionPerformed try { startScan(); } catch (Exception ex) { SwingUtils.showException(this, ex); } }//GEN-LAST:event_buttonStartActionPerformed private void buttonAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAbortActionPerformed abort(); }//GEN-LAST:event_buttonAbortActionPerformed private void radioStepSizeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioStepSizeActionPerformed setEnabled(isEnabled()); }//GEN-LAST:event_radioStepSizeActionPerformed private void comboMotorActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboMotorActionPerformed try { Motor motor = (Motor) getDevice(comboMotor.getSelectedItem().toString()); motorPanel.setDevice(motor); spinnerFrom.setModel(new SpinnerNumberModel(motor.getMinValue(), motor.getMinValue(), motor.getMaxValue(), 1.0)); spinnerTo.setModel(new SpinnerNumberModel(motor.getMaxValue(), motor.getMinValue(), motor.getMaxValue(), 1.0)); txtSize.setText("Size (" + motor.getUnit() +")"); //spinnerFrom.setModel(new javax.swing.SpinnerNumberModel(3.0, 0.001, 100.0, 1.0)); //spinnerTo.setModel(new javax.swing.SpinnerNumberModel(2.0, 0.001, 100.0, 1.0)); } catch (Exception ex) { SwingUtils.showException(this, ex); } }//GEN-LAST:event_comboMotorActionPerformed private void radioAbsoluteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_radioAbsoluteActionPerformed setEnabled(isEnabled()); }//GEN-LAST:event_radioAbsoluteActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonAbort; private javax.swing.ButtonGroup buttonGroup1; private javax.swing.ButtonGroup buttonGroup2; private javax.swing.JButton buttonScientaSetup; private javax.swing.JButton buttonStart; private javax.swing.JCheckBox checkCounts1; private javax.swing.JCheckBox checkCounts2; private javax.swing.JCheckBox checkCounts3; private javax.swing.JCheckBox checkCounts4; private javax.swing.JCheckBox checkCur1; private javax.swing.JCheckBox checkCur2; private javax.swing.JCheckBox checkCur3; private javax.swing.JCheckBox checkCurrent; private javax.swing.JCheckBox checkImage; private javax.swing.JCheckBox checkImageIntegration; private javax.swing.JCheckBox checkSpectrum; private javax.swing.JCheckBox checkTotalCount; private javax.swing.JComboBox comboMotor; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JPanel jPanel3; private ch.psi.pshell.swing.MotorReadoutPanel motorPanel; private javax.swing.JPanel panelPositioner; private javax.swing.JPanel panelSensors; private javax.swing.JRadioButton radioAbsolute; private javax.swing.JRadioButton radioRelative; private javax.swing.JRadioButton radioStepSize; private javax.swing.JRadioButton radioSteps; private javax.swing.JSpinner spinnerFrom; private javax.swing.JSpinner spinnerLatency; private javax.swing.JSpinner spinnerRange; private javax.swing.JSpinner spinnerStepSize; private javax.swing.JSpinner spinnerSteps; private javax.swing.JSpinner spinnerTo; private javax.swing.JLabel txtSize; // End of variables declaration//GEN-END:variables }