import jalview.structure.StructureSelectionManager;
import jalview.util.MessageManager;
import jalview.util.Platform;
+import jalview.viewmodel.ViewportListenerI;
import jalview.viewmodel.ViewportRanges;
import java.awt.BorderLayout;
* @version $Revision: 1.161 $
*/
public class AlignmentPanel extends GAlignmentPanel implements
- AdjustmentListener, Printable, AlignmentViewPanel
+ AdjustmentListener, Printable, AlignmentViewPanel,
+ ViewportListenerI
{
public AlignViewport av;
}
};
av.addPropertyChangeListener(propertyChangeListener);
+
+ av.getRanges().addPropertyChangeListener(this);
fontChanged();
adjustAnnotationHeight();
updateLayout();
|| res >= (vpRanges.getStartRes() + cwidth))
{
vscroll.setValue((res / cwidth));
- vpRanges.setStartRes(vscroll.getValue() * cwidth);
+ // vpRanges.setStartRes(vscroll.getValue() * cwidth);
}
}
* 'do not scroll complement' flag; ensure it is the same for both
* operations
*/
- boolean flag = isDontScrollComplement();
+ // boolean flag = isDontScrollComplement();
hscroll.setValues(x, hextent, 0, width);
- setDontScrollComplement(flag);
+ // setDontScrollComplement(flag);
vscroll.setValues(y, vextent, 0, height);
}
if (evt.getSource() == hscroll)
{
int x = hscroll.getValue();
- vpRanges.setStartRes(x);
- vpRanges.setEndRes((x + (getSeqPanel().seqCanvas.getWidth() / av
+ if (x == oldX)
+ {
+ return;
+ }
+ // vpRanges.setStartRes(x);
+ // vpRanges.setEndRes((x + (getSeqPanel().seqCanvas.getWidth() / av
+ // .getCharWidth())) - 1);
+ vpRanges.setStartEndRes(
+ x,
+ (x + (getSeqPanel().seqCanvas.getWidth() / av
.getCharWidth())) - 1);
}
if (av.getWrapAlignment())
{
+ if (offy == oldX)
+ {
+ return;
+ }
if (offy > -1)
{
int rowSize = getSeqPanel().seqCanvas
.getWrappedCanvasWidth(getSeqPanel().seqCanvas.getWidth());
- vpRanges.setStartRes(offy * rowSize);
- vpRanges.setEndRes((offy + 1) * rowSize);
+ vpRanges.setStartEndRes(offy * rowSize, (offy + 1) * rowSize);
+ // vpRanges.setStartRes(offy * rowSize);
+ // vpRanges.setEndRes((offy + 1) * rowSize);
+
}
else
{
}
else
{
- vpRanges.setStartSeq(offy);
- vpRanges.setEndSeq(offy
- + (getSeqPanel().seqCanvas.getHeight() / av.getCharHeight())
- - 1);
+ if (offy == oldY)
+ {
+ return;
+ }
+ // vpRanges.setStartSeq(offy);
+ // vpRanges.setEndSeq(offy
+ // + (getSeqPanel().seqCanvas.getHeight() / av.getCharHeight())
+ // - 1);
+ vpRanges.setStartEndSeq(
+ offy,
+ offy
+ + (getSeqPanel().seqCanvas.getHeight() / av
+ .getCharHeight()) - 1);
}
}
- if (overviewPanel != null)
+ /*if (overviewPanel != null)
{
overviewPanel.setBoxPosition();
- }
+ }*/
- int scrollX = vpRanges.getStartRes() - oldX;
- int scrollY = vpRanges.getStartSeq() - oldY;
+ // int scrollX = vpRanges.getStartRes() - oldX;
+ // int scrollY = vpRanges.getStartSeq() - oldY;
if (av.getWrapAlignment() || !fastPaint)
{
repaint();
}
- else
- {
- // Make sure we're not trying to draw a panel
- // larger than the visible window
- if (scrollX > vpRanges.getEndRes() - vpRanges.getStartRes())
- {
- scrollX = vpRanges.getEndRes() - vpRanges.getStartRes();
- }
- else if (scrollX < vpRanges.getStartRes() - vpRanges.getEndRes())
- {
- scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
- }
-
- if (scrollX != 0 || scrollY != 0)
- {
- getIdPanel().getIdCanvas().fastPaint(scrollY);
- getSeqPanel().seqCanvas.fastPaint(scrollX, scrollY);
- getScalePanel().repaint();
-
- if (av.isShowAnnotation() && scrollX != 0)
- {
- getAnnotationPanel().fastPaint(scrollX);
- }
- }
- }
- /*
- * If there is one, scroll the (Protein/cDNA) complementary alignment to
- * match, unless we are ourselves doing that.
- */
- if (isDontScrollComplement())
- {
- setDontScrollComplement(false);
- }
- else
- {
- av.scrollComplementaryAlignment();
- }
+ /* else
+ {
+ // Make sure we're not trying to draw a panel
+ // larger than the visible window
+ if (scrollX > vpRanges.getEndRes() - vpRanges.getStartRes())
+ {
+ scrollX = vpRanges.getEndRes() - vpRanges.getStartRes();
+ }
+ else if (scrollX < vpRanges.getStartRes() - vpRanges.getEndRes())
+ {
+ scrollX = vpRanges.getStartRes() - vpRanges.getEndRes();
+ }
+
+ if (scrollX != 0 || scrollY != 0)
+ {
+ getIdPanel().getIdCanvas().fastPaint(scrollY);
+ getSeqPanel().seqCanvas.fastPaint(scrollX, scrollY);
+ getScalePanel().repaint();
+
+ if (av.isShowAnnotation() && scrollX != 0)
+ {
+ getAnnotationPanel().fastPaint(scrollX);
+ }
+ }
+ }
+ /*
+ * If there is one, scroll the (Protein/cDNA) complementary alignment to
+ * match, unless we are ourselves doing that.
+ */
+ /* if (isDontScrollComplement())
+ {
+ setDontScrollComplement(false);
+ }
+ else
+ {
+ av.scrollComplementaryAlignment();
+ }*/
}
/**
repaint();
}
}
+
+ @Override
+ public void propertyChange(PropertyChangeEvent evt)
+ {
+ int x = vpRanges.getStartRes();
+ int y = vpRanges.getStartSeq();
+ setScrollValues(x, y);
+
+ }
}