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)
42 if (ranges.isWrappedMode())
44 y = 0; // sorry, no vertical scroll when wrapped
48 // Convert x value to residue position
51 // need to determine where scrollCol should be, given x
52 // to do this also need to know width of viewport, and some hidden column
55 // convert x to residues - this is an absolute position
56 int xAsRes = Math.round((float) x * alwidth / width);
58 // get viewport width in residues
59 int vpwidth = ranges.getViewportWidth();
61 if (xAsRes + vpwidth > alwidth)
63 // went past the end of the alignment, adjust backwards
65 // if last position was before the end of the alignment, need to update
66 if (ranges.getStartRes() < alwidth)
68 xAsRes = alwidth - vpwidth;
72 xAsRes = ranges.getStartRes();
78 // Convert y value to sequence position
81 // convert y to residues
82 int yAsSeq = Math.round((float) y * alheight / sequencesHeight);
84 // get viewport height in sequences
85 // add 1 because height includes both endSeq and startSeq
86 int vpheight = ranges.getViewportHeight();
88 if (yAsSeq + vpheight > alheight)
90 // went past the end of the alignment, adjust backwards
91 if (ranges.getEndSeq() < alheight)
93 yAsSeq = alheight - vpheight;
97 yAsSeq = ranges.getStartSeq();
102 ranges.setStartRes(xAsRes);
103 ranges.setStartSeq(yAsSeq);
108 public void setBoxPosition(HiddenSequences hiddenSeqs,
109 HiddenColumns hiddenCols)
111 setBoxPosition(ranges.getStartRes(), ranges.getStartSeq(),
112 ranges.getViewportWidth(), ranges.getViewportHeight());
116 public AlignmentColsCollectionI getColumns(AlignmentI al)
118 return new VisibleColsCollection(0,
119 ranges.getAbsoluteAlignmentWidth() - 1, al);
123 public AlignmentRowsCollectionI getRows(AlignmentI al)
125 return new VisibleRowsCollection(0,
126 ranges.getAbsoluteAlignmentHeight() - 1, al);
130 protected void resetAlignmentDims()
132 alwidth = ranges.getVisibleAlignmentWidth();
133 alheight = ranges.getVisibleAlignmentHeight();