JAL-2361 extract methods to (re-)build colour menu
[jalview.git] / src / jalview / gui / AlignFrame.java
index 9c4ff81..03e4534 100644 (file)
@@ -125,7 +125,6 @@ import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
 import java.awt.event.KeyAdapter;
 import java.awt.event.KeyEvent;
-import java.awt.event.MouseAdapter;
 import java.awt.event.MouseEvent;
 import java.awt.print.PageFormat;
 import java.awt.print.PrinterJob;
@@ -146,7 +145,6 @@ import javax.swing.JInternalFrame;
 import javax.swing.JLayeredPane;
 import javax.swing.JMenu;
 import javax.swing.JMenuItem;
-import javax.swing.JRadioButtonMenuItem;
 import javax.swing.JScrollPane;
 import javax.swing.SwingUtilities;
 
@@ -856,14 +854,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     conservationMenuItem.setEnabled(!nucleotide);
     modifyConservation.setEnabled(!nucleotide);
     showGroupConservation.setEnabled(!nucleotide);
+    clustalColour.setEnabled(!nucleotide);
+    zappoColour.setEnabled(!nucleotide);
+    taylorColour.setEnabled(!nucleotide);
+    hydrophobicityColour.setEnabled(!nucleotide);
+    helixColour.setEnabled(!nucleotide);
+    strandColour.setEnabled(!nucleotide);
+    turnColour.setEnabled(!nucleotide);
+    buriedColour.setEnabled(!nucleotide);
     rnahelicesColour.setEnabled(nucleotide);
+    nucleotideColour.setEnabled(nucleotide);
     purinePyrimidineColour.setEnabled(nucleotide);
+    RNAInteractionColour.setEnabled(nucleotide);
     showComplementMenuItem.setText(nucleotide ? MessageManager
             .getString("label.protein") : MessageManager
             .getString("label.nucleotide"));
-    setColourSelected(jalview.bin.Cache.getDefault(
+    String selectedColourScheme = Cache.getDefault(
             nucleotide ? Preferences.DEFAULT_COLOUR_NUC
-                    : Preferences.DEFAULT_COLOUR_PROT, "None"));
+                    : Preferences.DEFAULT_COLOUR_PROT, "None");
+    setColourSelected(selectedColourScheme);
   }
 
   /**
@@ -3298,7 +3307,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   @Override
-  public void textColour_actionPerformed(ActionEvent e)
+  public void textColour_actionPerformed()
   {
     new TextColourChooser().chooseColour(alignPanel, null);
   }
@@ -3310,7 +3319,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  protected void noColourmenuItem_actionPerformed(ActionEvent e)
+  protected void noColourmenuItem_actionPerformed()
   {
     changeColour(null);
   }
@@ -3322,7 +3331,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void clustalColour_actionPerformed(ActionEvent e)
+  public void clustalColour_actionPerformed()
   {
     changeColour(new ClustalxColourScheme(viewport.getAlignment(),
             viewport.getHiddenRepSequences()));
@@ -3335,7 +3344,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void zappoColour_actionPerformed(ActionEvent e)
+  public void zappoColour_actionPerformed()
   {
     changeColour(new ZappoColourScheme());
   }
@@ -3347,7 +3356,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void taylorColour_actionPerformed(ActionEvent e)
+  public void taylorColour_actionPerformed()
   {
     changeColour(new TaylorColourScheme());
   }
@@ -3359,7 +3368,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void hydrophobicityColour_actionPerformed(ActionEvent e)
+  public void hydrophobicityColour_actionPerformed()
   {
     changeColour(new HydrophobicColourScheme());
   }
@@ -3371,7 +3380,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void helixColour_actionPerformed(ActionEvent e)
+  public void helixColour_actionPerformed()
   {
     changeColour(new HelixColourScheme());
   }
@@ -3383,7 +3392,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void strandColour_actionPerformed(ActionEvent e)
+  public void strandColour_actionPerformed()
   {
     changeColour(new StrandColourScheme());
   }
@@ -3395,7 +3404,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void turnColour_actionPerformed(ActionEvent e)
+  public void turnColour_actionPerformed()
   {
     changeColour(new TurnColourScheme());
   }
@@ -3407,7 +3416,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void buriedColour_actionPerformed(ActionEvent e)
+  public void buriedColour_actionPerformed()
   {
     changeColour(new BuriedColourScheme());
   }
@@ -3419,25 +3428,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void nucleotideColour_actionPerformed(ActionEvent e)
+  public void nucleotideColour_actionPerformed()
   {
     changeColour(new NucleotideColourScheme());
   }
 
   @Override
-  public void purinePyrimidineColour_actionPerformed(ActionEvent e)
+  public void purinePyrimidineColour_actionPerformed()
   {
     changeColour(new PurinePyrimidineColourScheme());
   }
 
   /*
-   * public void covariationColour_actionPerformed(ActionEvent e) {
+   * public void covariationColour_actionPerformed() {
    * changeColour(new
    * CovariationColourScheme(viewport.getAlignment().getAlignmentAnnotation
    * ()[0])); }
    */
   @Override
