X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fanalysis%2FGrouping.java;h=88d3525ce175c71b3b1c3f6400b774d149b2208c;hb=038cb9c86641c3de91d8f330c5e3267507c46643;hp=066814e626b390897a812565b1262958f61aadc8;hpb=f4766a7bbcfae845fc95923b01fa14ff83d589ff;p=jalview.git diff --git a/src/jalview/analysis/Grouping.java b/src/jalview/analysis/Grouping.java index 066814e..88d3525 100644 --- a/src/jalview/analysis/Grouping.java +++ b/src/jalview/analysis/Grouping.java @@ -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>(); @@ -137,9 +140,17 @@ public class Grouping 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(); @@ -156,6 +167,10 @@ public class Grouping } for (int p : spos) { + if (p < 0) + { + break; + } if (p >= slen) { schar.append("~");