import java.awt.image.BufferedImage;
import java.beans.PropertyChangeEvent;
import java.util.ArrayList;
+import java.util.BitSet;
import java.util.Collections;
import java.util.List;
import jalview.datamodel.Annotation;
import jalview.datamodel.ColumnSelection;
import jalview.datamodel.ContactListI;
+import jalview.datamodel.ContactMatrixI;
import jalview.datamodel.ContactRange;
import jalview.datamodel.GraphLine;
import jalview.datamodel.HiddenColumns;
{
GraphLine thr = aa[graphStretch].getThreshold();
int currentX = getColumnForXPos(evt.getX());
+ ContactMatrixI matrix = av.getContactMatrix(aa[graphStretch]);
+ if (matrix!=null)
+ {
+ if (matrix.hasGroups())
+ {
+ SequenceI rseq = aa[graphStretch].sequenceRef;
+ BitSet grp = matrix.getGroupsFor(currentX);
+ ColumnSelection cs = av.getColumnSelection();
+ HiddenColumns hc = av.getAlignment().getHiddenColumns();
+ for (int p=grp.nextSetBit(0); p>=0; p = grp.nextSetBit(p+1))
+ {
+ int offp = (rseq!=null) ? rseq.findIndex(rseq.getStart()-1+p) : p;
+
+ if (!av.hasHiddenColumns() || hc.isVisible(offp))
+ {
+ av.getColumnSelection().addElement(offp);
+ }
+ }
+ } else
+ {
ContactListI forCurrentX = av.getContactList(aa[graphStretch],
currentX);
if (forCurrentX != null)
}
}
}
+ }
}
}
- }
+ }}
}
else
{