\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 if(hiddenSequences[i]!=null)\r
+ else\r
tmp[i] = hiddenSequences[i];\r
}\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
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
\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