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