import ch.psi.pshell.framework.Context; import ch.psi.pshell.framework.Panel; import ch.psi.pshell.sequencer.CommandSource; import ch.psi.pshell.sequencer.Sequencer; import ch.psi.pshell.utils.State; import ch.psi.pshell.swing.SwingUtils; import ch.psi.pshell.utils.State.StateException; import java.awt.Component; import java.util.logging.Level; import java.util.logging.Logger; import javax.swing.JButton; /** * */ public class XPEEM_Settings extends Panel { public XPEEM_Settings() { initComponents(); } //Overridable callbacks @Override public void onInitialize(int runCount) { } @Override public void onStateChange(State state, State former) { for (Component c : SwingUtils.getComponentsByType(this, JButton.class)){ c.setEnabled(state==State.Ready); } } @Override public void onExecutedFile(String fileName, Object result) { } @Override protected void onTimer() { } @Override protected void onLoaded() { } @Override protected void onUnloaded() { } //Invoked by 'update()' to update components in the event thread @Override protected void doUpdate() { } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { ButtonDefaultXrays = new javax.swing.JButton(); ButtonDefaultOptics15kV = new javax.swing.JButton(); ButtonDefaultOptics10kV = new javax.swing.JButton(); ButtonNeutralizePosition = new javax.swing.JButton(); label1 = new java.awt.Label(); label2 = new java.awt.Label(); label3 = new java.awt.Label(); label4 = new java.awt.Label(); label5 = new java.awt.Label(); label6 = new java.awt.Label(); label7 = new java.awt.Label(); buttonRunSelected = new javax.swing.JButton(); checkSetting1 = new javax.swing.JCheckBox(); checkSetting2 = new javax.swing.JCheckBox(); checkSetting3 = new javax.swing.JCheckBox(); checkSetting4 = new javax.swing.JCheckBox(); ButtonDefaultXrays.setText("X-rays (Standard)"); ButtonDefaultXrays.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonDefaultXraysActionPerformed(evt); } }); ButtonDefaultOptics15kV.setText("PEEM Optics 15 kV (Standard)"); ButtonDefaultOptics15kV.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonDefaultOptics15kVActionPerformed(evt); } }); ButtonDefaultOptics10kV.setText("PEEM Optics 10 kV (Standard)"); ButtonDefaultOptics10kV.setToolTipText(""); ButtonDefaultOptics10kV.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonDefaultOptics10kVActionPerformed(evt); } }); ButtonNeutralizePosition.setText("Sample Position (Neutralize)"); ButtonNeutralizePosition.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { ButtonNeutralizePositionActionPerformed(evt); } }); label1.setText("ID2 only, lin. hor., harm.=1, offset = -2.0, G3, 800 eV,"); label2.setText("diff. order = 1, cff = 2.25, energy slit = 300, FE = closed, "); label3.setText("Obj. = 1220.0 mA, Stig. A,B = 0.0, Obj. Align. x,y = 0.0, Start voltage = 0.0,"); label4.setText("Obj. = 1475.0 mA, Stig. A,B = 0.0, Obj. Align. x,y = 0.0, Start voltage = 0.0,"); label5.setText(" FOV = 100 um"); label6.setText(" FOV = 100 um"); label7.setText("x,y = 0.0, tilt = 0.0, CA = open, Slit = open, Close VG10."); buttonRunSelected.setText("Run Selected"); buttonRunSelected.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonRunSelectedActionPerformed(evt); } }); 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() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(checkSetting2) .addComponent(checkSetting3) .addComponent(checkSetting4) .addComponent(checkSetting1)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(ButtonDefaultOptics10kV) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(label5, javax.swing.GroupLayout.PREFERRED_SIZE, 340, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addComponent(ButtonDefaultOptics15kV) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(label4, javax.swing.GroupLayout.PREFERRED_SIZE, 481, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(label6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addComponent(ButtonDefaultXrays) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(buttonRunSelected, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(ButtonNeutralizePosition, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(label7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(117, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {ButtonDefaultOptics10kV, ButtonDefaultOptics15kV, ButtonDefaultXrays, ButtonNeutralizePosition}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGap(46, 46, 46) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(checkSetting1) .addComponent(ButtonDefaultOptics15kV) .addGroup(layout.createSequentialGroup() .addComponent(label4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(label6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addGap(39, 39, 39) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ButtonDefaultOptics10kV) .addComponent(checkSetting2)) .addGap(36, 36, 36) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ButtonDefaultXrays) .addComponent(checkSetting3)) .addGap(42, 42, 42) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ButtonNeutralizePosition) .addComponent(checkSetting4))) .addGroup(layout.createSequentialGroup() .addComponent(label1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(label2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(label7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGroup(layout.createSequentialGroup() .addComponent(label3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(1, 1, 1) .addComponent(label5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 40, Short.MAX_VALUE) .addComponent(buttonRunSelected) .addGap(16, 16, 16)) ); label1.getAccessibleContext().setAccessibleName("ID2 only, lin. hor., G3, 800 eV, energy slit = 300,"); }// //GEN-END:initComponents private void ButtonDefaultXraysActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonDefaultXraysActionPerformed try { evalAsync("xrays_default()").handle((ret,ex)->{ if (ex!=null){ showException((Exception)ex); } return ret; }); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_ButtonDefaultXraysActionPerformed private void ButtonDefaultOptics15kVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonDefaultOptics15kVActionPerformed try { evalAsync("peem_optics_default_15kV()").handle((ret,ex)->{ if (ex!=null){ showException((Exception)ex); } return ret; }); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_ButtonDefaultOptics15kVActionPerformed private void ButtonDefaultOptics10kVActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonDefaultOptics10kVActionPerformed try { evalAsync("peem_optics_default_10kV()").handle((ret,ex)->{ if (ex!=null){ showException((Exception)ex); } return ret; }); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_ButtonDefaultOptics10kVActionPerformed private void ButtonNeutralizePositionActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_ButtonNeutralizePositionActionPerformed try { evalAsync("neutralize_position()").handle((ret,ex)->{ if (ex!=null){ showException((Exception)ex); } return ret; }); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_ButtonNeutralizePositionActionPerformed private void buttonRunSelectedActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRunSelectedActionPerformed try { Context.getSequencer().startExecution(CommandSource.plugin, null, null,null, false); new Thread(()->{ try{ if (checkSetting1.isSelected()==true){ this.eval("peem_optics_default_15kV()", true); } if (checkSetting2.isSelected()==true){ this.eval("peem_optics_default_10kV()", true); } if (checkSetting3.isSelected()==true){ this.eval("xrays_default()", true); } if (checkSetting4.isSelected()==true){ this.eval("neutralize_position()", true); } } catch (Exception ex){ getLogger().log(Level.WARNING, null, ex); } finally{ try { Context.getSequencer().endExecution(); } catch (StateException ex) { getLogger().log(Level.SEVERE, null, ex); } } }).start(); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonRunSelectedActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton ButtonDefaultOptics10kV; private javax.swing.JButton ButtonDefaultOptics15kV; private javax.swing.JButton ButtonDefaultXrays; private javax.swing.JButton ButtonNeutralizePosition; private javax.swing.JButton buttonRunSelected; private javax.swing.JCheckBox checkSetting1; private javax.swing.JCheckBox checkSetting2; private javax.swing.JCheckBox checkSetting3; private javax.swing.JCheckBox checkSetting4; private java.awt.Label label1; private java.awt.Label label2; private java.awt.Label label3; private java.awt.Label label4; private java.awt.Label label5; private java.awt.Label label6; private java.awt.Label label7; // End of variables declaration//GEN-END:variables }