Mount/Unmount from samples table
This commit is contained in:
@@ -30,8 +30,8 @@ import javax.swing.JPopupMenu;
|
||||
*/
|
||||
public class BasePlatePanel extends DevicePanel {
|
||||
JPopupMenu samplePopupMenu;
|
||||
JMenuItem menuLoadSample;
|
||||
JMenuItem menuUnloadSample;
|
||||
JMenuItem menuMountSample;
|
||||
JMenuItem menuUnmountSample;
|
||||
BasePlateGraphics basePlateGraphics;
|
||||
PuckGraphics puckGraphics;
|
||||
|
||||
@@ -43,8 +43,8 @@ public class BasePlatePanel extends DevicePanel {
|
||||
initComponents();
|
||||
addMouseListener(mouseAdapter);
|
||||
samplePopupMenu = new JPopupMenu();
|
||||
menuLoadSample = new JMenuItem("Load");
|
||||
menuLoadSample.addActionListener((ActionEvent e) -> {
|
||||
menuMountSample = new JMenuItem("Mount");
|
||||
menuMountSample.addActionListener((ActionEvent e) -> {
|
||||
try {
|
||||
//getDevice().loadSample();
|
||||
int sample = clickedSample.getNumber();
|
||||
@@ -55,8 +55,8 @@ public class BasePlatePanel extends DevicePanel {
|
||||
SwingUtils.showException(this, ex);
|
||||
}
|
||||
});
|
||||
menuUnloadSample = new JMenuItem("Unload");
|
||||
menuUnloadSample.addActionListener((ActionEvent e) -> {
|
||||
menuUnmountSample = new JMenuItem("Unmount");
|
||||
menuUnmountSample.addActionListener((ActionEvent e) -> {
|
||||
try {
|
||||
//getDevice().unloadSample(getDevice().getSelectedSample());
|
||||
int sample = clickedSample.getNumber();
|
||||
@@ -67,8 +67,8 @@ public class BasePlatePanel extends DevicePanel {
|
||||
SwingUtils.showException(this, ex);
|
||||
}
|
||||
});
|
||||
samplePopupMenu.add(menuLoadSample);
|
||||
samplePopupMenu.add(menuUnloadSample);
|
||||
samplePopupMenu.add(menuMountSample);
|
||||
samplePopupMenu.add(menuUnmountSample);
|
||||
}
|
||||
|
||||
@Override
|
||||
@@ -408,8 +408,8 @@ public class BasePlatePanel extends DevicePanel {
|
||||
if (getSelectionMode()==SelectionMode.Samples){
|
||||
//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);
|
||||
menuMountSample.setEnabled(!sample.isLoaded() && getDevice().getLoadedSample()==null);
|
||||
menuUnmountSample.setEnabled(sample.isLoaded() && getDevice().getLoadedSample()!=null);
|
||||
samplePopupMenu.show(e.getComponent(), e.getX(), e.getY());
|
||||
}
|
||||
}
|
||||
|
||||
@@ -1179,7 +1179,7 @@
|
||||
<Group type="103" groupAlignment="0" attributes="0">
|
||||
<Group type="102" attributes="0">
|
||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
||||
<Component id="panelTableSamples" pref="50" max="32767" attributes="0"/>
|
||||
<Component id="panelTableSamples" pref="126" max="32767" attributes="0"/>
|
||||
<EmptySpace min="-2" pref="0" max="-2" attributes="0"/>
|
||||
</Group>
|
||||
</Group>
|
||||
|
||||
@@ -4,7 +4,6 @@
|
||||
package ch.psi.mxsc;
|
||||
|
||||
import ch.psi.mxsc.BasePlatePanel.SelectionMode;
|
||||
import ch.psi.pshell.core.Context;
|
||||
import ch.psi.pshell.core.Plugin;
|
||||
import ch.psi.pshell.device.Device;
|
||||
import ch.psi.pshell.device.DeviceAdapter;
|
||||
@@ -12,7 +11,6 @@ import ch.psi.pshell.imaging.Renderer;
|
||||
import ch.psi.pshell.imaging.RendererMode;
|
||||
import ch.psi.pshell.imaging.Source;
|
||||
import ch.psi.pshell.scripting.ViewPreference;
|
||||
import ch.psi.pshell.swing.ScriptEditor;
|
||||
import ch.psi.pshell.ui.App;
|
||||
import ch.psi.pshell.ui.Panel;
|
||||
import ch.psi.pshell.ui.StatusBar;
|
||||
@@ -31,14 +29,14 @@ import java.awt.Dimension;
|
||||
import java.awt.GridBagLayout;
|
||||
import java.awt.Image;
|
||||
import java.awt.Window;
|
||||
import java.awt.event.ActionEvent;
|
||||
import java.awt.event.MouseAdapter;
|
||||
import java.awt.event.MouseEvent;
|
||||
import java.io.File;
|
||||
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.script.ScriptException;
|
||||
import javax.swing.GroupLayout;
|
||||
import javax.swing.ImageIcon;
|
||||
import javax.swing.JComponent;
|
||||
@@ -47,6 +45,7 @@ import javax.swing.JMenu;
|
||||
import javax.swing.JMenuBar;
|
||||
import javax.swing.JMenuItem;
|
||||
import javax.swing.JPanel;
|
||||
import javax.swing.JPopupMenu;
|
||||
import javax.swing.SwingUtilities;
|
||||
import javax.swing.event.ListSelectionEvent;
|
||||
import javax.swing.event.ListSelectionListener;
|
||||
@@ -64,6 +63,10 @@ public class MainPanel extends Panel {
|
||||
Boolean roomTemperature;
|
||||
public final String PUCK_LOADING_STATUS = "Puck loading";
|
||||
StatusBar statusBar;
|
||||
JPopupMenu samplePopupMenu;
|
||||
JMenuItem menuMountSample;
|
||||
JMenuItem menuUnmoountSample;
|
||||
|
||||
|
||||
public enum BasePlateLayout {
|
||||
normal,
|
||||
@@ -95,6 +98,9 @@ public class MainPanel extends Panel {
|
||||
panelLegend.setVisible(false);
|
||||
panelLN2Level.setVisible(false);
|
||||
panelDisplayMode.setVisible(false);
|
||||
panelBottom.setPreferredSize(panelTop.getPreferredSize());
|
||||
panelBottom.setMinimumSize(panelTop.getMinimumSize());
|
||||
panelBottom.setSize(panelTop.getSize());
|
||||
panelDatamatrix.setVisible(false);
|
||||
}
|
||||
|
||||
@@ -134,13 +140,9 @@ public class MainPanel extends Panel {
|
||||
if (e.getValueIsAdjusting() == false) {
|
||||
int selection = tableSamples.getSelectedRow();
|
||||
if (selection >= 0) {
|
||||
String add = String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_PUCK_ADDRESS));
|
||||
String add = getSamplesTableSelectedPuck();
|
||||
if (!add.trim().isEmpty()) {
|
||||
int pos = -1;
|
||||
try {
|
||||
pos = Integer.valueOf(String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_SAMPLE_POSITION)));
|
||||
} catch (Exception ex) {
|
||||
}
|
||||
int pos = getSamplesTableSelectedPosition();
|
||||
String curSelection = Controller.getInstance().getCurrentSelection();
|
||||
String curPuck = (curSelection == null) ? null : curSelection.substring(0, 2);
|
||||
if (!add.equals(curPuck)) {
|
||||
@@ -162,6 +164,91 @@ public class MainPanel extends Panel {
|
||||
}
|
||||
}
|
||||
});
|
||||
|
||||
|
||||
tableSamples.addMouseListener(new MouseAdapter() {
|
||||
/*
|
||||
@Override
|
||||
public void mouseClicked(MouseEvent e) {
|
||||
try {
|
||||
if ((e.getClickCount() == 2) && (!e.isPopupTrigger())) {
|
||||
int index = tableSamples.getSelectedRow();
|
||||
if (index>=0) {
|
||||
onDoubleClickSample(index);
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
}
|
||||
*/
|
||||
|
||||
@Override
|
||||
public void mouseReleased(MouseEvent e) {
|
||||
checkPopup(e);
|
||||
}
|
||||
|
||||
@Override
|
||||
public void mousePressed(MouseEvent e) {
|
||||
checkPopup(e);
|
||||
}
|
||||
|
||||
private void checkPopup(MouseEvent e) {
|
||||
try {
|
||||
if (e.isPopupTrigger()) {
|
||||
int r = tableSamples.rowAtPoint(e.getPoint());
|
||||
if (r >= 0 && r < tableSamples.getRowCount()) {
|
||||
tableSamples.setRowSelectionInterval(r, r);
|
||||
} else {
|
||||
tableSamples.clearSelection();
|
||||
}
|
||||
int index = tableSamples.getSelectedRow();
|
||||
|
||||
if (index>=0) {
|
||||
Sample clickedSample = getSamplesTableSelectedSample();
|
||||
if (clickedSample!=null){
|
||||
//menuLoadSample.setEnabled(!clickedSample.isLoaded() && Controller.getInstance().basePlate.getLoadedSample()==null);
|
||||
menuMountSample.setEnabled(!clickedSample.isLoaded());
|
||||
menuUnmoountSample.setEnabled(clickedSample.isLoaded() && Controller.getInstance().basePlate.getLoadedSample()!=null);
|
||||
samplePopupMenu.show(e.getComponent(), e.getX(), e.getY());
|
||||
}
|
||||
}
|
||||
}
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
}
|
||||
|
||||
}
|
||||
}
|
||||
);
|
||||
|
||||
samplePopupMenu = new JPopupMenu();
|
||||
menuMountSample = new JMenuItem("Mount");
|
||||
menuMountSample.addActionListener((ActionEvent e) -> {
|
||||
try {
|
||||
Sample clickedSample = getSamplesTableSelectedSample();
|
||||
int sample = clickedSample.getNumber();
|
||||
int puck = clickedSample.getPuck().getNumber();
|
||||
char segment = clickedSample.getPuck().getSegment();
|
||||
Controller.instance.execute("mount('" + segment + "'," + puck + "," + sample + ", auto_unmount=True)");
|
||||
} catch (Exception ex) {
|
||||
SwingUtils.showException(this, ex);
|
||||
}
|
||||
});
|
||||
menuUnmoountSample = new JMenuItem("Unmount");
|
||||
menuUnmoountSample.addActionListener((ActionEvent e) -> {
|
||||
try {
|
||||
Sample clickedSample = getSamplesTableSelectedSample();
|
||||
int sample = clickedSample.getNumber();
|
||||
int puck = clickedSample.getPuck().getNumber();
|
||||
char segment = clickedSample.getPuck().getSegment();
|
||||
Controller.instance.execute("unmount('" + segment + "'," + puck + "," + sample + ")");
|
||||
} catch (Exception ex) {
|
||||
SwingUtils.showException(this, ex);
|
||||
}
|
||||
});
|
||||
samplePopupMenu.add(menuMountSample);
|
||||
samplePopupMenu.add(menuUnmoountSample);
|
||||
}
|
||||
|
||||
JMenuItem menuEditSamples;
|
||||
@@ -192,6 +279,38 @@ public class MainPanel extends Panel {
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public String getSamplesTableSelectedPuck(){
|
||||
try {
|
||||
int selection = tableSamples.getSelectedRow();
|
||||
return String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_PUCK_ADDRESS));
|
||||
} catch (Exception ex) {
|
||||
return "";
|
||||
}
|
||||
|
||||
}
|
||||
|
||||
public int getSamplesTableSelectedPosition(){
|
||||
try {
|
||||
int selection = tableSamples.getSelectedRow();
|
||||
return Integer.valueOf(String.valueOf(tableSamples.getModel().getValueAt(selection, COLUMN_SAMPLE_POSITION)));
|
||||
} catch (Exception ex) {
|
||||
return -1;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
public Sample getSamplesTableSelectedSample(){
|
||||
try{
|
||||
String puck = getSamplesTableSelectedPuck();
|
||||
int pos = getSamplesTableSelectedPosition();
|
||||
return Controller.getInstance().basePlate.getSampleByName(puck+pos);
|
||||
} catch (Exception ex){
|
||||
return null;
|
||||
}
|
||||
}
|
||||
|
||||
|
||||
@Override
|
||||
protected void onUnloaded() {
|
||||
if (getView() != null) {
|
||||
@@ -735,6 +854,7 @@ public class MainPanel extends Panel {
|
||||
|
||||
|
||||
JsonTableEditor editor = new JsonTableEditor(columns, types);
|
||||
editor.setShowClearButton(true);
|
||||
editor.getDocument().addListener(new DocumentListener() {
|
||||
@Override
|
||||
public void onDocumentChanged(Document doc) {
|
||||
@@ -750,8 +870,9 @@ public class MainPanel extends Panel {
|
||||
}
|
||||
}
|
||||
});
|
||||
getView().openComponent(new File(file).getName(), editor);
|
||||
editor.load(file);
|
||||
getView().openEditor(editor);
|
||||
|
||||
return editor;
|
||||
} catch (Exception ex) {
|
||||
showException(ex);
|
||||
|
||||
Reference in New Issue
Block a user