From 8b4accefde47895c47ce6f5d69b1e417468dcaa0 Mon Sep 17 00:00:00 2001 From: gobbo_a Date: Thu, 27 Apr 2023 16:48:33 +0200 Subject: [PATCH] Mount/unmount in GUI --- src/main/java/ch/psi/mxsc/BasePlate.java | 3 -- src/main/java/ch/psi/mxsc/BasePlatePanel.java | 28 +++++++++++++++---- src/main/java/ch/psi/mxsc/Sample.java | 4 +++ 3 files changed, 26 insertions(+), 9 deletions(-) diff --git a/src/main/java/ch/psi/mxsc/BasePlate.java b/src/main/java/ch/psi/mxsc/BasePlate.java index 8144059..19deb0d 100644 --- a/src/main/java/ch/psi/mxsc/BasePlate.java +++ b/src/main/java/ch/psi/mxsc/BasePlate.java @@ -161,9 +161,6 @@ public class BasePlate extends DeviceBase { BasePlate() { super("BasePlate", new BasePlateConfig()); - if (MainPanel.BASE_PLATE_LAYOUT == BasePlateLayout.rt){ - //Controller.getInstance().getContext().getDevicePool().removeDevice("puck_detection"); - } ArrayList pucks = new ArrayList<>(); for (int i = 0; i < numberOfPucks; i++) { new Puck(this, i); diff --git a/src/main/java/ch/psi/mxsc/BasePlatePanel.java b/src/main/java/ch/psi/mxsc/BasePlatePanel.java index 9b05450..9c5561f 100644 --- a/src/main/java/ch/psi/mxsc/BasePlatePanel.java +++ b/src/main/java/ch/psi/mxsc/BasePlatePanel.java @@ -46,7 +46,11 @@ public class BasePlatePanel extends DevicePanel { menuLoadSample = new JMenuItem("Load"); menuLoadSample.addActionListener((ActionEvent e) -> { try { - getDevice().loadSample(); + //getDevice().loadSample(); + int sample = clickedSample.getNumber(); + int puck = clickedPuck.getNumber(); + char segment = clickedPuck.getSegment(); + Controller.instance.execute("mount('" + segment + "'," + puck + "," + sample + ")"); } catch (Exception ex) { SwingUtils.showException(this, ex); } @@ -54,7 +58,11 @@ public class BasePlatePanel extends DevicePanel { menuUnloadSample = new JMenuItem("Unload"); menuUnloadSample.addActionListener((ActionEvent e) -> { try { - getDevice().unloadSample(getDevice().getSelectedSample()); + //getDevice().unloadSample(getDevice().getSelectedSample()); + int sample = clickedSample.getNumber(); + int puck = clickedPuck.getNumber(); + char segment = clickedPuck.getSegment(); + Controller.instance.execute("unmount('" + segment + "'," + puck + "," + sample + ")"); } catch (Exception ex) { SwingUtils.showException(this, ex); } @@ -238,7 +246,10 @@ public class BasePlatePanel extends DevicePanel { } repaint(); } - + + Sample clickedSample; + Puck clickedPuck; + MouseAdapter mouseAdapter = new MouseAdapter() { @Override public void mousePressed(MouseEvent e) { @@ -254,7 +265,10 @@ public class BasePlatePanel extends DevicePanel { if (isEnabled() && (getDevice()!=null)) { try { Sample sample = getSample(e.getX(), e.getY()); - Puck puck = getPuck(e.getX(), e.getY()); + Puck puck = getPuck(e.getX(), e.getY()); + + clickedSample = sample; + clickedPuck = puck; if (e.isPopupTrigger()) { if (sample != null) { onSamplePopupMenu(e, sample); @@ -391,8 +405,10 @@ public class BasePlatePanel extends DevicePanel { } void onSamplePopupMenu(MouseEvent e,Sample sample){ - menuLoadSample.setEnabled(sample.isPresent() && getDevice().getLoadedSample()==null); - menuUnloadSample.setEnabled(!sample.isPresent() && getDevice().getLoadedSample()!=null); + //menuLoadSample.setEnabled(sample.isPresent() && getDevice().getLoadedSample()==null); + //menuUnloadSample.setEnabled(!sample.isPresent() && getDevice().getLoadedSample()!=null); + menuLoadSample.setEnabled(!sample.isLoaded() && getDevice().getLoadedSample()==null); + menuUnloadSample.setEnabled(sample.isLoaded() && getDevice().getLoadedSample()!=null); samplePopupMenu.show(e.getComponent(), e.getX(), e.getY()); } diff --git a/src/main/java/ch/psi/mxsc/Sample.java b/src/main/java/ch/psi/mxsc/Sample.java index e19fcdd..879f415 100644 --- a/src/main/java/ch/psi/mxsc/Sample.java +++ b/src/main/java/ch/psi/mxsc/Sample.java @@ -32,6 +32,10 @@ public class Sample extends DeviceBase { public int getIndex() { return index; } + + public int getNumber() { + return index+1; + } boolean enabled;