/*
* Created on Nov 2, 2005
*
* TODO To change the template for this generated file go to
* Window - Preferences - Java - Code Style - Code Templates
*/
package de.tuberlin.polymake.common;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import javax.swing.Box;
import javax.swing.BoxLayout;
import javax.swing.JButton;
import javax.swing.JLabel;
import javax.swing.JSpinner;
import javax.swing.SpinnerNumberModel;
/**
* @author wotzlaw
*
* TODO To change the template for this generated type comment go to
* Window - Preferences - Java - Code Style - Code Templates
*/
public class JRealitySpinner extends JSpinner implements ActionListener{
protected Box hBox = new Box(BoxLayout.X_AXIS);
protected double defaultValue;
protected SpinnerNumberModel numModel;
protected JLabel label;
//protected JButton reset = new JButton("\u25ab");
protected JButton reset = new JButton("reset");
//protected JSpinner spinner;
//protected JRealityFrame parent;
public JRealitySpinner(
String labelText,
double defaultValue, double min, double max,double stepsize ) {
super();
//this.parent = parent;
this.defaultValue = defaultValue;
numModel = new SpinnerNumberModel(
new Double(defaultValue),
new Double(min),
new Double(max),
new Double(stepsize)
);
reset.setMargin(new java.awt.Insets(0,0,0,0));
reset.setPreferredSize(
new java.awt.Dimension(20,20)
);
reset.setMaximumSize(
new java.awt.Dimension(20,20)
);
reset.setAlignmentY(Box.CENTER_ALIGNMENT);
reset.addActionListener(this);
numModel.setValue(new Double(defaultValue));
this.setModel(numModel);
//self=new javax.swing.JSpinner(ingr0);
this.setPreferredSize(
new java.awt.Dimension(60,20)
);
this.setMaximumSize(
new java.awt.Dimension(60,20)
);
this.setBorder(
new javax.swing.border.CompoundBorder(
new javax.swing.border.EmptyBorder(0,2,0,2),
this.getBorder()
)
);
//spinner.addChangeListener(this);
label = new JLabel(labelText);
label.setBorder(
new javax.swing.border.EmptyBorder(0,4,0,2)
);
hBox.add(label);
hBox.add(this);
hBox.add(reset);
}
public void setVisible(boolean vis) {
super.setVisible(vis);
label.setVisible(vis);
reset.setVisible(vis);
}
public Component getComponent() {
return hBox;
}
/* (non-Javadoc)
* @see java.awt.event.ActionListener#actionPerformed(java.awt.event.ActionEvent)
*/
public void actionPerformed(ActionEvent e) {
Object source = e.getSource();
if(source == reset) {
numModel.setValue(new Double(defaultValue));
}
}
}
syntax highlighted by Code2HTML, v. 0.9.1