-  public void annotationColour_actionPerformed(ActionEvent e)
+  public void annotationColour_actionPerformed()
   {
     new AnnotationColourChooser(viewport, alignPanel);
   }
@@ -3449,7 +3458,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   @Override
-  public void rnahelicesColour_actionPerformed(ActionEvent e)
+  public void rnahelicesColour_actionPerformed()
   {
     new RNAHelicesColourChooser(viewport, alignPanel);
   }
@@ -3457,11 +3466,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * DOCUMENT ME!
    * 
-   * @param e
-   *          DOCUMENT ME!
    */
   @Override
-  protected void applyToAllGroups_actionPerformed(ActionEvent e)
+  protected void applyToAllGroups_actionPerformed()
   {
     viewport.setColourAppliesToAllGroups(applyToAllGroups.isSelected());
   }
@@ -3511,7 +3518,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  protected void modifyPID_actionPerformed(ActionEvent e)
+  protected void modifyPID_actionPerformed()
   {
     if (viewport.getAbovePIDThreshold()
             && viewport.getGlobalColourScheme() != null)
@@ -3529,7 +3536,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  protected void modifyConservation_actionPerformed(ActionEvent e)
+  protected void modifyConservation_actionPerformed()
   {
     if (viewport.getConservationSelected()
             && viewport.getGlobalColourScheme() != null)
@@ -3547,7 +3554,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  protected void conservationMenuItem_actionPerformed(ActionEvent e)
+  protected void conservationMenuItem_actionPerformed()
   {
     viewport.setConservationSelected(conservationMenuItem.isSelected());
 
@@ -3556,7 +3563,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     changeColour(viewport.getGlobalColourScheme());
 
-    modifyConservation_actionPerformed(null);
+    modifyConservation_actionPerformed();
   }
 
   /**
@@ -3566,7 +3573,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void abovePIDThreshold_actionPerformed(ActionEvent e)
+  public void abovePIDThreshold_actionPerformed()
   {
     viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected());
 
@@ -3575,7 +3582,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     changeColour(viewport.getGlobalColourScheme());
 
-    modifyPID_actionPerformed(null);
+    modifyPID_actionPerformed();
   }
 
   /**
@@ -3594,104 +3601,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
     else
     {
-      UserColourScheme udc = (UserColourScheme) UserDefinedColours
+      UserColourScheme udc = UserDefinedColours
               .getUserColourSchemes().get(e.getActionCommand());
 
       changeColour(udc);
     }
   }
 
-  public void updateUserColourMenu()
-  {
-
-    Component[] menuItems = colourMenu.getMenuComponents();
-    int iSize = menuItems.length;
-    for (int i = 0; i < iSize; i++)
-    {
-      if (menuItems[i].getName() != null
-              && menuItems[i].getName().equals("USER_DEFINED"))
-      {
-        colourMenu.remove(menuItems[i]);
-        iSize--;
-      }
-    }
-    if (jalview.gui.UserDefinedColours.getUserColourSchemes() != null)
-    {
-      java.util.Enumeration userColours = jalview.gui.UserDefinedColours
-              .getUserColourSchemes().keys();
-
-      while (userColours.hasMoreElements())
-      {
-        final JRadioButtonMenuItem radioItem = new JRadioButtonMenuItem(
-                userColours.nextElement().toString());
-        radioItem.setName("USER_DEFINED");
-        radioItem.addMouseListener(new MouseAdapter()
-        {
-          @Override
-          public void mousePressed(MouseEvent evt)
-          {
-            if (evt.isPopupTrigger()) // Mac
-            {
-              offerRemoval(radioItem);
-            }
-          }
-
-          @Override
-          public void mouseReleased(MouseEvent evt)
-          {
-            if (evt.isPopupTrigger()) // Windows
-            {
-              offerRemoval(radioItem);
-            }
-          }
-
-          /**
-           * @param radioItem
-           */
-          void offerRemoval(final JRadioButtonMenuItem radioItem)
-          {
-            radioItem.removeActionListener(radioItem.getActionListeners()[0]);
-
-            int option = JvOptionPane.showInternalConfirmDialog(
-                    jalview.gui.Desktop.desktop, MessageManager
-                            .getString("label.remove_from_default_list"),
-                    MessageManager
-                            .getString("label.remove_user_defined_colour"),
-                    JvOptionPane.YES_NO_OPTION);
-            if (option == JvOptionPane.YES_OPTION)
-            {
-              jalview.gui.UserDefinedColours
-                      .removeColourFromDefaults(radioItem.getText());
-              colourMenu.remove(radioItem);
-            }
-            else
-            {
-              radioItem.addActionListener(new ActionListener()
-              {
-                @Override
-                public void actionPerformed(ActionEvent evt)
-                {
-                  userDefinedColour_actionPerformed(evt);
-                }
-              });
-            }
-          }
-        });
-        radioItem.addActionListener(new ActionListener()
-        {
-          @Override
-          public void actionPerformed(ActionEvent evt)
-          {
-            userDefinedColour_actionPerformed(evt);
-          }
-        });
-
-        colourMenu.insert(radioItem, 15);
-        colours.add(radioItem);
-      }
-    }
-  }
-
   /**
    * DOCUMENT ME!
    * 
@@ -3699,7 +3615,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void PIDColour_actionPerformed(ActionEvent e)
+  public void PIDColour_actionPerformed()
   {
     changeColour(new PIDColourScheme());
   }
@@ -3711,7 +3627,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    *          DOCUMENT ME!
    */
   @Override
-  public void BLOSUM62Colour_actionPerformed(ActionEvent e)
+  public void BLOSUM62Colour_actionPerformed()
   {
     changeColour(new Blosum62ColourScheme());
   }
@@ -4351,7 +4267,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   @Override
-  protected void tcoffeeColorScheme_actionPerformed(ActionEvent e)
+  protected void tcoffeeColorScheme_actionPerformed()
   {
     changeColour(new TCoffeeColourScheme(alignPanel.getAlignment()));
   }
@@ -5836,7 +5752,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
     AlignmentI cdna = new Alignment(cdnaSeqs.toArray(new SequenceI[cdnaSeqs
             .size()]));
-    AlignFrame alignFrame = new AlignFrame(cdna, AlignFrame.DEFAULT_WIDTH,
+    GAlignFrame alignFrame = new AlignFrame(cdna, AlignFrame.DEFAULT_WIDTH,
             AlignFrame.DEFAULT_HEIGHT);
     cdna.alignAs(alignment);
     String newtitle = "cDNA " + MessageManager.getString("label.for") + " "