diff --git a/config/variables.properties b/config/variables.properties index fd93627..cefcfef 100644 --- a/config/variables.properties +++ b/config/variables.properties @@ -1,2 +1,2 @@ -#Wed Aug 04 10:23:44 CEST 2021 -FileSequentialNumber=30 +#Thu Aug 05 09:42:04 CEST 2021 +FileSequentialNumber=39 diff --git a/plugins/TimeResolved.form b/plugins/TimeResolved.form index f55ca79..a6f19ad 100644 --- a/plugins/TimeResolved.form +++ b/plugins/TimeResolved.form @@ -41,18 +41,22 @@ - - - - + + + + + + + + + - - + @@ -64,14 +68,18 @@ - + - + + - + + + + @@ -156,7 +164,7 @@ - + @@ -218,5 +226,16 @@ + + + + + + + + + + + diff --git a/plugins/TimeResolved.java b/plugins/TimeResolved.java index 45124ee..afcec4f 100644 --- a/plugins/TimeResolved.java +++ b/plugins/TimeResolved.java @@ -1,5 +1,6 @@ import ch.psi.pshell.core.JsonSerializer; +import ch.psi.pshell.scan.Scan; import ch.psi.pshell.ui.PanelProcessor; import ch.psi.utils.IO; import ch.psi.utils.State; @@ -10,6 +11,8 @@ import java.nio.file.Path; import java.nio.file.Paths; import java.util.ArrayList; import java.util.HashMap; +import java.util.concurrent.CompletableFuture; +import java.util.logging.Level; import javax.swing.JFileChooser; import javax.swing.filechooser.FileNameExtensionFilter; /** @@ -19,6 +22,7 @@ public class TimeResolved extends PanelProcessor { File currentFile; public static final String FILE_EXTENSION = "tmr"; + CompletableFuture taskFuture; public TimeResolved() { initComponents(); @@ -57,6 +61,7 @@ public class TimeResolved extends PanelProcessor { //Overridable callbacks @Override public void onInitialize(int runCount) { + this.startTimer(1000); } @Override @@ -66,6 +71,23 @@ public class TimeResolved extends PanelProcessor { buttonScienta.setEnabled(state.isInitialized()); updateSeq(); } + + @Override + public void onTimer() { + try{ + if (taskFuture!=null){ + Scan scan = getContext().getExecutionPars().getCurrentScan(); + if (scan!=null){ + int index = scan.getRecordIndex(); + textCurScan.setText(String.valueOf(index)); + return; + } + } + } catch(Exception ex){ + getLogger().log(Level.WARNING, null, ex); + } + textCurScan.setText(""); + } void updateSeq() { try { @@ -97,9 +119,11 @@ public class TimeResolved extends PanelProcessor { args.put("FILE", null); args.put("NAME", getScanName()); args.put("SCANS", spinnerScans.getValue()); - this.runAsync("templates/TimeResolved", args).handle((ret, ex) -> { + taskFuture = runAsync("templates/TimeResolved", args); + taskFuture.handle((ret, ex) -> { if (ex != null) { } + taskFuture = null; return ret; }); } @@ -149,6 +173,8 @@ public class TimeResolved extends PanelProcessor { jLabel2 = new javax.swing.JLabel(); textFileId = new javax.swing.JTextField(); buttonResetId = new javax.swing.JButton(); + jLabel4 = new javax.swing.JLabel(); + textCurScan = new javax.swing.JTextField(); jScrollPane2.setViewportView(jEditorPane1); @@ -232,7 +258,7 @@ public class TimeResolved extends PanelProcessor { .addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel3) .addComponent(spinnerScans, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) - .addContainerGap(166, Short.MAX_VALUE)) + .addContainerGap(100, Short.MAX_VALUE)) ); jLabel2.setText("File ID:"); @@ -247,6 +273,11 @@ public class TimeResolved extends PanelProcessor { } }); + jLabel4.setText("Current Scan:"); + + textCurScan.setEditable(false); + textCurScan.setHorizontalAlignment(javax.swing.JTextField.CENTER); + javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( @@ -262,34 +293,40 @@ public class TimeResolved extends PanelProcessor { .addComponent(buttonAbort) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(layout.createSequentialGroup() - .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(layout.createSequentialGroup() - .addGap(0, 0, Short.MAX_VALUE) - .addComponent(buttonResetId)) - .addGroup(layout.createSequentialGroup() - .addComponent(buttonScienta) - .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addComponent(jLabel4) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) + .addComponent(textCurScan, javax.swing.GroupLayout.PREFERRED_SIZE, 53, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(buttonScienta, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) + .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) + .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jLabel2) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(textFileId, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE))) + .addComponent(textFileId, javax.swing.GroupLayout.PREFERRED_SIZE, 67, javax.swing.GroupLayout.PREFERRED_SIZE)) + .addComponent(buttonResetId, javax.swing.GroupLayout.Alignment.TRAILING)) .addContainerGap()))) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonAbort, buttonStart}); - layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonResetId, textFileId}); + layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonResetId, textCurScan, textFileId}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) - .addGap(7, 7, 7) + .addGap(8, 8, 8) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(textFileId, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) - .addComponent(buttonScienta)) + .addComponent(jLabel4) + .addComponent(textCurScan, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) - .addComponent(buttonResetId) + .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) + .addComponent(buttonResetId) + .addComponent(buttonScienta)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonStart) @@ -378,9 +415,11 @@ public class TimeResolved extends PanelProcessor { private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; + private javax.swing.JLabel jLabel4; private javax.swing.JPanel jPanel2; private javax.swing.JScrollPane jScrollPane2; private javax.swing.JSpinner spinnerScans; + private javax.swing.JTextField textCurScan; private javax.swing.JTextField textFileId; private javax.swing.JTextField textName; // End of variables declaration//GEN-END:variables