X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FOverviewDimensions.java;h=f54c1eb7d64ee33e303037a8f4f9551495a529b0;hb=4a9a2fc8a1b1a66b21e66429083f27a6fc8541b9;hp=c63fb3c186beb99e9f2a78b04ac08d97e36ef48f;hpb=66a8cb51d08c8b6780e9b6ccd1d363fa09c3e2d2;p=jalview.git diff --git a/src/jalview/viewmodel/OverviewDimensions.java b/src/jalview/viewmodel/OverviewDimensions.java index c63fb3c..f54c1eb 100644 --- a/src/jalview/viewmodel/OverviewDimensions.java +++ b/src/jalview/viewmodel/OverviewDimensions.java @@ -58,10 +58,6 @@ public abstract class OverviewDimensions protected int alheight; - protected int transX; - - protected int transY; - /** * Create an OverviewDimensions object * @@ -195,13 +191,42 @@ public abstract class OverviewDimensions public abstract void updateViewportFromMouse(int mousex, int mousey, HiddenSequences hiddenSeqs, HiddenColumns hiddenCols); + /** + * Update the viewport location from a mouse drag within the overview's box + * + * @param mousex + * x location of mouse + * @param mousey + * y location of mouse + * @param hiddenSeqs + * the alignment's hidden sequences + * @param hiddenCols + * the alignment's hidden columns + */ public abstract void adjustViewportFromMouse(int mousex, int mousey, HiddenSequences hiddenSeqs, HiddenColumns hiddenCols); + /** + * Initialise dragging from the mouse - must be called on initial mouse click + * before using adjustViewportFromMouse in drag operations + * + * @param mousex + * x location of mouse + * @param mousey + * y location of mouse + * @param hiddenSeqs + * the alignment's hidden sequences + * @param hiddenCols + * the alignment's hidden columns + */ public abstract void setDragPoint(int x, int y, HiddenSequences hiddenSeqs, HiddenColumns hiddenCols); - protected abstract void updateViewportFromTopLeft(int mousex, int mousey, + /* + * Move the viewport so that the top left corner of the overview's box + * is at the mouse position (leftx, topy) + */ + protected abstract void updateViewportFromTopLeft(int leftx, int topy, HiddenSequences hiddenSeqs, HiddenColumns hiddenCols); /** @@ -238,13 +263,17 @@ public abstract class OverviewDimensions */ protected abstract void resetAlignmentDims(); + /* + * Given the box coordinates in residues and sequences, set the box dimensions in the overview window + */ protected void setBoxPosition(int startRes, int startSeq, int vpwidth, int vpheight) { resetAlignmentDims(); // boxX, boxY is the x,y location equivalent to startRes, startSeq - boxX = Math.round((float) startRes * width / alwidth); + int xPos = Math.min(startRes, alwidth - vpwidth + 1); + boxX = Math.round((float) xPos * width / alwidth); boxY = Math.round((float) startSeq * sequencesHeight / alheight); // boxWidth is the width in residues translated to pixels @@ -252,8 +281,6 @@ public abstract class OverviewDimensions // boxHeight is the height in sequences translated to pixels boxHeight = Math.round((float) vpheight * sequencesHeight / alheight); - - System.out.println("Update box: x: " + boxX); } /** @@ -271,8 +298,14 @@ public abstract class OverviewDimensions && y < boxY + boxHeight); } + /* + * Given the centre x position, calculate the box's left x position + */ protected abstract int getLeftXFromCentreX(int mousex, HiddenColumns hidden); + /* + * Given the centre y position, calculate the box's top y position + */ protected abstract int getTopYFromCentreY(int mousey, HiddenSequences hidden);