X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fcomponents%2FBaseSpecialColorEditor.java;fp=src2%2Ffr%2Forsay%2Flri%2Fvarna%2Fcomponents%2FBaseSpecialColorEditor.java;h=d39d74e760ddd9e8c734ed7bedd3e2637d723d59;hb=665d2c2f4c1310e6985b93b7c2c8a8eec2fa9086;hp=0000000000000000000000000000000000000000;hpb=0e684f72690bd6532272a39ab6c188a27559fd09;p=jalview.git diff --git a/src2/fr/orsay/lri/varna/components/BaseSpecialColorEditor.java b/src2/fr/orsay/lri/varna/components/BaseSpecialColorEditor.java new file mode 100644 index 0000000..d39d74e --- /dev/null +++ b/src2/fr/orsay/lri/varna/components/BaseSpecialColorEditor.java @@ -0,0 +1,104 @@ + +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(); + } +}