X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;ds=sidebyside;f=src%2Fjalview%2Fgui%2FAnnotationPanel.java;h=49d4554069082906c231bb3f7b1fc674fe418074;hb=079d0d74b8aa7eacf7675b6efd23e7c2a34593a7;hp=0d86b07a904c3d27af57e8517f6d2c68990a93fc;hpb=2131bbe62dd921c47cf5f117fa4e441c9be0f554;p=jalview.git diff --git a/src/jalview/gui/AnnotationPanel.java b/src/jalview/gui/AnnotationPanel.java index 0d86b07..49d4554 100755 --- a/src/jalview/gui/AnnotationPanel.java +++ b/src/jalview/gui/AnnotationPanel.java @@ -25,8 +25,10 @@ import jalview.datamodel.Annotation; import jalview.datamodel.ColumnSelection; import jalview.datamodel.HiddenColumns; import jalview.datamodel.SequenceI; +import jalview.gui.JalviewColourChooser.ColourChooserListener; import jalview.renderer.AnnotationRenderer; import jalview.renderer.AwtRenderPanelI; +import jalview.schemes.FeatureColour; import jalview.schemes.ResidueProperties; import jalview.util.Comparison; import jalview.util.MessageManager; @@ -58,6 +60,7 @@ import java.util.Collections; import java.util.List; import javax.swing.JColorChooser; +import javax.swing.JDialog; import javax.swing.JMenuItem; import javax.swing.JPanel; import javax.swing.JPopupMenu; @@ -175,11 +178,12 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, if (e.isShiftDown()) { e.consume(); - if (e.getWheelRotation() > 0) + double wheelRotation = e.getPreciseWheelRotation(); + if (wheelRotation > 0) { av.getRanges().scrollRight(true); } - else + else if (wheelRotation < 0) { av.getRanges().scrollRight(false); } @@ -338,24 +342,29 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, } else if (action.equals(COLOUR)) { - Color col = JColorChooser.showDialog(this, - MessageManager.getString("label.select_foreground_colour"), - Color.black); - - for (int index : av.getColumnSelection().getSelected()) + final Annotation[] fAnot = anot; + String title = MessageManager + .getString("label.select_foreground_colour"); + ColourChooserListener listener = new ColourChooserListener() { - if (!av.getAlignment().getHiddenColumns().isVisible(index)) + @Override + public void colourSelected(Color c) { - continue; - } - - if (anot[index] == null) - { - anot[index] = new Annotation("", "", ' ', 0); - } - - anot[index].colour = col; - } + HiddenColumns hiddenColumns = av.getAlignment().getHiddenColumns(); + for (int index : av.getColumnSelection().getSelected()) + { + if (hiddenColumns.isVisible(index)) + { + if (fAnot[index] == null) + { + fAnot[index] = new Annotation("", "", ' ', 0); + } + fAnot[index].colour = c; + } + }}; + }; + JalviewColourChooser.showColourChooser(this, + title, Color.black, listener); } else // HELIX, SHEET or STEM @@ -724,7 +733,7 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, if (av.hasHiddenColumns()) { column = av.getAlignment().getHiddenColumns() - .adjustForHiddenColumns(column); + .visibleToAbsoluteColumn(column); } AlignmentAnnotation ann = aa[row]; @@ -782,6 +791,10 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, { this.setToolTipText(JvSwingUtils.wrapTooltip(true, description)); } + else + { + this.setToolTipText(null); // no tooltip if null or empty description + } } else { @@ -1015,7 +1028,10 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, fastPaint = true; - av.getAlignPanel().alignFrame.repaint(); + // Call repaint on alignment panel so that repaints from other alignment + // panel components can be aggregated. Otherwise performance of the overview + // window and others may be adversely affected. + av.getAlignPanel().repaint(); } private volatile boolean lastImageGood = false; @@ -1183,5 +1199,9 @@ public class AnnotationPanel extends JPanel implements AwtRenderPanelI, fastPaint(((int[]) evt.getNewValue())[0] - ((int[]) evt.getOldValue())[0]); } + else if (evt.getPropertyName().equals(ViewportRanges.MOVE_VIEWPORT)) + { + repaint(); + } } }