X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FGrouping.java;h=88d3525ce175c71b3b1c3f6400b774d149b2208c;hb=038cb9c86641c3de91d8f330c5e3267507c46643;hp=ea10c9a4e0f5e2bb44bbf3a35915cdf750f8cff7;hpb=f21eb611044169a07a7d4c6e2f69dd772fa7c872;p=jalview.git diff --git a/src/jalview/analysis/Grouping.java b/src/jalview/analysis/Grouping.java index ea10c9a..88d3525 100644 --- a/src/jalview/analysis/Grouping.java +++ b/src/jalview/analysis/Grouping.java @@ -1,6 +1,6 @@ /* - * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2) - * Copyright (C) 2014 The Jalview Authors + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * @@ -21,6 +21,7 @@ package jalview.analysis; import jalview.datamodel.ColumnSelection; +import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceGroup; import jalview.datamodel.SequenceI; @@ -109,10 +110,12 @@ public class Grouping * @param sequences * @param columnSelection * @param list + * @param hiddenColumns * @return */ public static SequenceGroup[] makeGroupsFromCols(SequenceI[] sequences, - ColumnSelection cs, List list) + ColumnSelection cs, List list, + HiddenColumns hiddenColumns) { // TODO: determine how to get/recover input data for group generation Map> gps = new HashMap>(); @@ -127,14 +130,27 @@ public class Grouping } } } + + /* + * get selected columns (in the order they were selected); + * note this could include right-to-left ranges + */ int[] spos = new int[cs.getSelected().size()]; int width = -1; int i = 0; for (Integer pos : cs.getSelected()) { - spos[i++] = pos.intValue(); + if (hiddenColumns == null || hiddenColumns.isVisible(pos.intValue())) + { + spos[i++] = pos.intValue(); + } } - ; + if (i < spos.length) + { + // mark end of visible column position + spos[i] = -1; + } + // actual number of visible columns for (i = 0; i < sequences.length; i++) { int slen = sequences[i].getLength(); @@ -151,6 +167,10 @@ public class Grouping } for (int p : spos) { + if (p < 0) + { + break; + } if (p >= slen) { schar.append("~"); @@ -173,8 +193,8 @@ public class Grouping i = 0; for (String key : gps.keySet()) { - SequenceGroup group = new SequenceGroup(gps.get(key), "Subseq: " - + key, null, true, true, false, 0, width - 1); + SequenceGroup group = new SequenceGroup(gps.get(key), + "Subseq: " + key, null, true, true, false, 0, width - 1); groups[i++] = group; }