1 package jalview.viewmodel;
3 import jalview.api.AlignmentColsCollectionI;
4 import jalview.api.AlignmentRowsCollectionI;
5 import jalview.datamodel.AlignmentI;
6 import jalview.datamodel.HiddenColumns;
7 import jalview.datamodel.HiddenSequences;
8 import jalview.datamodel.VisibleColsCollection;
9 import jalview.datamodel.VisibleRowsCollection;
11 public class OverviewDimensionsHideHidden extends OverviewDimensions
13 private ViewportRanges ranges;
15 public OverviewDimensionsHideHidden(ViewportRanges vpranges,
16 boolean showAnnotationPanel)
18 super(vpranges, showAnnotationPanel);
24 public void updateViewportFromMouse(int mousex, int mousey,
25 HiddenSequences hiddenSeqs, HiddenColumns hiddenCols)
43 // Convert x value to residue position
46 // need to determine where scrollCol should be, given x
47 // to do this also need to know width of viewport, and some hidden column
50 // convert x to residues - this is an absolute position
51 int xAsRes = Math.round((float) x * alwidth / width);
53 // get viewport width in residues
54 int vpwidth = ranges.getViewportWidth();
56 if (xAsRes + vpwidth > alwidth)
58 // went past the end of the alignment, adjust backwards
60 // if last position was before the end of the alignment, need to update
61 if (ranges.getStartRes() < alwidth)
63 xAsRes = alwidth - vpwidth;
67 xAsRes = ranges.getStartRes();
73 // Convert y value to sequence position
76 // convert y to residues
77 int yAsSeq = Math.round((float) y * alheight / sequencesHeight);
79 // get viewport height in sequences
80 // add 1 because height includes both endSeq and startSeq
81 int vpheight = ranges.getViewportHeight();
83 if (yAsSeq + vpheight > alheight)
85 // went past the end of the alignment, adjust backwards
86 if (ranges.getEndSeq() < alheight)
88 yAsSeq = alheight - vpheight;
92 yAsSeq = ranges.getStartSeq();
97 ranges.setStartRes(xAsRes);
98 ranges.setStartSeq(yAsSeq);
103 public void setBoxPosition(HiddenSequences hiddenSeqs,
104 HiddenColumns hiddenCols)
106 setBoxPosition(ranges.getStartRes(), ranges.getStartSeq(),
107 ranges.getViewportWidth(), ranges.getViewportHeight());
111 public AlignmentColsCollectionI getColumns(AlignmentI al)
113 return new VisibleColsCollection(0,
114 ranges.getAbsoluteAlignmentWidth() - 1, al);
118 public AlignmentRowsCollectionI getRows(AlignmentI al)
120 return new VisibleRowsCollection(0,
121 ranges.getAbsoluteAlignmentHeight() - 1, al);
125 protected void resetAlignmentDims()
127 alwidth = ranges.getVisibleAlignmentWidth();
128 alheight = ranges.getVisibleAlignmentHeight();