From 47ab8f1f0e8a134f0b8efacf12d5a9fa2a686f08 Mon Sep 17 00:00:00 2001 From: gac-S_Changer Date: Thu, 25 May 2023 14:41:32 +0200 Subject: [PATCH] Samples Editor --- src/main/java/ch/psi/mxsc/MainPanel.form | 8 +-- src/main/java/ch/psi/mxsc/MainPanel.java | 83 ++++++++++++++++-------- 2 files changed, 60 insertions(+), 31 deletions(-) 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;