X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fdatamodel%2FAlignmentView.java;h=c00f0b1e4a5ad08b5d4832052f3eda81a5b40e44;hb=b5667f39acdf309cd92881b73edfda591e0acaf4;hp=d3d1b2b4b990832721a42a548598edb0c7254786;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/datamodel/AlignmentView.java b/src/jalview/datamodel/AlignmentView.java index d3d1b2b..c00f0b1 100644 --- a/src/jalview/datamodel/AlignmentView.java +++ b/src/jalview/datamodel/AlignmentView.java @@ -25,6 +25,7 @@ import jalview.util.ShiftList; import java.io.PrintStream; import java.util.ArrayList; +import java.util.Collection; import java.util.List; /** @@ -74,7 +75,7 @@ public class AlignmentView ScGroup() { - seqs = new ArrayList(); + seqs = new ArrayList<>(); } /** @@ -114,6 +115,16 @@ public class AlignmentView { return seqs.size(); } + + public SequenceGroup getNewSequenceGroup(char c) + { + SequenceGroup newsg = new SequenceGroup(sg); + for (SeqCigar seq : seqs) + { + newsg.addSequence(seq.getSeq(c), false); + } + return newsg; + } } /** @@ -160,7 +171,6 @@ public class AlignmentView SequenceI[] selseqs; if (selection != null && selection.getSize() > 0) { - List sel = selection.getSequences(null); this.selected = new ScGroup(); selseqs = selection.getSequencesInOrder(alignment, selectedRegionOnly); @@ -170,9 +180,9 @@ public class AlignmentView selseqs = alignment.getSequencesArray(); } - List> seqsets = new ArrayList>(); + List> seqsets = new ArrayList<>(); // get the alignment's group list and make a copy - List grps = new ArrayList(); + List grps = new ArrayList<>(); List gg = alignment.getGroups(); grps.addAll(gg); ScGroup[] sgrps = null; @@ -185,7 +195,7 @@ public class AlignmentView // strip out any groups that do not actually intersect with the // visible and selected region int ssel = selection.getStartRes(), esel = selection.getEndRes(); - List isg = new ArrayList(); + List isg = new ArrayList<>(); for (SequenceGroup sg : grps) { if (!(sg.getStartRes() > esel || sg.getEndRes() < ssel)) @@ -245,7 +255,7 @@ public class AlignmentView { if (scGroups == null) { - scGroups = new ArrayList(); + scGroups = new ArrayList<>(); } addedgps[sg] = true; scGroups.add(sgrps[sg]); @@ -1238,4 +1248,21 @@ public class AlignmentView } } + + /** + * return pruned visible sequences in each group in alignment view + * + * @param c + * @return + */ + public Collection getVisibleGroups(char c) + { + ArrayList groups = new ArrayList<>(); + for (ScGroup sc : scGroups) + { + SequenceGroup sg = sc.getNewSequenceGroup(c); + groups.add(sg); + } + return groups; + } }