package org.freeplane.features.map;
import java.awt.Component;
import java.awt.event.ActionEvent;
import java.awt.event.ActionListener;
import java.util.LinkedList;
import java.util.List;
import javax.swing.ComboBoxEditor;
import javax.swing.JSpinner;
import javax.swing.event.ChangeEvent;
import javax.swing.event.ChangeListener;
public class NumberComboBoxEditor implements ComboBoxEditor{
final private List<ActionListener> actionListeners;
final private JSpinner editor;
public NumberComboBoxEditor(){
actionListeners = new LinkedList<ActionListener>();
editor = new JSpinner();
editor.addChangeListener(new ChangeListener() {
public void stateChanged(ChangeEvent e) {
if(actionListeners.isEmpty()){
return;
}
final ActionEvent actionEvent = new ActionEvent(e.getSource(), 0, null);
for(ActionListener l : actionListeners){
l.actionPerformed(actionEvent);
}
}
});
}
public void addActionListener(ActionListener l) {
actionListeners.add(l);
}
public Component getEditorComponent() {
return editor;
}
public Object getItem() {
return editor.getValue().toString();
}
public void removeActionListener(ActionListener l) {
actionListeners.remove(l);
}
public void selectAll() {
}
public void setItem(Object anObject) {
if(anObject != null){
editor.setValue(Integer.valueOf(anObject.toString()));
return;
}
editor.setValue(0);
}
}