From e2ce88fefbbf784be8605111a121d75c9b75a7ef Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Thu, 28 Feb 2019 16:38:41 +0100 Subject: [PATCH] Fixes. --- src/main/java/ch/psi/mxsc/MainPanel.form | 22 ++-- src/main/java/ch/psi/mxsc/MainPanel.java | 133 ++++++++++++++--------- 2 files changed, 91 insertions(+), 64 deletions(-) diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form index c3aa852..9f0ec75 100644 --- a/src/main/java/ch/psi/mxsc/MainPanel.form +++ b/src/main/java/ch/psi/mxsc/MainPanel.form @@ -31,7 +31,7 @@ - + @@ -334,21 +334,21 @@ - + - + - + - + @@ -384,12 +384,12 @@ - + - + @@ -896,7 +896,7 @@ - + @@ -1004,9 +1004,9 @@ - + - + @@ -1018,7 +1018,7 @@ - + diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java index 66b6016..daf84b0 100644 --- a/src/main/java/ch/psi/mxsc/MainPanel.java +++ b/src/main/java/ch/psi/mxsc/MainPanel.java @@ -24,10 +24,12 @@ import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.Image; import java.awt.Window; +import java.io.IOException; import java.util.ArrayList; import java.util.List; import java.util.Map; import java.util.logging.Level; +import java.util.logging.Logger; import javax.swing.GroupLayout; import javax.swing.ImageIcon; import javax.swing.JComponent; @@ -49,12 +51,12 @@ public class MainPanel extends Panel { Boolean manualMode; Boolean roomTemperature; public final String PUCK_LOADING_STATUS = "Puck loading"; - - public enum BasePlateLayout{ + + public enum BasePlateLayout { normal, sf } - public static final BasePlateLayout BASE_PLATE_LAYOUT = App.hasArgument("sf") ? BasePlateLayout.sf: BasePlateLayout.normal; + public static final BasePlateLayout BASE_PLATE_LAYOUT = App.hasArgument("sf") ? BasePlateLayout.sf : BasePlateLayout.normal; public MainPanel() { initComponents(); @@ -97,36 +99,36 @@ public class MainPanel extends Panel { public void valueChanged(ListSelectionEvent e) { try { if (e.getValueIsAdjusting() == false) { - int selection = tableSamples.getSelectedRow(); - if (selection>=0){ + int selection = tableSamples.getSelectedRow(); + if (selection >= 0) { String add = String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_PUCK_ADDRESS)); if (!add.trim().isEmpty()) { int pos = -1; - try{ + try { pos = Integer.valueOf(String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_SAMPLE_POSITION))); - } catch (Exception ex){ - } + } catch (Exception ex) { + } String curSelection = Controller.getInstance().getCurrentSelection(); String curPuck = (curSelection == null) ? null : curSelection.substring(0, 2); if (!add.equals(curPuck)) { Puck puck = Controller.getInstance().getPuck(add); Controller.getInstance().selectPuck(puck); } - if (pos>=0){ + if (pos >= 0) { add += pos; if (!add.equals(curSelection)) { Sample sample = Controller.getInstance().getSample(add); Controller.getInstance().selectSample(sample); - } + } } - } + } } } } catch (Exception ex) { showException(ex); } } - }); + }); } @Override @@ -136,7 +138,7 @@ public class MainPanel extends Panel { SwingUtils.getWindow(this).setIconImage(img); } basePlatePanel.setSelectionMode(SelectionMode.Pucks); - basePlatePanel.setDevice(Controller.getInstance().basePlate); + basePlatePanel.setDevice(Controller.getInstance().basePlate); } @Override @@ -191,7 +193,7 @@ public class MainPanel extends Panel { } }); updateDryer(((Device) getDevice("gripper_dryer")).take()); - + ((Device) getDevice("feedback_psys_safety")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { @@ -218,7 +220,7 @@ public class MainPanel extends Panel { setPuckDatamatrix(null); setSampleDatamatrix(null); setBackgroundUpdate(true); - startTimer(3000, 1000); + startTimer(3000, 1000); updateCameraView(); } @@ -229,7 +231,7 @@ public class MainPanel extends Panel { @Override protected void onTimer() { - try{ + try { devicesPanel.update(); try { roomTemperature = Controller.getInstance().isRoomTemp(); @@ -246,18 +248,18 @@ public class MainPanel extends Panel { labelRoomTemperature.setText("Room Temperature"); } try { - if ((expertChrono!=null) && (expertChrono.isTimeout(10 * 60000))){ //After 10min + if ((expertChrono != null) && (expertChrono.isTimeout(10 * 60000))) { //After 10min setExpertMode(false); } } catch (Exception ex) { getLogger().log(Level.WARNING, null, ex); } - + Controller.getInstance().onTimer(); if (getState() == State.Ready) { if (Boolean.TRUE.equals(Controller.getInstance().isPuckLoading())) { - setStatus(PUCK_LOADING_STATUS); - } else { + setStatus(PUCK_LOADING_STATUS); + } else { setStatus("Ready"); } } else { @@ -265,20 +267,23 @@ public class MainPanel extends Panel { } } catch (Exception ex) { getLogger().log(Level.WARNING, null, ex); - } + } } - + String status; - void setStatus (String status){ - if (!status.equals(this.status)){ + + void setStatus(String status) { + if (!status.equals(this.status)) { getContext().setPreference(ViewPreference.STATUS, status); this.status = status; } } void refresh() { - if (!SwingUtilities.isEventDispatchThread()){ - SwingUtilities.invokeLater(()->{refresh();}); + if (!SwingUtilities.isEventDispatchThread()) { + SwingUtilities.invokeLater(() -> { + refresh(); + }); return; } repaint(); @@ -328,7 +333,7 @@ public class MainPanel extends Panel { ledLocalSafety.setColor(Color.RED); } } - + void updateDryer(Object value) { if ((value == null) || !(value instanceof Boolean)) { ledDryer.setColor(Color.BLACK); @@ -375,7 +380,7 @@ public class MainPanel extends Panel { void execute(String statement, boolean background) { execute(statement, background, false); } - + void execute(String statement, boolean background, boolean showReturn) { execute(statement, background, showReturn, true); } @@ -385,7 +390,7 @@ public class MainPanel extends Panel { getLogger().log(Level.INFO, "Execute: " + statement + (background ? "&" : "")); evalAsync(statement, background).handle((ret, ex) -> { if (ex != null) { - if (showException){ + if (showException) { showException((Exception) ex); } } else if (showReturn) { @@ -394,7 +399,7 @@ public class MainPanel extends Panel { return ret; }); } catch (Exception ex) { - if (showException){ + if (showException) { showException(ex); } } @@ -403,6 +408,7 @@ public class MainPanel extends Panel { void execute(String script, Object args, boolean background, boolean showReturn) { execute(script, args, background, showReturn, true); } + void execute(String script, Object args, boolean background, boolean showReturn, boolean showException) { try { getLogger().log(Level.INFO, "Execute: " + script + (background ? "&" : "")); @@ -415,8 +421,8 @@ public class MainPanel extends Panel { return ret; }); } catch (Exception ex) { - if (showException){ - showException(ex); + if (showException) { + showException(ex); } } } @@ -482,7 +488,7 @@ public class MainPanel extends Panel { buttonDrawing.setSelected(true); updateViewType(); } - if (current!=expert){ + if (current != expert) { onModeChange(expert); } } @@ -538,14 +544,14 @@ public class MainPanel extends Panel { } final int COLUMN_PUCK_ADDRESS = 3; - final int COLUMN_SAMPLE_POSITION = 5; - + final int COLUMN_SAMPLE_POSITION = 5; + void setSamplesTable(Object[][] sampleData) { tableSamples.setModel(new DefaultTableModel( sampleData, new String[]{ //"User Name", "Dewar Name", - "Puck Name", "Puck Type", "Puck Id", "Puck Address", + "Puck Name", "Puck Type", "Puck Id", "Puck Address", "Sample Name", "Sample Position", "Sample Id", "Sample Status", "Mount Count" } ) { @@ -571,8 +577,8 @@ public class MainPanel extends Panel { for (int i = 0; i < tableSamples.getModel().getRowCount(); i++) { if (add.equals(tableSamples.getModel().getValueAt(i, COLUMN_PUCK_ADDRESS))) { - if (sample!=null){ - if (!sample.equals(tableSamples.getModel().getValueAt(i, COLUMN_SAMPLE_POSITION))){ + if (sample != null) { + if (!sample.equals(tableSamples.getModel().getValueAt(i, COLUMN_SAMPLE_POSITION))) { continue; } } @@ -603,24 +609,24 @@ public class MainPanel extends Panel { String ret = textSampleDatamatrix.getText(); return (ret != null) ? ret.trim() : ""; } - - + Chrono expertChrono; final List expertWindows = new ArrayList<>(); - void onExpertCommand(Window window){ + + void onExpertCommand(Window window) { expertChrono = new Chrono(); - if ((window!=null) && (!expertWindows.contains(window))){ + if ((window != null) && (!expertWindows.contains(window))) { expertWindows.add(window); } } - void onModeChange(boolean expert){ - if (expert){ + void onModeChange(boolean expert) { + if (expert) { expertChrono = new Chrono(); } else { - expertChrono = null; - for (Window w : expertWindows){ - if ((w!=null) && (w.isShowing())){ + expertChrono = null; + for (Window w : expertWindows) { + if ((w != null) && (w.isShowing())) { w.setVisible(false); w.dispose(); } @@ -628,7 +634,6 @@ public class MainPanel extends Panel { expertWindows.clear(); } } - /** * This method is called from within the constructor to initialize the form. @@ -1566,7 +1571,7 @@ public class MainPanel extends Panel { }//GEN-LAST:event_buttonCameraActionPerformed private void buttonExpertCommandsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExpertCommandsActionPerformed - try { + try { Panel panel = showCommandsPanel(); onExpertCommand(SwingUtils.getWindow(panel)); } catch (Exception ex) { @@ -1627,8 +1632,8 @@ public class MainPanel extends Panel { if (dlg.getResult() == false) { checkExpert.setSelected(false); return; - } - } + } + } setExpertMode(checkExpert.isSelected()); }//GEN-LAST:event_checkExpertActionPerformed @@ -1654,7 +1659,7 @@ public class MainPanel extends Panel { }//GEN-LAST:event_btViewRTActionPerformed private void buttonRecoveryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecoveryActionPerformed - try { + try { Panel panel = showRecoveryPanel(); onExpertCommand(SwingUtils.getWindow(panel)); } catch (Exception ex) { @@ -1691,7 +1696,29 @@ public class MainPanel extends Panel { private void buttonConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonConfigActionPerformed onExpertCommand(null); - this.showSettingsEditor(true); + + boolean current = false; + try { + current = "true".equalsIgnoreCase(getSetting("valve_control")); + } catch (Exception ex) { + } + + showSettingsEditor(true); + + //Check if must open valve + if (current) { + SwingUtilities.invokeLater(() -> { + try { + boolean valveControl = "true".equalsIgnoreCase(getSetting("valve_control")); + if (!valveControl) { + execute("open_valve()", true); + } + } catch (Exception ex) { + getLogger().log(Level.WARNING, null, ex); + } + }); + + } }//GEN-LAST:event_buttonConfigActionPerformed private void buttonReleaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleaseActionPerformed