/*
- * Jalview - A Sequence Alignment Editor and Viewer (Version 2.6)
- * Copyright (C) 2010 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
+ * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7)
+ * Copyright (C) 2011 J Procter, AM Waterhouse, G Barton, M Clamp, S Searle
*
* This file is part of Jalview.
*
seqCanvas.addMouseMotionListener(this);
seqCanvas.addMouseListener(this);
- ssm = StructureSelectionManager.getStructureSelectionManager();
+ ssm = StructureSelectionManager.getStructureSelectionManager(av.applet);
ssm.addStructureViewerListener(this);
seqCanvas.repaint();
{
String tmp = sequence.hashCode() + index + "";
if (lastMessage == null || !lastMessage.equals(tmp))
- ssm.mouseOverSequence(sequence, index, pos);
+ ssm.mouseOverSequence(sequence, index, pos, av);
lastMessage = tmp;
}
public void highlightSequence(SearchResults results)
{
- seqCanvas.highlightSearchResults(results);
if (av.followHighlight)
{
- ap.scrollToPosition(results);
+ if (ap.scrollToPosition(results, true))
+ {
+ ap.alignFrame.repaint();
+ }
}
+ seqCanvas.highlightSearchResults(results);
+
}
public void updateColours(SequenceI seq, int index)
}
}
}
+
/**
* modify current selection according to a received message.
*/
// handles selection messages...
// TODO: extend config options to allow user to control if selections may be
// shared between viewports.
- if (av!=null && (av == source
- || !av.followSelection
- || (source instanceof AlignViewport && ((AlignViewport) source)
+ if (av != null
+ && (av == source || !av.followSelection || (source instanceof AlignViewport && ((AlignViewport) source)
.getSequenceSetId().equals(av.getSequenceSetId()))))
{
return;
if (av.selectionGroup == null || !av.isSelectionGroupChanged())
{
SequenceGroup sgroup = null;
- if (seqsel != null)
+ if (seqsel != null && seqsel.getSize()>0)
{
if (av.alignment == null)
{
- System.out.println("Selection message: alignviewport av SeqSetId="
- + av.getSequenceSetId() + " ViewId=" + av.getViewId()
- + " 's alignment is NULL! returning immediatly.");
+ System.out
+ .println("Selection message: alignviewport av SeqSetId="
+ + av.getSequenceSetId() + " ViewId="
+ + av.getViewId()
+ + " 's alignment is NULL! returning immediatly.");
return;
}
sgroup = seqsel.intersect(av.alignment,
}
if (repaint)
{
- // probably finessing with multiple redraws here
- PaintRefresher.Refresh(this, av.getSequenceSetId());
- // ap.paintAlignment(false);
+ ap.scalePanelHolder.repaint();
+ ap.repaint();
}
}
+ /**
+ * scroll to the given row/column - or nearest visible location
+ * @param row
+ * @param column
+ */
+ public void scrollTo(int row, int column)
+ {
+
+ row = row<0 ? ap.av.startSeq : row;
+ column = column<0 ? ap.av.startRes : column;
+ ap.scrollTo(row, row, column, true, true);
+ }
+ /**
+ * scroll to the given row - or nearest visible location
+ * @param row
+ */
+ public void scrollToRow(int row)
+ {
+
+ row = row<0 ? ap.av.startSeq : row;
+ ap.scrollTo(row, row, ap.av.startRes, true, true);
+ }
+ /**
+ * scroll to the given column - or nearest visible location
+ * @param column
+ */
+ public void scrollToColumn(int column)
+ {
+
+ column = column<0 ? ap.av.startRes : column;
+ ap.scrollTo(ap.av.startRes, ap.av.startRes, column, true, true);
+ }
+
}