Startup
This commit is contained in:
@@ -36,11 +36,11 @@ import javax.swing.table.DefaultTableModel;
|
||||
*
|
||||
*/
|
||||
public class XPSSpectrum extends Panel {
|
||||
|
||||
|
||||
boolean detailedScan;
|
||||
boolean running;
|
||||
Scienta scienta;
|
||||
|
||||
|
||||
public XPSSpectrum() {
|
||||
initComponents();
|
||||
buttonSkip.setVisible(false);
|
||||
@@ -62,7 +62,7 @@ public class XPSSpectrum extends Panel {
|
||||
} else {
|
||||
model.setValueAt(valueTime.getValue(), row, 3);
|
||||
model.setValueAt(valueSize.getValue(), row, 4);
|
||||
model.setValueAt((int)valueIterations.getValue(), row, 5);
|
||||
model.setValueAt((int) valueIterations.getValue(), row, 5);
|
||||
}
|
||||
}
|
||||
});
|
||||
@@ -73,9 +73,9 @@ public class XPSSpectrum extends Panel {
|
||||
//Component persistence
|
||||
ArrayList<Component> persistedComponents = new ArrayList<>();
|
||||
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JToggleButton.class)));
|
||||
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, ValueSelection.class)));
|
||||
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JComboBox.class)));
|
||||
setPersistedComponents(persistedComponents.toArray(new Component[0]));
|
||||
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, ValueSelection.class)));
|
||||
persistedComponents.addAll(Arrays.asList(SwingUtils.getComponentsByType(this, JComboBox.class)));
|
||||
setPersistedComponents(persistedComponents.toArray(new Component[0]));
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -84,18 +84,18 @@ public class XPSSpectrum extends Panel {
|
||||
scienta.getTotalChannels().addListener(progressListener);
|
||||
scienta.getCurrentChannel().addListener(progressListener);
|
||||
dvpAcqTime.setDevice(scienta.getAcquisitionTime());
|
||||
startTimer(500,100);
|
||||
startTimer(500, 100);
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
public void onStateChange(State state, State former) {
|
||||
setEnabled(state == State.Ready);
|
||||
if (!state.isProcessing()){
|
||||
if (!state.isProcessing()) {
|
||||
buttonSkip.setVisible(false);
|
||||
if (running){
|
||||
if (running) {
|
||||
//stopTimer();
|
||||
running = false;
|
||||
getView().getStatusBar().setProgress(-1);
|
||||
getView().getStatusBar().setProgress(-1);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -117,7 +117,7 @@ public class XPSSpectrum extends Panel {
|
||||
//double[] data = (double[]) Convert.wrapperArrayToPrimitiveArray(ret[0], Double.class);
|
||||
double[] xdata = (double[]) ret[0];
|
||||
double[] ydata = (double[]) ret[1];
|
||||
|
||||
|
||||
//double[] data = new double[]{1.0,1.0,1.0,1.0,1.0};
|
||||
LinePlotSeries series = new LinePlotSeries("Data");
|
||||
rangeSelectionPanel.setSeries(series);
|
||||
@@ -135,13 +135,13 @@ public class XPSSpectrum extends Panel {
|
||||
@Override
|
||||
public void setEnabled(boolean value) {
|
||||
super.setEnabled(value);
|
||||
rangeSelectionPanel.setEnabled(value);
|
||||
rangeSelectionPanel.setEnabled(value);
|
||||
valueLow.setEnabled(value);
|
||||
valueHigh.setEnabled(value);
|
||||
valueTime.setEnabled(value);
|
||||
valueSize.setEnabled(value);
|
||||
valueIterations.setEnabled(value);
|
||||
comboPass.setEnabled(value);
|
||||
comboPass.setEnabled(value);
|
||||
checkEndScan.setEnabled(value);
|
||||
checkSaveImage.setEnabled(value);
|
||||
updateButtons();
|
||||
@@ -151,88 +151,91 @@ public class XPSSpectrum extends Panel {
|
||||
buttonInitialScan.setEnabled(isEnabled());
|
||||
buttonDetailedScan.setEnabled(isEnabled() && rangeSelectionPanel.getPlot().getSelectedRanges().length > 0);
|
||||
btLoad.setEnabled(isEnabled());
|
||||
btSave.setEnabled(buttonDetailedScan.isEnabled());
|
||||
btSave.setEnabled(buttonDetailedScan.isEnabled());
|
||||
}
|
||||
|
||||
|
||||
DeviceListener progressListener = new DeviceAdapter() {
|
||||
|
||||
@Override
|
||||
public void onValueChanged(Device device, Object o, Object o1) {
|
||||
if (running){
|
||||
getView().getStatusBar().setProgress(scienta.getProgress());
|
||||
}
|
||||
if (running) {
|
||||
getView().getStatusBar().setProgress(scienta.getProgress());
|
||||
}
|
||||
}
|
||||
};
|
||||
public final String CURRERNT_RANGE_VAR = "cur_range";
|
||||
public final String CURRERNT_ITERATION_VAR = "cur_iteration";
|
||||
int currentScanIndex ;
|
||||
public final String CURRERNT_RANGE_VAR = "cur_range";
|
||||
public final String CURRERNT_ITERATION_VAR = "cur_iteration";
|
||||
int currentScanIndex;
|
||||
RangeSelection[] scanRanges;
|
||||
|
||||
@Override
|
||||
protected void onTimer() {
|
||||
try{
|
||||
if (running){
|
||||
try {
|
||||
if (running) {
|
||||
Object index = XPSSpectrum.this.eval(CURRERNT_RANGE_VAR, true);
|
||||
if ((index!=null) && (index instanceof Integer) && ((Integer)index >= 0)){
|
||||
int scanIndex = (Integer)index;
|
||||
if (scanIndex!=currentScanIndex){
|
||||
if ((index != null) && (index instanceof Integer) && ((Integer) index >= 0)) {
|
||||
int scanIndex = (Integer) index;
|
||||
if (scanIndex != currentScanIndex) {
|
||||
buttonSkip.setEnabled(true);
|
||||
}
|
||||
currentScanIndex = scanIndex;
|
||||
|
||||
int current_iteration = (Integer) XPSSpectrum.this.eval(CURRERNT_ITERATION_VAR, true);
|
||||
int iterations = (Integer)scanRanges[currentScanIndex].getVars()[2];
|
||||
int iterations = (Integer) scanRanges[currentScanIndex].getVars()[2];
|
||||
|
||||
buttonSkip.setVisible((iterations>1) && (current_iteration < (iterations-1)));
|
||||
buttonSkip.setVisible((iterations > 1) && (current_iteration < (iterations - 1)));
|
||||
|
||||
if (detailedScan){
|
||||
RangeSelection range = rangeSelectionPanel.getRangesOrdered()[scanIndex];
|
||||
for (int row = 0; row< rangeSelectionPanel.getTable().getRowCount(); row++){
|
||||
if (range.equals((Double)rangeSelectionPanel.getTable().getValueAt(row, 0), (Double)rangeSelectionPanel.getTable().getValueAt(row, 2))){
|
||||
if (detailedScan) {
|
||||
RangeSelection range = rangeSelectionPanel.getRangesOrdered()[scanIndex];
|
||||
for (int row = 0; row < rangeSelectionPanel.getTable().getRowCount(); row++) {
|
||||
if (range.equals((Double) rangeSelectionPanel.getTable().getValueAt(row, 0), (Double) rangeSelectionPanel.getTable().getValueAt(row, 2))) {
|
||||
rangeSelectionPanel.getTable().setRowSelectionInterval(row, row);
|
||||
break;
|
||||
}
|
||||
if (row == (rangeSelectionPanel.getTable().getRowCount()-1)){
|
||||
if (row == (rangeSelectionPanel.getTable().getRowCount() - 1)) {
|
||||
rangeSelectionPanel.getTable().clearSelection();
|
||||
}
|
||||
}
|
||||
}
|
||||
}
|
||||
} else {
|
||||
rangeSelectionPanel.getTable().clearSelection();
|
||||
}
|
||||
} else {
|
||||
int steps = 0;
|
||||
RangeSelection[] r = rangeSelectionPanel.getRanges();
|
||||
if ((buttonDetailedScan.isEnabled()) && (r.length>0)){
|
||||
for (int i=0;i<r.length;i++){
|
||||
int iterations = (Integer)r[i].getVars()[2];
|
||||
steps += iterations;
|
||||
try{
|
||||
int steps = 0;
|
||||
RangeSelection[] r = rangeSelectionPanel.getRanges();
|
||||
if ((buttonDetailedScan.isEnabled()) && (r.length > 0)) {
|
||||
for (int i = 0; i < r.length; i++) {
|
||||
int iterations = (Integer) r[i].getVars()[2];
|
||||
steps += iterations;
|
||||
}
|
||||
} else {
|
||||
steps = Math.max(1, (int) valueIterations.getValue());
|
||||
}
|
||||
} else {
|
||||
steps = Math.max(1, (int)valueIterations.getValue());
|
||||
int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * steps);
|
||||
int hours = seconds / (60 * 60);
|
||||
textTotalTime.setText(hours >= 24 ? hours + "h" : LocalTime.ofSecondOfDay(seconds).toString());
|
||||
} catch (Exception ex) {
|
||||
textTotalTime.setText("");
|
||||
}
|
||||
int seconds = (int) (Double.valueOf(dvpAcqTime.getLabel().getText()) * steps);
|
||||
int hours= seconds / (60 * 60);
|
||||
textTotalTime.setText(hours >= 24 ? hours+"h": LocalTime.ofSecondOfDay(seconds).toString());
|
||||
}
|
||||
} catch (Exception ex){
|
||||
} catch (Exception ex) {
|
||||
getLogger().log(Level.FINE, null, ex);
|
||||
}
|
||||
}
|
||||
|
||||
void start() throws Context.ContextStateException{
|
||||
HashMap<String, Object> args = new HashMap<>();
|
||||
args.put("ranges", scanRanges);
|
||||
args.put("pass_energy", Integer.valueOf(comboPass.getSelectedItem().toString()));
|
||||
args.put("save_scienta_image", checkSaveImage.isSelected());
|
||||
args.put("ENDSCAN", checkEndScan.isSelected());
|
||||
currentScanIndex = -1;
|
||||
runAsync("XPSSpectrum", args);
|
||||
//startTimer(500,10);
|
||||
running = true;
|
||||
|
||||
void start() throws Context.ContextStateException {
|
||||
HashMap<String, Object> args = new HashMap<>();
|
||||
args.put("ranges", scanRanges);
|
||||
args.put("pass_energy", Integer.valueOf(comboPass.getSelectedItem().toString()));
|
||||
args.put("save_scienta_image", checkSaveImage.isSelected());
|
||||
args.put("ENDSCAN", checkEndScan.isSelected());
|
||||
currentScanIndex = -1;
|
||||
runAsync("XPSSpectrum", args);
|
||||
//startTimer(500,10);
|
||||
running = true;
|
||||
}
|
||||
|
||||
|
||||
|
||||
@SuppressWarnings("unchecked")
|
||||
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
||||
private void initComponents() {
|
||||
@@ -567,17 +570,17 @@ public class XPSSpectrum extends Panel {
|
||||
scienta.stop();
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}
|
||||
}//GEN-LAST:event_buttonAbortActionPerformed
|
||||
|
||||
private void buttonInitialScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonInitialScanActionPerformed
|
||||
try {
|
||||
rangeSelectionPanel.clear();
|
||||
detailedScan = false;
|
||||
|
||||
RangeSelection initialRange = new RangeSelection(valueLow.getValue(),valueHigh.getValue());
|
||||
int iterations = (int)valueIterations.getValue();
|
||||
initialRange.setVars(new Object[]{valueTime.getValue(), valueSize.getValue(),iterations});
|
||||
|
||||
RangeSelection initialRange = new RangeSelection(valueLow.getValue(), valueHigh.getValue());
|
||||
int iterations = (int) valueIterations.getValue();
|
||||
initialRange.setVars(new Object[]{valueTime.getValue(), valueSize.getValue(), iterations});
|
||||
scanRanges = new RangeSelection[]{initialRange};
|
||||
|
||||
start();
|
||||
@@ -589,9 +592,9 @@ public class XPSSpectrum extends Panel {
|
||||
|
||||
private void buttonDetailedScanActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDetailedScanActionPerformed
|
||||
try {
|
||||
detailedScan = true;
|
||||
detailedScan = true;
|
||||
scanRanges = rangeSelectionPanel.getRangesOrdered();
|
||||
|
||||
|
||||
start();
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
@@ -606,19 +609,19 @@ public class XPSSpectrum extends Panel {
|
||||
int rVal = chooser.showSaveDialog(this);
|
||||
if (rVal == JFileChooser.APPROVE_OPTION) {
|
||||
File f = chooser.getSelectedFile();
|
||||
if (IO.getExtension(f).isEmpty()){
|
||||
if (IO.getExtension(f).isEmpty()) {
|
||||
f = new File(f.getPath() + ".xps");
|
||||
}
|
||||
Object[] obj = new Object[]{SwingUtils.getTableData(rangeSelectionPanel.getTable()),
|
||||
rangeSelectionPanel.getPlot().getSeries(0).getX(),
|
||||
rangeSelectionPanel.getPlot().getSeries(0).getY()};
|
||||
rangeSelectionPanel.getPlot().getSeries(0).getX(),
|
||||
rangeSelectionPanel.getPlot().getSeries(0).getY()};
|
||||
Files.write(f.toPath(), Serializer.encode(obj, Serializer.EncoderType.bin));
|
||||
|
||||
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
|
||||
|
||||
}//GEN-LAST:event_btSaveActionPerformed
|
||||
|
||||
private void btLoadActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btLoadActionPerformed
|
||||
@@ -629,24 +632,24 @@ public class XPSSpectrum extends Panel {
|
||||
int rVal = chooser.showOpenDialog(this);
|
||||
if (rVal == JFileChooser.APPROVE_OPTION) {
|
||||
rangeSelectionPanel.removeAllRanges();
|
||||
Object[] obj = (Object[])Serializer.decode(Files.readAllBytes(chooser.getSelectedFile().toPath()), Serializer.EncoderType.bin);
|
||||
Object[] obj = (Object[]) Serializer.decode(Files.readAllBytes(chooser.getSelectedFile().toPath()), Serializer.EncoderType.bin);
|
||||
Object[][] table = (Object[][]) obj[0];
|
||||
if (!rangeSelectionPanel.getPlot().hasData()){
|
||||
if (!rangeSelectionPanel.getPlot().hasData()) {
|
||||
double[] x = (double[]) obj[1];
|
||||
double[] y = (double[]) obj[2];
|
||||
LinePlotSeries series = new LinePlotSeries("Data");
|
||||
LinePlotSeries series = new LinePlotSeries("Data");
|
||||
rangeSelectionPanel.setSeries(series);
|
||||
series.setData(x, y);
|
||||
}
|
||||
for (Object[] row:table){
|
||||
rangeSelectionPanel.getPlot().addRange((Double)row[0], (Double)row[2]);
|
||||
for (Object[] row : table) {
|
||||
rangeSelectionPanel.getPlot().addRange((Double) row[0], (Double) row[2]);
|
||||
}
|
||||
SwingUtilities.invokeLater(new Runnable() {
|
||||
@Override
|
||||
public void run() {
|
||||
public void run() {
|
||||
for (int row = 0; row < table.length; row++) {
|
||||
for (int col = 3; col < 6; col++) {
|
||||
rangeSelectionPanel.getTable().setValueAt(table[row][col], row , col);
|
||||
rangeSelectionPanel.getTable().setValueAt(table[row][col], row, col);
|
||||
}
|
||||
}
|
||||
}
|
||||
@@ -667,9 +670,9 @@ public class XPSSpectrum extends Panel {
|
||||
}//GEN-LAST:event_buttonSkipActionPerformed
|
||||
|
||||
private void buttonScientaSetupActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonScientaSetupActionPerformed
|
||||
try{
|
||||
try {
|
||||
showDevicePanel("Scienta");
|
||||
} catch (Exception ex){
|
||||
} catch (Exception ex) {
|
||||
SwingUtils.showException(this, ex);
|
||||
}
|
||||
}//GEN-LAST:event_buttonScientaSetupActionPerformed
|
||||
|
||||
Reference in New Issue
Block a user