X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=inline;f=src%2Fjalview%2Fviewmodel%2FOverviewDimensionsHideHidden.java;h=7eec3438b1351ab1f92d0d6e8e7e7a8b30ba5a72;hb=58fb14c48ecb086be7422f92addf14f930656523;hp=513596e25acabb84cf015e475949d2a3bc431f6c;hpb=24b3db7a46158fe7bf82c208472740f8b7c76448;p=jalview.git diff --git a/src/jalview/viewmodel/OverviewDimensionsHideHidden.java b/src/jalview/viewmodel/OverviewDimensionsHideHidden.java index 513596e..7eec343 100644 --- a/src/jalview/viewmodel/OverviewDimensionsHideHidden.java +++ b/src/jalview/viewmodel/OverviewDimensionsHideHidden.java @@ -12,6 +12,12 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions { 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) { @@ -41,16 +47,17 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions 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) @@ -63,16 +70,7 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions 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(); @@ -92,10 +90,7 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions } } - - // - // 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 @@ -117,7 +112,6 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions // update viewport ranges.setStartRes(xAsRes); ranges.setStartSeq(yAsSeq); - } @Override @@ -168,14 +162,12 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions 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; } }