/* * Copyright (c) 2014 Paul Scherrer Institute. All rights reserved. */ package ch.psi.mxsc; import ch.psi.mxsc.BasePlatePanel.SelectionMode; import ch.psi.pshell.core.Context; import ch.psi.pshell.core.JsonSerializer; import ch.psi.pshell.core.Plugin; import ch.psi.pshell.device.Device; import ch.psi.pshell.device.DeviceAdapter; import ch.psi.pshell.imaging.Renderer; import ch.psi.pshell.imaging.RendererMode; import ch.psi.pshell.imaging.Source; import ch.psi.pshell.ui.App; import ch.psi.pshell.ui.Panel; import ch.psi.utils.State; import ch.psi.utils.swing.SwingUtils; import java.awt.BorderLayout; import java.awt.Color; import java.awt.Component; import java.awt.Dialog; import java.awt.Dimension; import java.awt.GridBagLayout; import java.awt.Image; 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; import javax.swing.JLabel; import javax.swing.JPanel; import javax.swing.SwingUtilities; import javax.swing.event.ListSelectionEvent; import javax.swing.event.ListSelectionListener; import javax.swing.table.DefaultTableModel; /** * */ public class MainPanel extends Panel { /** * Creates new form Panel */ Boolean manualMode; Boolean roomTemperature; public MainPanel() { initComponents(); getContext().getPluginManager().addDynamicClass(PuckDetection.class); Controller.createInstance(this); basePlatePanel.setMode(BasePlatePanel.Mode.single); setExpertMode(false); setDefaultDetail(); int row = 0; for (String segment : new String[]{"A", "B", "C", "D", "E", "F"}){ for (int puck=1; puck<=5; puck++){ tablePucks.getModel().setValueAt(segment+puck, row++, 0); } } tablePucks.getSelectionModel().addListSelectionListener(new ListSelectionListener() { @Override public void valueChanged(ListSelectionEvent e) { try{ String add = String.valueOf(tablePucks.getModel().getValueAt(tablePucks.getSelectedRow(), 0)); String cur = Controller.getInstance().getCurrentSelection(); if (cur!=null){ cur = cur.substring(0,2); } if (!add.equals(cur)){ Puck puck = Controller.getInstance().getPuck(add); Controller.getInstance().selectPuck(puck); } } catch (Exception ex){ showException(ex); } } }); } @Override protected void onLoaded() { if (App.isDetached()) { Image img = new ImageIcon(this.getClass().getResource("/apple_transparent_white_100x50.png")).getImage(); SwingUtils.getWindow(this).setIconImage(img); } basePlatePanel.setSelectionMode(SelectionMode.Pucks); basePlatePanel.setDevice(Controller.getInstance().basePlate); } @Override public void onInitialize(int runCount) { stopTimer(); Controller.getInstance().onInitialize(runCount); if (basePlatePanel.getDevice() != (Device) getDevice("BasePlate")){ basePlatePanel.setDevice((Device) getDevice("BasePlate")); } try { devicesPanel.initialize(); ((Device) getDevice("dewar_level")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateLevel(value); } }); updateLevel(((Device) getDevice("dewar_level")).take()); ((Device) getDevice("air_pressure_ok")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateAirPressure(value); } }); updateAirPressure(((Device) getDevice("air_pressure_ok")).take()); ((Device) getDevice("n2_pressure_ok")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateN2Pressure(value); } }); updateN2Pressure(((Device) getDevice("n2_pressure_ok")).take()); ((Device) getDevice("feedback_local_safety")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateLocalSafety(value); } }); updateLocalSafety(((Device) getDevice("feedback_local_safety")).take()); ((Device) getDevice("feedback_psys_safety")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updatePsysSafety(value); } }); updatePsysSafety(((Device) getDevice("feedback_psys_safety")).take()); ((Device) getDevice("robot")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateMode(value); } public void onStateChanged(Device device, State state, State former) { if (!state.isNormal()){ updateMode(null); } } }); updateMode(((Device) getDevice("robot")).take()); } catch (Exception ex) { this.getLogger().log(Level.SEVERE, null, ex); } Controller.getInstance().updatePuckTypes(); startTimer(10000, 1000); updateCameraView(); refreshSamplesTable(); } @Override public void onStateChange(State state, State former) { } @Override protected void onTimer() { devicesPanel.update(); try { roomTemperature = Controller.getInstance().isRoomTemp(); ledRoomTemperature.setColor( roomTemperature ? Color.YELLOW : Color.GREEN); labelRoomTemperature.setText(roomTemperature ? "Room Temperature" : "Cryo Operation"); try { ledHeaterOk.setColor(roomTemperature ? Color.GREEN :( ((Double)panelHeaterTemp.getDevice().take())<20.0 ? Color.RED : Color.GREEN)); } catch (Exception ex) { ledHeaterOk.setColor(Color.BLACK); } } catch (Exception ex) { roomTemperature = null; ledRoomTemperature.setColor(Color.BLACK); labelRoomTemperature.setText("Room Temperature"); } } void refresh(){ repaint(); for (Puck p : Controller.getInstance().basePlate.getPucks()) { int index = p.getUserIndex(); tablePucks.getModel().setValueAt(p.getStatus(), index, 1); tablePucks.getModel().setValueAt(p.getId(), index, 2); } } void updateLevel(Object value) { if ((value == null) || !(value instanceof Number)) { progressLN2.setIndeterminate(true); } else { progressLN2.setIndeterminate(false); double val = ((Number) value).doubleValue() * 10.0; progressLN2.setValue(Math.min(Math.max((int) val, 0), 1000)); } } void updateAirPressure(Object value) { if ((value == null) || !(value instanceof Boolean)) { ledAirPressure.setColor(Color.BLACK); } else if ((Boolean) value) { ledAirPressure.setColor(Color.GREEN); } else { ledAirPressure.setColor(Color.RED); } } void updateN2Pressure(Object value) { if ((value == null) || !(value instanceof Boolean)) { ledN2Pressure.setColor(Color.BLACK); } else if ((Boolean) value) { ledN2Pressure.setColor(Color.GREEN); } else { ledN2Pressure.setColor(Color.RED); } } void updateLocalSafety(Object value) { if ((value == null) || !(value instanceof Boolean)) { ledLocalSafety.setColor(Color.BLACK); } else if ((Boolean) value) { ledLocalSafety.setColor(Color.GREEN); } else { ledLocalSafety.setColor(Color.RED); } } void updatePsysSafety(Object value) { if ((value == null) || !(value instanceof Boolean)) { ledPsysSafety.setColor(Color.BLACK); } else if ( Boolean.TRUE.equals(manualMode)){ ledPsysSafety.setColor(Color.YELLOW); } else if ((Boolean) value) { ledPsysSafety.setColor(Color.GREEN); } else { ledPsysSafety.setColor(Color.RED); } } void updateMode(Object value) { if ((value!=null) && (value instanceof Map)){ manualMode = "manual".equals(String.valueOf(((Map)value).get("mode"))); ledManualMode.setColor( manualMode ? Color.YELLOW : Color.GREEN); labelManualMode.setText(manualMode ? "Manual Mode" : "Remote Mode"); updatePsysSafety(((Device) getDevice("feedback_psys_safety")).take()); } else { ledManualMode.setColor( Color.BLACK); labelManualMode.setText("Unknown Mode"); } } void updateCameraView() { Source source = buttonCamera.isSelected() ? (Source) this.getDevice("img") : null; basePlatePanel.setCameraView(source); } void execute(String statement) { execute(statement, false); } void execute(String statement, boolean background) { execute(statement, background, false); } void execute(String statement, boolean background, boolean showReturn) { try { evalAsync(statement, background).handle((ret, ex) -> { if (ex != null) { showException((Exception) ex); } else if (showReturn) { showMessage("Return", String.valueOf(ret)); } return ret; }); } catch (Exception ex) { showException(ex); } } void execute(String script, Object args, boolean background, boolean showReturn) { try { runAsync(script, args, background).handle((ret, ex) -> { if (ex != null) { showException((Exception) ex); } else if (showReturn) { showMessage("Return", String.valueOf(ret)); } return ret; }); } catch (Exception ex) { showException(ex); } } void updateViewType() { try { updateCameraView(); } catch (Exception ex) { showException(ex); } } boolean viewDewar = true; RoomTempBasePlatePanel roomTempPanel; WaterLevelPanel waterLevelPanel; void updateViewMode() { try { if (btViewDewar.isSelected() != viewDewar) { viewDewar = btViewDewar.isSelected(); if (viewDewar) { ((GroupLayout) panelTop.getLayout()).replace(roomTempPanel, basePlatePanel); ((GroupLayout) panelTop.getLayout()).replace(waterLevelPanel, panelLN2Level); } else { if (roomTempPanel == null) { roomTempPanel = new RoomTempBasePlatePanel(); roomTempPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("RT Humidifier")); } ((GroupLayout) panelTop.getLayout()).replace(basePlatePanel, roomTempPanel); if (waterLevelPanel == null) { waterLevelPanel = new WaterLevelPanel(); } waterLevelPanel.setPreferredSize(panelLN2Level.getSize()); ((GroupLayout) panelTop.getLayout()).replace(panelLN2Level, waterLevelPanel); } } } catch (Exception ex) { showException(ex); } } void setExpertMode(boolean expert) { buttonExpertCommands.setVisible(expert); buttonRecovery.setVisible(expert); buttonCalibrateImage.setVisible(expert); buttonCalibrateCover.setVisible(expert); devicesPanel.setActive(expert); panelViewType.setVisible(expert); panelDetection.setVisible(expert); buttonDetectCover.setVisible(expert); buttonConfig.setVisible(expert); if (checkExpert.isSelected() != expert) { checkExpert.setSelected(expert); } if (expert == false) { buttonCamera.setSelected(false); buttonDrawing.setSelected(true); updateViewType(); } } Plugin commandsPlugin; void showCommandsPanel() { if (commandsPlugin != null) { getContext().getPluginManager().unloadPlugin(commandsPlugin); } commandsPlugin = getContext().getPluginManager().loadPlugin(getContext().getSetup().expandPath("{plugins}/Commands.java")); ((Panel)commandsPlugin).setDetached(true, getTopLevel()); getContext().getPluginManager().initializePlugin(commandsPlugin); } Plugin recoveryPlugin; void showRecoveryPanel() { if (recoveryPlugin != null) { getContext().getPluginManager().unloadPlugin(recoveryPlugin); } recoveryPlugin = getContext().getPluginManager().loadPlugin(getContext().getSetup().expandPath("{plugins}/Recovery.java")); ((Panel)recoveryPlugin).setDetached(true, getTopLevel()); getContext().getPluginManager().initializePlugin(recoveryPlugin); } void setDefaultDetail() { JLabel label = new JLabel(); label.setIcon(new javax.swing.ImageIcon(getClass().getResource("/apple_transparent_white_100x50.png"))); JPanel panel = new JPanel(); panel.setLayout(new GridBagLayout()); panel.add(label); setDetail(panel); //setContext(label); } void setDetail(Component c) { panelDetail.removeAll(); panelDetail.setLayout(new BorderLayout()); //panelContext.setLayout(new GridBagLayout()); panelDetail.add(c); updateUI(); } Component getDetail() { return this.getComponent(0); } Dimension getDetailSize() { return panelDetail.getSize(); } String[] HEADER = new String[]{"Puck Address", "Mount Count", "User Name", "Puck Name", "Sample Status", "Sample Name", "Sample Position", "Puck Barcode", "Dewar Name", "Puck Type"}; void refreshSamplesTable() { try { String json = (String) Context.getInstance().evalLineBackground("get_samples_info()"); //SamplesInfo sampleInfo = (SamplesInfo) JsonSerializer.decode(json, SampleInfo.class); SampleInfo[] samples = (SampleInfo[]) JsonSerializer.decode(json, SampleInfo[].class); Object[][] sampleData = new Object[samples.length][]; for (int i=0; i< samples.length; i++) { sampleData[i] = samples[i].getData(); } tableSamples.setModel(new DefaultTableModel( sampleData, HEADER )); } catch (Exception ex) { clearSamplesTable(); getLogger().log(Level.SEVERE, null, ex); } } void clearSamplesTable() { tableSamples.setModel(new DefaultTableModel( new Object[][]{}, HEADER )); } void onSelectionChanged(String segment, Integer puck, Integer sample){ if (segment != null){ String add = segment + String.valueOf(puck); for (int i=0; i//GEN-BEGIN:initComponents private void initComponents() { panelTop = new javax.swing.JPanel(); basePlatePanel = new ch.psi.mxsc.BasePlatePanel(); panelLegend = new javax.swing.JPanel(); ledLidControlActive2 = new ch.psi.pshell.swing.Led(); ledLidControlActive1 = new ch.psi.pshell.swing.Led(); jLabel20 = new javax.swing.JLabel(); jLabel15 = new javax.swing.JLabel(); jLabel16 = new javax.swing.JLabel(); jLabel19 = new javax.swing.JLabel(); ledLidControlActive4 = new ch.psi.pshell.swing.Led(); ledLidControlActive3 = new ch.psi.pshell.swing.Led(); ledLidControlActive5 = new ch.psi.pshell.swing.Led(); jLabel23 = new javax.swing.JLabel(); panelDetection = new javax.swing.JPanel(); buttonClearDet = new javax.swing.JButton(); buttonPuckDet = new javax.swing.JButton(); panelHexiposi = new javax.swing.JPanel(); hexiposiPanel = new ch.psi.mxsc.HexiposiPanel(); buttonDetectCover = new javax.swing.JButton(); panelViewType = new javax.swing.JPanel(); buttonCamera = new javax.swing.JToggleButton(); buttonDrawing = new javax.swing.JToggleButton(); panelLN2Level = new javax.swing.JPanel(); jPanel3 = new javax.swing.JPanel(); jSeparator1 = new javax.swing.JSeparator(); jLabel1 = new javax.swing.JLabel(); progressLN2 = new javax.swing.JProgressBar(); jSeparator3 = new javax.swing.JSeparator(); jSeparator2 = new javax.swing.JSeparator(); jLabel3 = new javax.swing.JLabel(); jLabel2 = new javax.swing.JLabel(); panelStatus = new javax.swing.JPanel(); panelBeamlineStatus = new javax.swing.JPanel(); led5 = new ch.psi.pshell.swing.Led(); led6 = new ch.psi.pshell.swing.Led(); jLabel8 = new javax.swing.JLabel(); jLabel9 = new javax.swing.JLabel(); panelSystemStatus = new javax.swing.JPanel(); ledAirPressure = new ch.psi.pshell.swing.Led(); jLabel24 = new javax.swing.JLabel(); jLabel25 = new javax.swing.JLabel(); ledN2Pressure = new ch.psi.pshell.swing.Led(); jLabel26 = new javax.swing.JLabel(); ledLocalSafety = new ch.psi.pshell.swing.Led(); jLabell21 = new javax.swing.JLabel(); ledPsysSafety = new ch.psi.pshell.swing.Led(); buttonRelease = new javax.swing.JButton(); filler1 = new javax.swing.Box.Filler(new java.awt.Dimension(0, 30), new java.awt.Dimension(0, 30), new java.awt.Dimension(32767, 30)); ledRoomTemperature = new ch.psi.pshell.swing.Led(); labelRoomTemperature = new javax.swing.JLabel(); ledManualMode = new ch.psi.pshell.swing.Led(); labelManualMode = new javax.swing.JLabel(); ledHeaterOk = new ch.psi.pshell.swing.Led(); jLabel29 = new javax.swing.JLabel(); panelHeaterTemp = new ch.psi.pshell.swing.DeviceValuePanel(); panelDatamatrix = new javax.swing.JPanel(); jLabel11 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); textSample = new javax.swing.JTextField(); textType = new javax.swing.JTextField(); panelRight = new javax.swing.JPanel(); panelDetail = new javax.swing.JPanel(); panelDisplayMode = new javax.swing.JPanel(); btViewDewar = new javax.swing.JToggleButton(); btViewRT = new javax.swing.JToggleButton(); panelDevices = new javax.swing.JPanel(); devicesPanel = new ch.psi.mxsc.DevicesPanel(); panelExpert = new javax.swing.JPanel(); checkExpert = new javax.swing.JCheckBox(); buttonCalibrateImage = new javax.swing.JButton(); buttonCalibrateCover = new javax.swing.JButton(); buttonExpertCommands = new javax.swing.JButton(); buttonRecovery = new javax.swing.JButton(); buttonConfig = new javax.swing.JButton(); panelBottom = new javax.swing.JPanel(); jPanel1 = new javax.swing.JPanel(); jScrollPane1 = new javax.swing.JScrollPane(); tableSamples = new javax.swing.JTable(); jPanel4 = new javax.swing.JPanel(); jScrollPane3 = new javax.swing.JScrollPane(); tablePucks = new javax.swing.JTable(); setPreferredSize(new java.awt.Dimension(1030, 530)); setRequestFocusEnabled(false); basePlatePanel.setBorder(javax.swing.BorderFactory.createTitledBorder("Dewar")); panelLegend.setBorder(javax.swing.BorderFactory.createTitledBorder("Legend")); ledLidControlActive2.setForeground(new java.awt.Color(128, 232, 152)); ledLidControlActive2.setLedSize(20); ledLidControlActive1.setForeground(new java.awt.Color(192, 128, 128)); ledLidControlActive1.setLedSize(20); jLabel20.setText("Empty"); jLabel15.setText("Error"); jLabel16.setText("Minispine"); jLabel19.setText("Unipuck"); ledLidControlActive4.setForeground(new java.awt.Color(128, 128, 128)); ledLidControlActive4.setLedSize(20); ledLidControlActive3.setForeground(new java.awt.Color(128, 192, 192)); ledLidControlActive3.setLedSize(20); ledLidControlActive5.setForeground(new java.awt.Color(192, 152, 45)); ledLidControlActive5.setLedSize(20); jLabel23.setText("Offline"); javax.swing.GroupLayout panelLegendLayout = new javax.swing.GroupLayout(panelLegend); panelLegend.setLayout(panelLegendLayout); panelLegendLayout.setHorizontalGroup( panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelLegendLayout.createSequentialGroup() .addContainerGap() .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelLegendLayout.createSequentialGroup() .addComponent(ledLidControlActive1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel15)) .addGroup(panelLegendLayout.createSequentialGroup() .addComponent(ledLidControlActive2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel16)) .addGroup(panelLegendLayout.createSequentialGroup() .addComponent(ledLidControlActive3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel19)) .addGroup(panelLegendLayout.createSequentialGroup() .addComponent(ledLidControlActive4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel20)) .addGroup(panelLegendLayout.createSequentialGroup() .addComponent(ledLidControlActive5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel23))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelLegendLayout.setVerticalGroup( panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelLegendLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLidControlActive4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel20)) .addGap(0, 0, 0) .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLidControlActive3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel19)) .addGap(0, 0, 0) .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLidControlActive2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel16)) .addGap(0, 0, 0) .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLidControlActive1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel15)) .addGap(0, 0, 0) .addGroup(panelLegendLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLidControlActive5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel23))) ); panelDetection.setBorder(javax.swing.BorderFactory.createTitledBorder("Detection")); buttonClearDet.setText("Clear"); buttonClearDet.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonClearDetActionPerformed(evt); } }); buttonPuckDet.setText("Start"); buttonPuckDet.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonPuckDetActionPerformed(evt); } }); javax.swing.GroupLayout panelDetectionLayout = new javax.swing.GroupLayout(panelDetection); panelDetection.setLayout(panelDetectionLayout); panelDetectionLayout.setHorizontalGroup( panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDetectionLayout.createSequentialGroup() .addContainerGap(14, Short.MAX_VALUE) .addGroup(panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(buttonClearDet, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonPuckDet, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap(14, Short.MAX_VALUE)) ); panelDetectionLayout.setVerticalGroup( panelDetectionLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDetectionLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonPuckDet) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonClearDet) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelHexiposi.setBorder(javax.swing.BorderFactory.createTitledBorder("Cover")); panelHexiposi.setPreferredSize(new java.awt.Dimension(112, 153)); buttonDetectCover.setText("Image"); buttonDetectCover.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonDetectCoverActionPerformed(evt); } }); javax.swing.GroupLayout panelHexiposiLayout = new javax.swing.GroupLayout(panelHexiposi); panelHexiposi.setLayout(panelHexiposiLayout); panelHexiposiLayout.setHorizontalGroup( panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelHexiposiLayout.createSequentialGroup() .addContainerGap(9, Short.MAX_VALUE) .addGroup(panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(buttonDetectCover) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(9, Short.MAX_VALUE)) ); panelHexiposiLayout.setVerticalGroup( panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelHexiposiLayout.createSequentialGroup() .addContainerGap(14, Short.MAX_VALUE) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 9, Short.MAX_VALUE) .addComponent(buttonDetectCover) .addContainerGap()) ); panelViewType.setBorder(javax.swing.BorderFactory.createTitledBorder("View")); buttonCamera.setText("Image"); buttonCamera.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCameraActionPerformed(evt); } }); buttonDrawing.setSelected(true); buttonDrawing.setText("Design"); buttonDrawing.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonDrawingActionPerformed(evt); } }); javax.swing.GroupLayout panelViewTypeLayout = new javax.swing.GroupLayout(panelViewType); panelViewType.setLayout(panelViewTypeLayout); panelViewTypeLayout.setHorizontalGroup( panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup() .addContainerGap(8, Short.MAX_VALUE) .addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(buttonDrawing) .addComponent(buttonCamera)) .addContainerGap(8, Short.MAX_VALUE)) ); panelViewTypeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCamera, buttonDrawing}); panelViewTypeLayout.setVerticalGroup( panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelViewTypeLayout.createSequentialGroup() .addContainerGap() .addComponent(buttonCamera) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonDrawing) .addContainerGap()) ); javax.swing.GroupLayout basePlatePanelLayout = new javax.swing.GroupLayout(basePlatePanel); basePlatePanel.setLayout(basePlatePanelLayout); basePlatePanelLayout.setHorizontalGroup( basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup() .addContainerGap() .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) .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)) .addContainerGap()) ); basePlatePanelLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {panelDetection, panelViewType}); basePlatePanelLayout.setVerticalGroup( basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, basePlatePanelLayout.createSequentialGroup() .addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(panelViewType, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelDetection, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelLegend, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelHexiposi, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); basePlatePanelLayout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {panelHexiposi, panelLegend}); panelLN2Level.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Level")); jLabel1.setText("Stop
Filling"); progressLN2.setMaximum(1000); progressLN2.setOrientation(1); jLabel3.setText("Start
Filling"); jLabel2.setText("Pin
Height"); javax.swing.GroupLayout jPanel3Layout = new javax.swing.GroupLayout(jPanel3); jPanel3.setLayout(jPanel3Layout); jPanel3Layout.setHorizontalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(progressLN2, javax.swing.GroupLayout.PREFERRED_SIZE, 30, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jSeparator2) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 35, Short.MAX_VALUE))) .addGroup(jPanel3Layout.createSequentialGroup() .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, 31, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(4, 4, 4) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(jPanel3Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jSeparator1) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))) .addGap(0, 0, 0)) ); jPanel3Layout.setVerticalGroup( jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel3Layout.createSequentialGroup() .addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(progressLN2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel3Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jSeparator1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jSeparator2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(178, 178, 178) .addComponent(jSeparator3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(jLabel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(89, 89, 89))) .addGap(0, 0, 0)) ); javax.swing.GroupLayout panelLN2LevelLayout = new javax.swing.GroupLayout(panelLN2Level); panelLN2Level.setLayout(panelLN2LevelLayout); panelLN2LevelLayout.setHorizontalGroup( panelLN2LevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelLN2LevelLayout.createSequentialGroup() .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0)) ); panelLN2LevelLayout.setVerticalGroup( panelLN2LevelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelLN2LevelLayout.createSequentialGroup() .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); panelBeamlineStatus.setBorder(javax.swing.BorderFactory.createTitledBorder("Beamline Status")); jLabel8.setText("Valve state"); jLabel9.setText("Transfer permitted"); javax.swing.GroupLayout panelBeamlineStatusLayout = new javax.swing.GroupLayout(panelBeamlineStatus); panelBeamlineStatus.setLayout(panelBeamlineStatusLayout); panelBeamlineStatusLayout.setHorizontalGroup( panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelBeamlineStatusLayout.createSequentialGroup() .addContainerGap() .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelBeamlineStatusLayout.createSequentialGroup() .addComponent(led5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel8)) .addGroup(panelBeamlineStatusLayout.createSequentialGroup() .addComponent(led6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel9))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelBeamlineStatusLayout.setVerticalGroup( panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelBeamlineStatusLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(led5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel8)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelBeamlineStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(led6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel9)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelSystemStatus.setBorder(javax.swing.BorderFactory.createTitledBorder("System Status")); jLabel24.setText("Air Pressure"); jLabel25.setText("N2 Pressure"); jLabel26.setText("Local Safety"); jLabell21.setText("Psys Safety"); buttonRelease.setText("Release"); buttonRelease.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonReleaseActionPerformed(evt); } }); labelRoomTemperature.setText("Room Temperature"); labelManualMode.setText("Manual Mode"); jLabel29.setText("Heater"); panelHeaterTemp.setBorder(javax.swing.BorderFactory.createEtchedBorder()); panelHeaterTemp.setDeviceName("rim_heater_temp"); javax.swing.GroupLayout panelSystemStatusLayout = new javax.swing.GroupLayout(panelSystemStatus); panelSystemStatus.setLayout(panelSystemStatusLayout); panelSystemStatusLayout.setHorizontalGroup( panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addGap(10, 10, 10) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ledAirPressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledHeaterOk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledN2Pressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledLocalSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledRoomTemperature, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledPsysSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledManualMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel24) .addComponent(jLabel25) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addComponent(jLabel29) .addGap(18, 18, Short.MAX_VALUE) .addComponent(panelHeaterTemp, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel26) .addComponent(jLabell21) .addComponent(labelRoomTemperature) .addComponent(labelManualMode)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonRelease) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelSystemStatusLayout.setVerticalGroup( panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledManualMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(labelManualMode)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledRoomTemperature, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(labelRoomTemperature)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledHeaterOk, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel29))) .addComponent(panelHeaterTemp, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledAirPressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel24)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledN2Pressure, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel25)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledLocalSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel26)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledPsysSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabell21)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelSystemStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelSystemStatusLayout.createSequentialGroup() .addComponent(buttonRelease) .addGap(0, 0, Short.MAX_VALUE)) .addComponent(filler1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(4, 4, 4)) ); panelDatamatrix.setBorder(javax.swing.BorderFactory.createTitledBorder("Datamatrix")); jLabel11.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel11.setText("Puck:"); jLabel13.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel13.setText("Sample:"); textSample.setEditable(false); textSample.setBackground(new java.awt.Color(214, 217, 223)); textSample.setHorizontalAlignment(javax.swing.JTextField.CENTER); textType.setEditable(false); textType.setBackground(new java.awt.Color(214, 217, 223)); textType.setHorizontalAlignment(javax.swing.JTextField.CENTER); javax.swing.GroupLayout panelDatamatrixLayout = new javax.swing.GroupLayout(panelDatamatrix); panelDatamatrix.setLayout(panelDatamatrixLayout); panelDatamatrixLayout.setHorizontalGroup( panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDatamatrixLayout.createSequentialGroup() .addContainerGap() .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addGroup(panelDatamatrixLayout.createSequentialGroup() .addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(textType, javax.swing.GroupLayout.PREFERRED_SIZE, 90, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(panelDatamatrixLayout.createSequentialGroup() .addComponent(jLabel13) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(textSample))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelDatamatrixLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel11, jLabel13}); panelDatamatrixLayout.setVerticalGroup( panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDatamatrixLayout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel11) .addComponent(textType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(panelDatamatrixLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel13) .addComponent(textSample, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(4, 4, 4)) ); javax.swing.GroupLayout panelStatusLayout = new javax.swing.GroupLayout(panelStatus); panelStatus.setLayout(panelStatusLayout); panelStatusLayout.setHorizontalGroup( panelStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelBeamlineStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelDatamatrix, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelSystemStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); panelStatusLayout.setVerticalGroup( panelStatusLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelStatusLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(panelSystemStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0) .addComponent(panelBeamlineStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0) .addComponent(panelDatamatrix, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelDetail.setBorder(javax.swing.BorderFactory.createTitledBorder("Detail")); panelDetail.setPreferredSize(new java.awt.Dimension(300, 95)); javax.swing.GroupLayout panelDetailLayout = new javax.swing.GroupLayout(panelDetail); panelDetail.setLayout(panelDetailLayout); panelDetailLayout.setHorizontalGroup( panelDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); panelDetailLayout.setVerticalGroup( panelDetailLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 0, Short.MAX_VALUE) ); panelDisplayMode.setBorder(javax.swing.BorderFactory.createTitledBorder("Mode")); btViewDewar.setSelected(true); btViewDewar.setText("Dewar"); btViewDewar.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btViewDewarActionPerformed(evt); } }); btViewRT.setText("Room Temp."); btViewRT.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btViewRTActionPerformed(evt); } }); javax.swing.GroupLayout panelDisplayModeLayout = new javax.swing.GroupLayout(panelDisplayMode); panelDisplayMode.setLayout(panelDisplayModeLayout); panelDisplayModeLayout.setHorizontalGroup( panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelDisplayModeLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btViewDewar) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(btViewRT) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelDisplayModeLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btViewDewar, btViewRT}); panelDisplayModeLayout.setVerticalGroup( panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDisplayModeLayout.createSequentialGroup() .addContainerGap() .addGroup(panelDisplayModeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(btViewDewar) .addComponent(btViewRT)) .addContainerGap()) ); panelDevices.setBorder(javax.swing.BorderFactory.createTitledBorder("Devices")); panelDevices.setPreferredSize(new java.awt.Dimension(300, 282)); devicesPanel.setActive(false); checkExpert.setText("Expert"); checkExpert.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); checkExpert.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { checkExpertActionPerformed(evt); } }); buttonCalibrateImage.setText("Calibrate"); buttonCalibrateImage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCalibrateImageActionPerformed(evt); } }); buttonCalibrateCover.setText("Cover Ref"); buttonCalibrateCover.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCalibrateCoverActionPerformed(evt); } }); buttonExpertCommands.setText("Commands"); buttonExpertCommands.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonExpertCommandsActionPerformed(evt); } }); buttonRecovery.setText("Recovery"); buttonRecovery.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonRecoveryActionPerformed(evt); } }); buttonConfig.setText("Settings"); buttonConfig.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonConfigActionPerformed(evt); } }); javax.swing.GroupLayout panelExpertLayout = new javax.swing.GroupLayout(panelExpert); panelExpert.setLayout(panelExpertLayout); panelExpertLayout.setHorizontalGroup( panelExpertLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelExpertLayout.createSequentialGroup() .addGroup(panelExpertLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(buttonExpertCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonRecovery, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonCalibrateImage, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonCalibrateCover, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonConfig, javax.swing.GroupLayout.PREFERRED_SIZE, 85, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGroup(panelExpertLayout.createSequentialGroup() .addComponent(checkExpert, javax.swing.GroupLayout.PREFERRED_SIZE, 92, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, Short.MAX_VALUE)) ); panelExpertLayout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonCalibrateCover, buttonCalibrateImage, buttonConfig, buttonExpertCommands, buttonRecovery}); panelExpertLayout.setVerticalGroup( panelExpertLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelExpertLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(checkExpert) .addGap(18, 26, Short.MAX_VALUE) .addComponent(buttonExpertCommands) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonRecovery) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonCalibrateImage) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonCalibrateCover) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonConfig) .addGap(0, 0, 0)) ); javax.swing.GroupLayout panelDevicesLayout = new javax.swing.GroupLayout(panelDevices); panelDevices.setLayout(panelDevicesLayout); panelDevicesLayout.setHorizontalGroup( panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDevicesLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(devicesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelExpert, javax.swing.GroupLayout.PREFERRED_SIZE, 93, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelDevicesLayout.setVerticalGroup( panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelDevicesLayout.createSequentialGroup() .addContainerGap(7, Short.MAX_VALUE) .addGroup(panelDevicesLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelExpert, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(devicesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, 242, Short.MAX_VALUE)) .addContainerGap(7, Short.MAX_VALUE)) ); javax.swing.GroupLayout panelRightLayout = new javax.swing.GroupLayout(panelRight); panelRight.setLayout(panelRightLayout); panelRightLayout.setHorizontalGroup( panelRightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRightLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelRightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(panelDetail, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE) .addComponent(panelDisplayMode, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelDevices, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, 276, Short.MAX_VALUE)) .addGap(0, 0, 0)) ); panelRightLayout.setVerticalGroup( panelRightLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRightLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(panelDetail, javax.swing.GroupLayout.DEFAULT_SIZE, 102, Short.MAX_VALUE) .addGap(0, 0, 0) .addComponent(panelDevices, javax.swing.GroupLayout.PREFERRED_SIZE, 280, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0) .addComponent(panelDisplayMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0)) ); javax.swing.GroupLayout panelTopLayout = new javax.swing.GroupLayout(panelTop); panelTop.setLayout(panelTopLayout); panelTopLayout.setHorizontalGroup( panelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelTopLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(panelLN2Level, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelStatus, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(basePlatePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelRight, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 0, 0)) ); panelTopLayout.setVerticalGroup( panelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelTopLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelTopLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelRight, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(basePlatePanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelLN2Level, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelStatus, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(0, 0, 0)) ); panelBottom.setPreferredSize(new java.awt.Dimension(810, 150)); panelBottom.setRequestFocusEnabled(false); jPanel1.setBorder(javax.swing.BorderFactory.createTitledBorder("Samples")); tableSamples.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { }, new String [] { } )); tableSamples.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPane1.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() .addGap(0, 0, 0) .addComponent(jScrollPane1) .addGap(0, 0, 0)) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(jScrollPane1, javax.swing.GroupLayout.DEFAULT_SIZE, 65, Short.MAX_VALUE) .addGap(0, 0, 0)) ); jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Pucks")); tablePucks.setModel(new javax.swing.table.DefaultTableModel( new Object [][] { {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null}, {null, null, null} }, new String [] { "Address", "Status", "Id" } ) { Class[] types = new Class [] { java.lang.String.class, java.lang.String.class, java.lang.String.class }; boolean[] canEdit = new boolean [] { false, false, false }; public Class getColumnClass(int columnIndex) { return types [columnIndex]; } public boolean isCellEditable(int rowIndex, int columnIndex) { return canEdit [columnIndex]; } }); tablePucks.setSelectionMode(javax.swing.ListSelectionModel.SINGLE_SELECTION); jScrollPane3.setViewportView(tablePucks); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(jScrollPane3, javax.swing.GroupLayout.DEFAULT_SIZE, 328, Short.MAX_VALUE) .addGap(0, 0, 0)) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(jScrollPane3, javax.swing.GroupLayout.PREFERRED_SIZE, 0, Short.MAX_VALUE) .addGap(0, 0, 0)) ); javax.swing.GroupLayout panelBottomLayout = new javax.swing.GroupLayout(panelBottom); panelBottom.setLayout(panelBottomLayout); panelBottomLayout.setHorizontalGroup( panelBottomLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, panelBottomLayout.createSequentialGroup() .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) .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(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelTop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 1030, Short.MAX_VALUE) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addComponent(panelTop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(0, 0, 0) .addComponent(panelBottom, javax.swing.GroupLayout.DEFAULT_SIZE, 82, Short.MAX_VALUE) .addGap(1, 1, 1)) ); }// //GEN-END:initComponents private void buttonCameraActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCameraActionPerformed buttonDrawing.setSelected(!buttonCamera.isSelected()); updateViewType(); }//GEN-LAST:event_buttonCameraActionPerformed private void buttonExpertCommandsActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonExpertCommandsActionPerformed try { showCommandsPanel(); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonExpertCommandsActionPerformed //Dialog dlgDetPlot; //Dialog dlgDetText; Dialog dlgDetRenderer; JComponent dlgDetPlotComp; JComponent dlgDetTextComp; JComponent dlgDetRendererComp; private void buttonPuckDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPuckDetActionPerformed try { /* if ((dlgDetPlot == null) || (!dlgDetPlot.isShowing())){ dlgDetPlotComp = new ch.psi.pshell.plot.LinePlotJFree(); ((ch.psi.pshell.plot.LinePlotJFree) dlgDetPlotComp).setTitle(""); dlgDetPlot = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600,400), dlgDetPlotComp); } if ((dlgDetText == null)|| (!dlgDetText.isShowing())){ dlgDetTextComp = new javax.swing.JTextArea(); ((javax.swing.JTextArea)dlgDetTextComp).setEditable(false); dlgDetText = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600,400), dlgDetTextComp); } */ if (!App.isDetached()) { if ((dlgDetRenderer == null) || (!dlgDetRenderer.isShowing())) { dlgDetRendererComp = new Renderer(); ((Renderer) dlgDetRendererComp).setMode(RendererMode.Fit); dlgDetRenderer = SwingUtils.showDialog(getTopLevel(), "Puck Detection", new Dimension(600, 400), dlgDetRendererComp); } } Controller.getInstance().imageDetectPucks(dlgDetPlotComp, dlgDetRendererComp, dlgDetTextComp); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonPuckDetActionPerformed private void buttonClearDetActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonClearDetActionPerformed try { Controller.getInstance().clearImageDetection(); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonClearDetActionPerformed private void checkExpertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkExpertActionPerformed if (checkExpert.isSelected()){ PasswordDialog dlg = new PasswordDialog(getTopLevel(), true, 1234); dlg.setResizable(false); dlg.setLocationRelativeTo(getTopLevel()); dlg.setVisible(true); if (dlg.getResult() == false){ checkExpert.setSelected(false); return; } } setExpertMode(checkExpert.isSelected()); }//GEN-LAST:event_checkExpertActionPerformed private void buttonDrawingActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDrawingActionPerformed buttonCamera.setSelected(!buttonDrawing.isSelected()); updateViewType(); }//GEN-LAST:event_buttonDrawingActionPerformed private void btViewDewarActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btViewDewarActionPerformed btViewRT.setSelected(!btViewDewar.isSelected()); updateViewMode(); }//GEN-LAST:event_btViewDewarActionPerformed private void btViewRTActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_btViewRTActionPerformed btViewDewar.setSelected(!btViewRT.isSelected()); updateViewMode(); }//GEN-LAST:event_btViewRTActionPerformed private void buttonRecoveryActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonRecoveryActionPerformed try { showRecoveryPanel(); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonRecoveryActionPerformed private void buttonCalibrateImageActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCalibrateImageActionPerformed execute("imgproc/CameraCalibration", null, false, true); }//GEN-LAST:event_buttonCalibrateImageActionPerformed private void buttonDetectCoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDetectCoverActionPerformed try { execute("cover_detection_debug=True"); runAsync("imgproc/CoverDetection", null, false).handle((ret, ex) -> { execute("cover_detection_debug=False", true); if (ex != null) { showException((Exception) ex); } else { showMessage("Return", String.valueOf(ret)); } return ret; }); } catch (Exception ex) { showException(ex); } }//GEN-LAST:event_buttonDetectCoverActionPerformed private void buttonCalibrateCoverActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCalibrateCoverActionPerformed execute("imgproc/CoverDetectionCalibration", null, false, true); }//GEN-LAST:event_buttonCalibrateCoverActionPerformed private void buttonConfigActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonConfigActionPerformed this.showSettingsEditor(false); }//GEN-LAST:event_buttonConfigActionPerformed private void buttonReleaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleaseActionPerformed execute("release_safety()", true); }//GEN-LAST:event_buttonReleaseActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables ch.psi.mxsc.BasePlatePanel basePlatePanel; private javax.swing.JToggleButton btViewDewar; private javax.swing.JToggleButton btViewRT; private javax.swing.JButton buttonCalibrateCover; private javax.swing.JButton buttonCalibrateImage; private javax.swing.JToggleButton buttonCamera; private javax.swing.JButton buttonClearDet; private javax.swing.JButton buttonConfig; private javax.swing.JButton buttonDetectCover; private javax.swing.JToggleButton buttonDrawing; private javax.swing.JButton buttonExpertCommands; private javax.swing.JButton buttonPuckDet; private javax.swing.JButton buttonRecovery; private javax.swing.JButton buttonRelease; private javax.swing.JCheckBox checkExpert; private ch.psi.mxsc.DevicesPanel devicesPanel; private javax.swing.Box.Filler filler1; private ch.psi.mxsc.HexiposiPanel hexiposiPanel; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel11; private javax.swing.JLabel jLabel13; private javax.swing.JLabel jLabel15; private javax.swing.JLabel jLabel16; private javax.swing.JLabel jLabel19; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel20; private javax.swing.JLabel jLabel23; private javax.swing.JLabel jLabel24; private javax.swing.JLabel jLabel25; private javax.swing.JLabel jLabel26; private javax.swing.JLabel jLabel29; private javax.swing.JLabel jLabel3; 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.JScrollPane jScrollPane1; private javax.swing.JScrollPane jScrollPane3; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JLabel labelManualMode; private javax.swing.JLabel labelRoomTemperature; private ch.psi.pshell.swing.Led led5; private ch.psi.pshell.swing.Led led6; private ch.psi.pshell.swing.Led ledAirPressure; private ch.psi.pshell.swing.Led ledHeaterOk; private ch.psi.pshell.swing.Led ledLidControlActive1; private ch.psi.pshell.swing.Led ledLidControlActive2; private ch.psi.pshell.swing.Led ledLidControlActive3; private ch.psi.pshell.swing.Led ledLidControlActive4; private ch.psi.pshell.swing.Led ledLidControlActive5; private ch.psi.pshell.swing.Led ledLocalSafety; private ch.psi.pshell.swing.Led ledManualMode; private ch.psi.pshell.swing.Led ledN2Pressure; private ch.psi.pshell.swing.Led ledPsysSafety; private ch.psi.pshell.swing.Led ledRoomTemperature; private javax.swing.JPanel panelBeamlineStatus; private javax.swing.JPanel panelBottom; private javax.swing.JPanel panelDatamatrix; private javax.swing.JPanel panelDetail; private javax.swing.JPanel panelDetection; private javax.swing.JPanel panelDevices; private javax.swing.JPanel panelDisplayMode; private javax.swing.JPanel panelExpert; private ch.psi.pshell.swing.DeviceValuePanel panelHeaterTemp; private javax.swing.JPanel panelHexiposi; private javax.swing.JPanel panelLN2Level; private javax.swing.JPanel panelLegend; private javax.swing.JPanel panelRight; private javax.swing.JPanel panelStatus; private javax.swing.JPanel panelSystemStatus; private javax.swing.JPanel panelTop; private javax.swing.JPanel panelViewType; private javax.swing.JProgressBar progressLN2; private javax.swing.JTable tablePucks; private javax.swing.JTable tableSamples; private javax.swing.JTextField textSample; private javax.swing.JTextField textType; // End of variables declaration//GEN-END:variables }