This commit is contained in:
gac-x11ma
2020-01-15 15:21:28 +01:00
parent e39b1864e7
commit 8cf5c6ac04
9 changed files with 6085 additions and 195 deletions

View File

@@ -60,6 +60,7 @@ public class Eiger extends Panel {
final Component[] parameterControls;
final ArrayList<Rect> rois = new ArrayList<>();
final DefaultTableModel modelRegions;
public Eiger() {
initComponents();
@@ -121,6 +122,7 @@ public class Eiger extends Panel {
}
}
});
modelRegions = (DefaultTableModel) tableRegions.getModel();
}
//Overridable callbacks
@@ -167,6 +169,9 @@ public class Eiger extends Panel {
buttonImgStart.setEnabled(getState() == State.Ready);
buttonImgAbort.setEnabled(getState().isProcessing());
buttonSpecStart.setEnabled(getState() == State.Ready);
buttonSpecAbort.setEnabled(getState().isProcessing());
}
void updateRoiList() {
@@ -274,6 +279,15 @@ public class Eiger extends Panel {
}
void runAbsSpectrum() throws Context.ContextStateException {
List ranges = new ArrayList();
for (int i=0; i<modelRegions.getRowCount();i++ ){
List row = new ArrayList();
row.add(modelRegions.getValueAt(i, 0));
row.add(modelRegions.getValueAt(i, 1));
row.add(modelRegions.getValueAt(i, 2));
ranges.add(row);
}
HashMap args = new HashMap();
args.put("SAVE_SPECTRUM", checkSpecSaveSpectrum.isSelected());
args.put("SAVE_IMAGES", checkSpecSaveImages.isSelected());
@@ -282,6 +296,7 @@ public class Eiger extends Panel {
args.put("EXPOSURE", spinnerSpecExp.getValue());
args.put("AVERAGE", spinnerSpecAvg.getValue());
args.put("NUMBER_SCANS", spinnerSpecScans.getValue());
args.put("RANGES", ranges);
setBeamlineArgs(args);
runAsync("templates/EigerAbsSpec", args).handle((ret, t) -> {
@@ -381,6 +396,11 @@ public class Eiger extends Panel {
spinnerSpecExp = new javax.swing.JSpinner();
checkSpecWithI0 = new javax.swing.JCheckBox();
checkSpecSaveSpectrum = new javax.swing.JCheckBox();
jPanel4 = new javax.swing.JPanel();
jScrollPane2 = new javax.swing.JScrollPane();
tableRegions = new javax.swing.JTable();
buttonAdd = new javax.swing.JButton();
buttonRemove = new javax.swing.JButton();
buttonSpecStart = new javax.swing.JButton();
buttonSpecAbort = new javax.swing.JButton();
@@ -1066,6 +1086,69 @@ public class Eiger extends Panel {
checkSpecSaveSpectrum.setSelected(true);
checkSpecSaveSpectrum.setText("Save spectrum");
jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Ranges"));
tableRegions.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
},
new String [] {
"Start", "End", "Step"
}
) {
Class[] types = new Class [] {
java.lang.Double.class, java.lang.Double.class, java.lang.Double.class
};
public Class getColumnClass(int columnIndex) {
return types [columnIndex];
}
});
jScrollPane2.setViewportView(tableRegions);
buttonAdd.setText("Add");
buttonAdd.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonAddActionPerformed(evt);
}
});
buttonRemove.setText("Remove");
buttonRemove.addActionListener(new java.awt.event.ActionListener() {
public void actionPerformed(java.awt.event.ActionEvent evt) {
buttonRemoveActionPerformed(evt);
}
});
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(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addGroup(jPanel4Layout.createSequentialGroup()
.addComponent(buttonAdd)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 88, Short.MAX_VALUE)
.addComponent(buttonRemove)))
.addContainerGap())
);
jPanel4Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAdd, buttonRemove});
jPanel4Layout.setVerticalGroup(
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel4Layout.createSequentialGroup()
.addContainerGap()
.addComponent(jScrollPane2, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonAdd)
.addComponent(buttonRemove))
.addContainerGap())
);
javax.swing.GroupLayout panelSpectrumLayout = new javax.swing.GroupLayout(panelSpectrum);
panelSpectrum.setLayout(panelSpectrumLayout);
panelSpectrumLayout.setHorizontalGroup(
@@ -1078,41 +1161,47 @@ public class Eiger extends Panel {
.addComponent(jLabel25))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(checkSpecSwitchPol)
.addComponent(checkSpecWithI0)
.addComponent(checkSpecSaveImages)
.addComponent(checkSpecSwitchPol)
.addComponent(checkSpecSaveSpectrum)
.addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerSpecExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(spinnerSpecAvg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap())
);
panelSpectrumLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {spinnerSpecAvg, spinnerSpecExp, spinnerSpecScans});
panelSpectrumLayout.setVerticalGroup(
panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelSpectrumLayout.createSequentialGroup()
.addGroup(panelSpectrumLayout.createSequentialGroup()
.addContainerGap()
.addComponent(checkSpecSaveSpectrum)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecSaveImages)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecWithI0)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel23)
.addComponent(spinnerSpecExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel24)
.addComponent(spinnerSpecAvg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel25)
.addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addComponent(checkSpecSwitchPol)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(panelSpectrumLayout.createSequentialGroup()
.addComponent(checkSpecSaveSpectrum)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecSaveImages)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addComponent(checkSpecWithI0)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel23)
.addComponent(spinnerSpecExp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel24)
.addComponent(spinnerSpecAvg, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
.addGroup(panelSpectrumLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(jLabel25)
.addComponent(spinnerSpecScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, 19, Short.MAX_VALUE)
.addComponent(checkSpecSwitchPol)
.addGap(0, 11, Short.MAX_VALUE))
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
@@ -1135,15 +1224,16 @@ public class Eiger extends Panel {
jPanel3Layout.setHorizontalGroup(
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addGap(211, 211, 211)
.addComponent(panelSpectrum, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addContainerGap(215, Short.MAX_VALUE))
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(buttonSpecStart)
.addGap(76, 76, 76)
.addComponent(buttonSpecAbort)
.addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap()
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
.addGap(0, 224, Short.MAX_VALUE)
.addComponent(buttonSpecStart)
.addGap(76, 76, 76)
.addComponent(buttonSpecAbort)
.addGap(0, 224, Short.MAX_VALUE))
.addComponent(panelSpectrum, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE))
.addContainerGap())
);
jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonSpecAbort, buttonSpecStart});
@@ -1152,8 +1242,8 @@ public class Eiger extends Panel {
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addGroup(jPanel3Layout.createSequentialGroup()
.addContainerGap()
.addComponent(panelSpectrum, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 30, Short.MAX_VALUE)
.addComponent(panelSpectrum, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(33, 33, 33)
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE)
.addComponent(buttonSpecStart)
.addComponent(buttonSpecAbort))
@@ -1290,10 +1380,23 @@ public class Eiger extends Panel {
}
}//GEN-LAST:event_buttonTriggerDetectorActionPerformed
private void buttonAddActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAddActionPerformed
modelRegions.addRow(new Object[]{Double.NaN, Double.NaN, Double.NaN});
}//GEN-LAST:event_buttonAddActionPerformed
private void buttonRemoveActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRemoveActionPerformed
int row = tableRegions.getSelectedRow();
if (row>=0){
modelRegions.removeRow(row);
}
}//GEN-LAST:event_buttonRemoveActionPerformed
// Variables declaration - do not modify//GEN-BEGIN:variables
private javax.swing.JButton buttonAdd;
private javax.swing.JButton buttonDefaultPath;
private javax.swing.JButton buttonImgAbort;
private javax.swing.JButton buttonImgStart;
private javax.swing.JButton buttonRemove;
private javax.swing.JButton buttonRoiAdd;
private javax.swing.JButton buttonRoiRemove;
private javax.swing.JButton buttonSetPath;
@@ -1346,10 +1449,12 @@ public class Eiger extends Panel {
private javax.swing.JPanel jPanel10;
private javax.swing.JPanel jPanel2;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JPanel jPanel7;
private javax.swing.JPanel jPanel8;
private javax.swing.JPanel jPanel9;
private javax.swing.JScrollPane jScrollPane1;
private javax.swing.JScrollPane jScrollPane2;
private javax.swing.JTabbedPane jTabbedPane1;
private javax.swing.JLabel labelSwitching;
private javax.swing.JPanel panelBeamline;
@@ -1376,6 +1481,7 @@ public class Eiger extends Panel {
private javax.swing.JSpinner spinnerSpecAvg;
private javax.swing.JSpinner spinnerSpecExp;
private javax.swing.JSpinner spinnerSpecScans;
private javax.swing.JTable tableRegions;
private javax.swing.JTable tableRoi;
private javax.swing.JTextField textDataPath;
// End of variables declaration//GEN-END:variables