package fr.orsay.lri.varna.components; import java.awt.Color; import java.awt.Component; import javax.swing.AbstractCellEditor; import javax.swing.JButton; import javax.swing.JColorChooser; import javax.swing.JDialog; import javax.swing.JTable; import javax.swing.table.TableCellEditor; import fr.orsay.lri.varna.controlers.ControleurBaseSpecialColorEditor; import fr.orsay.lri.varna.views.VueBases; public class BaseSpecialColorEditor extends AbstractCellEditor implements TableCellEditor { /** * */ private static final long serialVersionUID = 1L; private Color currentColor; private JButton button; private JColorChooser colorChooser; private JDialog dialog; protected static final String EDIT = "edit"; private VueBases _vueBases; private ControleurBaseSpecialColorEditor _controleurSpecialColorEditor; public BaseSpecialColorEditor(VueBases vueBases) { // Set up the editor (from the table's point of view), // which is a button. // This button brings up the color chooser dialog, // which is the editor from the user's point of view. button = new JButton(); button.setActionCommand(EDIT); _controleurSpecialColorEditor = new ControleurBaseSpecialColorEditor(this); button.addActionListener(_controleurSpecialColorEditor); button.setBorderPainted(false); fireEditingStopped(); _vueBases = vueBases; // Set up the dialog that the button brings up. colorChooser = new JColorChooser(); dialog = JColorChooser.createDialog(button, "Pick a Color", true, // modal colorChooser, _controleurSpecialColorEditor, // OK button // handler null); // no CANCEL button handler } // Implement the one CellEditor method that AbstractCellEditor doesn't. public Object getCellEditorValue() { return currentColor; } // Implement the one method defined by TableCellEditor. public Component getTableCellEditorComponent(JTable table, Object value, boolean isSelected, int row, int column) { currentColor = (Color) value; return button; } public static long getSerialVersionUID() { return serialVersionUID; } public Color getCurrentColor() { return currentColor; } public JButton getButton() { return button; } public JColorChooser getColorChooser() { return colorChooser; } public JDialog getDialog() { return dialog; } public static String getEDIT() { return EDIT; } public VueBases get_vueBases() { return _vueBases; } public ControleurBaseSpecialColorEditor get_controleurSpecialColorEditor() { return _controleurSpecialColorEditor; } public void setCurrentColor(Color currentColor) { this.currentColor = currentColor; } public void callFireEditingStopped() { fireEditingStopped(); } }