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();
}
}