X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fgui%2FAnnotationPanel.java;h=1ba04b464718211afaa6936cbaab156cb6644839;hb=c1f777a6a4a74ee1573e5f3f883e0de902818ae7;hp=919356f28f3064e6cc57031a3c2fb8cb37068dd9;hpb=d1707d4c26db76cfeb640f0dbeb3e3427fd40eb7;p=jalview.git diff --git a/src/jalview/gui/AnnotationPanel.java b/src/jalview/gui/AnnotationPanel.java index 919356f..1ba04b4 100755 --- a/src/jalview/gui/AnnotationPanel.java +++ b/src/jalview/gui/AnnotationPanel.java @@ -30,6 +30,7 @@ import jalview.renderer.AwtRenderPanelI; import jalview.schemes.ResidueProperties; import jalview.util.Comparison; import jalview.util.MessageManager; +import jalview.viewmodel.ViewportListenerI; import java.awt.AlphaComposite; import java.awt.Color; @@ -50,6 +51,7 @@ import java.awt.event.MouseMotionListener; import java.awt.event.MouseWheelEvent; import java.awt.event.MouseWheelListener; import java.awt.image.BufferedImage; +import java.beans.PropertyChangeEvent; import java.util.ArrayList; import java.util.Collections; import java.util.List; @@ -70,7 +72,7 @@ import javax.swing.ToolTipManager; */ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, MouseListener, MouseWheelListener, MouseMotionListener, - ActionListener, AdjustmentListener, Scrollable + ActionListener, AdjustmentListener, Scrollable, ViewportListenerI { String HELIX = MessageManager.getString("label.helix"); @@ -156,6 +158,8 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, // and then set our own listener to consume all mousewheel events ap.annotationScroller.addMouseWheelListener(this); renderer = new AnnotationRenderer(); + + av.getRanges().addPropertyChangeListener(this); } public AnnotationPanel(AlignViewport av) @@ -172,11 +176,11 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, e.consume(); if (e.getWheelRotation() > 0) { - ap.scrollRight(true); + av.getRanges().scrollRight(true); } else { - ap.scrollRight(false); + av.getRanges().scrollRight(false); } } else @@ -447,7 +451,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, * the selection list (read-only view) is in selection order, not * column order; make a copy so we can sort it */ - List selected = new ArrayList(viscols.getSelected()); + List selected = new ArrayList<>(viscols.getSelected()); Collections.sort(selected); for (int index : selected) { @@ -977,13 +981,15 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, repaint(); return; } + + int sr = av.getRanges().getStartRes(); + int er = av.getRanges().getEndRes() + 1; + int transX = 0; + long stime = System.currentTimeMillis(); gg.copyArea(0, 0, imgWidth, getHeight(), -horizontal * av.getCharWidth(), 0); long mtime = System.currentTimeMillis(); - int sr = av.getRanges().getStartRes(); - int er = av.getRanges().getEndRes() + 1; - int transX = 0; if (horizontal > 0) // scrollbar pulled right, image to the left { @@ -1159,4 +1165,18 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, renderer.dispose(); } } + + @Override + public void propertyChange(PropertyChangeEvent evt) + { + // Respond to viewport range changes (e.g. alignment panel was scrolled) + if (evt.getPropertyName().equals("startres")) + { + fastPaint((int) evt.getNewValue() - (int) evt.getOldValue()); + } + else if (evt.getPropertyName().equals("endres")) + { + // resize - do nothing + } + } }