package org.freehep.util.parameterdatabase.editor; import java.awt.Component; import javax.swing.DefaultCellEditor; import javax.swing.JComboBox; import javax.swing.JTable; import javax.swing.JTree; import org.freehep.util.parameterdatabase.selector.Selector; /** * This is a generic editor which allows all subclasses of the Selector class to * be edited in a table or tree with a JComboBox. */ public class SelectorEditor extends DefaultCellEditor { public SelectorEditor() { super(new JComboBox()); } /** * This sets the initial value for the editor. We override this to ensure * that the underlying JComboBox has the correct values loaded into it. */ public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { // Ensure that the combobox is loaded with all of the possible // values. JComboBox comboBox = (JComboBox) getComponent(); Selector selector = (Selector) value; selector.initialize(comboBox); // Let the superclass take care of the rest. return super.getTableCellEditorComponent(table, value, isSelected, row, column); } /** * This sets the initial value for the editor. We override this to ensure * that the underlying JComboBox has the correct values loaded into it. */ public Component getTreeCellEditorComponent(JTree tree, Object value, boolean isSelected, boolean expanded, boolean leaf, int row) { // Ensure that the combobox is loaded with all of the possible // values. JComboBox comboBox = (JComboBox) getComponent(); Selector selector = (Selector) value; selector.initialize(comboBox); // Let the superclass take care of the rest. return super.getTreeCellEditorComponent(tree, value, isSelected, expanded, leaf, row); } }