Hidden representatives moved from sequence to viewport
[jalview.git] / src / jalview / datamodel / HiddenSequences.java
index 17a6c11..9491329 100755 (executable)
@@ -73,10 +73,13 @@ public class HiddenSequences
 \r
     for (int i = 0; i < hiddenSequences.length; i++)\r
     {\r
+      if(hiddenSequences[i]==null)\r
+        continue;\r
+\r
       if (i > deletionIndex)\r
         tmp[i-1] = hiddenSequences[i];\r
       else\r
-        tmp[i] = hiddenSequences[i];\r
+       tmp[i] = hiddenSequences[i];\r
     }\r
 \r
    hiddenSequences = tmp;\r
@@ -111,21 +114,21 @@ public class HiddenSequences
     alignmentIndex = adjustForHiddenSeqs(alignmentIndex);\r
 \r
     if(hiddenSequences[alignmentIndex]!=null)\r
-    System.out.println("ERROR!!!!!!!!!!!");\r
+      System.out.println("ERROR!!!!!!!!!!!");\r
 \r
     hiddenSequences[alignmentIndex] = sequence;\r
 \r
     alignment.deleteSequence(sequence);\r
   }\r
 \r
-  public Vector showAll()\r
+  public Vector showAll(Hashtable hiddenReps)\r
   {\r
    Vector revealedSeqs = new Vector();\r
    for(int i=0; i<hiddenSequences.length; i++)\r
     {\r
       if(hiddenSequences[i]!=null)\r
       {\r
-        Vector tmp = showSequence(i);\r
+        Vector tmp = showSequence(i, hiddenReps);\r
         for (int t = 0; t < tmp.size(); t++)\r
           revealedSeqs.addElement(tmp.elementAt(t));\r
       }\r
@@ -133,18 +136,17 @@ public class HiddenSequences
     return revealedSeqs;\r
   }\r
 \r
-  public Vector showSequence(int alignmentIndex)\r
+  public Vector showSequence(int alignmentIndex, Hashtable hiddenReps)\r
   {\r
     Vector revealedSeqs = new Vector();\r
     SequenceI repSequence = alignment.getSequenceAt(alignmentIndex);\r
-    if(repSequence!=null\r
-       && repSequence.getHiddenSequences()==null\r
-       && alignmentIndex>0)\r
-      repSequence = alignment.getSequenceAt(alignmentIndex-1);\r
-\r
-    if(repSequence!=null\r
-       && repSequence.getHiddenSequences()==null)\r
-      repSequence = null;\r
+    if(repSequence !=null &&\r
+       hiddenReps!=null\r
+       && hiddenReps.containsKey(repSequence))\r
+    {\r
+      hiddenReps.remove(repSequence);\r
+      revealedSeqs.addElement(repSequence);\r
+    }\r
 \r
     int start = adjustForHiddenSeqs(alignmentIndex-1);\r
     int end = adjustForHiddenSeqs(alignmentIndex);\r
@@ -158,12 +160,13 @@ public class HiddenSequences
 \r
       if(seq!=null)\r
       {\r
-        revealedSeqs.addElement(seq);\r
-        alignment.getSequences().insertElementAt(seq, alignmentIndex);\r
-        if(repSequence!=null)\r
-        {\r
-          repSequence.showHiddenSequence(seq);\r
-        }\r
+        if(seq.getLength()>0)\r
+         {\r
+           revealedSeqs.addElement(seq);\r
+           alignment.getSequences().insertElementAt(seq, alignmentIndex);\r
+         }\r
+         else\r
+           System.out.println(seq.getName()+" has been deleted whilst hidden");\r
       }\r
 \r
     }\r