JAL-3026 srcjar files for VARNA and log4j
[jalview.git] / srcjar / fr / orsay / lri / varna / components / BaseSpecialColorEditor.java
diff --git a/srcjar/fr/orsay/lri/varna/components/BaseSpecialColorEditor.java b/srcjar/fr/orsay/lri/varna/components/BaseSpecialColorEditor.java
new file mode 100644 (file)
index 0000000..d39d74e
--- /dev/null
@@ -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();
+       }
+}