686 lines
37 KiB
Java
686 lines
37 KiB
Java
|
|
import ch.psi.pshell.device.Device;
|
|
import ch.psi.pshell.ui.App;
|
|
import ch.psi.pshell.swing.DevicePanel;
|
|
import ch.psi.pshell.core.Context;
|
|
import ch.psi.utils.State;
|
|
import java.awt.Color;
|
|
import java.util.Map;
|
|
import javax.swing.JSpinner;
|
|
import javax.swing.JTextField;
|
|
|
|
/**
|
|
*
|
|
*/
|
|
public class RobotPanel extends DevicePanel {
|
|
|
|
/**
|
|
* Creates new form RobotPanel
|
|
*/
|
|
public RobotPanel() {
|
|
initComponents();
|
|
((JSpinner.DefaultEditor)spinnerSpeed.getEditor()).getTextField().setHorizontalAlignment(JTextField.CENTER);
|
|
}
|
|
|
|
@Override
|
|
public void setDevice(Device device) {
|
|
super.setDevice(device);
|
|
if (device == null) {
|
|
|
|
}
|
|
panelState.setDevice(device);
|
|
}
|
|
|
|
@Override
|
|
protected void onDeviceStateChanged(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);
|
|
}
|
|
}
|
|
|
|
boolean updating;
|
|
@Override
|
|
protected void onDeviceCacheChanged(Object value, Object former, long timestamp, boolean valueChange) {
|
|
updating = 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();
|
|
//mode = (String) Context.getInstance().evalLineBackground(getDevice().getName() + ".working_mode");
|
|
} catch (Exception ex) {
|
|
}
|
|
try {
|
|
//if (status.get("status").equals("hold")){
|
|
// moving = false;
|
|
//} else if (status.get("status").equals("move")){
|
|
// moving = true;
|
|
//}
|
|
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{
|
|
updating = false;
|
|
}
|
|
}
|
|
|
|
/**
|
|
* 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")
|
|
// <editor-fold defaultstate="collapsed" desc="Generated Code">//GEN-BEGIN:initComponents
|
|
private void initComponents() {
|
|
|
|
jPanel1 = 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();
|
|
jPanel2 = 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();
|
|
jPanel3 = 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();
|
|
panelState = new ch.psi.pshell.swing.DeviceStatePanel();
|
|
jPanel4 = 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();
|
|
|
|
jPanel1.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 jPanel1Layout = new javax.swing.GroupLayout(jPanel1);
|
|
jPanel1.setLayout(jPanel1Layout);
|
|
jPanel1Layout.setHorizontalGroup(
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addComponent(jLabel1, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.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)
|
|
.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))
|
|
);
|
|
jPanel1Layout.setVerticalGroup(
|
|
jPanel1Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel1Layout.createSequentialGroup()
|
|
.addGap(4, 4, 4)
|
|
.addGroup(jPanel1Layout.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))
|
|
);
|
|
|
|
jPanel2.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 jPanel2Layout = new javax.swing.GroupLayout(jPanel2);
|
|
jPanel2.setLayout(jPanel2Layout);
|
|
jPanel2Layout.setHorizontalGroup(
|
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel2Layout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addGroup(jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel2Layout.createSequentialGroup()
|
|
.addComponent(jLabel7, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.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, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addGap(14, 14, 14)
|
|
.addGroup(jPanel2Layout.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())
|
|
);
|
|
jPanel2Layout.setVerticalGroup(
|
|
jPanel2Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel2Layout.createSequentialGroup()
|
|
.addGap(4, 4, 4)
|
|
.addGroup(jPanel2Layout.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(jPanel2Layout.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))
|
|
);
|
|
|
|
jPanel3.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 jPanel3Layout = new javax.swing.GroupLayout(jPanel3);
|
|
jPanel3.setLayout(jPanel3Layout);
|
|
jPanel3Layout.setHorizontalGroup(
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addContainerGap()
|
|
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addComponent(jLabel8, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(ledTask, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.TRAILING)
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addComponent(jLabel4, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(ledEmpty, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addComponent(jLabel3, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(ledSettled, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addComponent(jLabel9, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.addComponent(ledPosition, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)))
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.UNRELATED)
|
|
.addGroup(jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(textTask)
|
|
.addComponent(textPosition)))
|
|
.addGroup(jPanel3Layout.createSequentialGroup()
|
|
.addComponent(jLabel6, javax.swing.GroupLayout.PREFERRED_SIZE, 52, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addPreferredGap(javax.swing.LayoutStyle.ComponentPlacement.RELATED)
|
|
.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())
|
|
);
|
|
|
|
jPanel3Layout.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {jLabel3, jLabel4, jLabel6, jLabel8, jLabel9});
|
|
|
|
jPanel3Layout.setVerticalGroup(
|
|
jPanel3Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(javax.swing.GroupLayout.Alignment.TRAILING, jPanel3Layout.createSequentialGroup()
|
|
.addGap(4, 4, 4)
|
|
.addGroup(jPanel3Layout.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(jPanel3Layout.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(jPanel3Layout.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(jPanel3Layout.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(jPanel3Layout.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))
|
|
);
|
|
|
|
jPanel4.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.linkSize(javax.swing.SwingConstants.HORIZONTAL, new java.awt.Component[] {buttonClose, buttonOpen});
|
|
|
|
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 jPanel4Layout = new javax.swing.GroupLayout(jPanel4);
|
|
jPanel4.setLayout(jPanel4Layout);
|
|
jPanel4Layout.setHorizontalGroup(
|
|
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel4Layout.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)
|
|
.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))
|
|
);
|
|
jPanel4Layout.setVerticalGroup(
|
|
jPanel4Layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addGroup(jPanel4Layout.createSequentialGroup()
|
|
.addGap(4, 4, 4)
|
|
.addGroup(jPanel4Layout.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 layout = new javax.swing.GroupLayout(this);
|
|
this.setLayout(layout);
|
|
layout.setHorizontalGroup(
|
|
layout.createParallelGroup(javax.swing.GroupLayout.Alignment.LEADING)
|
|
.addComponent(jPanel1, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(jPanel2, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(jPanel3, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(panelState, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
.addComponent(jPanel4, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, Short.MAX_VALUE)
|
|
);
|
|
layout.setVerticalGroup(
|
|
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)
|
|
.addGap(0, 0, 0)
|
|
.addComponent(jPanel4, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGap(0, 0, 0)
|
|
.addComponent(jPanel2, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGap(0, 0, 0)
|
|
.addComponent(jPanel3, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE)
|
|
.addGap(0, 0, 0)
|
|
.addComponent(panelState, javax.swing.GroupLayout.PREFERRED_SIZE, javax.swing.GroupLayout.DEFAULT_SIZE, javax.swing.GroupLayout.PREFERRED_SIZE))
|
|
);
|
|
}// </editor-fold>//GEN-END:initComponents
|
|
|
|
private void buttonEnableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonEnableActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".enable()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonEnableActionPerformed
|
|
|
|
private void buttonDisableActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonDisableActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".disable()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonDisableActionPerformed
|
|
|
|
private void spinnerSpeedStateChanged(javax.swing.event.ChangeEvent evt) {//GEN-FIRST:event_spinnerSpeedStateChanged
|
|
try{
|
|
if (!updating){
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".set_monitor_speed(" + spinnerSpeed.getValue() + ")");
|
|
}
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_spinnerSpeedStateChanged
|
|
|
|
private void butonStopActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_butonStopActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".reset_motion()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_butonStopActionPerformed
|
|
|
|
private void buttonPauseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonPauseActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".stop()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonPauseActionPerformed
|
|
|
|
private void buttonResumeActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonResumeActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".resume()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonResumeActionPerformed
|
|
|
|
private void buttonAbortActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonAbortActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".stop_task()");
|
|
//Context.getInstance().evalLineBackground(getDevice().getName() + ".task_kill('" + textTask.getText() + "')");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonAbortActionPerformed
|
|
|
|
private void buttonCloseActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonCloseActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".close_tool()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonCloseActionPerformed
|
|
|
|
private void buttonOpenActionPerformed(java.awt.event.ActionEvent evt) {//GEN-FIRST:event_buttonOpenActionPerformed
|
|
try{
|
|
Context.getInstance().evalLineBackground(getDevice().getName() + ".open_tool()");
|
|
} catch (Exception ex){
|
|
this.showException(ex);
|
|
}
|
|
}//GEN-LAST:event_buttonOpenActionPerformed
|
|
|
|
|
|
// 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 buttonOpen;
|
|
private javax.swing.JButton buttonPause;
|
|
private javax.swing.JButton buttonResume;
|
|
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 jPanel1;
|
|
private javax.swing.JPanel jPanel2;
|
|
private javax.swing.JPanel jPanel3;
|
|
private javax.swing.JPanel jPanel4;
|
|
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.JPanel panelMotionCtr;
|
|
private javax.swing.JPanel panelPowerCtr;
|
|
private javax.swing.JPanel panelPowerCtr1;
|
|
private ch.psi.pshell.swing.DeviceStatePanel panelState;
|
|
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
|
|
}
|