X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAnnotationPanel.java;h=e2d7e821b739353985f96d6b4b700cd1424cdce6;hb=09cce494f72431183bd3c37e77913170a08c3ac3;hp=0f8baafb639dadde3c7b436697b0bcfb7a21ada6;hpb=c007d50b16da69f9a0bab23f8a1afd7347fc7e87;p=jalview.git diff --git a/src/jalview/appletgui/AnnotationPanel.java b/src/jalview/appletgui/AnnotationPanel.java index 0f8baaf..e2d7e82 100755 --- a/src/jalview/appletgui/AnnotationPanel.java +++ b/src/jalview/appletgui/AnnotationPanel.java @@ -29,6 +29,7 @@ import jalview.schemes.ResidueProperties; import jalview.util.Comparison; import jalview.util.MessageManager; import jalview.util.Platform; +import jalview.viewmodel.ViewportListenerI; import java.awt.Color; import java.awt.Dimension; @@ -47,10 +48,11 @@ import java.awt.event.InputEvent; import java.awt.event.MouseEvent; import java.awt.event.MouseListener; import java.awt.event.MouseMotionListener; +import java.beans.PropertyChangeEvent; public class AnnotationPanel extends Panel implements AwtRenderPanelI, AdjustmentListener, ActionListener, MouseListener, - MouseMotionListener + MouseMotionListener, ViewportListenerI { AlignViewport av; @@ -122,6 +124,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, { this.av = av; renderer = new AnnotationRenderer(); + av.getRanges().addPropertyChangeListener(this); } @Override @@ -165,7 +168,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, { for (int index : av.getColumnSelection().getSelected()) { - if (av.getColumnSelection().isVisible(index)) + if (av.getAlignment().getHiddenColumns().isVisible(index)) { anot[index] = null; } @@ -189,7 +192,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, { // TODO: JAL-2001 - provide a fast method to list visible selected // columns - if (!av.getColumnSelection().isVisible(index)) + if (!av.getAlignment().getHiddenColumns().isVisible(index)) { continue; } @@ -211,7 +214,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, for (int index : av.getColumnSelection().getSelected()) { - if (!av.getColumnSelection().isVisible(index)) + if (!av.getAlignment().getHiddenColumns().isVisible(index)) { continue; } @@ -271,7 +274,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, for (int index : av.getColumnSelection().getSelected()) { - if (!av.getColumnSelection().isVisible(index)) + if (!av.getAlignment().getHiddenColumns().isVisible(index)) { continue; } @@ -462,11 +465,13 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, } } - int column = evt.getX() / av.getCharWidth() + av.getStartRes(); + int column = evt.getX() / av.getCharWidth() + + av.getRanges().getStartRes(); if (av.hasHiddenColumns()) { - column = av.getColumnSelection().adjustForHiddenColumns(column); + column = av.getAlignment().getHiddenColumns() + .adjustForHiddenColumns(column); } if (row > -1 && column < aa[row].annotations.length @@ -618,7 +623,8 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, gg.setColor(Color.white); gg.fillRect(0, 0, getSize().width, getSize().height); - drawComponent(gg, av.startRes, av.endRes + 1); + drawComponent(gg, av.getRanges().getStartRes(), av.getRanges() + .getEndRes() + 1); g.drawImage(image, 0, 0, this); } @@ -635,7 +641,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, gg.copyArea(0, 0, imgWidth, getSize().height, -horizontal * av.getCharWidth(), 0); - int sr = av.startRes, er = av.endRes + 1, transX = 0; + int sr = av.getRanges().getStartRes(), er = av.getRanges().getEndRes() + 1, transX = 0; if (horizontal > 0) // scrollbar pulled right, image to the left { @@ -747,4 +753,15 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, return null; } } + + @Override + public void propertyChange(PropertyChangeEvent evt) + { + // Respond to viewport range changes (e.g. alignment panel was scrolled) + if (evt.getPropertyName().equals("startres") + || evt.getPropertyName().equals("endres")) + { + fastPaint((int) evt.getNewValue() - (int) evt.getOldValue()); + } + } }