import ch.psi.pshell.core.Context; import ch.psi.pshell.device.Device; import ch.psi.pshell.device.DeviceAdapter; import ch.psi.pshell.device.DeviceListener; import ch.psi.pshell.device.GenericDevice; import ch.psi.pshell.imaging.MjpegSource; import ch.psi.pshell.imaging.RendererMode; 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.Color; import java.awt.Component; import java.util.logging.Level; import java.util.logging.Logger; import java.util.Map; import javax.swing.DefaultComboBoxModel; import javax.swing.ImageIcon; import javax.swing.JButton; import javax.swing.JSpinner; import javax.swing.JTextField; /** * */ public class RobotBernina extends Panel { volatile boolean updatingRobotControls; volatile boolean moving; volatile String currentCamera; public RobotBernina() { initComponents(); ((JSpinner.DefaultEditor)spinnerSpeed.getEditor()).getTextField().setHorizontalAlignment(JTextField.CENTER); renderer.setMode(RendererMode.Fit); updateCameraControls(); } //Overridable callbacks @Override public void onInitialize(int runCount) { updateCameraControls(); DefaultComboBoxModel model = new DefaultComboBoxModel(); renderer.setDeviceName(null); for (GenericDevice dev : Context.getInstance().getDevicePool().getAllDevices(MjpegSource.class)){ MjpegSource camera =(MjpegSource) dev; model.addElement(camera.getName()); } model.addElement(""); model.setSelectedItem(null); comboCameras.setModel(model); currentCamera = null; comboCameras.requestFocus(); } @Override public void onStateChange(State state, State former) { if (state.isInitialized()){ GenericDevice robot = getDevice("robot"); if (robot!=null){ robot.addListener(robotListener); } } for (Component c:SwingUtils.getComponentsByType(panelCommands, Component.class)){ c.setEnabled(state.isReady()); } } @Override public void onExecutedFile(String fileName, Object result) { } @Override protected void onTimer() { } @Override protected void onLoaded() { } @Override protected void onUnloaded() { } //Invoked by 'update()' to update components in the event thread @Override protected void doUpdate() { } void updateCameraControls(){ boolean isCameraSelected = (currentCamera!=null); boolean enabled = isCameraSelected && getState().isNormal() && !moving; for (Component button : SwingUtils.getComponentsByType(panelControls, JButton.class)){ button.setEnabled(enabled); } } protected void evalCmd(String cmd){ evalCmd(cmd, false); } protected void evalCmd(String cmd, boolean background){ try{ this.evalAsync(cmd, background).handle((ret, ex) -> { if (ex != null){ showException((Exception)ex); } return ret; }); } catch (Exception ex) { showException(ex); } } final DeviceListener robotListener = new DeviceAdapter() { @Override public void onStateChanged(Device device, State state, State former) { boolean enabled = state.isNormal(); spinnerSpeed.setEnabled(enabled); buttonAbort.setEnabled(enabled); if (!enabled){ buttonEnable.setEnabled(enabled); buttonDisable.setEnabled(enabled); butonStop.setEnabled(enabled); buttonPause.setEnabled(enabled); buttonResume.setEnabled(enabled); } } @Override public void onCacheChanged(Device device, Object value, Object former, long timestamp, boolean valueChange) { updatingRobotControls = true; try{ Boolean powered = null; Boolean empty = null; Boolean settled = null; Boolean moving = null; Boolean open = null; Integer speed = null; String task = null; String mode = null; String position = null; if ((value != null) && (value instanceof Map)) { Map status = (Map) value; try { powered = (Boolean) status.get("powered"); } catch (Exception ex) { } try { empty = (Boolean) status.get("empty"); } catch (Exception ex) { } try { settled = (Boolean) status.get("settled"); } catch (Exception ex) { } try { open = (Boolean) status.get("open"); } catch (Exception ex) { } try { speed = (Integer) status.get("speed"); } catch (Exception ex) { } try { position = (String) status.get("pos"); if (position==null){ position = ""; } } catch (Exception ex) { } try { task = ((status.containsKey("task")) && (status.get("task") == null)) ? "" : ((String) status.get("task")).trim(); } catch (Exception ex) { System.out.println(ex); ex.printStackTrace(); } try { mode = ((String) status.get("mode")).trim(); } catch (Exception ex) { } try { moving = Boolean.FALSE.equals(settled) || Boolean.FALSE.equals(empty); } catch (Exception ex) { } } boolean remote = mode.equals("remote"); boolean enabled = Boolean.TRUE.equals(powered); buttonEnable.setEnabled((powered != null) && (powered == false)); buttonDisable.setEnabled(enabled); butonStop.setEnabled(remote && Boolean.TRUE.equals(moving)); buttonPause.setEnabled(remote && enabled && Boolean.TRUE.equals(moving) && Boolean.FALSE.equals(settled)); buttonResume.setEnabled(remote && enabled && Boolean.TRUE.equals(moving) && Boolean.TRUE.equals(settled)); ledPowered.setColor((powered == null) ? Color.GRAY : (powered ? Color.YELLOW : Color.DARK_GRAY)); ledEmpty.setColor((empty == null) ? Color.GRAY : (empty ? Color.GREEN : Color.YELLOW)); ledSettled.setColor((settled == null) ? Color.GRAY : (settled ? Color.GREEN : Color.YELLOW)); ledOpen.setColor((open == null) ? Color.GRAY : (open ? Color.GREEN : Color.DARK_GRAY)); ledMoving.setColor((moving == null) ? Color.GRAY : (moving ? Color.YELLOW : Color.DARK_GRAY)); textTask.setText((task == null) ? "" : task); ledTask.setColor((task == null) ? Color.GRAY : (task.isEmpty() ? Color.DARK_GRAY : Color.YELLOW)); textPosition.setText((position == null) ? "" : position); ledPosition.setColor((position == null) ? Color.GRAY : (position.isEmpty() ? Color.DARK_GRAY : Color.GREEN)); //buttonAbort.setEnabled(!textTask.getText().isEmpty()); spinnerSpeed.setEnabled(speed != null); if (speed == null) { spinnerSpeed.setValue(0); } else { spinnerSpeed.setValue(speed); } ledMode.setColor((mode == null) ? Color.BLACK : (remote ? Color.GREEN : Color.YELLOW)); textMode.setText((mode == null) ? "" : mode); } finally{ updatingRobotControls = false; } } }; //Cameras void selectCamera(String name){ renderer.clear(); currentCamera = ((name == null)||(name.isBlank()))? null : name; renderer.setDeviceName(currentCamera); updateCameraControls(); } void move(String direction){ try { moving = true; updateCameraControls(); String camera = comboCameras.getSelectedItem().toString(); this.evalAsync("axis_move(" + camera + ", '" + direction + "')", true).handle((ret,ex)->{ if (ex!=null){ getLogger().log(Level.WARNING, null, ex); } moving = false; updateCameraControls(); return ret; }); } catch (Context.ContextStateException ex) { getLogger().log(Level.SEVERE, null, ex); moving = false; updateCameraControls(); } } void zoom(int steps){ try { moving = true; updateCameraControls(); String camera = comboCameras.getSelectedItem().toString(); this.evalAsync("axis_rzoom(" + camera + ", " + steps + ")", true).handle((ret,ex)->{ if (ex!=null){ getLogger().log(Level.WARNING, null, ex); } moving = false; updateCameraControls(); return ret; }); } catch (Context.ContextStateException ex) { getLogger().log(Level.SEVERE, null, ex); moving = false; updateCameraControls(); } } ImageIcon getIcon(String name) { ImageIcon ret = null; try { ret = new ImageIcon(ch.psi.pshell.ui.App.class.getResource("/ch/psi/pshell/ui/" + name + ".png")); if (ch.psi.utils.swing.MainFrame.isDark()) { try { ret = new ImageIcon(ch.psi.pshell.ui.App.class.getResource("/ch/psi/pshell/ui/dark/" + name + ".png")); } catch (Exception e) { } } } catch (Exception ex) { ex.printStackTrace(); } return ret; } @SuppressWarnings("unchecked") // //GEN-BEGIN:initComponents private void initComponents() { panelCommands = new javax.swing.JPanel(); movePark = new javax.swing.JButton(); moveHome = new javax.swing.JButton(); buttonTweakX = new javax.swing.JButton(); spinnerOffsetX = new javax.swing.JSpinner(); buttonTweakX1 = new javax.swing.JButton(); spinnerOffsetY = new javax.swing.JSpinner(); panelRobot = new javax.swing.JPanel(); deviceStatePanel1 = new ch.psi.pshell.swing.DeviceStatePanel(); jPanel4 = new javax.swing.JPanel(); jLabel3 = new javax.swing.JLabel(); ledSettled = new ch.psi.pshell.swing.Led(); jLabel4 = new javax.swing.JLabel(); ledEmpty = new ch.psi.pshell.swing.Led(); textTask = new javax.swing.JTextField(); jLabel6 = new javax.swing.JLabel(); textMode = new javax.swing.JTextField(); buttonAbort = new javax.swing.JButton(); jLabel8 = new javax.swing.JLabel(); ledTask = new ch.psi.pshell.swing.Led(); ledMode = new ch.psi.pshell.swing.Led(); textPosition = new javax.swing.JTextField(); ledPosition = new ch.psi.pshell.swing.Led(); jLabel9 = new javax.swing.JLabel(); jPanel5 = new javax.swing.JPanel(); jLabel2 = new javax.swing.JLabel(); spinnerSpeed = new ch.psi.utils.swing.HorizontalSpinner(); jLabel7 = new javax.swing.JLabel(); ledMoving = new ch.psi.pshell.swing.Led(); panelMotionCtr = new javax.swing.JPanel(); butonStop = new javax.swing.JButton(); buttonResume = new javax.swing.JButton(); buttonPause = new javax.swing.JButton(); jPanel6 = new javax.swing.JPanel(); ledPowered = new ch.psi.pshell.swing.Led(); jLabel1 = new javax.swing.JLabel(); panelPowerCtr = new javax.swing.JPanel(); buttonDisable = new javax.swing.JButton(); buttonEnable = new javax.swing.JButton(); jPanel7 = new javax.swing.JPanel(); ledOpen = new ch.psi.pshell.swing.Led(); jLabel5 = new javax.swing.JLabel(); panelPowerCtr1 = new javax.swing.JPanel(); buttonClose = new javax.swing.JButton(); buttonOpen = new javax.swing.JButton(); panelCameras = new javax.swing.JPanel(); renderer = new ch.psi.pshell.imaging.Renderer(); panelControls = new javax.swing.JPanel(); jPanel8 = new javax.swing.JPanel(); buttonMoveLeft = new javax.swing.JButton(); buttonMoveDLeft = new javax.swing.JButton(); buttonMoveDRight = new javax.swing.JButton(); buttonMoveRight = new javax.swing.JButton(); buttonMoveUReight = new javax.swing.JButton(); buttonMoveHome = new javax.swing.JButton(); buttonMoveDown = new javax.swing.JButton(); buttonMoveULeft = new javax.swing.JButton(); buttonMoveUp = new javax.swing.JButton(); jPanel9 = new javax.swing.JPanel(); buttonZoomOut = new javax.swing.JButton(); buttonZooHome = new javax.swing.JButton(); buttonZoomIn = new javax.swing.JButton(); jPanel10 = new javax.swing.JPanel(); comboCameras = new javax.swing.JComboBox<>(); panelCommands.setBorder(javax.swing.BorderFactory.createTitledBorder("Commands")); movePark.setText("Move to Park"); movePark.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveParkActionPerformed(evt); } }); moveHome.setText("Move to Home"); moveHome.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { moveHomeActionPerformed(evt); } }); buttonTweakX.setText("Tweak X"); buttonTweakX.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonTweakXActionPerformed(evt); } }); spinnerOffsetX.setModel(new javax.swing.SpinnerNumberModel(1.0d, -10.0d, 10.0d, 1.0d)); buttonTweakX1.setText("Tweak Y"); buttonTweakX1.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonTweakX1ActionPerformed(evt); } }); spinnerOffsetY.setModel(new javax.swing.SpinnerNumberModel(1.0d, -10.0d, 10.0d, 1.0d)); javax.swing.GroupLayout panelCommandsLayout = new javax.swing.GroupLayout(panelCommands); panelCommands.setLayout(panelCommandsLayout); panelCommandsLayout.setHorizontalGroup( panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelCommandsLayout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(movePark, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(moveHome, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(panelCommandsLayout.createSequentialGroup() .addComponent(buttonTweakX, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerOffsetX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGroup(panelCommandsLayout.createSequentialGroup() .addComponent(buttonTweakX1, javax.swing.GroupLayout.PREFERRED_SIZE, 138, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(spinnerOffsetY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelCommandsLayout.setVerticalGroup( panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelCommandsLayout.createSequentialGroup() .addContainerGap() .addComponent(movePark) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(moveHome) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonTweakX) .addComponent(spinnerOffsetX, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(panelCommandsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonTweakX1) .addComponent(spinnerOffsetY, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); panelRobot.setBorder(javax.swing.BorderFactory.createTitledBorder("Robot")); deviceStatePanel1.setDeviceName("robot"); jPanel4.setBorder(javax.swing.BorderFactory.createTitledBorder("Status")); jLabel3.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel3.setText("Settled:"); ledSettled.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N jLabel4.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel4.setText("Empty:"); ledEmpty.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N textTask.setEditable(false); textTask.setHorizontalAlignment(javax.swing.JTextField.CENTER); jLabel6.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel6.setText("Mode:"); textMode.setEditable(false); textMode.setHorizontalAlignment(javax.swing.JTextField.CENTER); buttonAbort.setText("Abort"); buttonAbort.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonAbortActionPerformed(evt); } }); jLabel8.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel8.setText("Task:"); ledTask.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N ledMode.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N textPosition.setEditable(false); textPosition.setHorizontalAlignment(javax.swing.JTextField.CENTER); ledPosition.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N jLabel9.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel9.setText("Position:"); 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(jLabel3) .addComponent(jLabel4) .addComponent(jLabel6) .addComponent(jLabel8) .addComponent(jLabel9)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel4Layout.createSequentialGroup() .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ledTask, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(ledEmpty, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledSettled, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(ledPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(textTask) .addComponent(textPosition))) .addGroup(jPanel4Layout.createSequentialGroup() .addComponent(ledMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(textMode))) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonAbort) .addContainerGap()) ); jPanel4Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel3, jLabel4, jLabel6, jLabel8, jLabel9}); jPanel4Layout.setVerticalGroup( jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel4Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel3) .addComponent(ledSettled, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel4) .addComponent(ledEmpty, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(textMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(ledMode, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(jLabel6)) .addGap(2, 2, 2) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(buttonAbort) .addComponent(jLabel8) .addComponent(ledTask, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(textTask, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2) .addGroup(jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel9) .addComponent(ledPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(textPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2)) ); jPanel5.setBorder(javax.swing.BorderFactory.createTitledBorder("Motion")); jLabel2.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel2.setText("Speed:"); spinnerSpeed.setModel(new javax.swing.SpinnerNumberModel(10, null, 100, 1)); spinnerSpeed.addChangeListener(new javax.swing.event.ChangeListener() { public void stateChanged(javax.swing.event.ChangeEvent evt) { spinnerSpeedStateChanged(evt); } }); jLabel7.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel7.setText("Moving:"); ledMoving.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N butonStop.setIcon(new javax.swing.ImageIcon(App.class.getResource("/ch/psi/pshell/ui/Stop.png"))); butonStop.setText(" "); butonStop.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); butonStop.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { butonStopActionPerformed(evt); } }); buttonResume.setIcon(new javax.swing.ImageIcon(App.class.getResource("/ch/psi/pshell/ui/Play.png"))); buttonResume.setText(" "); buttonResume.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); buttonResume.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonResumeActionPerformed(evt); } }); buttonPause.setIcon(new javax.swing.ImageIcon(App.class.getResource("/ch/psi/pshell/ui/Pause.png"))); buttonPause.setText(" "); buttonPause.setHorizontalTextPosition(javax.swing.SwingConstants.CENTER); buttonPause.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonPauseActionPerformed(evt); } }); javax.swing.GroupLayout panelMotionCtrLayout = new javax.swing.GroupLayout(panelMotionCtr); panelMotionCtr.setLayout(panelMotionCtrLayout); panelMotionCtrLayout.setHorizontalGroup( panelMotionCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelMotionCtrLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(butonStop, javax.swing.GroupLayout.DEFAULT_SIZE, 45, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonPause, javax.swing.GroupLayout.DEFAULT_SIZE, 46, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonResume, javax.swing.GroupLayout.DEFAULT_SIZE, 47, Short.MAX_VALUE) .addGap(0, 0, 0)) ); panelMotionCtrLayout.setVerticalGroup( panelMotionCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelMotionCtrLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelMotionCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(butonStop, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonPause, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonResume, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addGap(0, 0, 0)) ); 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() .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addComponent(jLabel7) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(ledMoving, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(jLabel2)) .addGap(14, 14, 14) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(panelMotionCtr, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(spinnerSpeed)) .addContainerGap()) ); jPanel5Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel2, jLabel7}); jPanel5Layout.setVerticalGroup( jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel5Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel7) .addComponent(ledMoving, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(panelMotionCtr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel5Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(jLabel2) .addComponent(spinnerSpeed, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2)) ); jPanel6.setBorder(javax.swing.BorderFactory.createTitledBorder("Power")); ledPowered.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N jLabel1.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel1.setText("Powered:"); buttonDisable.setText("Disable"); buttonDisable.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonDisableActionPerformed(evt); } }); buttonEnable.setText("Enable"); buttonEnable.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonEnableActionPerformed(evt); } }); javax.swing.GroupLayout panelPowerCtrLayout = new javax.swing.GroupLayout(panelPowerCtr); panelPowerCtr.setLayout(panelPowerCtrLayout); panelPowerCtrLayout.setHorizontalGroup( panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPowerCtrLayout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(buttonEnable) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE) .addComponent(buttonDisable)) ); panelPowerCtrLayout.setVerticalGroup( panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPowerCtrLayout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelPowerCtrLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(buttonDisable, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonEnable)) .addGap(0, 0, 0)) ); javax.swing.GroupLayout jPanel6Layout = new javax.swing.GroupLayout(jPanel6); jPanel6.setLayout(jPanel6Layout); jPanel6Layout.setHorizontalGroup( jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addContainerGap() .addComponent(jLabel1) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(ledPowered, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelPowerCtr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel6Layout.setVerticalGroup( jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel6Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel6Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel1) .addComponent(ledPowered, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(panelPowerCtr, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2)) ); jPanel7.setBorder(javax.swing.BorderFactory.createTitledBorder("Tool")); ledOpen.setFont(new java.awt.Font("SansSerif", 0, 18)); // NOI18N jLabel5.setHorizontalAlignment(javax.swing.SwingConstants.TRAILING); jLabel5.setText("Open:"); buttonClose.setText(" Close "); buttonClose.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonCloseActionPerformed(evt); } }); buttonOpen.setText(" Open "); buttonOpen.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonOpenActionPerformed(evt); } }); javax.swing.GroupLayout panelPowerCtr1Layout = new javax.swing.GroupLayout(panelPowerCtr1); panelPowerCtr1.setLayout(panelPowerCtr1Layout); panelPowerCtr1Layout.setHorizontalGroup( panelPowerCtr1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPowerCtr1Layout.createSequentialGroup() .addGap(0, 0, 0) .addComponent(buttonOpen) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED, 18, Short.MAX_VALUE) .addComponent(buttonClose)) ); panelPowerCtr1Layout.setVerticalGroup( panelPowerCtr1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelPowerCtr1Layout.createSequentialGroup() .addGap(0, 0, 0) .addGroup(panelPowerCtr1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(buttonClose, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonOpen)) .addGap(0, 0, 0)) ); 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() .addComponent(jLabel5, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(ledOpen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelPowerCtr1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel7Layout.setVerticalGroup( jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel7Layout.createSequentialGroup() .addGap(4, 4, 4) .addGroup(jPanel7Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.CENTER) .addComponent(jLabel5) .addComponent(ledOpen, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(panelPowerCtr1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addGap(2, 2, 2)) ); javax.swing.GroupLayout panelRobotLayout = new javax.swing.GroupLayout(panelRobot); panelRobot.setLayout(panelRobotLayout); panelRobotLayout.setHorizontalGroup( panelRobotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRobotLayout.createSequentialGroup() .addContainerGap() .addGroup(panelRobotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel6, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel5, 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)) .addContainerGap()) ); panelRobotLayout.setVerticalGroup( panelRobotLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelRobotLayout.createSequentialGroup() .addComponent(jPanel6, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel7, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel5, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(deviceStatePanel1, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); panelCameras.setBorder(javax.swing.BorderFactory.createTitledBorder("Camera")); panelCameras.setLayout(new java.awt.BorderLayout()); panelCameras.add(renderer, java.awt.BorderLayout.CENTER); jPanel8.setBorder(javax.swing.BorderFactory.createTitledBorder("Move")); buttonMoveLeft.setIcon(getIcon("arrows/Left")); buttonMoveLeft.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveLeftActionPerformed(evt); } }); buttonMoveDLeft.setIcon(getIcon("arrows/DLeft")); buttonMoveDLeft.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveDLeftActionPerformed(evt); } }); buttonMoveDRight.setIcon(getIcon("arrows/DRight")); buttonMoveDRight.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveDRightActionPerformed(evt); } }); buttonMoveRight.setIcon(getIcon("arrows/Right")); buttonMoveRight.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveRightActionPerformed(evt); } }); buttonMoveUReight.setIcon(getIcon("arrows/URight")); buttonMoveUReight.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveUReightActionPerformed(evt); } }); buttonMoveHome.setIcon(getIcon("arrows/Center")); buttonMoveHome.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveHomeActionPerformed(evt); } }); buttonMoveDown.setIcon(getIcon("arrows/Down")); buttonMoveDown.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveDownActionPerformed(evt); } }); buttonMoveULeft.setIcon(getIcon("arrows/ULeft")); buttonMoveULeft.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveULeftActionPerformed(evt); } }); buttonMoveUp.setIcon(getIcon("arrows/Up")); buttonMoveUp.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonMoveUpActionPerformed(evt); } }); 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(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(buttonMoveULeft, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveDLeft, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(buttonMoveLeft, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING, false) .addComponent(buttonMoveDown, javax.swing.GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE) .addComponent(buttonMoveHome, javax.swing.GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE) .addComponent(buttonMoveUp, javax.swing.GroupLayout.Alignment.LEADING, javax.swing.GroupLayout.DEFAULT_SIZE, 40, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(buttonMoveRight, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(buttonMoveUReight, javax.swing.GroupLayout.PREFERRED_SIZE, 1, Short.MAX_VALUE) .addComponent(buttonMoveDRight, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel8Layout.setVerticalGroup( jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel8Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonMoveUp, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveUReight, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveULeft, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonMoveLeft, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveRight, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveHome, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addGroup(jPanel8Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonMoveDown, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveDLeft, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonMoveDRight, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); jPanel9.setBorder(javax.swing.BorderFactory.createTitledBorder("Zoom")); buttonZoomOut.setIcon(getIcon("arrows/Out")); buttonZoomOut.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonZoomOutActionPerformed(evt); } }); buttonZooHome.setIcon(getIcon("arrows/Center")); buttonZooHome.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonZooHomeActionPerformed(evt); } }); buttonZoomIn.setIcon(getIcon("arrows/In")); buttonZoomIn.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { buttonZoomInActionPerformed(evt); } }); javax.swing.GroupLayout jPanel9Layout = new javax.swing.GroupLayout(jPanel9); jPanel9.setLayout(jPanel9Layout); jPanel9Layout.setHorizontalGroup( jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup() .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(buttonZoomOut, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonZooHome, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(buttonZoomIn, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) ); jPanel9Layout.setVerticalGroup( jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel9Layout.createSequentialGroup() .addContainerGap() .addGroup(jPanel9Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.BASELINE) .addComponent(buttonZoomOut, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonZoomIn, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE) .addComponent(buttonZooHome, javax.swing.GroupLayout.PREFERRED_SIZE, 40, javax.swing.GroupLayout.PREFERRED_SIZE)) .addContainerGap()) ); jPanel10.setBorder(javax.swing.BorderFactory.createTitledBorder("Selection")); comboCameras.addActionListener(new java.awt.event.ActionListener() { public void actionPerformed(java.awt.event.ActionEvent evt) { comboCamerasActionPerformed(evt); } }); javax.swing.GroupLayout jPanel10Layout = new javax.swing.GroupLayout(jPanel10); jPanel10.setLayout(jPanel10Layout); jPanel10Layout.setHorizontalGroup( jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel10Layout.createSequentialGroup() .addContainerGap() .addComponent(comboCameras, 0, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addContainerGap()) ); jPanel10Layout.setVerticalGroup( jPanel10Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(jPanel10Layout.createSequentialGroup() .addContainerGap() .addComponent(comboCameras, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap()) ); javax.swing.GroupLayout panelControlsLayout = new javax.swing.GroupLayout(panelControls); panelControls.setLayout(panelControlsLayout); panelControlsLayout.setHorizontalGroup( panelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelControlsLayout.createSequentialGroup() .addContainerGap() .addGroup(panelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addComponent(jPanel9, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel8, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(jPanel10, javax.swing.GroupLayout.Alignment.TRAILING, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addContainerGap()) ); panelControlsLayout.setVerticalGroup( panelControlsLayout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(panelControlsLayout.createSequentialGroup() .addContainerGap() .addComponent(jPanel10, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel8, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(jPanel9, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE) .addContainerGap(229, Short.MAX_VALUE)) ); panelCameras.add(panelControls, java.awt.BorderLayout.WEST); javax.swing.GroupLayout layout = new javax.swing.GroupLayout(this); this.setLayout(layout); layout.setHorizontalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addGroup(layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING, false) .addComponent(panelCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addComponent(panelRobot, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED) .addComponent(panelCameras, javax.swing.GroupLayout.PREFERRED_SIZE, 197, Short.MAX_VALUE) .addGap(5, 5, 5)) ); layout.setVerticalGroup( layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING) .addGroup(layout.createSequentialGroup() .addComponent(panelCommands, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) .addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED) .addComponent(panelRobot, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)) .addComponent(panelCameras, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE) ); }// //GEN-END:initComponents private void moveParkActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moveParkActionPerformed evalCmd("move_park()"); }//GEN-LAST:event_moveParkActionPerformed private void moveHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_moveHomeActionPerformed evalCmd("move_home()"); }//GEN-LAST:event_moveHomeActionPerformed private void buttonAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAbortActionPerformed evalCmd("robot.stop_task()", true); }//GEN-LAST:event_buttonAbortActionPerformed private void spinnerSpeedStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerSpeedStateChanged if (!updatingRobotControls){ evalCmd("robot.set_monitor_speed(" + spinnerSpeed.getValue() + ")"); } }//GEN-LAST:event_spinnerSpeedStateChanged private void butonStopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_butonStopActionPerformed evalCmd("robot.reset_motion()", true); }//GEN-LAST:event_butonStopActionPerformed private void buttonResumeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonResumeActionPerformed evalCmd("robot.resume()", true); }//GEN-LAST:event_buttonResumeActionPerformed private void buttonPauseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPauseActionPerformed evalCmd("robot.stop()",true); }//GEN-LAST:event_buttonPauseActionPerformed private void buttonDisableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDisableActionPerformed evalCmd("robot.disable()", true); }//GEN-LAST:event_buttonDisableActionPerformed private void buttonEnableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonEnableActionPerformed evalCmd("robot.enable()", true); }//GEN-LAST:event_buttonEnableActionPerformed private void buttonCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCloseActionPerformed evalCmd("robot.close_tool()"); }//GEN-LAST:event_buttonCloseActionPerformed private void buttonOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOpenActionPerformed evalCmd("robot.open_tool()"); }//GEN-LAST:event_buttonOpenActionPerformed private void buttonMoveLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveLeftActionPerformed move("left"); }//GEN-LAST:event_buttonMoveLeftActionPerformed private void buttonMoveDLeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveDLeftActionPerformed move("downleft"); }//GEN-LAST:event_buttonMoveDLeftActionPerformed private void buttonMoveDRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveDRightActionPerformed move("downright"); }//GEN-LAST:event_buttonMoveDRightActionPerformed private void buttonMoveRightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveRightActionPerformed move("right"); }//GEN-LAST:event_buttonMoveRightActionPerformed private void buttonMoveUReightActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveUReightActionPerformed move("upright"); }//GEN-LAST:event_buttonMoveUReightActionPerformed private void buttonMoveHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveHomeActionPerformed move("home"); }//GEN-LAST:event_buttonMoveHomeActionPerformed private void buttonMoveDownActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveDownActionPerformed move("down"); }//GEN-LAST:event_buttonMoveDownActionPerformed private void buttonMoveULeftActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveULeftActionPerformed move("upleft"); }//GEN-LAST:event_buttonMoveULeftActionPerformed private void buttonMoveUpActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonMoveUpActionPerformed move("up"); }//GEN-LAST:event_buttonMoveUpActionPerformed private void buttonZoomOutActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomOutActionPerformed zoom(-100); }//GEN-LAST:event_buttonZoomOutActionPerformed private void buttonZooHomeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZooHomeActionPerformed move("home"); }//GEN-LAST:event_buttonZooHomeActionPerformed private void buttonZoomInActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonZoomInActionPerformed zoom(100); }//GEN-LAST:event_buttonZoomInActionPerformed private void comboCamerasActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_comboCamerasActionPerformed try{ if (getState().isInitialized()){ Object selection = comboCameras.getSelectedItem(); selectCamera((selection==null) ? null :selection.toString()); } } catch(Exception ex){ showException(ex); } }//GEN-LAST:event_comboCamerasActionPerformed private void buttonTweakXActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonTweakXActionPerformed evalCmd("tweak_x(" + spinnerOffsetX.getValue() + ")"); }//GEN-LAST:event_buttonTweakXActionPerformed private void buttonTweakX1ActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonTweakX1ActionPerformed evalCmd("tweak_y(" + spinnerOffsetY.getValue() + ")"); }//GEN-LAST:event_buttonTweakX1ActionPerformed // Variables declaration - do not modify//GEN-BEGIN:variables private javax.swing.JButton butonStop; private javax.swing.JButton buttonAbort; private javax.swing.JButton buttonClose; private javax.swing.JButton buttonDisable; private javax.swing.JButton buttonEnable; private javax.swing.JButton buttonMoveDLeft; private javax.swing.JButton buttonMoveDRight; private javax.swing.JButton buttonMoveDown; private javax.swing.JButton buttonMoveHome; private javax.swing.JButton buttonMoveLeft; private javax.swing.JButton buttonMoveRight; private javax.swing.JButton buttonMoveULeft; private javax.swing.JButton buttonMoveUReight; private javax.swing.JButton buttonMoveUp; private javax.swing.JButton buttonOpen; private javax.swing.JButton buttonPause; private javax.swing.JButton buttonResume; private javax.swing.JButton buttonTweakX; private javax.swing.JButton buttonTweakX1; private javax.swing.JButton buttonZooHome; private javax.swing.JButton buttonZoomIn; private javax.swing.JButton buttonZoomOut; private javax.swing.JComboBox comboCameras; private ch.psi.pshell.swing.DeviceStatePanel deviceStatePanel1; private javax.swing.JLabel jLabel1; private javax.swing.JLabel jLabel2; private javax.swing.JLabel jLabel3; private javax.swing.JLabel jLabel4; private javax.swing.JLabel jLabel5; private javax.swing.JLabel jLabel6; private javax.swing.JLabel jLabel7; private javax.swing.JLabel jLabel8; private javax.swing.JLabel jLabel9; private javax.swing.JPanel jPanel10; private javax.swing.JPanel jPanel4; private javax.swing.JPanel jPanel5; private javax.swing.JPanel jPanel6; private javax.swing.JPanel jPanel7; private javax.swing.JPanel jPanel8; private javax.swing.JPanel jPanel9; private ch.psi.pshell.swing.Led ledEmpty; private ch.psi.pshell.swing.Led ledMode; private ch.psi.pshell.swing.Led ledMoving; private ch.psi.pshell.swing.Led ledOpen; private ch.psi.pshell.swing.Led ledPosition; private ch.psi.pshell.swing.Led ledPowered; private ch.psi.pshell.swing.Led ledSettled; private ch.psi.pshell.swing.Led ledTask; private javax.swing.JButton moveHome; private javax.swing.JButton movePark; private javax.swing.JPanel panelCameras; private javax.swing.JPanel panelCommands; private javax.swing.JPanel panelControls; private javax.swing.JPanel panelMotionCtr; private javax.swing.JPanel panelPowerCtr; private javax.swing.JPanel panelPowerCtr1; private javax.swing.JPanel panelRobot; private ch.psi.pshell.imaging.Renderer renderer; private javax.swing.JSpinner spinnerOffsetX; private javax.swing.JSpinner spinnerOffsetY; private javax.swing.JSpinner spinnerSpeed; private javax.swing.JTextField textMode; private javax.swing.JTextField textPosition; private javax.swing.JTextField textTask; // End of variables declaration//GEN-END:variables }