JAL-1953 2.11.2 with Archeopteryx!
[jalview.git] / src / jalview / jbgui / GAlignFrame.java
index 5940172..870aa89 100755 (executable)
 package jalview.jbgui;
 
 import jalview.analysis.AnnotationSorter.SequenceAnnotationOrder;
+import jalview.analysis.GeneticCodeI;
+import jalview.analysis.GeneticCodes;
 import jalview.api.SplitContainerI;
 import jalview.bin.Cache;
 import jalview.gui.JvSwingUtils;
 import jalview.gui.Preferences;
 import jalview.io.FileFormats;
+import jalview.schemes.ResidueColourScheme;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 
 import java.awt.BorderLayout;
 import java.awt.Color;
 import java.awt.GridLayout;
-import java.awt.Toolkit;
 import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.FocusAdapter;
@@ -59,15 +61,18 @@ import javax.swing.event.ChangeEvent;
 import javax.swing.event.MenuEvent;
 import javax.swing.event.MenuListener;
 
+@SuppressWarnings("serial")
 public class GAlignFrame extends JInternalFrame
 {
   protected JMenuBar alignFrameMenuBar = new JMenuBar();
 
   protected JMenuItem closeMenuItem = new JMenuItem();
 
-  protected JMenu webService = new JMenu();
+  public JMenu webService = new JMenu();// BH 2019 was protected, but not
+                                        // sufficient for AlignFrame thread run
 
-  protected JMenuItem webServiceNoServices;
+  public JMenuItem webServiceNoServices;// BH 2019 was protected, but not
+                                        // sufficient for AlignFrame thread run
 
   protected JCheckBoxMenuItem viewBoxesMenuItem = new JCheckBoxMenuItem();
 
@@ -75,7 +80,9 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenu sortByAnnotScore = new JMenu();
 
-  public JLabel statusBar = new JLabel();
+  public JLabel statusBar = new JLabel(); // BH 2019 was protected, but not
+                                          // sufficient for
+                                          // AlignFrame.printWriter
 
   protected JMenu outputTextboxMenu = new JMenu();
 
@@ -123,7 +130,7 @@ public class GAlignFrame extends JInternalFrame
 
   protected JMenuItem modifyPID;
 
-  protected JMenuItem annotationColour;
+  protected JRadioButtonMenuItem annotationColour;
 
   protected JMenu sortByTreeMenu = new JMenu();
 
@@ -137,7 +144,7 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem showDbRefsMenuitem = new JCheckBoxMenuItem();
 
-  protected JMenuItem showTranslation = new JMenuItem();
+  protected JMenu showTranslation = new JMenu();
 
   protected JMenuItem showReverse = new JMenuItem();
 
@@ -169,7 +176,7 @@ public class GAlignFrame extends JInternalFrame
 
   protected JCheckBoxMenuItem hiddenMarkers = new JCheckBoxMenuItem();
 
-  protected JTabbedPane tabbedPane = jalview.jbgui.GDesktop.createTabbedPane();
+  protected JTabbedPane tabbedPane = new JTabbedPane();
 
   protected JMenuItem reload = new JMenuItem();
 
@@ -196,14 +203,14 @@ public class GAlignFrame extends JInternalFrame
   protected JCheckBoxMenuItem normaliseSequenceLogo = new JCheckBoxMenuItem();
 
   protected JCheckBoxMenuItem applyAutoAnnotationSettings = new JCheckBoxMenuItem();
-  
+
   protected JMenuItem openFeatureSettings;
 
   private SequenceAnnotationOrder annotationSortOrder;
 
   private boolean showAutoCalculatedAbove = false;
 
-  private Map<KeyStroke, JMenuItem> accelerators = new HashMap<KeyStroke, JMenuItem>();
+  private Map<KeyStroke, JMenuItem> accelerators = new HashMap<>();
 
   private SplitContainerI splitFrame;
 
@@ -211,6 +218,10 @@ public class GAlignFrame extends JInternalFrame
   {
     try
     {
+
+      // for Web-page embedding using id=align-frame-div
+      setName("jalview-alignment");
+
       jbInit();
       setJMenuBar(alignFrameMenuBar);
 
@@ -265,14 +276,16 @@ public class GAlignFrame extends JInternalFrame
 
     // FIXME getDefaultToolkit throws an exception in Headless mode
     KeyStroke keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
-                    | KeyEvent.SHIFT_MASK,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
             false);
     addMenuActionAndAccelerator(keyStroke, saveAs, al);
 
     closeMenuItem.setText(MessageManager.getString("action.close"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_W,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -295,7 +308,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem selectAllSequenceMenuItem = new JMenuItem(
             MessageManager.getString("action.select_all"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_A,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -322,7 +337,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem invertSequenceMenuItem = new JMenuItem(
             MessageManager.getString("action.invert_sequence_selection"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -358,7 +375,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem remove2LeftMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_left"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_L,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -372,7 +391,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem remove2RightMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_right"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_R,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -386,7 +407,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeGappedColumnMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_empty_columns"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -400,8 +423,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeAllGapsMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_all_gaps"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_E,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
-                    | KeyEvent.SHIFT_MASK,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -508,7 +531,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem removeRedundancyMenuItem = new JMenuItem(
             MessageManager.getString("action.remove_redundancy"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_D,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -683,7 +708,9 @@ public class GAlignFrame extends JInternalFrame
     undoMenuItem.setEnabled(false);
     undoMenuItem.setText(MessageManager.getString("action.undo"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Z,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -697,7 +724,9 @@ public class GAlignFrame extends JInternalFrame
     redoMenuItem.setEnabled(false);
     redoMenuItem.setText(MessageManager.getString("action.redo"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_Y,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -721,7 +750,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem printMenuItem = new JMenuItem(
             MessageManager.getString("action.print"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_P,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -747,7 +778,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem findMenuItem = new JMenuItem(
             MessageManager.getString("action.find"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_F,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     findMenuItem.setToolTipText(JvSwingUtils.wrapTooltip(true,
             MessageManager.getString("label.find_tip")));
     al = new ActionListener()
@@ -908,7 +941,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem deleteGroups = new JMenuItem(
             MessageManager.getString("action.undefine_groups"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_U,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -933,7 +968,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem createGroup = new JMenuItem(
             MessageManager.getString("action.create_group"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -947,8 +984,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem unGroup = new JMenuItem(
             MessageManager.getString("action.remove_group"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_G,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
-                    | KeyEvent.SHIFT_MASK,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -962,7 +999,9 @@ public class GAlignFrame extends JInternalFrame
 
     copy.setText(MessageManager.getString("action.copy"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_C,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
 
     al = new ActionListener()
     {
@@ -976,7 +1015,9 @@ public class GAlignFrame extends JInternalFrame
 
     cut.setText(MessageManager.getString("action.cut"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_X,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -1002,8 +1043,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem pasteNew = new JMenuItem(
             MessageManager.getString("label.to_new_alignment"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
-                    | KeyEvent.SHIFT_MASK,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    | jalview.util.ShortcutKeyMaskExWrapper.SHIFT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -1018,7 +1059,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem pasteThis = new JMenuItem(
             MessageManager.getString("label.to_this_alignment"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_V,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -1052,7 +1095,7 @@ public class GAlignFrame extends JInternalFrame
     });
     seqLimits.setText(
             MessageManager.getString("label.show_sequence_limits"));
-    seqLimits.setState(jalview.bin.Cache.getDefault("SHOW_JVSUFFIX", true));
+    seqLimits.setState(Cache.getDefault("SHOW_JVSUFFIX", true));
     seqLimits.addActionListener(new ActionListener()
     {
       @Override
@@ -1081,11 +1124,10 @@ public class GAlignFrame extends JInternalFrame
       }
     });
 
-    JMenuItem loadTreeMenuItem = new JMenuItem(
-            MessageManager.getString("label.load_associated_tree"));
-    loadTreeMenuItem.setActionCommand(
-            MessageManager.getString("label.load_tree_for_sequence_set"));
-    loadTreeMenuItem.addActionListener(new ActionListener()
+    JMenuItem loadTreeFile = new JMenuItem(
+            MessageManager.getString("label.from_file"));
+
+    loadTreeFile.addActionListener(new ActionListener()
     {
       @Override
       public void actionPerformed(ActionEvent e)
@@ -1094,6 +1136,89 @@ public class GAlignFrame extends JInternalFrame
       }
     });
 
+    JMenuItem loadTreeUrl = new JMenuItem(
+            MessageManager.getString("label.from_url"));
+    loadTreeUrl.addActionListener(new ActionListener()
+    {
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreeUrlItem_actionPerformed(e);
+      }
+    });
+
+
+
+    JMenuItem loadTreeBaseStudy = new JMenuItem(
+            MessageManager.getString("label.treebase_study"));
+    loadTreeBaseStudy.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreeBaseStudy_actionPerformed(e);
+
+      }    });
+
+
+
+    JMenuItem loadTreeBase = new JMenuItem(
+            MessageManager.getString("label.treebase"));
+    loadTreeBase.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreeBase_actionPerformed(e);
+
+      }
+
+
+    });
+    JMenuItem loadTreePfam = new JMenuItem(
+            MessageManager.getString("label.pfam"));
+    loadTreePfam.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreePfam_actionPerformed(e);
+
+      }
+
+    });
+    JMenuItem loadTreeFam = new JMenuItem(
+            MessageManager.getString("label.treefam"));
+    loadTreeFam.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreeFam_actionPerformed(e);
+
+      }
+
+    });
+
+    JMenuItem loadTreeOfLife = new JMenuItem(
+            MessageManager.getString("label.tree_of_life"));
+    loadTreeOfLife.addActionListener(new ActionListener()
+    {
+
+      @Override
+      public void actionPerformed(ActionEvent e)
+      {
+        loadTreeOfLife_actionPerformed(e);
+
+      }
+
+
+    });
+
     scaleAbove.setVisible(false);
     scaleAbove.setText(MessageManager.getString("action.scale_above"));
     scaleAbove.addActionListener(new ActionListener()
@@ -1202,8 +1327,7 @@ public class GAlignFrame extends JInternalFrame
             .setText(MessageManager.getString("action.calculate_tree_pca"));
 
     padGapsMenuitem.setText(MessageManager.getString("label.pad_gaps"));
-    padGapsMenuitem
-            .setState(jalview.bin.Cache.getDefault("PAD_GAPS", false));
+    padGapsMenuitem.setState(Cache.getDefault("PAD_GAPS", false));
     padGapsMenuitem.addActionListener(new ActionListener()
     {
       @Override
@@ -1223,16 +1347,33 @@ public class GAlignFrame extends JInternalFrame
         vamsasStore_actionPerformed(e);
       }
     });
+
+    /*
+     * Translate as cDNA with sub-menu of translation tables
+     */
     showTranslation
             .setText(MessageManager.getString("label.translate_cDNA"));
-    showTranslation.addActionListener(new ActionListener()
+    boolean first = true;
+    for (final GeneticCodeI table : GeneticCodes.getInstance()
+            .getCodeTables())
     {
-      @Override
-      public void actionPerformed(ActionEvent e)
+      JMenuItem item = new JMenuItem(table.getId() + " " + table.getName());
+      showTranslation.add(item);
+      item.addActionListener(new ActionListener()
+      {
+        @Override
+        public void actionPerformed(ActionEvent e)
+        {
+          showTranslation_actionPerformed(table);
+        }
+      });
+      if (first)
       {
-        showTranslation_actionPerformed(e);
+        showTranslation.addSeparator();
       }
-    });
+      first = false;
+    }
+
     showReverse.setText(MessageManager.getString("label.reverse"));
     showReverse.addActionListener(new ActionListener()
     {
@@ -1316,7 +1457,8 @@ public class GAlignFrame extends JInternalFrame
         associatedData_actionPerformed(e);
       }
     });
-    loadVcf = new JMenuItem(MessageManager.getString("label.load_vcf_file"));
+    loadVcf = new JMenuItem(
+            MessageManager.getString("label.load_vcf_file"));
     loadVcf.setToolTipText(MessageManager.getString("label.load_vcf"));
     loadVcf.addActionListener(new ActionListener()
     {
@@ -1328,8 +1470,7 @@ public class GAlignFrame extends JInternalFrame
     });
     autoCalculate.setText(
             MessageManager.getString("label.autocalculate_consensus"));
-    autoCalculate.setState(
-            jalview.bin.Cache.getDefault("AUTO_CALC_CONSENSUS", true));
+    autoCalculate.setState(Cache.getDefault("AUTO_CALC_CONSENSUS", true));
     autoCalculate.addActionListener(new ActionListener()
     {
       @Override
@@ -1342,8 +1483,7 @@ public class GAlignFrame extends JInternalFrame
             MessageManager.getString("label.sort_alignment_new_tree"));
     sortByTree.setToolTipText("<html>" + MessageManager.getString(
             "label.enable_automatically_sort_alignment_when_open_new_tree"));
-    sortByTree
-            .setState(jalview.bin.Cache.getDefault("SORT_BY_TREE", false));
+    sortByTree.setState(Cache.getDefault("SORT_BY_TREE", false));
     sortByTree.addActionListener(new ActionListener()
     {
       @Override
@@ -1517,8 +1657,8 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem invertColSel = new JMenuItem(
             MessageManager.getString("action.invert_column_selection"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_I,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
-                    | KeyEvent.ALT_MASK,
+            jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx()
+                    | jalview.util.ShortcutKeyMaskExWrapper.ALT_DOWN_MASK,
             false);
     al = new ActionListener()
     {
@@ -1581,7 +1721,9 @@ public class GAlignFrame extends JInternalFrame
 
     JMenuItem save = new JMenuItem(MessageManager.getString("action.save"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_S,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -1606,7 +1748,9 @@ public class GAlignFrame extends JInternalFrame
     JMenuItem newView = new JMenuItem(
             MessageManager.getString("action.new_view"));
     keyStroke = KeyStroke.getKeyStroke(KeyEvent.VK_T,
-            Toolkit.getDefaultToolkit().getMenuShortcutKeyMask(), false);
+            jalview.util.ShortcutKeyMaskExWrapper
+                    .getMenuShortcutKeyMaskEx(),
+            false);
     al = new ActionListener()
     {
       @Override
@@ -1701,7 +1845,27 @@ public class GAlignFrame extends JInternalFrame
 
     JMenu exportImageMenu = new JMenu(
             MessageManager.getString("label.export_image"));
+
+    JMenu loadTreeDb = new JMenu(
+            MessageManager.getString("label.from_database"));
+
+    JMenu loadTreeMenu = new JMenu(
+            MessageManager.getString("label.load_associated_tree"));
+    // loadTreeMenu.setToolTipText(
+    // MessageManager.getString("label.load_tree_for_sequence_set"));
+    
     JMenu fileMenu = new JMenu(MessageManager.getString("action.file"));
+
+    loadTreeDb.add(loadTreeBaseStudy);
+    loadTreeDb.add(loadTreeBase);
+    loadTreeDb.add(loadTreePfam);
+    loadTreeDb.add(loadTreeFam);
+    loadTreeDb.add(loadTreeOfLife);
+
+    loadTreeMenu.add(loadTreeFile);
+    loadTreeMenu.add(loadTreeUrl);
+    loadTreeMenu.add(loadTreeDb);
+
     alignFrameMenuBar.add(fileMenu);
     alignFrameMenuBar.add(editMenu);
     alignFrameMenuBar.add(selectMenu);
@@ -1729,7 +1893,7 @@ public class GAlignFrame extends JInternalFrame
     fileMenu.add(exportImageMenu);
     fileMenu.add(exportFeatures);
     fileMenu.add(exportAnnotations);
-    fileMenu.add(loadTreeMenuItem);
+    fileMenu.add(loadTreeMenu);
     fileMenu.add(associatedData);
     if (!Platform.isJS())
     {
@@ -1887,6 +2051,38 @@ public class GAlignFrame extends JInternalFrame
     // JAL-574
     // selectMenu.addSeparator();
     // selectMenu.add(listenToViewSelections);
+
+
+  }
+
+  protected void loadTreeOfLife_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void loadTreeFam_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void loadTreePfam_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void loadTreeBase_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
+  }
+
+  protected void loadTreeBaseStudy_actionPerformed(ActionEvent e)
+  {
+    // TODO Auto-generated method stub
+
   }
 
   protected void loadVcf_actionPerformed()
@@ -1964,8 +2160,9 @@ public class GAlignFrame extends JInternalFrame
       }
     });
 
-    annotationColour = new JMenuItem(
+    annotationColour = new JRadioButtonMenuItem(
             MessageManager.getString("action.by_annotation"));
+    annotationColour.setName(ResidueColourScheme.ANNOTATION_COLOUR);
     annotationColour.addActionListener(new ActionListener()
     {
       @Override
@@ -2406,6 +2603,13 @@ public class GAlignFrame extends JInternalFrame
 
   }
 
+  protected void loadTreeUrlItem_actionPerformed(ActionEvent e)
+  {
+
+  }
+
+
+
   /**
    * Template method to handle the 'load T-Coffee scores' menu event.
    * <p>
@@ -2461,7 +2665,7 @@ public class GAlignFrame extends JInternalFrame
 
   }
 
-  public void showTranslation_actionPerformed(ActionEvent e)
+  public void showTranslation_actionPerformed(GeneticCodeI codeTable)
   {
 
   }