X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FHiddenSequences.java;h=0514fb89013eca8926704c7c48ca36181edf61fa;hb=f01d9453eff16cb42d6dd5780b528d3ae10247ef;hp=31eda50520f39cb1b451f6258f8d26bdf23cf34c;hpb=5cf622544aaa7453e5e1710186b53734334783d6;p=jalview.git diff --git a/src/jalview/datamodel/HiddenSequences.java b/src/jalview/datamodel/HiddenSequences.java index 31eda50..0514fb8 100755 --- a/src/jalview/datamodel/HiddenSequences.java +++ b/src/jalview/datamodel/HiddenSequences.java @@ -1,6 +1,6 @@ /* * Jalview - A Sequence Alignment Editor and Viewer - * Copyright (C) 2006 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Copyright (C) 2007 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle * * This program is free software; you can redistribute it and/or * modify it under the terms of the GNU General Public License @@ -23,7 +23,7 @@ import java.util.*; public class HiddenSequences { - public SequenceI [] hiddenSequences; + public SequenceI[] hiddenSequences; AlignmentI alignment; public HiddenSequences(AlignmentI al) @@ -33,14 +33,18 @@ public class HiddenSequences public int getSize() { - if(hiddenSequences==null) + if (hiddenSequences == null) { return 0; } int count = 0; - for(int i=0; iwidth) + { + if (hiddenSequences[i] != null && hiddenSequences[i].getLength() > width) + { width = hiddenSequences[i].getLength(); + } + } return width; } @@ -61,28 +69,34 @@ public class HiddenSequences */ public void adjustHeightSequenceDeleted(int seqIndex) { - if(hiddenSequences==null) + if (hiddenSequences == null) { return; } int alHeight = alignment.getHeight(); - SequenceI [] tmp = new SequenceI [alHeight + getSize()]; + SequenceI[] tmp = new SequenceI[alHeight + getSize()]; int deletionIndex = adjustForHiddenSeqs(seqIndex); for (int i = 0; i < hiddenSequences.length; i++) { - if(hiddenSequences[i]==null) + if (hiddenSequences[i] == null) + { continue; + } if (i > deletionIndex) - tmp[i-1] = hiddenSequences[i]; + { + tmp[i - 1] = hiddenSequences[i]; + } else - tmp[i] = hiddenSequences[i]; + { + tmp[i] = hiddenSequences[i]; + } } - hiddenSequences = tmp; + hiddenSequences = tmp; } @@ -92,86 +106,90 @@ public class HiddenSequences */ public void adjustHeightSequenceAdded() { - if(hiddenSequences==null) + if (hiddenSequences == null) { return; } int alHeight = alignment.getHeight(); - SequenceI [] tmp = new SequenceI [alHeight + getSize()]; - System.arraycopy(hiddenSequences,0,tmp,0,hiddenSequences.length); + SequenceI[] tmp = new SequenceI[alHeight + getSize()]; + System.arraycopy(hiddenSequences, 0, tmp, 0, hiddenSequences.length); hiddenSequences = tmp; } - public void hideSequence(SequenceI sequence) { - if(hiddenSequences==null) + if (hiddenSequences == null) + { hiddenSequences = new SequenceI[alignment.getHeight()]; + } int alignmentIndex = alignment.findIndex(sequence); alignmentIndex = adjustForHiddenSeqs(alignmentIndex); - if(hiddenSequences[alignmentIndex]!=null) + if (hiddenSequences[alignmentIndex] != null) + { System.out.println("ERROR!!!!!!!!!!!"); + } hiddenSequences[alignmentIndex] = sequence; alignment.deleteSequence(sequence); } - public Vector showAll() + public Vector showAll(Hashtable hiddenReps) { - Vector revealedSeqs = new Vector(); - for(int i=0; i0) - repSequence = alignment.getSequenceAt(alignmentIndex-1); - - if(repSequence!=null - && repSequence.getHiddenSequences()==null) - repSequence = null; + if (repSequence != null && + hiddenReps != null + && hiddenReps.containsKey(repSequence)) + { + hiddenReps.remove(repSequence); + revealedSeqs.addElement(repSequence); + } - int start = adjustForHiddenSeqs(alignmentIndex-1); + int start = adjustForHiddenSeqs(alignmentIndex - 1); int end = adjustForHiddenSeqs(alignmentIndex); - if(end>=hiddenSequences.length) - end = hiddenSequences.length-1; + if (end >= hiddenSequences.length) + { + end = hiddenSequences.length - 1; + } - for(int index = end; index > start; index--) + for (int index = end; index > start; index--) { - SequenceI seq = hiddenSequences[index]; + SequenceI seq = hiddenSequences[index]; hiddenSequences[index] = null; - if(seq!=null) + if (seq != null) { - if(seq.getLength()>0) - { - revealedSeqs.addElement(seq); - alignment.getSequences().insertElementAt(seq, alignmentIndex); - } - else - System.out.println(seq.getName()+" has been deleted"); - if (repSequence != null) - { - repSequence.showHiddenSequence(seq); - } + if (seq.getLength() > 0) + { + revealedSeqs.addElement(seq); + alignment.getSequences().insertElementAt(seq, alignmentIndex); + } + else + { + System.out.println(seq.getName() + " has been deleted whilst hidden"); + } } } @@ -188,48 +206,53 @@ public class HiddenSequences { int index = 0; int hiddenSeqs = 0; - if(hiddenSequences.length<=alignmentIndex) - alignmentIndex = hiddenSequences.length-1; + if (hiddenSequences.length <= alignmentIndex) + { + alignmentIndex = hiddenSequences.length - 1; + } - while(index <= alignmentIndex) + while (index <= alignmentIndex) { - if(hiddenSequences[index]!=null) - { - hiddenSeqs ++; - } - index ++; - }; + if (hiddenSequences[index] != null) + { + hiddenSeqs++; + } + index++; + } + ; - return (alignmentIndex - hiddenSeqs) ; + return (alignmentIndex - hiddenSeqs); } public int adjustForHiddenSeqs(int alignmentIndex) { int index = 0; int hSize = hiddenSequences.length; - while(index <= alignmentIndex && index