}\r
else\r
{\r
- int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.\r
- seqCanvas.getSize().width);\r
- if (start < av.getStartRes() || start > (av.getStartRes() + cwidth))\r
- {\r
- vscroll.setValue(start / cwidth);\r
- av.startRes = vscroll.getValue() * cwidth;\r
- }\r
+ scrollToWrappedVisible(start);\r
}\r
}\r
\r
repaint();\r
}\r
\r
+ void scrollToWrappedVisible(int res)\r
+ {\r
+ int cwidth = seqPanel.seqCanvas.getWrappedCanvasWidth(seqPanel.seqCanvas.\r
+ getWidth());\r
+ if (res <= av.getStartRes() || res >= (av.getStartRes() + cwidth))\r
+ {\r
+ vscroll.setValue(res / cwidth);\r
+ av.startRes = vscroll.getValue() * cwidth;\r
+ }\r
+ }\r
+\r
+\r
public OverviewPanel getOverviewPanel()\r
{\r
return overviewPanel;\r
{\r
return false;\r
}\r
- fastPaint = false;\r
- vscroll.setValue(vscroll.getValue() - 1);\r
+ setScrollValues(hscroll.getValue(), vscroll.getValue()-1);\r
}\r
else\r
{\r
{\r
return false;\r
}\r
- fastPaint = false;\r
- vscroll.setValue(vscroll.getValue() + 1);\r
+ setScrollValues(hscroll.getValue(), vscroll.getValue()+1);\r
}\r
- fastPaint = true;\r
+\r
+ repaint();\r
return true;\r
}\r
\r
public boolean scrollRight(boolean right)\r
{\r
-\r
- if (right)\r
+ if (!right)\r
{\r
if (hscroll.getValue() < 1)\r
{\r
return false;\r
}\r
- fastPaint = false;\r
- hscroll.setValue(hscroll.getValue() - 1);\r
+ setScrollValues(hscroll.getValue()-1, vscroll.getValue());\r
}\r
else\r
{\r
{\r
return false;\r
}\r
- fastPaint = false;\r
- hscroll.setValue(hscroll.getValue() + 1);\r
+ setScrollValues(hscroll.getValue()+1, vscroll.getValue());\r
}\r
- fastPaint = true;\r
+\r
+ repaint();\r
return true;\r
}\r
\r
public void setScrollValues(int x, int y)\r
{\r
-\r
av.setStartRes(x);\r
av.setStartSeq(y);\r
av.setEndRes(x + seqPanel.seqCanvas.getSize().width / av.getCharWidth() - 1);\r
hscroll.setValues(x, hextent, 0, av.getAlignment().getWidth());\r
vscroll.setValues(y, vextent, 0, av.getAlignment().getHeight());\r
\r
+ if(overviewPanel!=null)\r
+ overviewPanel.setBoxPosition();\r
}\r
\r
public void adjustmentValueChanged(AdjustmentEvent evt)\r
int oldX = av.getStartRes();\r
int oldY = av.getStartSeq();\r
\r
+\r
if (evt==null || evt.getSource() == hscroll)\r
{\r
int x = hscroll.getValue();\r
1);\r
}\r
\r
+\r
if (evt==null || evt.getSource() == vscroll)\r
{\r
int offy = vscroll.getValue();\r
{\r
repaint();\r
}\r
- else if(!seqPanel.seqCanvas.fastPaint)\r
+ else\r
{\r
// Make sure we're not trying to draw a panel\r
// larger than the visible window\r
if(scrollX>av.endRes-av.startRes)\r
- scrollX = av.endRes-av.startRes;\r
+ {\r
+ scrollX = av.endRes - av.startRes;\r
+ }\r
else if(scrollX<av.startRes-av.endRes)\r
scrollX = av.startRes - av.endRes;\r
\r
\r
public void paint(Graphics g)\r
{\r
+ invalidate();\r
Dimension d = idPanel.idCanvas.getSize();\r
idPanel.idCanvas.setSize(d.width, seqPanel.seqCanvas.getSize().height);\r
annotationSpaceFillerHolder.setSize(d.width,\r