X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fviewmodel%2FOverviewDimensionsHideHidden.java;h=c525bc68eecdb9e3d809a2aa8565617e4dfd60ef;hb=b84ca14daeb98eae172853154189105c85333257;hp=513596e25acabb84cf015e475949d2a3bc431f6c;hpb=24b3db7a46158fe7bf82c208472740f8b7c76448;p=jalview.git diff --git a/src/jalview/viewmodel/OverviewDimensionsHideHidden.java b/src/jalview/viewmodel/OverviewDimensionsHideHidden.java index 513596e..c525bc6 100644 --- a/src/jalview/viewmodel/OverviewDimensionsHideHidden.java +++ b/src/jalview/viewmodel/OverviewDimensionsHideHidden.java @@ -1,3 +1,23 @@ +/* + * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) + * Copyright (C) $$Year-Rel$$ The Jalview Authors + * + * This file is part of Jalview. + * + * Jalview is free software: you can redistribute it and/or + * modify it under the terms of the GNU General Public License + * as published by the Free Software Foundation, either version 3 + * of the License, or (at your option) any later version. + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * PURPOSE. See the GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with Jalview. If not, see . + * The Jalview Authors are detailed in the 'AUTHORS' file. + */ package jalview.viewmodel; import jalview.api.AlignmentColsCollectionI; @@ -12,6 +32,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 +67,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 +90,10 @@ 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); + if (ranges.isWrappedMode()) + { + yAsSeq = 0; // sorry, no vertical scroll when wrapped + } // get viewport width in residues int vpwidth = ranges.getViewportWidth(); @@ -92,10 +113,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 +135,6 @@ public class OverviewDimensionsHideHidden extends OverviewDimensions // update viewport ranges.setStartRes(xAsRes); ranges.setStartSeq(yAsSeq); - } @Override @@ -168,14 +185,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; } }