Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / datamodel / SequenceGroup.java
index f640ebb..76a350f 100755 (executable)
@@ -178,25 +178,27 @@ public class SequenceGroup
       return eres;\r
     }\r
 \r
-    public Vector getSequences(boolean includeHidden)\r
+    public Vector getSequences(Hashtable hiddenReps)\r
     {\r
-      if(!includeHidden)\r
+      if(hiddenReps == null)\r
         return sequences;\r
       else\r
       {\r
         Vector allSequences = new Vector();\r
-        SequenceI seq;\r
+        SequenceI seq, seq2;\r
         for (int i = 0; i < sequences.size(); i++)\r
         {\r
           seq = (SequenceI) sequences.elementAt(i);\r
           allSequences.addElement(seq);\r
-          if (seq.getHiddenSequences() != null)\r
+          if (hiddenReps.containsKey(seq) )\r
           {\r
-            for (int h = 0; h < seq.getHiddenSequences().getSize(false); h++)\r
+            SequenceGroup hsg = (SequenceGroup)hiddenReps.get(seq);\r
+            for (int h = 0; h < hsg.getSize(); h++)\r
             {\r
-              allSequences.addElement(\r
-                  seq.getHiddenSequences().getSequenceAt(h)\r
-                  );\r
+              seq2 = hsg.getSequenceAt(h);\r
+              if (seq2 != seq\r
+                  && !allSequences.contains(seq2))\r
+                allSequences.addElement(seq2);\r
             }\r
           }\r
         }\r
@@ -205,9 +207,9 @@ public class SequenceGroup
       }\r
     }\r
 \r
-    public SequenceI[] getSequencesAsArray(boolean includeHidden)\r
+    public SequenceI[] getSequencesAsArray(Hashtable hiddenReps)\r
     {\r
-      Vector tmp = getSequences(includeHidden);\r
+      Vector tmp = getSequences(hiddenReps);\r
       if(tmp==null)\r
         return null;\r
       SequenceI [] result = new SequenceI[tmp.size()];\r
@@ -452,24 +454,9 @@ public class SequenceGroup
      *\r
      * @return DOCUMENT ME!\r
      */\r
-    public int getSize(boolean includeHidden)\r
+    public int getSize()\r
     {\r
-      if(!includeHidden)\r
         return sequences.size();\r
-      else\r
-      {\r
-        int total = sequences.size();\r
-        SequenceI seq;\r
-        for (int i = 0; i < sequences.size(); i++)\r
-        {\r
-          seq = (SequenceI) sequences.elementAt(i);\r
-          if (seq.getHiddenSequences() != null)\r
-          {\r
-            total += seq.getHiddenSequences().getSize(false);\r
-          }\r
-        }\r
-        return total;\r
-      }\r
     }\r
 \r
     /**\r