update author list in license for (JAL-826)
[jalview.git] / src / jalview / datamodel / AlignmentView.java
index 0b4e236..8e596ce 100644 (file)
@@ -1,6 +1,6 @@
 /*\r
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)\r
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle\r
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)\r
+ * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle\r
  * \r
  * This file is part of Jalview.\r
  * \r
@@ -107,7 +107,7 @@ public class AlignmentView
     {\r
       Vector sel = selection.getSequences(null);\r
       this.selected = new Vector();\r
-      selseqs = selection.getSequencesInOrder(alignment, false);\r
+      selseqs = selection.getSequencesInOrder(alignment, selectedRegionOnly);\r
     }\r
     else\r
     {\r
@@ -115,7 +115,13 @@ public class AlignmentView
     }\r
 \r
     // get the alignment's group list and make a copy\r
-    Vector grps = new Vector(alignment.getGroups());\r
+    Vector grps = new Vector();\r
+    Vector gg = alignment.getGroups();\r
+    Enumeration gge = gg.elements();\r
+    while (gge.hasMoreElements())\r
+    {\r
+      grps.addElement(gge.nextElement());\r
+    }\r
     ScGroup[] sgrps = null;\r
     boolean addedgps[] = null;\r
     if (grps != null)\r
@@ -128,7 +134,7 @@ public class AlignmentView
         // visible and selected region\r
         int ssel = selection.getStartRes(), esel = selection.getEndRes();\r
         Vector isg = new Vector();\r
-        Enumeration<?> en = grps.elements();\r
+        Enumeration en = grps.elements();\r
         while (en.hasMoreElements())\r
         {\r
           sg = (SequenceGroup) en.nextElement();\r
@@ -144,6 +150,9 @@ public class AlignmentView
             {\r
               sg.setEndRes(esel);\r
             }\r
+            sg.setStartRes(sg.getStartRes()-ssel+1);\r
+            sg.setEndRes(sg.getEndRes()-ssel+1);\r
+            \r
             isg.addElement(sg);\r
           }\r
         }\r
@@ -177,7 +186,7 @@ public class AlignmentView
         {\r
           for (int sg = 0; sg < sgrps.length; sg++)\r
           {\r
-            if (((Vector) grps.get(sg)).contains(selseqs[i]))\r
+            if (((Vector) grps.elementAt(sg)).contains(selseqs[i]))\r
             {\r
               sequences[csi].setGroupMembership(sgrps[sg]);\r
               sgrps[sg].sg.deleteSequence(selseqs[i], false);\r
@@ -326,7 +335,7 @@ public class AlignmentView
        * prune any groups to the visible coordinates of the alignment.\r
        */\r
       {\r
-        int nvg = scGroups != null ? scGroups.size() : 0;\r
+        int nvg = (scGroups != null) ? scGroups.size() : 0;\r
         if (nvg > 0)\r
         {\r
           SequenceGroup[] nsg = new SequenceGroup[nvg];\r
@@ -342,9 +351,14 @@ public class AlignmentView
                 continue;\r
               }\r
             }\r
+\r
+            // clone group properties\r
+            nsg[g] = new SequenceGroup(sg);\r
+\r
             // may need to shift/trim start and end ?\r
             if (r && !viscontigs)\r
             {\r
+              // Not fully tested code - routine not yet called with viscontigs==false\r
               if (nsg[g].getStartRes() < gstart)\r
               {\r
                 nsg[g].setStartRes(0);\r
@@ -354,14 +368,11 @@ public class AlignmentView
                 nsg[g].setStartRes(nsg[g].getStartRes() - gstart);\r
                 nsg[g].setEndRes(nsg[g].getEndRes() - gstart);\r
               }\r
-              if (nsg[g].getEndRes() > gend)\r
+              if (nsg[g].getEndRes() > (gend-gstart))\r
               {\r
-                nsg[g].setEndRes(gend);\r
+                nsg[g].setEndRes(gend-gstart);\r
               }\r
             }\r
-\r
-            // clone group properties\r
-            nsg[g] = new SequenceGroup(sg);\r
           }\r
           if (viscontigs)\r
           {\r
@@ -983,9 +994,13 @@ public class AlignmentView
   public static void summariseAlignmentView(AlignmentView view,\r
           PrintStream os)\r
   {\r
-    os.println("View has " + view.sequences.length + " of which "\r
-            + (view.selected == null ? "None" : view.selected.size())\r
-            + " are selected.");\r
+    os.print("View has " + view.sequences.length + " of which ");\r
+    if (view.selected == null) {\r
+      os.print("None");\r
+    } else {\r
+      os.print(" "+view.selected.size());\r
+    }\r
+    os.println(" are selected.");\r
     os.print("View is " + view.getWidth() + " columns wide");\r
     int viswid = 0;\r
     int[] contigs = view.getContigs();\r