JAL-1160 support horizontal mouse wheel scrolling events
[jalview.git] / src / jalview / gui / AlignFrame.java
index bfcab9e..9818e6b 100755 (executable)
@@ -1,18 +1,18 @@
 /*
  * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
  * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle
- * 
+ *
  * This file is part of Jalview.
- * 
+ *
  * Jalview is free software: you can redistribute it and/or
- * modify it under the terms of the GNU General Public License 
+ * modify it under the terms of the GNU General Public License
  * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version.
- * 
- * Jalview is distributed in the hope that it will be useful, but 
- * WITHOUT ANY WARRANTY; without even the implied warranty 
- * of MERCHANTABILITY or FITNESS FOR A PARTICULAR 
+ *
+ * Jalview is distributed in the hope that it will be useful, but
+ * WITHOUT ANY WARRANTY; without even the implied warranty
+ * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
  * PURPOSE.  See the GNU General Public License for more details.
- * 
+ *
  * You should have received a copy of the GNU General Public License along with Jalview.  If not, see <http://www.gnu.org/licenses/>.
  */
 package jalview.gui;
@@ -127,7 +127,7 @@ import javax.swing.SwingUtilities;
 
 /**
  * DOCUMENT ME!
- * 
+ *
  * @author $author$
  * @version $Revision$
  */
@@ -146,7 +146,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   AlignViewport viewport;
 
   Vector alignPanels = new Vector();
-  
+
   /**
    * Last format used to load or save alignments in this window
    */
@@ -159,7 +159,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Creates a new AlignFrame object with specific width and height.
-   * 
+   *
    * @param al
    * @param width
    * @param height
@@ -172,7 +172,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Creates a new AlignFrame object with specific width, height and
    * sequenceSetId
-   * 
+   *
    * @param al
    * @param width
    * @param height
@@ -187,7 +187,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Creates a new AlignFrame object with specific width, height and
    * sequenceSetId
-   * 
+   *
    * @param al
    * @param width
    * @param height
@@ -202,7 +202,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * new alignment window with hidden columns
-   * 
+   *
    * @param al
    *          AlignmentI
    * @param hiddenColumns
@@ -221,7 +221,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Create alignment frame for al with hiddenColumns, a specific width and
    * height, and specific sequenceId
-   * 
+   *
    * @param al
    * @param hiddenColumns
    * @param width
@@ -238,7 +238,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Create alignment frame for al with hiddenColumns, a specific width and
    * height, and specific sequenceId
-   * 
+   *
    * @param al
    * @param hiddenColumns
    * @param width
@@ -267,7 +267,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Make a new AlignFrame from exisiting alignmentPanels
-   * 
+   *
    * @param ap
    *          AlignmentPanel
    * @param av
@@ -335,7 +335,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Change the filename and format for the alignment, and enable the 'reload'
    * button functionality.
-   * 
+   *
    * @param file
    *          valid filename
    * @param format
