X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FSequenceGroup.java;h=3bf7bc4168b4e676ef38b7c598170c404583bb87;hb=bc18effe68ba80213a6d03ca7e6175adc6be71d6;hp=20b23a9a0365fd60766b2d1ae099bf52d6099032;hpb=7f964795c092e1bf4fbee18904b3d3dc1c29ddf8;p=jalview.git diff --git a/src/jalview/datamodel/SequenceGroup.java b/src/jalview/datamodel/SequenceGroup.java index 20b23a9..3bf7bc4 100755 --- a/src/jalview/datamodel/SequenceGroup.java +++ b/src/jalview/datamodel/SequenceGroup.java @@ -30,6 +30,7 @@ import java.awt.Color; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeSupport; import java.util.ArrayList; +import java.util.Arrays; import java.util.List; import java.util.Map; @@ -87,7 +88,7 @@ public class SequenceGroup implements AnnotatedCollectionI /** * group members */ - private List sequences = new ArrayList<>(); + private List sequences; /** * representative sequence for this group (if any) @@ -101,11 +102,15 @@ public class SequenceGroup implements AnnotatedCollectionI */ public ResidueShaderI cs; - // start column (base 0) - int startRes = 0; + /** + * start column (base 0) + */ + private int startRes = 0; - // end column (base 0) - int endRes = 0; + /** + * end column (base 0) + */ + private int endRes = 0; public Color outlineColour = Color.black; @@ -157,6 +162,7 @@ public class SequenceGroup implements AnnotatedCollectionI { groupName = "JGroup:" + this.hashCode(); cs = new ResidueShader(); + sequences = new ArrayList<>(); } /** @@ -184,19 +190,7 @@ public class SequenceGroup implements AnnotatedCollectionI this.displayText = displayText; this.colourText = colourText; this.cs = new ResidueShader(scheme); - - if (start > 0) // sanity check for negative start column positions - { - startRes = start; - } - else - { - jalview.bin.Cache.log.warn( - "Negative start column index detected, resetting to default index: " - + startRes); - // start = startRes; - } - + startRes = start; endRes = end; recalcConservation(); } @@ -221,19 +215,7 @@ public class SequenceGroup implements AnnotatedCollectionI displayText = seqsel.displayText; colourText = seqsel.colourText; - if (seqsel.startRes > 0) // sanity check for negative start column - // positions - { - startRes = seqsel.startRes; - } - else - { - jalview.bin.Cache.log.warn( - "Negative start column index detected, resetting to default index: " - + startRes); - // seqsel.startRes = startRes; - } - + startRes = seqsel.startRes; endRes = seqsel.endRes; cs = new ResidueShader((ResidueShader) seqsel.cs); if (seqsel.description != null) @@ -262,6 +244,17 @@ public class SequenceGroup implements AnnotatedCollectionI } } + /** + * Constructor that copies the given list of sequences + * + * @param seqs + */ + public SequenceGroup(List seqs) + { + this(); + this.sequences.addAll(seqs); + } + public boolean isShowSequenceLogo() { return showSequenceLogo; @@ -776,13 +769,16 @@ public class SequenceGroup implements AnnotatedCollectionI /** * Set the first column selected by this group. Runs from 0<=i 1 && desc.charAt(0) == '[') { - seqs.append(consensus.annotations[i].description.charAt(1)); + seqs.append(desc.charAt(1)); } else { @@ -1341,39 +1338,16 @@ public class SequenceGroup implements AnnotatedCollectionI @Override public Iterable findAnnotation(String calcId) { - List aa = new ArrayList<>(); - if (calcId == null) - { - return aa; - } - for (AlignmentAnnotation a : getAlignmentAnnotation()) - { - if (calcId.equals(a.getCalcId())) - { - aa.add(a); - } - } - return aa; + return AlignmentAnnotation.findAnnotation( + Arrays.asList(getAlignmentAnnotation()), calcId); } @Override public Iterable findAnnotations(SequenceI seq, String calcId, String label) { - ArrayList aa = new ArrayList<>(); - for (AlignmentAnnotation ann : getAlignmentAnnotation()) - { - if ((calcId == null || (ann.getCalcId() != null - && ann.getCalcId().equals(calcId))) - && (seq == null || (ann.sequenceRef != null - && ann.sequenceRef == seq)) - && (label == null - || (ann.label != null && ann.label.equals(label)))) - { - aa.add(ann); - } - } - return aa; + return AlignmentAnnotation.findAnnotations( + Arrays.asList(getAlignmentAnnotation()), seq, calcId, label); } /** @@ -1384,17 +1358,8 @@ public class SequenceGroup implements AnnotatedCollectionI */ public boolean hasAnnotation(String calcId) { - if (calcId != null && !"".equals(calcId)) - { - for (AlignmentAnnotation a : getAlignmentAnnotation()) - { - if (a.getCalcId() == calcId) - { - return true; - } - } - } - return false; + return AlignmentAnnotation + .hasAnnotation(Arrays.asList(getAlignmentAnnotation()), calcId); } /**