{
private ViewportRanges ranges;
+ private int xdiff; // when dragging, difference in alignment units between
+ // start residue and original mouse click position
+
+ private int ydiff; // when dragging, difference in alignment units between
+ // start sequence and original mouse click position
+
public OverviewDimensionsHideHidden(ViewportRanges vpranges,
boolean showAnnotationPanel)
{
int vpx = Math.round((float) mousex * alwidth / width);
int vpy = Math.round((float) mousey * alheight / sequencesHeight);
- updateViewportFromTopLeft(vpx + fixedX, vpy + fixedY, hiddenSeqs,
+ updateViewportFromTopLeft(vpx + xdiff, vpy + ydiff, hiddenSeqs,
hiddenCols);
}
@Override
- protected void updateViewportFromTopLeft(int xAsRes, int yAsSeq,
+ protected void updateViewportFromTopLeft(int leftx, int topy,
HiddenSequences hiddenSeqs, HiddenColumns hiddenCols)
{
-
+ int xAsRes = leftx;
+ int yAsSeq = topy;
resetAlignmentDims();
if (xAsRes < 0)
yAsSeq = 0;
}
- //
- // Convert x value to residue position
- //
-
- // need to determine where scrollCol should be, given x
- // to do this also need to know width of viewport, and some hidden column
- // correction
-
- // convert x to residues - this is an absolute position
- // int xAsRes = Math.round((float) x * alwidth / width);
+ // Determine where scrollCol should be, given visXAsRes
// get viewport width in residues
int vpwidth = ranges.getViewportWidth();
}
}
-
- //
- // Convert y value to sequence position
- //
+ // Determine where scrollRow should be, given visYAsSeq
// get viewport height in sequences
// add 1 because height includes both endSeq and startSeq
// update viewport
ranges.setStartRes(xAsRes);
ranges.setStartSeq(yAsSeq);
-
}
@Override
HiddenColumns hiddenCols)
{
// get alignment position of x and box (can get directly from vpranges) and
- // calc difference
+ // calculate difference between the positions
int vpx = Math.round((float) x * alwidth / width);
-
int vpy = Math.round((float) y * alheight / sequencesHeight);
- fixedX = ranges.getStartRes() - vpx;
- fixedY = ranges.getStartSeq() - vpy;
-
+ xdiff = ranges.getStartRes() - vpx;
+ ydiff = ranges.getStartSeq() - vpy;
}
}