/* * Copyright (c) 2014 Paul Scherrer Institute. All rights reserved. */ package ch.psi.mxsc; 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.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.logging.Level; import javax.swing.GroupLayout; import javax.swing.ImageIcon; import javax.swing.JComponent; import javax.swing.JLabel; import javax.swing.JPanel; /** * */ public class MainPanel extends Panel { /** Creates new form Panel */ public MainPanel() { initComponents(); getContext().getPluginManager().addDynamicClass(PuckDetection.class); Controller.createInstance(this); basePlatePanel.setMode(BasePlatePanel.Mode.single); labelRoomTemperature.setVisible(false); labeManualMode.setVisible(false); setExpertMode(false); setDefaultDetail(); } @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); } } @Override public void onInitialize(int runCount) { stopTimer(); Controller.getInstance().onInitialize(runCount); basePlatePanel.setDevice((Device) getDevice("BasePlate")); basePlatePanel.getDevice().setSelectable(true); 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("filling_dewar")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateFillingDeware(value); } }); updateFillingDeware(((Device) getDevice("filling_dewar")).take()); ((Device) getDevice("ln2_main_power")).addListener(new DeviceAdapter() { @Override public void onValueChanged(Device device, Object value, Object former) { updateFillingControl(value); } }); updateFillingControl(((Device) getDevice("ln2_main_power")).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()); } catch (Exception ex){ this.getLogger().log(Level.SEVERE,null, ex); } startTimer(10000, 1000); updateCameraView(); } @Override protected void onTimer() { devicesPanel.update(); try{ labelRoomTemperature.setVisible(Controller.getInstance().isRoomTemp()); } catch( Exception ex){ labelRoomTemperature.setVisible(false); } try{ labeManualMode.setVisible(Controller.getInstance().isManualMode()); } catch( Exception ex){ labeManualMode.setVisible(false); } } 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 updateFillingDeware(Object value){ if ((value == null) || !(value instanceof Boolean)){ ledFillingDewar.setColor(Color.BLACK); } else if ((Boolean)value){ ledFillingDewar.setColor(Color.GREEN); } else { ledFillingDewar.setColor(Color.BLACK); } } void updateFillingControl(Object value){ if ((value == null) || !(value instanceof Boolean)){ ledFillingControl.setColor(Color.BLACK); } else if ((Boolean)value){ ledFillingControl.setColor(Color.GREEN); } else { ledFillingControl.setColor(Color.BLACK); } } 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)value){ ledPsysSafety.setColor(Color.GREEN); } else { ledPsysSafety.setColor(Color.RED); } } 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; void updateViewMode(){ try{ if (btViewDewar.isSelected() != viewDewar){ viewDewar = btViewDewar.isSelected(); if (viewDewar){ ((GroupLayout)getLayout()).replace(roomTempPanel, basePlatePanel); } else { if (roomTempPanel == null){ roomTempPanel = new RoomTempBasePlatePanel(); roomTempPanel.setBorder(javax.swing.BorderFactory.createTitledBorder("RT Humidifier")); } ((GroupLayout)getLayout()).replace(basePlatePanel, roomTempPanel); } } } catch (Exception ex) { showException(ex); } } void setExpertMode(boolean expert){ buttonExpertCommands.setVisible(expert); buttonRecovery.setVisible(expert); buttonCalibrateImage.setVisible(expert); devicesPanel.setActive(expert); buttonRelease.setVisible(expert); panelViewType.setVisible(expert); panelDetection.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().loadInitializePlugin(getContext().getSetup().expandPath("{plugins}/Commands.java")); } Plugin recoveryPlugin; void showRecoveryPanel(){ if (recoveryPlugin!=null){ getContext().getPluginManager().unloadPlugin(recoveryPlugin); } recoveryPlugin = getContext().getPluginManager().loadInitializePlugin(getContext().getSetup().expandPath("{plugins}/Recovery.java")); } 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) { panelContext.removeAll(); panelContext.setLayout(new BorderLayout()); //panelContext.setLayout(new GridBagLayout()); panelContext.add(c); updateUI(); } Component getDetail() { return this.getComponent(0); } Dimension getDetailSize(){ return panelContext.getSize(); } /** This method is called from within the constructor to * initialize the form. * WARNING: Do NOT modify this code. The content of this method is * always regenerated by the Form Editor. */ @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { 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(); panelViewType = new javax.swing.JPanel(); buttonCamera = new javax.swing.JToggleButton(); buttonDrawing = new javax.swing.JToggleButton(); jPanel1 = 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(); jPanel2 = new javax.swing.JPanel(); progressWater = new javax.swing.JProgressBar(); jPanel5 = new javax.swing.JPanel(); devicesPanel = new ch.psi.mxsc.DevicesPanel(); checkExpert = new javax.swing.JCheckBox(); buttonExpertCommands = new javax.swing.JButton(); buttonRecovery = new javax.swing.JButton(); buttonCalibrateImage = new javax.swing.JButton(); jPanel4 = new javax.swing.JPanel(); ledFillingControl = new ch.psi.pshell.swing.Led(); ledFillingDewar = new ch.psi.pshell.swing.Led(); jLabel4 = new javax.swing.JLabel(); jLabel5 = new javax.swing.JLabel(); deviceValuePanel1 = new ch.psi.pshell.swing.DeviceValuePanel(); jLabel14 = new javax.swing.JLabel(); labelRoomTemperature = new javax.swing.JLabel(); jPanel7 = 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(); jPanel8 = new javax.swing.JPanel(); jLabel11 = new javax.swing.JLabel(); jLabel13 = new javax.swing.JLabel(); textSample = new javax.swing.JTextField(); textType = new javax.swing.JTextField(); jPanel10 = new javax.swing.JPanel(); buttonInitHexiposi1 = new javax.swing.JButton(); jPanel13 = 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, 0), new java.awt.Dimension(0, 0), new java.awt.Dimension(32767, 32767)); labeManualMode = new javax.swing.JLabel(); jPanel12 = new javax.swing.JPanel(); btViewDewar = new javax.swing.JToggleButton(); btViewRT = new javax.swing.JToggleButton(); panelContext = new javax.swing.JPanel(); 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(12, 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(12, 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")); 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() .addGap(0, 4, Short.MAX_VALUE) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGap(0, 4, Short.MAX_VALUE)) ); panelHexiposiLayout.setVerticalGroup( panelHexiposiLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelHexiposiLayout.createSequentialGroup() .addGap(0, 24, Short.MAX_VALUE) .addComponent(hexiposiPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(35, Short.MAX_VALUE)) ); 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("Drawing"); 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() .addGap(2, 2, 2) .addGroup(panelViewTypeLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(buttonCamera, javax.swing.GroupLayout.PREFERRED_SIZE, 71, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonDrawing)) .addGap(2, 2, 2)) ); 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(panelLegend, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(panelDetection, 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) .addGroup(basePlatePanelLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(panelViewType, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .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.HORIZONTAL, new java.awt.Component[] {panelDetection, panelHexiposi, panelLegend, 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}); jPanel1.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, 33, 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.DEFAULT_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)))) .addContainerGap()) ); 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(65, 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, 61, 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 jPanel1Layout = new javax.swing.GroupLayout(jPanel1); jPanel1.setLayout(jPanel1Layout); jPanel1Layout.setHorizontalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); jPanel1Layout.setVerticalGroup( jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel1Layout.createSequentialGroup() .addContainerGap() .addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); jPanel2.setBorder(javax.swing.BorderFactory.createTitledBorder("Water Level")); progressWater.setMaximum(1000); progressWater.setOrientation(1); javax.swing.GroupLayout jPanel2Layout = new javax.swing.GroupLayout(jPanel2); jPanel2.setLayout(jPanel2Layout); jPanel2Layout.setHorizontalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap(31, Short.MAX_VALUE) .addComponent(progressWater, javax.swing.GroupLayout.PREFERRED_SIZE, 33, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(32, Short.MAX_VALUE)) ); jPanel2Layout.setVerticalGroup( jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel2Layout.createSequentialGroup() .addContainerGap() .addComponent(progressWater, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Devices")); jPanel5.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); } }); 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); } }); buttonCalibrateImage.setText("Calibrate"); buttonCalibrateImage.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCalibrateImageActionPerformed(evt); } }); javax.swing.GroupLayout jPanel5Layout = new javax.swing.GroupLayout(jPanel5); jPanel5.setLayout(jPanel5Layout); jPanel5Layout.setHorizontalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addContainerGap() .addComponent(devicesPanel, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 81, Short.MAX_VALUE) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(buttonExpertCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(checkExpert, 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)) .addContainerGap()) ); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel5Layout.createSequentialGroup() .addComponent(devicesPanel, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGap(9, 9, 9)) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(17, 17, 17) .addComponent(checkExpert) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonExpertCommands) .addGap(18, 18, 18) .addComponent(buttonRecovery) .addGap(18, 18, 18) .addComponent(buttonCalibrateImage) .addGap(49, 49, 49)) ); jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("LN2 Control")); jLabel4.setText("Control Active"); jLabel5.setText("Currently Filling"); deviceValuePanel1.setBorder(javax.swing.BorderFactory.createEtchedBorder()); deviceValuePanel1.setDeviceName("rim_heater_temp"); jLabel14.setText("Temperature:"); labelRoomTemperature.setForeground(java.awt.Color.orange); labelRoomTemperature.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labelRoomTemperature.setText("Room Temperature"); javax.swing.GroupLayout jPanel4Layout = new javax.swing.GroupLayout(jPanel4); jPanel4.setLayout(jPanel4Layout); jPanel4Layout.setHorizontalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(labelRoomTemperature, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel4Layout.createSequentialGroup() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addComponent(ledFillingDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addComponent(jLabel14) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(deviceValuePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, 50, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel5))) .addGroup(jPanel4Layout.createSequentialGroup() .addComponent(ledFillingControl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jLabel4))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)))) ); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledFillingControl, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel4)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(ledFillingDewar, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel5)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel14) .addComponent(deviceValuePanel1, 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(labelRoomTemperature) .addContainerGap()) ); jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Beamline Status")); jLabel8.setText("Valve state"); jLabel9.setText("Transfer permitted"); javax.swing.GroupLayout jPanel7Layout = new javax.swing.GroupLayout(jPanel7); jPanel7.setLayout(jPanel7Layout); jPanel7Layout.setHorizontalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.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(jPanel7Layout.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)) ); jPanel7Layout.setVerticalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel7Layout.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(jPanel7Layout.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)) .addGap(0, 0, 0)) ); jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder("Datamatrix")); jLabel11.setText("Puck:"); jLabel13.setText("Sample:"); textSample.setEditable(false); textSample.setBackground(new java.awt.Color(214, 217, 223)); textType.setEditable(false); textType.setBackground(new java.awt.Color(214, 217, 223)); javax.swing.GroupLayout jPanel8Layout = new javax.swing.GroupLayout(jPanel8); jPanel8.setLayout(jPanel8Layout); jPanel8Layout.setHorizontalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(jLabel13) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(textSample, javax.swing.GroupLayout.DEFAULT_SIZE, 59, Short.MAX_VALUE)) .addGroup(jPanel8Layout.createSequentialGroup() .addComponent(jLabel11) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(textType))) .addContainerGap()) ); jPanel8Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel11, jLabel13}); jPanel8Layout.setVerticalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addContainerGap(29, Short.MAX_VALUE) .addGroup(jPanel8Layout.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)) .addGap(18, 18, 18) .addGroup(jPanel8Layout.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)) .addContainerGap(30, Short.MAX_VALUE)) ); jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Sample Load")); buttonInitHexiposi1.setText("Start"); buttonInitHexiposi1.setEnabled(false); buttonInitHexiposi1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonInitHexiposi1ActionPerformed(evt); } }); javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10); jPanel10.setLayout(jPanel10Layout); jPanel10Layout.setHorizontalGroup( jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel10Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonInitHexiposi1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel10Layout.setVerticalGroup( jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel10Layout.createSequentialGroup() .addContainerGap(23, Short.MAX_VALUE) .addComponent(buttonInitHexiposi1, javax.swing.GroupLayout.PREFERRED_SIZE, 70, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(24, Short.MAX_VALUE)) ); jPanel13.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); } }); labeManualMode.setForeground(java.awt.Color.orange); labeManualMode.setHorizontalAlignment(javax.swing.SwingConstants.CENTER); labeManualMode.setText("Manual Mode"); javax.swing.GroupLayout jPanel13Layout = new javax.swing.GroupLayout(jPanel13); jPanel13.setLayout(jPanel13Layout); jPanel13Layout.setHorizontalGroup( jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ledAirPressure, 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(ledPsysSafety, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jLabel24) .addComponent(jLabel25) .addComponent(jLabel26) .addComponent(jLabell21)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(labeManualMode) .addComponent(buttonRelease)) .addComponent(filler1, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 80, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); jPanel13Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonRelease, labeManualMode}); jPanel13Layout.setVerticalGroup( jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createSequentialGroup() .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel13Layout.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))) .addGroup(jPanel13Layout.createSequentialGroup() .addGap(20, 20, 20) .addComponent(filler1, javax.swing.GroupLayout.PREFERRED_SIZE, 11, javax.swing.GroupLayout.PREFERRED_SIZE))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel13Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel13Layout.createSequentialGroup() .addGroup(jPanel13Layout.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(jPanel13Layout.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(jPanel13Layout.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))) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel13Layout.createSequentialGroup() .addComponent(labeManualMode) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(buttonRelease)))) ); jPanel12.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("RT"); btViewRT.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { btViewRTActionPerformed(evt); } }); javax.swing.GroupLayout jPanel12Layout = new javax.swing.GroupLayout(jPanel12); jPanel12.setLayout(jPanel12Layout); jPanel12Layout.setHorizontalGroup( jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel12Layout.createSequentialGroup() .addContainerGap(32, Short.MAX_VALUE) .addGroup(jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(btViewDewar) .addComponent(btViewRT)) .addContainerGap(33, Short.MAX_VALUE)) ); jPanel12Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {btViewDewar, btViewRT}); jPanel12Layout.setVerticalGroup( jPanel12Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel12Layout.createSequentialGroup() .addContainerGap(18, Short.MAX_VALUE) .addComponent(btViewDewar, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(btViewRT, javax.swing.GroupLayout.PREFERRED_SIZE, 35, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(18, Short.MAX_VALUE)) ); panelContext.setBorder(javax.swing.BorderFactory.createTitledBorder("Detail")); panelContext.setPreferredSize(new java.awt.Dimension(300, 95)); javax.swing.GroupLayout panelContextLayout = new javax.swing.GroupLayout(panelContext); panelContext.setLayout(panelContextLayout); panelContextLayout.setHorizontalGroup( panelContextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 298, Short.MAX_VALUE) ); panelContextLayout.setVerticalGroup( panelContextLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGap(0, 204, Short.MAX_VALUE) ); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(jPanel1, 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) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel5, 310, 310, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(panelContext, javax.swing.GroupLayout.PREFERRED_SIZE, 310, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(layout.createSequentialGroup() .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel12, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel10, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jPanel5, panelContext}); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(javax.swing.GroupLayout.Alignment.LEADING, layout.createSequentialGroup() .addComponent(panelContext, javax.swing.GroupLayout.DEFAULT_SIZE, 227, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel5, javax.swing.GroupLayout.DEFAULT_SIZE, 295, Short.MAX_VALUE)) .addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel1, javax.swing.GroupLayout.Alignment.LEADING, 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)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel7, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel13, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(jPanel8, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel12, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addComponent(jPanel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); layout.linkSize(javax.swing.SwingConstants.VERTICAL, new java.awt.Component[] {jPanel10, jPanel12, jPanel13, jPanel4, jPanel7, jPanel8}); }//
//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 buttonReleaseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonReleaseActionPerformed execute("release_safety()", true); }//GEN-LAST:event_buttonReleaseActionPerformed private void buttonInitHexiposi1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonInitHexiposi1ActionPerformed // TODO add your handling code here: }//GEN-LAST:event_buttonInitHexiposi1ActionPerformed private void checkExpertActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_checkExpertActionPerformed 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 // Variables declaration - do not modify//GEN-BEGIN:variables private ch.psi.mxsc.BasePlatePanel basePlatePanel; private javax.swing.JToggleButton btViewDewar; private javax.swing.JToggleButton btViewRT; private javax.swing.JButton buttonCalibrateImage; private javax.swing.JToggleButton buttonCamera; private javax.swing.JButton buttonClearDet; private javax.swing.JToggleButton buttonDrawing; private javax.swing.JButton buttonExpertCommands; private javax.swing.JButton buttonInitHexiposi1; private javax.swing.JButton buttonPuckDet; private javax.swing.JButton buttonRecovery; private javax.swing.JButton buttonRelease; private javax.swing.JCheckBox checkExpert; private ch.psi.pshell.swing.DeviceValuePanel deviceValuePanel1; 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 jLabel14; 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 jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JLabel jLabell21; private javax.swing.JPanel jPanel1; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel12; private javax.swing.JPanel jPanel13; private javax.swing.JPanel jPanel2; private javax.swing.JPanel jPanel3; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JSeparator jSeparator1; private javax.swing.JSeparator jSeparator2; private javax.swing.JSeparator jSeparator3; private javax.swing.JLabel labeManualMode; 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 ledFillingControl; private ch.psi.pshell.swing.Led ledFillingDewar; 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 ledN2Pressure; private ch.psi.pshell.swing.Led ledPsysSafety; private javax.swing.JPanel panelContext; private javax.swing.JPanel panelDetection; private javax.swing.JPanel panelHexiposi; private javax.swing.JPanel panelLegend; private javax.swing.JPanel panelViewType; private javax.swing.JProgressBar progressLN2; private javax.swing.JProgressBar progressWater; private javax.swing.JTextField textSample; private javax.swing.JTextField textType; // End of variables declaration//GEN-END:variables }