+ private boolean isColumnForNodeSelected(BinaryNode bn)
+ {
+ SequenceI rseq = tp.assocAnnotation.sequenceRef;
+ int colm = -1;
+ try
+ {
+ colm = Integer.parseInt(
+ bn.getName().substring(bn.getName().indexOf("c") + 1));
+ } catch (Exception e)
+ {
+ return false;
+ }
+ if (av == null || av.getAlignment() == null)
+ {
+ // alignment is closed
+ return false;
+ }
+ ColumnSelection cs = av.getColumnSelection();
+
+ HiddenColumns hc = av.getAlignment().getHiddenColumns();
+ int offp = (rseq != null) ? rseq.findIndex(rseq.getStart() + colm)
+ : colm;
+
+ if (!av.hasHiddenColumns())
+ {
+ return cs.contains(offp - 1);
+ }
+ if (hc.isVisible(offp - 1))
+ {
+ return cs.contains(offp - 1);
+ // return cs.contains(hc.absoluteToVisibleColumn(offp));
+ }
+ return false;
+ }
+
+ private BitSet createColumnGroupFor(Vector<BinaryNode> l, Color col)
+ {
+ BitSet gp = new BitSet();
+ for (BinaryNode bn : l)
+ {
+ int colm = -1;
+ if (bn.element() != null && bn.element() instanceof Integer)
+ {
+ colm = (Integer) bn.element();
+ }
+ else