@@ -352,6 +352,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   {
     addKeyListener(new KeyAdapter()
     {
+      @Override
       public void keyPressed(KeyEvent evt)
       {
         if (viewport.cursorMode
@@ -532,6 +533,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         }
       }
 
+      @Override
       public void keyReleased(KeyEvent evt)
       {
         switch (evt.getKeyCode())
@@ -616,6 +618,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     Desktop.instance.addJalviewPropertyChangeListener("services",
             thisListener = new java.beans.PropertyChangeListener()
             {
+              @Override
               public void propertyChange(PropertyChangeEvent evt)
               {
                 // // System.out.println("Discoverer property change.");
@@ -624,6 +627,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   SwingUtilities.invokeLater(new Runnable()
                   {
 
+                    @Override
                     public void run()
                     {
                       System.err
@@ -637,6 +641,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             });
     addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
     {
+      @Override
       public void internalFrameClosed(
               javax.swing.event.InternalFrameEvent evt)
       {
@@ -649,6 +654,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     // Finally, build the menu once to get current service state
     new Thread(new Runnable()
     {
+      @Override
       public void run()
       {
         BuildWebServiceMenu();
@@ -685,7 +691,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Need to call this method when tabs are selected for multiple views, or when
    * loading from Jalview2XML.java
-   * 
+   *
    * @param av
    *          AlignViewport
    */
@@ -718,7 +724,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     showSeqFeatures.setSelected(av.showSequenceFeatures);
     hiddenMarkers.setState(av.showHiddenMarkers);
-    applyToAllGroups.setState(av.colourAppliesToAllGroups);
+    applyToAllGroups.setState(av.getColourAppliesToAllGroups());
     showNpFeatsMenuitem.setSelected(av.isShowNpFeats());
     showDbRefsMenuitem.setSelected(av.isShowDbRefs());
     autoCalculate.setSelected(av.autoCalculateConsensus);
@@ -731,14 +737,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     updateEditMenuBar();
   }
-
+  // methods for implementing IProgressIndicator
+  // need to refactor to a reusable stub class
   Hashtable progressBars, progressBarHandlers;
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.gui.IProgressIndicator#setProgressBar(java.lang.String, long)
    */
+  @Override
   public void setProgressBar(String message, long id)
   {
     if (progressBars == null)
@@ -786,6 +794,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     validate();
   }
 
+  @Override
   public void registerHandler(final long id,
           final IProgressIndicatorHandler handler)
   {
@@ -803,6 +812,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       cancel.addActionListener(new ActionListener()
       {
 
+        @Override
         public void actionPerformed(ActionEvent e)
         {
           handler.cancelActivity(id);
@@ -817,9 +827,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   /**
-   * 
+   *
    * @return true if any progress bars are still active
    */
+  @Override
   public boolean operationInProgress()
   {
     if (progressBars != null && progressBars.size() > 0)
@@ -842,21 +853,25 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     return alignPanel.seqPanel.seqCanvas.getFeatureRenderer();
   }
 
+  @Override
   public void fetchSequence_actionPerformed(ActionEvent e)
   {
     new SequenceFetcher(this);
   }
 
+  @Override
   public void addFromFile_actionPerformed(ActionEvent e)
   {
     Desktop.instance.inputLocalFileMenuItem_actionPerformed(viewport);
   }
 
+  @Override
   public void reload_actionPerformed(ActionEvent e)
   {
     if (fileName != null)
     {
-      // TODO: JAL-1108 - ensure all associated frames are closed regardless of originating file's format
+      // TODO: JAL-1108 - ensure all associated frames are closed regardless of
+      // originating file's format
       // TODO: work out how to recover feature settings for correct view(s) when
       // file is reloaded.
       if (currentFileFormat.equals("Jalview"))
@@ -865,7 +880,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         for (int i = 0; i < frames.length; i++)
         {
           if (frames[i] instanceof AlignFrame && frames[i] != this
-                  && ((AlignFrame) frames[i]).fileName.equals(fileName))
+                  && ((AlignFrame) frames[i]).fileName!=null && ((AlignFrame) frames[i]).fileName.equals(fileName))
           {
             try
             {
@@ -902,6 +917,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           final FeatureSettings nfs = newframe.featureSettings;
           SwingUtilities.invokeLater(new Runnable()
           {
+            @Override
             public void run()
             {
               nfs.frame.setBounds(fspos);
@@ -915,16 +931,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void addFromText_actionPerformed(ActionEvent e)
   {
     Desktop.instance.inputTextboxMenuItem_actionPerformed(viewport);
   }
 
+  @Override
   public void addFromURL_actionPerformed(ActionEvent e)
   {
     Desktop.instance.inputURLMenuItem_actionPerformed(viewport);
   }
 
+  @Override
   public void save_actionPerformed(ActionEvent e)
   {
     if (fileName == null
@@ -942,10 +961,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void saveAs_actionPerformed(ActionEvent e)
   {
     JalviewFileChooser chooser = new JalviewFileChooser(
@@ -1039,7 +1059,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       FormatAdapter f = new FormatAdapter();
       String output = f.formatSequences(
               format,
-              (Alignment) viewport.getAlignment(), // class cast exceptions will
+              viewport.getAlignment(), // class cast exceptions will
               // occur in the distant future
               omitHidden, f.getCacheSuffixDefault(format),
               viewport.getColumnSelection());
@@ -1094,10 +1114,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void outputText_actionPerformed(ActionEvent e)
   {
     String[] omitHidden = null;
@@ -1139,10 +1160,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void htmlMenuItem_actionPerformed(ActionEvent e)
   {
     new HTMLOutput(alignPanel,
@@ -1157,10 +1179,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void createPNG(File f)
   {
     alignPanel.makePNG(f);
@@ -1168,15 +1191,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void createEPS(File f)
   {
     alignPanel.makeEPS(f);
   }
 
+  @Override
   public void pageSetup_actionPerformed(ActionEvent e)
   {
     PrinterJob printJob = PrinterJob.getPrinterJob();
@@ -1185,10 +1210,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void printMenuItem_actionPerformed(ActionEvent e)
   {
     // Putting in a thread avoids Swing painting problems
@@ -1196,11 +1222,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     thread.start();
   }
 
+  @Override
   public void exportFeatures_actionPerformed(ActionEvent e)
   {
     new AnnotationExporter().exportFeatures(alignPanel);
   }
 
+  @Override
   public void exportAnnotations_actionPerformed(ActionEvent e)
   {
     new AnnotationExporter().exportAnnotations(alignPanel,
@@ -1210,6 +1238,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                     .getAlignment()).alignmentProperties);
   }
 
+  @Override
   public void associatedData_actionPerformed(ActionEvent e)
   {
     // Pick the tree file
@@ -1233,9 +1262,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Close the current view or all views in the alignment frame. If the frame
    * only contains one view then the alignment will be removed from memory.
-   * 
+   *
    * @param closeAllTabs
    */
+  @Override
   public void closeMenuItem_actionPerformed(boolean closeAllTabs)
   {
     if (alignPanels != null && alignPanels.size() < 2)
@@ -1278,7 +1308,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * close alignPanel2 and shuffle tabs appropriately.
-   * 
+   *
    * @param alignPanel2
    */
   public void closeView(AlignmentPanel alignPanel2)
@@ -1354,7 +1384,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   /**
-   * 
+   *
    * @return alignment objects for all views
    */
   AlignmentI[] getViewAlignments()
@@ -1379,10 +1409,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void undoMenuItem_actionPerformed(ActionEvent e)
   {
     if (viewport.historyList.empty())
@@ -1414,10 +1445,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void redoMenuItem_actionPerformed(ActionEvent e)
   {
     if (viewport.redoList.size() < 1)
@@ -1495,7 +1527,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param up
    *          DOCUMENT ME!
    */
@@ -1507,61 +1539,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     {
       return;
     }
-
-    if (up)
-    {
-      for (int i = 1; i < viewport.getAlignment().getHeight(); i++)
-      {
-        SequenceI seq = viewport.getAlignment().getSequenceAt(i);
-
-        if (!sg.getSequences(null).contains(seq))
-        {
-          continue;
-        }
-
-        SequenceI temp = viewport.getAlignment().getSequenceAt(i - 1);
-
-        if (sg.getSequences(null).contains(temp))
-        {
-          continue;
-        }
-
-        viewport.getAlignment().getSequences().setElementAt(temp, i);
-        viewport.getAlignment().getSequences().setElementAt(seq, i - 1);
-      }
-    }
-    else
-    {
-      for (int i = viewport.getAlignment().getHeight() - 2; i > -1; i--)
-      {
-        SequenceI seq = viewport.getAlignment().getSequenceAt(i);
-
-        if (!sg.getSequences(null).contains(seq))
-        {
-          continue;
-        }
-
-        SequenceI temp = viewport.getAlignment().getSequenceAt(i + 1);
-
-        if (sg.getSequences(null).contains(temp))
-        {
-          continue;
-        }
-
-        viewport.getAlignment().getSequences().setElementAt(temp, i);
-        viewport.getAlignment().getSequences().setElementAt(seq, i + 1);
-      }
-    }
-
+    viewport.getAlignment().moveSelectedSequencesByOne(sg, viewport.getHiddenRepSequences(), up);
     alignPanel.paintAlignment(true);
   }
 
   synchronized void slideSequences(boolean right, int size)
   {
-    Vector sg = new Vector();
+    List<SequenceI> sg = new Vector();
     if (viewport.cursorMode)
     {
-      sg.addElement(viewport.getAlignment().getSequenceAt(
+      sg.add(viewport.getAlignment().getSequenceAt(
               alignPanel.seqPanel.seqCanvas.cursorY));
     }
     else if (viewport.getSelectionGroup() != null
@@ -1585,9 +1572,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         invertGroup.add(viewport.getAlignment().getSequenceAt(i));
     }
 
-    SequenceI[] seqs1 = new SequenceI[sg.size()];
-    for (int i = 0; i < sg.size(); i++)
-      seqs1[i] = (SequenceI) sg.elementAt(i);
+    SequenceI[] seqs1 = sg.toArray(new SequenceI[0]);
 
     SequenceI[] seqs2 = new SequenceI[invertGroup.size()];
     for (int i = 0; i < invertGroup.size(); i++)
@@ -1642,10 +1627,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void copy_actionPerformed(ActionEvent e)
   {
     System.gc();
@@ -1710,10 +1696,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void pasteNew_actionPerformed(ActionEvent e)
   {
     paste(true);
@@ -1721,10 +1708,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void pasteThis_actionPerformed(ActionEvent e)
   {
     paste(false);
@@ -1732,7 +1720,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Paste contents of Jalview clipboard
-   * 
+   *
    * @param newAlignment
    *          true to paste to a new alignment, otherwise add to this.
    */
@@ -1793,6 +1781,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       }
 
       int alwidth = 0;
+      ArrayList<Integer> newGraphGroups=new ArrayList<Integer>();
+      int fgroup=-1;
 
       if (newAlignment)
       {
@@ -1860,6 +1850,16 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         {
           newDs.clear(); // tidy up
         }
+        if (alignment.getAlignmentAnnotation()!=null)
+        {
+          for (AlignmentAnnotation alan:alignment.getAlignmentAnnotation())
+          {
+            if (alan.graphGroup>fgroup)
+            {
+              fgroup=alan.graphGroup;
+            }
+          }
+        }
         if (pastedal.getAlignmentAnnotation() != null)
         {
           // Add any annotation attached to alignment.
@@ -1870,6 +1870,19 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
             if (alann[i].sequenceRef == null && !alann[i].autoCalculated)
             {
               AlignmentAnnotation newann = new AlignmentAnnotation(alann[i]);
+              if (newann.graphGroup>-1)
+              {
+                if (newGraphGroups.size()<=newann.graphGroup || newGraphGroups.get(newann.graphGroup)==null)
+                {
+                  for (int q=newGraphGroups.size();q<=newann.graphGroup; q++)
+                  {
+                    newGraphGroups.add(q, null);
+                  }
+                  newGraphGroups.set(newann.graphGroup,new Integer(++fgroup));
+                }
+                newann.graphGroup = newGraphGroups.get(newann.graphGroup).intValue();
+              }
+
               newann.padAnnotation(alwidth);
               alignment.addAnnotation(newann);
             }
@@ -1889,11 +1902,28 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       {
         if (sequences[i].getAnnotation() != null)
         {
+          AlignmentAnnotation newann;
           for (int a = 0; a < sequences[i].getAnnotation().length; a++)
           {
             annotationAdded = true;
-            sequences[i].getAnnotation()[a].adjustForAlignment();
-            sequences[i].getAnnotation()[a].padAnnotation(alwidth);
+            newann=sequences[i].getAnnotation()[a];
+            newann.adjustForAlignment();
+            newann.padAnnotation(alwidth);
+            if (newann.graphGroup>-1)
+            {
+              if (newann.graphGroup>-1)
+              {
+                if (newGraphGroups.size()<=newann.graphGroup || newGraphGroups.get(newann.graphGroup)==null)
+                {
+                  for (int q=newGraphGroups.size();q<=newann.graphGroup; q++)
+                  {
+                    newGraphGroups.add(q, null);
+                  }
+                  newGraphGroups.set(newann.graphGroup,new Integer(++fgroup));
+                }
+                newann.graphGroup = newGraphGroups.get(newann.graphGroup).intValue();
+              }
+            }
             alignment.addAnnotation(sequences[i].getAnnotation()[a]); // annotation
             // was
             // duplicated
@@ -1933,6 +1963,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   newann.padAnnotation(avwidth);
                   alview[avnum].addAnnotation(newann); // annotation was
                   // duplicated earlier
+                  // TODO JAL-1145 graphGroups are not updated for sequence annotation added to several views. This may cause strangeness
                   alview[avnum].setAnnotationIndex(newann, a);
                 }
               }
@@ -1942,6 +1973,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         }
         viewport.firePropertyChange("alignment", null,
                 alignment.getSequences());
+        if (alignPanels!=null ) {for (AlignmentPanel ap:((Vector<AlignmentPanel>)alignPanels))
+        {
+          ap.validateAnnotationDimensions(false);
+        }} else { alignPanel.validateAnnotationDimensions(false);}
 
       }
       else
@@ -2001,10 +2036,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void cut_actionPerformed(ActionEvent e)
   {
     copy_actionPerformed(null);
@@ -2013,10 +2049,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void delete_actionPerformed(ActionEvent evt)
   {
 
@@ -2073,10 +2110,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void deleteGroups_actionPerformed(ActionEvent e)
   {
     viewport.getAlignment().deleteAllGroups();
@@ -2089,10 +2127,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void selectAllSequenceMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceGroup sg = new SequenceGroup();
@@ -2111,10 +2150,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void deselectAllSequenceMenuItem_actionPerformed(ActionEvent e)
   {
     if (viewport.cursorMode)
@@ -2134,10 +2174,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void invertSequenceMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceGroup sg = viewport.getSelectionGroup();
@@ -2159,6 +2200,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     viewport.sendSelection();
   }
 
+  @Override
   public void invertColSel_actionPerformed(ActionEvent e)
   {
     viewport.invertColumnSelection();
@@ -2168,10 +2210,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void remove2LeftMenuItem_actionPerformed(ActionEvent e)
   {
     trimAlignment(true);
@@ -2179,10 +2222,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void remove2RightMenuItem_actionPerformed(ActionEvent e)
   {
     trimAlignment(false);
@@ -2236,12 +2280,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
       addHistoryItem(trimRegion);
 
-      Vector groups = viewport.getAlignment().getGroups();
-
-      for (int i = 0; i < groups.size(); i++)
+      for (SequenceGroup sg :viewport.getAlignment().getGroups())
       {
-        SequenceGroup sg = (SequenceGroup) groups.get(i);
-
         if ((trimLeft && !sg.adjustForRemoveLeft(column))
                 || (!trimLeft && !sg.adjustForRemoveRight(column)))
         {
@@ -2256,10 +2296,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void removeGappedColumnMenuItem_actionPerformed(ActionEvent e)
   {
     int start = 0, end = viewport.getAlignment().getWidth() - 1;
@@ -2303,10 +2344,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void removeAllGapsMenuItem_actionPerformed(ActionEvent e)
   {
     int start = 0, end = viewport.getAlignment().getWidth() - 1;
@@ -2341,10 +2383,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void padGapsMenuitem_actionPerformed(ActionEvent e)
   {
     viewport.setPadGaps(padGapsMenuitem.isSelected());
@@ -2364,22 +2407,24 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void findMenuItem_actionPerformed(ActionEvent e)
   {
     new Finder();
   }
 
+  @Override
   public void newView_actionPerformed(ActionEvent e)
   {
     newView(true);
   }
 
   /**
-   * 
+   *
    * @param copyAnnotation
    *          if true then duplicate all annnotation, groups and settings
    * @return new alignment panel, already displayed.
@@ -2390,7 +2435,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   /**
-   * 
+   *
    * @param viewTitle
    *          title of newly created view
    * @return new alignment panel, already displayed.
@@ -2401,7 +2446,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   }
 
   /**
-   * 
+   *
    * @param viewTitle
    *          title of newly created view
    * @param copyAnnotation
@@ -2483,11 +2528,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     return newap;
   }
 
+  @Override
   public void expandViews_actionPerformed(ActionEvent e)
   {
     Desktop.instance.explodeViews(this);
   }
 
+  @Override
   public void gatherViews_actionPerformed(ActionEvent e)
   {
     Desktop.instance.gatherViews(this);
@@ -2495,10 +2542,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void font_actionPerformed(ActionEvent e)
   {
     new FontChooser(alignPanel);
@@ -2506,10 +2554,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void seqLimit_actionPerformed(ActionEvent e)
   {
     viewport.setShowJVSuffix(seqLimits.isSelected());
@@ -2519,12 +2568,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     alignPanel.paintAlignment(true);
   }
 
+  @Override
   public void idRightAlign_actionPerformed(ActionEvent e)
   {
     viewport.rightAlignIds = idRightAlign.isSelected();
     alignPanel.paintAlignment(true);
   }
 
+  @Override
   public void centreColumnLabels_actionPerformed(ActionEvent e)
   {
     viewport.centreColumnLabels = centreColumnLabelsMenuItem.getState();
@@ -2533,9 +2584,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see jalview.jbgui.GAlignFrame#followHighlight_actionPerformed()
    */
+  @Override
   protected void followHighlight_actionPerformed()
   {
     if (viewport.followHighlight = this.followHighlightMenuItem.getState())
@@ -2547,10 +2599,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void colourTextMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setColourText(colourTextMenuItem.isSelected());
@@ -2559,10 +2612,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void wrapMenuItem_actionPerformed(ActionEvent e)
   {
     scaleAbove.setVisible(wrapMenuItem.isSelected());
@@ -2572,17 +2626,20 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     alignPanel.setWrapAlignment(wrapMenuItem.isSelected());
   }
 
+  @Override
   public void showAllSeqs_actionPerformed(ActionEvent e)
   {
     viewport.showAllHiddenSeqs();
   }
 
+  @Override
   public void showAllColumns_actionPerformed(ActionEvent e)
   {
     viewport.showAllHiddenColumns();
     repaint();
   }
 
+  @Override
   public void hideSelSequences_actionPerformed(ActionEvent e)
   {
     viewport.hideAllSelectedSeqs();
@@ -2591,7 +2648,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * called by key handler and the hide all/show all menu items
-   * 
+   *
    * @param toggleSeqs
    * @param toggleCols
    */
@@ -2661,11 +2718,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#hideAllButSelection_actionPerformed(java.awt.
    * event.ActionEvent)
    */
+  @Override
   public void hideAllButSelection_actionPerformed(ActionEvent e)
   {
     toggleHiddenRegions(false, false);
@@ -2673,11 +2731,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#hideAllSelection_actionPerformed(java.awt.event
    * .ActionEvent)
    */
+  @Override
   public void hideAllSelection_actionPerformed(ActionEvent e)
   {
     SequenceGroup sg = viewport.getSelectionGroup();
@@ -2689,11 +2748,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showAllhidden_actionPerformed(java.awt.event.
    * ActionEvent)
    */
+  @Override
   public void showAllhidden_actionPerformed(ActionEvent e)
   {
     viewport.showAllHiddenColumns();
@@ -2701,12 +2761,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     alignPanel.paintAlignment(true);
   }
 
+  @Override
   public void hideSelColumns_actionPerformed(ActionEvent e)
   {
     viewport.hideSelectedColumns();
     alignPanel.paintAlignment(true);
   }
 
+  @Override
   public void hiddenMarkers_actionPerformed(ActionEvent e)
   {
     viewport.setShowHiddenMarkers(hiddenMarkers.isSelected());
@@ -2715,10 +2777,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void scaleAbove_actionPerformed(ActionEvent e)
   {
     viewport.setScaleAboveWrapped(scaleAbove.isSelected());
@@ -2727,10 +2790,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void scaleLeft_actionPerformed(ActionEvent e)
   {
     viewport.setScaleLeftWrapped(scaleLeft.isSelected());
@@ -2739,10 +2803,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void scaleRight_actionPerformed(ActionEvent e)
   {
     viewport.setScaleRightWrapped(scaleRight.isSelected());
@@ -2751,10 +2816,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void viewBoxesMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setShowBoxes(viewBoxesMenuItem.isSelected());
@@ -2763,10 +2829,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void viewTextMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setShowText(viewTextMenuItem.isSelected());
@@ -2775,10 +2842,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void renderGapsMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setRenderGaps(renderGapsMenuItem.isSelected());
@@ -2787,6 +2855,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   public FeatureSettings featureSettings;
 
+  @Override
   public void featureSettings_actionPerformed(ActionEvent e)
   {
     if (featureSettings != null)
@@ -2805,10 +2874,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Set or clear 'Show Sequence Features'
-   * 
+   *
    * @param evt
    *          DOCUMENT ME!
    */
+  @Override
   public void showSeqFeatures_actionPerformed(ActionEvent evt)
   {
     viewport.setShowSequenceFeatures(showSeqFeatures.isSelected());
@@ -2821,10 +2891,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Set or clear 'Show Sequence Features'
-   * 
+   *
    * @param evt
    *          DOCUMENT ME!
    */
+  @Override
   public void showSeqFeaturesHeight_actionPerformed(ActionEvent evt)
   {
     viewport.setShowSequenceFeaturesHeight(showSeqFeaturesHeight
@@ -2844,16 +2915,18 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void annotationPanelMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setShowAnnotation(annotationPanelMenuItem.isSelected());
     alignPanel.setAnnotationVisible(annotationPanelMenuItem.isSelected());
   }
 
+  @Override
   public void alignmentProperties()
   {
     JEditorPane editPane = new JEditorPane("text/html", "");
@@ -2870,10 +2943,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void overviewMenuItem_actionPerformed(ActionEvent e)
   {
     if (alignPanel.overviewPanel != null)
@@ -2890,6 +2964,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     frame.setLayer(JLayeredPane.PALETTE_LAYER);
     frame.addInternalFrameListener(new javax.swing.event.InternalFrameAdapter()
     {
+      @Override
       public void internalFrameClosed(
               javax.swing.event.InternalFrameEvent evt)
       {
@@ -2900,6 +2975,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     alignPanel.setOverviewPanel(overview);
   }
 
+  @Override
   public void textColour_actionPerformed(ActionEvent e)
   {
     new TextColourChooser().chooseColour(alignPanel, null);
@@ -2907,10 +2983,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void noColourmenuItem_actionPerformed(ActionEvent e)
   {
     changeColour(null);
@@ -2918,22 +2995,23 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void clustalColour_actionPerformed(ActionEvent e)
   {
-    changeColour(new ClustalxColourScheme(viewport.getAlignment()
-            .getSequences(), viewport.getAlignment().getWidth()));
+    changeColour(new ClustalxColourScheme(viewport.getAlignment(), viewport.getHiddenRepSequences()));
   }
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void zappoColour_actionPerformed(ActionEvent e)
   {
     changeColour(new ZappoColourScheme());
@@ -2941,10 +3019,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void taylorColour_actionPerformed(ActionEvent e)
   {
     changeColour(new TaylorColourScheme());
@@ -2952,10 +3031,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void hydrophobicityColour_actionPerformed(ActionEvent e)
   {
     changeColour(new HydrophobicColourScheme());
@@ -2963,10 +3043,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void helixColour_actionPerformed(ActionEvent e)
   {
     changeColour(new HelixColourScheme());
@@ -2974,10 +3055,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void strandColour_actionPerformed(ActionEvent e)
   {
     changeColour(new StrandColourScheme());
@@ -2985,10 +3067,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void turnColour_actionPerformed(ActionEvent e)
   {
     changeColour(new TurnColourScheme());
@@ -2996,10 +3079,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void buriedColour_actionPerformed(ActionEvent e)
   {
     changeColour(new BuriedColourScheme());
@@ -3007,15 +3091,17 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void nucleotideColour_actionPerformed(ActionEvent e)
   {
     changeColour(new NucleotideColourScheme());
   }
 
+  @Override
   public void purinePyrimidineColour_actionPerformed(ActionEvent e)
   {
     changeColour(new PurinePyrimidineColourScheme());
@@ -3027,11 +3113,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * CovariationColourScheme(viewport.getAlignment().getAlignmentAnnotation
    * ()[0])); }
    */
+  @Override
   public void annotationColour_actionPerformed(ActionEvent e)
   {
     new AnnotationColourChooser(viewport, alignPanel);
   }
 
+  @Override
   public void rnahelicesColour_actionPerformed(ActionEvent e)
   {
     new RNAHelicesColourChooser(viewport, alignPanel);
@@ -3039,10 +3127,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void applyToAllGroups_actionPerformed(ActionEvent e)
   {
     viewport.setColourAppliesToAllGroups(applyToAllGroups.isSelected());
@@ -3050,7 +3139,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param cs
    *          DOCUMENT ME!
    */
@@ -3103,12 +3192,10 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
     if (viewport.getColourAppliesToAllGroups())
     {
-      Vector groups = viewport.getAlignment().getGroups();
 
-      for (int i = 0; i < groups.size(); i++)
-      {
-        SequenceGroup sg = (SequenceGroup) groups.elementAt(i);
 
+      for (SequenceGroup sg:viewport.getAlignment().getGroups())
+      {
         if (cs == null)
         {
           sg.cs = null;
@@ -3117,8 +3204,8 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
         if (cs instanceof ClustalxColourScheme)
         {
-          sg.cs = new ClustalxColourScheme(sg.getSequences(viewport
-                  .getHiddenRepSequences()), sg.getWidth());
+          sg.cs = new ClustalxColourScheme(sg, viewport
+                  .getHiddenRepSequences());
         }
         else if (cs instanceof UserColourScheme)
         {
@@ -3176,10 +3263,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void modifyPID_actionPerformed(ActionEvent e)
   {
     if (viewport.getAbovePIDThreshold()
@@ -3193,10 +3281,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void modifyConservation_actionPerformed(ActionEvent e)
   {
     if (viewport.getConservationSelected()
@@ -3210,10 +3299,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void conservationMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setConservationSelected(conservationMenuItem.isSelected());
@@ -3228,10 +3318,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void abovePIDThreshold_actionPerformed(ActionEvent e)
   {
     viewport.setAbovePIDThreshold(abovePIDThreshold.isSelected());
@@ -3246,10 +3337,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void userDefinedColour_actionPerformed(ActionEvent e)
   {
     if (e.getActionCommand().equals("User Defined..."))
@@ -3291,6 +3383,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         radioItem.setName("USER_DEFINED");
         radioItem.addMouseListener(new MouseAdapter()
         {
+          @Override
           public void mousePressed(MouseEvent evt)
           {
             if (evt.isControlDown()
@@ -3313,6 +3406,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
               {
                 radioItem.addActionListener(new ActionListener()
                 {
+                  @Override
                   public void actionPerformed(ActionEvent evt)
                   {
                     userDefinedColour_actionPerformed(evt);
@@ -3324,6 +3418,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         });
         radioItem.addActionListener(new ActionListener()
         {
+          @Override
           public void actionPerformed(ActionEvent evt)
           {
             userDefinedColour_actionPerformed(evt);
@@ -3338,10 +3433,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void PIDColour_actionPerformed(ActionEvent e)
   {
     changeColour(new PIDColourScheme());
@@ -3349,10 +3445,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void BLOSUM62Colour_actionPerformed(ActionEvent e)
   {
     changeColour(new Blosum62ColourScheme());
@@ -3360,10 +3457,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void sortPairwiseMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3376,10 +3474,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void sortIDMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3391,10 +3490,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void sortLengthMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3406,10 +3506,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void sortGroupMenuItem_actionPerformed(ActionEvent e)
   {
     SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3422,10 +3523,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void removeRedundancyMenuItem_actionPerformed(ActionEvent e)
   {
     new RedundancyPanel(alignPanel, this);
@@ -3433,10 +3535,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void pairwiseAlignmentMenuItem_actionPerformed(ActionEvent e)
   {
     if ((viewport.getSelectionGroup() == null)
@@ -3456,10 +3559,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void PCAMenuItem_actionPerformed(ActionEvent e)
   {
     if (((viewport.getSelectionGroup() != null)
@@ -3479,6 +3583,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     new PCAPanel(alignPanel);
   }
 
+  @Override
   public void autoCalculate_actionPerformed(ActionEvent e)
   {
     viewport.autoCalculateConsensus = autoCalculate.isSelected();
@@ -3489,6 +3594,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void sortByTreeOption_actionPerformed(ActionEvent e)
   {
     viewport.sortByTree = sortByTree.isSelected();
@@ -3502,10 +3608,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void averageDistanceTreeMenuItem_actionPerformed(ActionEvent e)
   {
     NewTreePanel("AV", "PID", "Average distance tree using PID");
@@ -3513,10 +3620,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   public void neighbourTreeMenuItem_actionPerformed(ActionEvent e)
   {
     NewTreePanel("NJ", "PID", "Neighbour joining tree using PID");
@@ -3524,10 +3632,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void njTreeBlosumMenuItem_actionPerformed(ActionEvent e)
   {
     NewTreePanel("NJ", "BL", "Neighbour joining tree using BLOSUM62");
@@ -3535,10 +3644,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void avTreeBlosumMenuItem_actionPerformed(ActionEvent e)
   {
     NewTreePanel("AV", "BL", "Average distance tree using BLOSUM62");
@@ -3546,7 +3656,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param type
    *          DOCUMENT ME!
    * @param pwType
@@ -3570,13 +3680,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         return;
       }
 
-      int s = 0;
       SequenceGroup sg = viewport.getSelectionGroup();
 
       /* Decide if the selection is a column region */
-      while (s < sg.getSize())
+      for (SequenceI _s:sg.getSequences())
       {
-        if (((SequenceI) sg.getSequences(null).elementAt(s++)).getLength() < sg
+        if (_s.getLength() < sg
                 .getEndRes())
         {
           JOptionPane
@@ -3634,7 +3743,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param title
    *          DOCUMENT ME!
    * @param order
@@ -3647,6 +3756,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     sort.add(item);
     item.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3665,7 +3775,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Add a new sort by annotation score menu item
-   * 
+   *
    * @param sort
    *          the menu to add the option to
    * @param scoreLabel
@@ -3679,6 +3789,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     sort.add(item);
     item.addActionListener(new java.awt.event.ActionListener()
     {
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         SequenceI[] oldOrder = viewport.getAlignment().getSequencesArray();
@@ -3701,8 +3812,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * search the alignment and rebuild the sort by annotation score submenu the
    * last alignment annotation vector hash is stored to minimize cost of
    * rebuilding in subsequence calls.
-   * 
+   *
    */
+  @Override
   public void buildSortByAnnotationScoresMenu()
   {
     if (viewport.getAlignment().getAlignmentAnnotation() == null)
@@ -3716,10 +3828,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       // almost certainly a quicker way to do this - but we keep it simple
       Hashtable scoreSorts = new Hashtable();
       AlignmentAnnotation aann[];
-      Enumeration sq = viewport.getAlignment().getSequences().elements();
-      while (sq.hasMoreElements())
+      for (SequenceI sqa:viewport.getAlignment().getSequences())
       {
-        aann = ((SequenceI) sq.nextElement()).getAnnotation();
+        aann = sqa.getAnnotation();
         for (int i = 0; aann != null && i < aann.length; i++)
         {
           if (aann[i].hasScore() && aann[i].sequenceRef != null)
@@ -3748,12 +3859,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * call. Listeners are added to remove the menu item when the treePanel is
    * closed, and adjust the tree leaf to sequence mapping when the alignment is
    * modified.
-   * 
+   *
    * @param treePanel
    *          Displayed tree window.
    * @param title
    *          SortBy menu item title.
    */
+  @Override
   public void buildTreeMenu()
   {
     sortByTreeMenu.removeAll();
@@ -3787,6 +3899,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       final NJTree tree = ((TreePanel) treePanels.elementAt(i)).getTree();
       item.addActionListener(new java.awt.event.ActionListener()
       {
+        @Override
         public void actionPerformed(ActionEvent e)
         {
           tp.sortByTree_actionPerformed(null);
@@ -3815,7 +3928,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Work out whether the whole set of sequences or just the selected set will
    * be submitted for multiple alignment.
-   * 
+   *
    */
   public jalview.datamodel.AlignmentView gatherSequencesForAlignment()
   {
@@ -3830,7 +3943,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
       /*
        * SequenceGroup seqs = viewport.getSelectionGroup(); int sz; msa = new
        * SequenceI[sz = seqs.getSize(false)];
-       * 
+       *
        * for (int i = 0; i < sz; i++) { msa[i] = (SequenceI)
        * seqs.getSequenceAt(i); }
        */
@@ -3840,9 +3953,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     {
       /*
        * Vector seqs = viewport.getAlignment().getSequences();
-       * 
+       *
        * if (seqs.size() > 1) { msa = new SequenceI[seqs.size()];
-       * 
+       *
        * for (int i = 0; i < seqs.size(); i++) { msa[i] = (SequenceI)
        * seqs.elementAt(i); } }
        */
@@ -3888,10 +4001,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * DOCUMENT ME!
-   * 
+   *
    * @param e
    *          DOCUMENT ME!
    */
+  @Override
   protected void LoadtreeMenuItem_actionPerformed(ActionEvent e)
   {
     // Pick the tree file
@@ -3953,7 +4067,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Add a treeviewer for the tree extracted from a newick file object to the
    * current alignment view
-   * 
+   *
    * @param nf
    *          the tree
    * @param title
@@ -4004,7 +4118,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Generates menu items and listener event actions for web service clients
-   * 
+   *
    */
   public void BuildWebServiceMenu()
   {
@@ -4023,6 +4137,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     buildingMenu = true;
     new Thread(new Runnable()
     {
+      @Override
       public void run()
       {
         try
@@ -4046,7 +4161,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   "Secondary Structure Prediction");
           final JMenu seqsrchmenu = new JMenu("Sequence Database Search");
           final JMenu analymenu = new JMenu("Analysis");
-          final JMenu dismenu = new JMenu("Disorder");
+          final JMenu dismenu = new JMenu("Protein Disorder");
           // JAL-940 - only show secondary structure prediction services from
           // the legacy server
           if (// Cache.getDefault("SHOW_JWS1_SERVICES", true)
@@ -4121,6 +4236,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
           javax.swing.SwingUtilities.invokeLater(new Runnable()
           {
+            @Override
             public void run()
             {
               try
@@ -4131,7 +4247,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                 {
                   for (int i = 0, j = wsmenu.size(); i < j; i++)
                   {
-                    webService.add((JMenu) wsmenu.get(i));
+                    webService.add(wsmenu.get(i));
                   }
                 }
                 else
@@ -4173,6 +4289,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                 }
               } catch (Exception e)
               {
+                Cache.log.debug("Exception during web service menu building process.",e);
               }
               ;
             }
@@ -4190,7 +4307,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * construct any groupURL type service menu entries.
-   * 
+   *
    * @param webService
    */
   private void build_urlServiceMenu(JMenu webService)
@@ -4200,12 +4317,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     /*
      * JMenuItem testAlView = new JMenuItem("Test AlignmentView"); final
      * AlignFrame af = this; testAlView.addActionListener(new ActionListener() {
-     * 
+     *
      * @Override public void actionPerformed(ActionEvent e) {
      * jalview.datamodel.AlignmentView
      * .testSelectionViews(af.viewport.getAlignment(),
      * af.viewport.getColumnSelection(), af.viewport.selectionGroup); }
-     * 
+     *
      * }); webService.add(testAlView);
      */
     // TODO: refactor to RestClient discoverer and merge menu entries for
@@ -4232,12 +4349,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * public void vamsasStore_actionPerformed(ActionEvent e) { JalviewFileChooser
    * chooser = new JalviewFileChooser(jalview.bin.Cache.
    * getProperty("LAST_DIRECTORY"));
-   * 
+   *
    * chooser.setFileView(new JalviewFileView()); chooser.setDialogTitle("Export
    * to Vamsas file"); chooser.setToolTipText("Export");
-   * 
+   *
    * int value = chooser.showSaveDialog(this);
-   * 
+   *
    * if (value == JalviewFileChooser.APPROVE_OPTION) {
    * jalview.io.VamsasDatastore vs = new jalview.io.VamsasDatastore(viewport);
    * //vs.store(chooser.getSelectedFile().getAbsolutePath() ); vs.storeJalview(
@@ -4245,7 +4362,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    */
   /**
    * prototype of an automatically enabled/disabled analysis function
-   * 
+   *
    */
   protected void setShowProductsEnabled()
   {
@@ -4265,7 +4382,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * search selection for sequence xRef products and build the show products
    * menu.
-   * 
+   *
    * @param selection
    * @param dataset
    * @return true if showProducts menu should be enabled.
@@ -4295,6 +4412,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         xtype.addActionListener(new ActionListener()
         {
 
+          @Override
           public void actionPerformed(ActionEvent e)
           {
             // TODO: new thread for this call with vis-delay
@@ -4328,6 +4446,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     Runnable foo = new Runnable()
     {
 
+      @Override
       public void run()
       {
         final long sttime = System.currentTimeMillis();
@@ -4411,6 +4530,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void showProducts_actionPerformed(ActionEvent e)
   {
     // /////////////////////////////
@@ -4444,6 +4564,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void showTranslation_actionPerformed(ActionEvent e)
   {
     // /////////////////////////////
@@ -4482,7 +4603,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * Try to load a features file onto the alignment.
-   * 
+   *
    * @param file
    *          contents or path to retrieve file
    * @param type
@@ -4522,22 +4643,27 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     return featuresFile;
   }
 
+  @Override
   public void dragEnter(DropTargetDragEvent evt)
   {
   }
 
+  @Override
   public void dragExit(DropTargetEvent evt)
   {
   }
 
+  @Override
   public void dragOver(DropTargetDragEvent evt)
   {
   }
 
+  @Override
   public void dropActionChanged(DropTargetDragEvent evt)
   {
   }
 
+  @Override
   public void drop(DropTargetDropEvent evt)
   {
     Transferable t = evt.getTransferable();
@@ -4726,7 +4852,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
    * it's and Annotation file, then a JNet file, and finally a features file. If
    * all are false then the user may have dropped an alignment file onto this
    * AlignFrame.
-   * 
+   *
    * @param file
    *          either a filename or a URL string.
    */
@@ -4804,7 +4930,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
           {
             /*
              * if (format.equalsIgnoreCase("PDB")) {
-             * 
+             *
              * String pdbfn = ""; // try to match up filename with sequence id
              * try { if (protocol == jalview.io.FormatAdapter.FILE) { File fl =
              * new File(file); pdbfn = fl.getName(); } else if (protocol ==
@@ -4852,6 +4978,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void tabSelectionChanged(int index)
   {
     if (index > -1)
@@ -4862,6 +4989,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     }
   }
 
+  @Override
   public void tabbedPane_mousePressed(MouseEvent e)
   {
     if (SwingUtilities.isRightMouseButton(e))
@@ -4886,6 +5014,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Open the dialog for regex description parsing.
    */
+  @Override
   protected void extractScores_actionPerformed(ActionEvent e)
   {
     ParseProperties pp = new jalview.analysis.ParseProperties(
@@ -4903,11 +5032,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showDbRefs_actionPerformed(java.awt.event.ActionEvent
    * )
    */
+  @Override
   protected void showDbRefs_actionPerformed(ActionEvent e)
   {
     viewport.setShowDbRefs(showDbRefsMenuitem.isSelected());
@@ -4915,10 +5045,11 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @seejalview.jbgui.GAlignFrame#showNpFeats_actionPerformed(java.awt.event.
    * ActionEvent)
    */
+  @Override
   protected void showNpFeats_actionPerformed(ActionEvent e)
   {
     viewport.setShowNpFeats(showNpFeatsMenuitem.isSelected());
@@ -4927,7 +5058,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * find the viewport amongst the tabs in this alignment frame and close that
    * tab
-   * 
+   *
    * @param av
    */
   public boolean closeView(AlignViewport av)
@@ -4968,11 +5099,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     fetchr.addActionListener(new ActionListener()
     {
 
+      @Override
       public void actionPerformed(ActionEvent e)
       {
         new Thread(new Runnable()
         {
 
+          @Override
           public void run()
           {
             new jalview.ws.DBRefFetcher(alignPanel.av
@@ -4988,12 +5121,14 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
     final AlignFrame me = this;
     new Thread(new Runnable()
     {
+      @Override
       public void run()
       {
         final jalview.ws.SequenceFetcher sf = SequenceFetcher
                 .getSequenceFetcherSingleton(me);
         javax.swing.SwingUtilities.invokeLater(new Runnable()
         {
+          @Override
           public void run()
           {
             String[] dbclasses = sf.getOrderedSupportedSources();
@@ -5034,11 +5169,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                 fetchr.addActionListener(new ActionListener()
                 {
 
+                  @Override
                   public void actionPerformed(ActionEvent e)
                   {
                     new Thread(new Runnable()
                     {
 
+                      @Override
                       public void run()
                       {
                         new jalview.ws.DBRefFetcher(alignPanel.av
@@ -5066,11 +5203,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                         + "'");
                 fetchr.addActionListener(new ActionListener()
                 {
+                  @Override
                   public void actionPerformed(ActionEvent e)
                   {
                     new Thread(new Runnable()
                     {
 
+                      @Override
                       public void run()
                       {
                         new jalview.ws.DBRefFetcher(alignPanel.av
@@ -5111,11 +5250,13 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
                   fetchr.addActionListener(new ActionListener()
                   {
 
+                    @Override
                     public void actionPerformed(ActionEvent e)
                     {
                       new Thread(new Runnable()
                       {
 
+                        @Override
                         public void run()
                         {
                           new jalview.ws.DBRefFetcher(alignPanel.av
@@ -5163,6 +5304,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Left justify the whole alignment.
    */
+  @Override
   protected void justifyLeftMenuItem_actionPerformed(ActionEvent e)
   {
     AlignmentI al = viewport.getAlignment();
@@ -5173,6 +5315,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
   /**
    * Right justify the whole alignment.
    */
+  @Override
   protected void justifyRightMenuItem_actionPerformed(ActionEvent e)
   {
     AlignmentI al = viewport.getAlignment();
@@ -5188,11 +5331,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showUnconservedMenuItem_actionPerformed(java.
    * awt.event.ActionEvent)
    */
+  @Override
   protected void showUnconservedMenuItem_actionPerformed(ActionEvent e)
   {
     viewport.setShowUnconserved(showNonconservedMenuItem.getState());
@@ -5201,11 +5345,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showGroupConsensus_actionPerformed(java.awt.event
    * .ActionEvent)
    */
+  @Override
   protected void showGroupConsensus_actionPerformed(ActionEvent e)
   {
     viewport.setShowGroupConsensus(showGroupConsensus.getState());
@@ -5215,11 +5360,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showGroupConservation_actionPerformed(java.awt
    * .event.ActionEvent)
    */
+  @Override
   protected void showGroupConservation_actionPerformed(ActionEvent e)
   {
     viewport.setShowGroupConservation(showGroupConservation.getState());
@@ -5228,11 +5374,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showConsensusHistogram_actionPerformed(java.awt
    * .event.ActionEvent)
    */
+  @Override
   protected void showConsensusHistogram_actionPerformed(ActionEvent e)
   {
     viewport.setShowConsensusHistogram(showConsensusHistogram.getState());
@@ -5241,23 +5388,26 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#showConsensusProfile_actionPerformed(java.awt
    * .event.ActionEvent)
    */
+  @Override
   protected void showSequenceLogo_actionPerformed(ActionEvent e)
   {
     viewport.setShowSequenceLogo(showSequenceLogo.getState());
     alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
   }
 
+  @Override
   protected void normaliseSequenceLogo_actionPerformed(ActionEvent e)
   {
     viewport.setNormaliseSequenceLogo(normaliseSequenceLogo.getState());
     alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
   }
 
+  @Override
   protected void applyAutoAnnotationSettings_actionPerformed(ActionEvent e)
   {
     alignPanel.updateAnnotation(applyAutoAnnotationSettings.getState());
@@ -5265,11 +5415,12 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /*
    * (non-Javadoc)
-   * 
+   *
    * @see
    * jalview.jbgui.GAlignFrame#makeGrpsFromSelection_actionPerformed(java.awt
    * .event.ActionEvent)
    */
+  @Override
   protected void makeGrpsFromSelection_actionPerformed(ActionEvent e)
   {
     if (viewport.getSelectionGroup() != null)
@@ -5291,9 +5442,9 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
         Color col = new Color((int) (Math.random() * 255),
                 (int) (Math.random() * 255), (int) (Math.random() * 255));
         col = col.brighter();
-        for (Enumeration sq = gps[g].getSequences(null).elements(); sq
-                .hasMoreElements(); viewport.setSequenceColour(
-                (SequenceI) sq.nextElement(), col))
+        for (SequenceI s:gps[g].getSequences())
+          viewport.setSequenceColour(
+                s, col)
           ;
       }
       PaintRefresher.Refresh(this, viewport.getSequenceSetId());
@@ -5304,7 +5455,7 @@ public class AlignFrame extends GAlignFrame implements DropTargetListener,
 
   /**
    * make the given alignmentPanel the currently selected tab
-   * 
+   *
    * @param alignmentPanel
    */
   public void setDisplayedView(AlignmentPanel alignmentPanel)
@@ -5335,6 +5486,7 @@ class PrintThread extends Thread
 
   static PageFormat pf;
 
+  @Override
   public void run()
   {
     PrinterJob printJob = PrinterJob.getPrinterJob();