{
resetAlignmentDims();
- int x = mousex;
- int y = mousey;
+ int xAsRes = getLeftXFromCentreX(mousex, hiddenCols);
+ int yAsSeq = getTopYFromCentreY(mousey, hiddenSeqs);
- if (x < 0)
+ if (xAsRes < 0)
{
- x = 0;
+ xAsRes = 0;
}
- if (y < 0)
+ if (yAsSeq < 0)
{
- y = 0;
+ yAsSeq = 0;
}
//
// correction
// convert x to residues - this is an absolute position
- int xAsRes = Math.round((float) x * alwidth / width);
+ // int xAsRes = Math.round((float) x * alwidth / width);
// get viewport width in residues
int vpwidth = ranges.getViewportWidth();
// went past the end of the alignment, adjust backwards
// if last position was before the end of the alignment, need to update
- if ((ranges.getEndRes() + vpwidth - 1) < alwidth)
+ if (ranges.getStartRes() < alwidth)
{
xAsRes = alwidth - vpwidth;
}
else
{
- xAsRes = ranges.getEndRes();
+ xAsRes = ranges.getStartRes();
}
}
//
// convert y to residues
- int yAsSeq = Math.round((float) y * alheight / sequencesHeight);
+ // int yAsSeq = Math.round((float) y * alheight / sequencesHeight);
// get viewport height in sequences
// add 1 because height includes both endSeq and startSeq
if (yAsSeq + vpheight > alheight)
{
// went past the end of the alignment, adjust backwards
- if ((ranges.getEndSeq() + vpheight - 1) < alheight)
+ if (ranges.getEndSeq() < alheight)
{
yAsSeq = alheight - vpheight;
}
else
{
- yAsSeq = ranges.getEndSeq();
+ yAsSeq = ranges.getStartSeq();
}
}
public void setBoxPosition(HiddenSequences hiddenSeqs,
HiddenColumns hiddenCols)
{
- // work with visible values of startRes and endRes
- int startRes = ranges.getStartRes();
- int endRes = ranges.getEndRes();
-
- // work with visible values of startSeq and endSeq
- int startSeq = ranges.getStartSeq();
- int endSeq = ranges.getEndSeq();
-
- setBoxPosition(startRes, endRes, startSeq, endSeq);
+ setBoxPosition(ranges.getStartRes(), ranges.getStartSeq(),
+ ranges.getViewportWidth(), ranges.getViewportHeight());
}
@Override
alwidth = ranges.getVisibleAlignmentWidth();
alheight = ranges.getVisibleAlignmentHeight();
}
+
+ @Override
+ protected int getLeftXFromCentreX(int mousex, HiddenColumns hidden)
+ {
+ int vpx = Math.round((float) mousex * alwidth / width);
+ return vpx - ranges.getViewportWidth() / 2;
+ }
+
+ @Override
+ protected int getTopYFromCentreY(int mousey, HiddenSequences hidden)
+ {
+ int vpy = Math.round((float) mousey * alheight / sequencesHeight);
+ return vpy - ranges.getViewportHeight() / 2;
+ }
}