X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fdatamodel%2FAlignment.java;h=707eee83868e58ec7c0a99329848dc9761f1248a;hb=d3ad666c751eead380676d1c6bf08f7e66f70628;hp=dc70c47afe61da77a6c16529cc348816012d9c0f;hpb=520cc5fe77f3f625c9a58cb6b8b83bbca68084b6;p=jalview.git diff --git a/src/jalview/datamodel/Alignment.java b/src/jalview/datamodel/Alignment.java index dc70c47..707eee8 100755 --- a/src/jalview/datamodel/Alignment.java +++ b/src/jalview/datamodel/Alignment.java @@ -1,20 +1,19 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Development Version 2.4.1) - * Copyright (C) 2009 AM Waterhouse, J Procter, G Barton, M Clamp, S Searle + * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) + * Copyright (C) 2011 J Procter, AM Waterhouse, 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 - * as published by the Free Software Foundation; either version 2 - * of the License, or (at your option) any later version. + * This file is part of Jalview. * - * This program is distributed in the hope that it will be useful, - * but WITHOUT ANY WARRANTY; without even the implied warranty of - * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the - * GNU General Public License for more details. + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. * - * You should have received a copy of the GNU General Public License - * along with this program; if not, write to the Free Software - * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301, USA + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.datamodel; @@ -144,7 +143,7 @@ public class Alignment implements AlignmentI */ public SequenceI getSequenceAt(int i) { - if (i < sequences.size()) + if (i>-1 && i < sequences.size()) { return (SequenceI) sequences.elementAt(i); } @@ -345,11 +344,13 @@ public class Alignment implements AlignmentI /** * remove any annotation that references gp - * @param gp (if null, removes all group associated annotation) + * + * @param gp + * (if null, removes all group associated annotation) */ private void removeAnnotationForGroup(SequenceGroup gp) { - if (annotations==null || annotations.length==0) + if (annotations == null || annotations.length == 0) { return; } @@ -592,8 +593,8 @@ public class Alignment implements AlignmentI for (int i = 0; i < sequences.size(); i++) { Sequence seq = (Sequence) sequences.elementAt(i); - seq.setSequence(seq.getSequenceAsString().replace('.', gc).replace( - '-', gc).replace(' ', gc)); + seq.setSequence(seq.getSequenceAsString().replace('.', gc) + .replace('-', gc).replace(' ', gc)); } } @@ -607,20 +608,36 @@ public class Alignment implements AlignmentI return gapCharacter; } - /** - * DOCUMENT ME! + /* + * (non-Javadoc) * - * @return DOCUMENT ME! + * @see jalview.datamodel.AlignmentI#isAligned() */ public boolean isAligned() { - int width = getWidth(); + return isAligned(false); + } + /* + * (non-Javadoc) + * + * @see jalview.datamodel.AlignmentI#isAligned(boolean) + */ + public boolean isAligned(boolean includeHidden) + { + int width = getWidth(); + if (hiddenSequences == null || hiddenSequences.getSize() == 0) + { + includeHidden = true; // no hidden sequences to check against. + } for (int i = 0; i < sequences.size(); i++) { - if (getSequenceAt(i).getLength() != width) + if (includeHidden || !hiddenSequences.isHidden(getSequenceAt(i))) { - return false; + if (getSequenceAt(i).getLength() != width) + { + return false; + } } } @@ -635,6 +652,11 @@ public class Alignment implements AlignmentI */ public boolean deleteAnnotation(AlignmentAnnotation aa) { + return deleteAnnotation(aa, true); + } + + public boolean deleteAnnotation(AlignmentAnnotation aa, boolean unhook) + { int aSize = 1; if (annotations != null) @@ -666,7 +688,9 @@ public class Alignment implements AlignmentI if (swap) { annotations = temp; - unhookAnnotation(aa); + if (unhook) { + unhookAnnotation(aa); + } } return swap; }