(JAL-969) refactored alignmentViewport base class to own package and pulled up most...
[jalview.git] / src / jalview / datamodel / AlignmentView.java
index 325fc45..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
@@ -134,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
@@ -150,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
@@ -332,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
@@ -348,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
@@ -360,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
@@ -989,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