java-org.hwo.servicelink/src/org/hwo/ui/servicelink/register/JServiceRegisterSourceEdito...

161 lines
4.3 KiB
Java

package org.hwo.ui.servicelink.register;
import javax.swing.JPanel;
import java.awt.GridBagLayout;
import javax.swing.JLabel;
import java.awt.GridBagConstraints;
import javax.swing.JSpinner;
import java.awt.Insets;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import java.util.List;
import javax.swing.SpinnerNumberModel;
import javax.swing.JCheckBox;
import javax.swing.event.ChangeListener;
import javax.swing.event.ChangeEvent;
public class JServiceRegisterSourceEditor extends JPanel {
private JSpinner spRegister;
private JSpinner spNode;
private JSpinner spAx;
private List<ActionListener> actionListeners;
private ServiceRegister serviceRegister;
/**
* Create the panel.
*/
public JServiceRegisterSourceEditor() {
GridBagLayout gridBagLayout = new GridBagLayout();
gridBagLayout.columnWidths = new int[]{0, 0, 0, 0, 0, 0, 0};
gridBagLayout.rowHeights = new int[]{0, 0};
gridBagLayout.columnWeights = new double[]{0.0, 1.0, 0.0, 1.0, 0.0, 1.0, Double.MIN_VALUE};
gridBagLayout.rowWeights = new double[]{1.0, Double.MIN_VALUE};
setLayout(gridBagLayout);
JLabel lblAx = new JLabel("AX:");
GridBagConstraints gbc_lblAx = new GridBagConstraints();
gbc_lblAx.insets = new Insets(0, 0, 0, 5);
gbc_lblAx.gridx = 0;
gbc_lblAx.gridy = 0;
add(lblAx, gbc_lblAx);
spAx = new JSpinner();
spAx.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
fireAction();
}
});
spAx.setModel(new SpinnerNumberModel(0, 0, 14, 1));
GridBagConstraints gbc_spAx = new GridBagConstraints();
gbc_spAx.fill = GridBagConstraints.HORIZONTAL;
gbc_spAx.insets = new Insets(0, 0, 0, 5);
gbc_spAx.gridx = 1;
gbc_spAx.gridy = 0;
add(spAx, gbc_spAx);
JLabel lblNode = new JLabel("NODE:");
GridBagConstraints gbc_lblNode = new GridBagConstraints();
gbc_lblNode.insets = new Insets(0, 0, 0, 5);
gbc_lblNode.gridx = 2;
gbc_lblNode.gridy = 0;
add(lblNode, gbc_lblNode);
spNode = new JSpinner();
spNode.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
fireAction();
}
});
spNode.setModel(new SpinnerNumberModel(0, 0, 15, 1));
GridBagConstraints gbc_spNode = new GridBagConstraints();
gbc_spNode.fill = GridBagConstraints.HORIZONTAL;
gbc_spNode.insets = new Insets(0, 0, 0, 5);
gbc_spNode.gridx = 3;
gbc_spNode.gridy = 0;
add(spNode, gbc_spNode);
JLabel lblRegister = new JLabel("REGISTER:");
GridBagConstraints gbc_lblRegister = new GridBagConstraints();
gbc_lblRegister.insets = new Insets(0, 0, 0, 5);
gbc_lblRegister.gridx = 4;
gbc_lblRegister.gridy = 0;
add(lblRegister, gbc_lblRegister);
spRegister = new JSpinner();
spRegister.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
fireAction();
}
});
spRegister.setModel(new SpinnerNumberModel(0, 0, 65535, 1));
GridBagConstraints gbc_spRegister = new GridBagConstraints();
gbc_spRegister.fill = GridBagConstraints.HORIZONTAL;
gbc_spRegister.gridx = 5;
gbc_spRegister.gridy = 0;
add(spRegister, gbc_spRegister);
this.initialize();
}
private void initialize(){
actionListeners = new LinkedList<ActionListener>();
}
public void addActionListener(ActionListener actionListener){
actionListeners.add(actionListener);
}
public void removeActionListener(ActionListener actionListener){
actionListeners.remove(actionListener);
}
public ServiceRegister getServiceRegister(){
return this.serviceRegister;
}
public void setServiceRegister(ServiceRegister serviceRegister){
this.serviceRegister = serviceRegister;
}
void fireAction(){
if (serviceRegister != null){
serviceRegister.setAx(getAx());
serviceRegister.setNode(getNode());
serviceRegister.setRegister(getRegister());
}
for (ActionListener l:actionListeners)
l.actionPerformed(new ActionEvent(this, 0, ""));
}
public Integer getAx(){
return (Integer)spAx.getValue();
}
public void setAx(Integer value){
spAx.setValue(value);
}
public Integer getNode(){
return (Integer)spNode.getValue();
}
public void setNode(Integer value){
spNode.setValue(value);
}
public Integer getRegister(){
return (Integer)spRegister.getValue();
}
public void setRegister(Integer value){
spAx.setValue(value);
}
}