JAL-966 @mungo TODO complete: List rather than bare int array
authorJim Procter <jprocter@dundee.ac.uk>
Tue, 10 Feb 2015 14:29:38 +0000 (14:29 +0000)
committerJim Procter <jprocter@dundee.ac.uk>
Tue, 10 Feb 2015 14:29:38 +0000 (14:29 +0000)
src/jalview/api/AlignViewportI.java
src/jalview/appletgui/APopupMenu.java
src/jalview/commands/ChangeCaseCommand.java
src/jalview/gui/PopupMenu.java
src/jalview/viewmodel/AlignmentViewport.java

index d23fc75..7f8ffb1 100644 (file)
@@ -318,10 +318,9 @@ public interface AlignViewportI extends ViewStyleI
    *          first column (inclusive, from 0)
    * @param max
    *          last column (exclusive)
-   * @return int[][] range of {start,end} visible positions TODO: change to list
-   *         of int ranges
+   * @return int[][] range of {start,end} visible positions
    */
-  int[][] getVisibleRegionBoundaries(int min, int max);
+  List<int[]> getVisibleRegionBoundaries(int min, int max);
 
   /**
    * This method returns an array of new SequenceI objects derived from the
index 3b37b62..bb290d4 100644 (file)
@@ -56,6 +56,7 @@ import java.awt.event.ActionEvent;
 import java.awt.event.ActionListener;
 import java.awt.event.ItemEvent;
 import java.awt.event.ItemListener;
+import java.util.List;
 import java.util.Vector;
 
 public class APopupMenu extends java.awt.PopupMenu implements
@@ -619,10 +620,9 @@ public class APopupMenu extends java.awt.PopupMenu implements
     else if (source == toUpper || source == toLower || source == toggleCase)
     {
       SequenceGroup sg = ap.av.getSelectionGroup();
-      Vector regions = new Vector();
       if (sg != null)
       {
-        int[][] startEnd = ap.av.getVisibleRegionBoundaries(
+        List<int[]> startEnd = ap.av.getVisibleRegionBoundaries(
                 sg.getStartRes(), sg.getEndRes() + 1);
 
         String description;
index 47b4d9d..cc0502f 100644 (file)
  */
 package jalview.commands;
 
-import jalview.datamodel.*;
+import jalview.datamodel.AlignmentI;
+import jalview.datamodel.SequenceI;
+
+import java.util.List;
 
 public class ChangeCaseCommand implements CommandI
 {
@@ -36,10 +39,10 @@ public class ChangeCaseCommand implements CommandI
 
   SequenceI[] seqs;
 
-  int[][] regions;
+  List<int[]> regions;
 
   public ChangeCaseCommand(String description, SequenceI[] seqs,
-          int[][] regions, int caseChange)
+          List<int[]> regions, int caseChange)
   {
     this.description = description;
     this.seqs = seqs;
@@ -73,21 +76,21 @@ public class ChangeCaseCommand implements CommandI
     String sequence;
     int start, end;
     char nextChar;
-    for (int r = 0; r < regions.length; r++)
+    for (int[] r : regions)
     {
-      start = regions[r][0];
+      start = r[0];
       for (int s = 0; s < seqs.length; s++)
       {
         sequence = seqs[s].getSequenceAsString();
         StringBuffer newSeq = new StringBuffer();
 
-        if (regions[r][1] > sequence.length())
+        if (r[1] > sequence.length())
         {
           end = sequence.length();
         }
         else
         {
-          end = regions[r][1];
+          end = r[1];
         }
 
         if (start > 0)
index 06efcf3..2b1d1a0 100644 (file)
@@ -2572,7 +2572,8 @@ public class PopupMenu extends JPopupMenu
 
     if (sg != null)
     {
-      int[][] startEnd = ap.av.getVisibleRegionBoundaries(sg.getStartRes(),
+      List<int[]> startEnd = ap.av.getVisibleRegionBoundaries(
+              sg.getStartRes(),
               sg.getEndRes() + 1);
 
       String description;
index 3293291..67db6fc 100644 (file)
@@ -52,7 +52,6 @@ import java.util.HashMap;
 import java.util.Hashtable;
 import java.util.List;
 import java.util.Map;
-import java.util.Vector;
 
 /**
  * base class holding visualization and analysis attributes and common logic for
@@ -1489,9 +1488,9 @@ public abstract class AlignmentViewport implements AlignViewportI,
 
 
   @Override
-  public int[][] getVisibleRegionBoundaries(int min, int max)
+  public List<int[]> getVisibleRegionBoundaries(int min, int max)
   {
-    Vector regions = new Vector();
+    ArrayList<int[]> regions = new ArrayList<int[]>();
     int start = min;
     int end = max;
 
@@ -1515,7 +1514,7 @@ public abstract class AlignmentViewport implements AlignViewportI,
         }
       }
 
-      regions.addElement(new int[]
+      regions.add(new int[]
       { start, end });
 
       if (colSel != null && colSel.hasHiddenColumns())
@@ -1527,10 +1526,7 @@ public abstract class AlignmentViewport implements AlignViewportI,
 
     int[][] startEnd = new int[regions.size()][2];
 
-    regions.copyInto(startEnd);
-
-    return startEnd;
-
+    return regions;
   }
 
   @Override