diff --git a/plugins/EnergyScan.form b/plugins/EnergyScan.form index d096be2..c7407d3 100644 --- a/plugins/EnergyScan.form +++ b/plugins/EnergyScan.form @@ -55,7 +55,7 @@ - + @@ -97,7 +97,7 @@ - + @@ -111,7 +111,7 @@ - + @@ -370,7 +370,7 @@ - + @@ -424,7 +424,7 @@ - + @@ -435,7 +435,7 @@ - + @@ -466,53 +466,54 @@ - - - - - - - - - - - - - - - - - - + + + + + + + + + + + + - + + + - - - - - - - - - - - - - - + + + + + + + + + + + + + + + + + + + @@ -520,14 +521,6 @@ - - - - - - - - @@ -535,6 +528,8 @@ + + diff --git a/plugins/EnergyScan.java b/plugins/EnergyScan.java index 288ef7f..067ddac 100644 --- a/plugins/EnergyScan.java +++ b/plugins/EnergyScan.java @@ -94,12 +94,15 @@ public class EnergyScan extends Panel { } enum Mode { - plus, minus, lh, lv } + + Mode[] batch; + int batchIndex; + public class PluginPanel extends MonitoredPanel { @@ -108,11 +111,12 @@ public class EnergyScan extends Panel { public PluginPanel() { initComponents(); + buttonDefaultsActionPerformed(null); plot = new LinePlotJFree(); plot.setTitle(""); series = new LinePlotSeries("data"); plot.addSeries(series); - panelPlot.add(plot); + panelPlot.add(plot); } @Override @@ -124,6 +128,7 @@ public class EnergyScan extends Panel { buttonConfigure.setEnabled(value); textFile.setEnabled(value); textFolder.setEnabled(value); + buttonDefaults.setEnabled(value); checkParameterControls(); } @@ -322,8 +327,32 @@ public class EnergyScan extends Panel { plot.getAxis(Plot.AxisId.X).setRange(Math.min(e1, e2), Math.max(e1, e2)); } - - @SuppressWarnings("unchecked") + + protected void onExecutedFile(String fileName){ + try { + switch (fileName){ + case "EnergyScan": + //TODO: Check if exception has happenned before continuing + if (batch!=null){ + batchIndex++; + if (batchIndex>=batch.length){ + batchIndex=0; + batch=null; + } else { + setMode(batch[batchIndex]); + run(); + } + } + break; + } + } catch (Exception ex) { + SwingUtils.showException(this, ex); + } + } + + + + @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { @@ -357,10 +386,11 @@ public class EnergyScan extends Panel { radioF = new javax.swing.JRadioButton(); radioI0 = new javax.swing.JRadioButton(); panelData = new javax.swing.JPanel(); + buttonDefaults = new javax.swing.JButton(); jLabel6 = new javax.swing.JLabel(); textFile = new javax.swing.JTextField(); - textFolder = new javax.swing.JTextField(); jLabel7 = new javax.swing.JLabel(); + textFolder = new javax.swing.JTextField(); jPanel3 = new javax.swing.JPanel(); buttonExecute = new javax.swing.JButton(); buttonAbort = new javax.swing.JButton(); @@ -424,7 +454,7 @@ public class EnergyScan extends Panel { .addComponent(spinnerE1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spinnerTime, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(comboMode, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addGap(18, 24, Short.MAX_VALUE) + .addGap(18, 29, Short.MAX_VALUE) .addGroup(panelParametersLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel9, javax.swing.GroupLayout.Alignment.TRAILING) .addComponent(jLabel8, javax.swing.GroupLayout.Alignment.TRAILING) @@ -436,7 +466,7 @@ public class EnergyScan extends Panel { .addComponent(spinnerDelay, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spinnerOffset, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(spinnerAlpha, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(18, Short.MAX_VALUE)) + .addContainerGap(23, Short.MAX_VALUE)) ); panelParametersLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {comboMode, spinnerE1, spinnerTime}); @@ -555,7 +585,7 @@ public class EnergyScan extends Panel { }); buttonGroupPlot.add(radioE); - radioE.setText("E"); + radioE.setText("TEY raw"); radioE.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioPlotActionPerformed(evt); @@ -563,7 +593,7 @@ public class EnergyScan extends Panel { }); buttonGroupPlot.add(radioF); - radioF.setText("F"); + radioF.setText("TFY raw"); radioF.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { radioPlotActionPerformed(evt); @@ -590,7 +620,7 @@ public class EnergyScan extends Panel { .addComponent(radioE) .addComponent(radioF) .addComponent(radioI0)) - .addContainerGap(30, Short.MAX_VALUE)) + .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel2Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {radioE, radioF, radioI0, radioTEY, radioTFY}); @@ -613,13 +643,16 @@ public class EnergyScan extends Panel { panelData.setBorder(javax.swing.BorderFactory.createTitledBorder("Data")); + buttonDefaults.setText("Defaults"); + buttonDefaults.addActionListener(new java.awt.event.ActionListener() { + public void actionPerformed(java.awt.event.ActionEvent evt) { + buttonDefaultsActionPerformed(evt); + } + }); + jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel6.setText("File:"); - textFile.setText("{el}_{mode}"); - - textFolder.setText("{year}_{month}/{date}"); - jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel7.setText("Folder:"); @@ -627,40 +660,36 @@ public class EnergyScan extends Panel { panelData.setLayout(panelDataLayout); panelDataLayout.setHorizontalGroup( panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelDataLayout.createSequentialGroup() - .addGap(31, 31, 31) + .addGroup(panelDataLayout.createSequentialGroup() + .addContainerGap() + .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelDataLayout.createSequentialGroup() - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING)) - .addGap(281, 281, 281)) - .addGroup(panelDataLayout.createSequentialGroup() - .addGap(55, 55, 55) - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addComponent(textFile, javax.swing.GroupLayout.Alignment.TRAILING) - .addComponent(textFolder, javax.swing.GroupLayout.Alignment.TRAILING)))) - .addGap(31, 31, 31))) + .addComponent(jLabel7, javax.swing.GroupLayout.Alignment.TRAILING) + .addComponent(jLabel6, javax.swing.GroupLayout.Alignment.TRAILING)) + .addGroup(panelDataLayout.createSequentialGroup() + .addGap(55, 55, 55) + .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addComponent(textFolder) + .addComponent(textFile)))) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(buttonDefaults) + .addContainerGap()) ); panelDataLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel6, jLabel7}); panelDataLayout.setVerticalGroup( panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGap(0, 0, Short.MAX_VALUE) - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) - .addGroup(panelDataLayout.createSequentialGroup() - .addGap(4, 4, 4) - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel6) - .addComponent(textFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) - .addComponent(jLabel7) - .addComponent(textFolder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(8, Short.MAX_VALUE))) + .addGroup(panelDataLayout.createSequentialGroup() + .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel6) + .addComponent(textFile, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addGroup(panelDataLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(jLabel7) + .addComponent(textFolder, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) + .addComponent(buttonDefaults, javax.swing.GroupLayout.PREFERRED_SIZE, 27, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addGap(4, 4, 4)) ); jPanel3.setBorder(javax.swing.BorderFactory.createTitledBorder("Scan Control")); @@ -732,7 +761,7 @@ public class EnergyScan extends Panel { .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addComponent(panelData, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE))) + .addComponent(panelData, 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)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelPlot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) @@ -742,6 +771,23 @@ public class EnergyScan extends Panel { private void buttonExecuteActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExecuteActionPerformed try { + batchIndex = 0; + switch(comboRunType.getSelectedIndex()){ + case 5: + batch = new Mode[]{Mode.plus, Mode.minus}; + break; + case 6: + batch = new Mode[]{Mode.plus, Mode.minus, Mode.minus, Mode.plus}; + break; + case 7: + batch = new Mode[]{Mode.lh, Mode.lv}; + break; + case 8: + batch = new Mode[]{Mode.lh, Mode.lv, Mode.lv, Mode.lh}; + break; + default: + batch = null; + } run(); } catch (Exception ex) { SwingUtils.showException(this, ex); @@ -790,9 +836,15 @@ public class EnergyScan extends Panel { } }//GEN-LAST:event_comboRunTypeActionPerformed + private void buttonDefaultsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDefaultsActionPerformed + textFile.setText("{el}_{mode}"); + textFolder.setText("{year}_{month}/{date}"); + }//GEN-LAST:event_buttonDefaultsActionPerformed + // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton buttonAbort; private javax.swing.JButton buttonConfigure; + private javax.swing.JButton buttonDefaults; private javax.swing.JButton buttonExecute; private javax.swing.ButtonGroup buttonGroupPlot; private javax.swing.JComboBox comboMode;