/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.8.2b1)
- * 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.
*
package jalview.analysis;
import jalview.datamodel.ColumnSelection;
+import jalview.datamodel.HiddenColumns;
import jalview.datamodel.SequenceGroup;
import jalview.datamodel.SequenceI;
* @param sequences
* @param columnSelection
* @param list
+ * @param hiddenColumns
* @return
*/
public static SequenceGroup[] makeGroupsFromCols(SequenceI[] sequences,
- ColumnSelection cs, List<SequenceGroup> list)
+ ColumnSelection cs, List<SequenceGroup> list,
+ HiddenColumns hiddenColumns)
{
// TODO: determine how to get/recover input data for group generation
Map<String, List<SequenceI>> gps = new HashMap<String, List<SequenceI>>();
}
}
}
+
+ /*
+ * 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();
}
for (int p : spos)
{
+ if (p < 0)
+ {
+ break;
+ }
if (p >= slen)
{
schar.append("~");
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;
}