diff --git a/src/main/java/ch/psi/mxsc/MainPanel.form b/src/main/java/ch/psi/mxsc/MainPanel.form
index 6ede867..3cc1d67 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.form
+++ b/src/main/java/ch/psi/mxsc/MainPanel.form
@@ -93,7 +93,7 @@
-
+
@@ -1143,20 +1143,20 @@
-
+
-
+
-
+
diff --git a/src/main/java/ch/psi/mxsc/MainPanel.java b/src/main/java/ch/psi/mxsc/MainPanel.java
index e11b967..4a0e301 100644
--- a/src/main/java/ch/psi/mxsc/MainPanel.java
+++ b/src/main/java/ch/psi/mxsc/MainPanel.java
@@ -40,6 +40,7 @@ import java.util.logging.Level;
import javax.swing.GroupLayout;
import javax.swing.ImageIcon;
import javax.swing.JComponent;
+import javax.swing.JDialog;
import javax.swing.JLabel;
import javax.swing.JMenu;
import javax.swing.JMenuBar;
@@ -169,6 +170,18 @@ public class MainPanel extends Panel {
});
+ tableSamples.getTableHeader().addMouseListener(new MouseAdapter() {
+ @Override
+ public void mouseClicked(MouseEvent e) {
+ try {
+ if ((e.getClickCount() == 2) && (!e.isPopupTrigger())) {
+ openSamplesInfo();
+ }
+ } catch (Exception ex) {
+ showException(ex);
+ }
+ }
+ });
tableSamples.addMouseListener(new MouseAdapter() {
/*
@Override
@@ -263,7 +276,11 @@ public class MainPanel extends Panel {
Image img = new ImageIcon(this.getClass().getResource("/apple_transparent_white_100x50.png")).getImage();
SwingUtils.getWindow(this).setIconImage(img);
}
- basePlatePanel.setSelectionMode(SelectionMode.Pucks);
+ if (isRt()){
+ basePlatePanel.setSelectionMode(SelectionMode.Samples);
+ } else {
+ basePlatePanel.setSelectionMode(SelectionMode.Pucks);
+ }
basePlatePanel.setDevice(Controller.getInstance().basePlate);
try{
@@ -833,22 +850,31 @@ public class MainPanel extends Panel {
expertWindows.clear();
}
}
+ JDialog samplesDialog;
JsonTableEditor openSamplesInfo(){
try{
String file = getContext().getSetup().expandPath("{context}/samples_info.json");
- for (Editor ed : getView().getEditors()) {
- if (ed instanceof JsonTableEditor) {
- if (file.equals(ed.getFileName())){
- if (ed.changedOnDisk()){
- getView().closeFile(file);
- } else {
- getView().selectPanel(ed);
- return (JsonTableEditor) ed;
- }
+ if (getView()!=null){
+ for (Editor ed : getView().getEditors()) {
+ if (ed instanceof JsonTableEditor) {
+ if (file.equals(ed.getFileName())){
+ if (ed.changedOnDisk()){
+ getView().closeFile(file);
+ } else {
+ getView().selectPanel(ed);
+ return (JsonTableEditor) ed;
+ }
+ }
}
}
- }
+ } else {
+ if ((samplesDialog!=null) && (samplesDialog.isDisplayable())){
+ SwingUtils.centerComponent(this, samplesDialog);
+ samplesDialog.requestFocus();
+ return (JsonTableEditor) SwingUtils.getComponentsByType(samplesDialog, JsonTableEditor.class)[0];
+ }
+ }
String[] columns = new String[]{ "userName", "dewarName",
"puckName", "puckType", "puckBarcode", "puckAddress",
"sampleName", "samplePosition", "sampleBarcode", "sampleStatus", "sampleMountCount"
@@ -878,8 +904,11 @@ public class MainPanel extends Panel {
});
editor.setDefaultValues(defaults);
editor.load(file);
- getView().openEditor(editor);
-
+ if (getView()!=null){
+ getView().openEditor(editor);
+ } else {
+ samplesDialog = showDialog("Samples Info", new Dimension (1000,800), editor);
+ }
return editor;
} catch (Exception ex) {
showException(ex);
@@ -988,7 +1017,7 @@ public class MainPanel extends Panel {
buttonRecovery = new javax.swing.JButton();
buttonConfig = new javax.swing.JButton();
panelBottom = new javax.swing.JPanel();
- jPanel1 = new javax.swing.JPanel();
+ panelSamples = new javax.swing.JPanel();
panelTableSamples = new javax.swing.JScrollPane();
tableSamples = new javax.swing.JTable();
jPanel4 = new javax.swing.JPanel();
@@ -1199,7 +1228,7 @@ public class MainPanel extends Panel {
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelDetection, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
- .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 276, Short.MAX_VALUE)
+ .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 234, Short.MAX_VALUE)
.addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
.addComponent(panelHexiposi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addComponent(panelViewType, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
@@ -1699,7 +1728,7 @@ public class MainPanel extends Panel {
panelBottom.setPreferredSize(new java.awt.Dimension(810, 150));
panelBottom.setRequestFocusEnabled(false);
- jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Samples"));
+ panelSamples.setBorder(javax.swing.BorderFactory.createTitledBorder("Samples"));
tableSamples.setModel(new javax.swing.table.DefaultTableModel(
new Object [][] {
@@ -1712,18 +1741,18 @@ public class MainPanel extends Panel {
tableSamples.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION);
panelTableSamples.setViewportView(tableSamples);
- javax.swing.GroupLayout jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
- jPanel1.setLayout(jPanel1Layout);
- jPanel1Layout.setHorizontalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ javax.swing.GroupLayout panelSamplesLayout = new javax.swing.GroupLayout(panelSamples);
+ panelSamples.setLayout(panelSamplesLayout);
+ panelSamplesLayout.setHorizontalGroup(
+ panelSamplesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSamplesLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(panelTableSamples)
.addGap(0, 0, 0))
);
- jPanel1Layout.setVerticalGroup(
- jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addGroup(jPanel1Layout.createSequentialGroup()
+ panelSamplesLayout.setVerticalGroup(
+ panelSamplesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
+ .addGroup(panelSamplesLayout.createSequentialGroup()
.addGap(0, 0, 0)
.addComponent(panelTableSamples, javax.swing.GroupLayout.DEFAULT_SIZE, 126, Short.MAX_VALUE)
.addGap(0, 0, 0))
@@ -1811,12 +1840,12 @@ public class MainPanel extends Panel {
.addGap(0, 0, 0)
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelSamples, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addGap(0, 0, 0))
);
panelBottomLayout.setVerticalGroup(
panelBottomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
- .addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
+ .addComponent(panelSamples, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
);
@@ -2033,7 +2062,6 @@ public class MainPanel extends Panel {
private javax.swing.JLabel jLabel8;
private javax.swing.JLabel jLabel9;
private javax.swing.JLabel jLabell21;
- private javax.swing.JPanel jPanel1;
private javax.swing.JPanel jPanel3;
private javax.swing.JPanel jPanel4;
private javax.swing.JLabel labelManualMode;
@@ -2066,6 +2094,7 @@ public class MainPanel extends Panel {
private javax.swing.JPanel panelLN2Level;
private javax.swing.JPanel panelLegend;
private javax.swing.JPanel panelRight;
+ private javax.swing.JPanel panelSamples;
private javax.swing.JPanel panelStatus;
private javax.swing.JPanel panelSystemStatus;
private javax.swing.JScrollPane panelTablePucks;