JAL-3058 refactored raising JColorChooser for JS compatibility
[jalview.git] / src / jalview / gui / FeatureRenderer.java
index 3b9c622..fc3dcc6 100644 (file)
@@ -25,6 +25,7 @@ import jalview.datamodel.SearchResults;
 import jalview.datamodel.SearchResultsI;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceI;
+import jalview.gui.JalviewColourChooser.ColourChooserListener;
 import jalview.io.FeaturesFile;
 import jalview.schemes.FeatureColour;
 import jalview.util.ColorUtils;
@@ -48,6 +49,7 @@ import java.util.List;
 
 import javax.swing.JColorChooser;
 import javax.swing.JComboBox;
+import javax.swing.JDialog;
 import javax.swing.JLabel;
 import javax.swing.JPanel;
 import javax.swing.JScrollPane;
@@ -194,13 +196,18 @@ public class FeatureRenderer
       {
         if (fcol.isSimpleColour())
         {
-          // BH 2018 JavaScript-compatible color dialog
-          Desktop.desktop.dialogData = new Object[] {
-              "label.select_feature_colour", this, mainPanel, colour };
-          Desktop.desktop
-                  .onDialogReturn(JColorChooser.showDialog(Desktop.desktop,
-                  MessageManager.getString("label.select_feature_colour"),
-                          fcol.getColour()));
+          String title = MessageManager
+                  .getString("label.select_feature_colour");
+          ColourChooserListener listener = new ColourChooserListener()
+          {
+            @Override
+            public void colourSelected(Color c)
+            {
+              updateColourButton(mainPanel, colour, new FeatureColour(c));
+            };
+          };
+          JalviewColourChooser.showColourChooser(Desktop.getDesktop(),
+                  title, fcol.getColour(), listener);
         }
         else
         {
@@ -499,17 +506,6 @@ public class FeatureRenderer
     return true;
   }
 
-  void processColorDialog(Color col)
-  {
-    JPanel mainPanel = (JPanel) Desktop.desktop.dialogData[2];
-    JLabel colour = (JLabel) Desktop.desktop.dialogData[3];
-    if (col != null)
-    {
-      fcol = new FeatureColour(col);
-      updateColourButton(mainPanel, colour, fcol);
-    }
-  }
-
   /**
    * Show a warning message if the entered type is one that is currently hidden
    *