X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Fappletgui%2FAnnotationPanel.java;h=492683d61a20891c65d22ec50e14bde1813ba7d7;hb=c634b124bf5ee7ef6935959c451fb4debfc4fa5d;hp=2b67500c7bbe888a8987111c9f49fe739e3c5cea;hpb=bb3f28791ddb1a4f55e78a3bcd2ff4a591ebe95d;p=jalview.git diff --git a/src/jalview/appletgui/AnnotationPanel.java b/src/jalview/appletgui/AnnotationPanel.java index 2b67500..492683d 100755 --- a/src/jalview/appletgui/AnnotationPanel.java +++ b/src/jalview/appletgui/AnnotationPanel.java @@ -1,18 +1,18 @@ /* * Jalview - A Sequence Alignment Editor and Viewer (Version 2.7) * Copyright (C) 2011 J Procter, AM Waterhouse, J Engelhardt, LM Lui, G Barton, M Clamp, S Searle - * + * * This file is part of Jalview. - * + * * Jalview is free software: you can redistribute it and/or - * modify it under the terms of the GNU General Public License + * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 of the License, or (at your option) any later version. - * - * Jalview is distributed in the hope that it will be useful, but - * WITHOUT ANY WARRANTY; without even the implied warranty - * of MERCHANTABILITY or FITNESS FOR A PARTICULAR + * + * Jalview is distributed in the hope that it will be useful, but + * WITHOUT ANY WARRANTY; without even the implied warranty + * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. - * + * * You should have received a copy of the GNU General Public License along with Jalview. If not, see . */ package jalview.appletgui; @@ -21,14 +21,11 @@ import java.util.*; import java.awt.*; import java.awt.event.*; -import java.awt.font.LineMetrics; -import java.awt.geom.AffineTransform; +import java.awt.image.BufferedImage; -import jalview.analysis.AAFrequency; import jalview.datamodel.*; import jalview.renderer.AnnotationRenderer; import jalview.renderer.AwtRenderPanelI; -import jalview.schemes.ColourSchemeI; public class AnnotationPanel extends Panel implements AwtRenderPanelI, AdjustmentListener, ActionListener, MouseListener, MouseMotionListener @@ -41,19 +38,24 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen Vector activeRes; - static String HELIX = "Helix"; + final String HELIX = "Helix"; - static String SHEET = "Sheet"; + final String SHEET = "Sheet"; - static String LABEL = "Label"; + /** + * For RNA secondary structure "stems" aka helices + */ + final String STEM = "RNA Helix"; + + final String LABEL = "Label"; - static String REMOVE = "Remove Annotation"; + final String REMOVE = "Remove Annotation"; - static String COLOUR = "Colour"; + final String COLOUR = "Colour"; - static Color HELIX_COLOUR = Color.red.darker(); + final Color HELIX_COLOUR = Color.red.darker(); - static Color SHEET_COLOUR = Color.green.darker().darker(); + final Color SHEET_COLOUR = Color.green.darker().darker(); Image image; @@ -101,16 +103,18 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen renderer = new AnnotationRenderer(); } + @Override public void adjustmentValueChanged(AdjustmentEvent evt) { } /** * DOCUMENT ME! - * + * * @param evt * DOCUMENT ME! */ + @Override public void actionPerformed(ActionEvent evt) { AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); @@ -207,6 +211,13 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen symbol = "\u03B2"; } + // Added by LML to color stems + else if (evt.getActionCommand().equals(STEM)) + { + type = 'S'; + symbol = "\u03C3"; + } + if (!aa[activeRow].hasIcons) { aa[activeRow].hasIcons = true; @@ -244,6 +255,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen aa[activeRow].validateRangeAndDisplay(); adjustPanelHeight(); + ap.alignmentChanged(); repaint(); return; @@ -260,6 +272,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen return null; } + @Override public void mousePressed(MouseEvent evt) { AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); @@ -304,12 +317,23 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen } PopupMenu pop = new PopupMenu("Structure type"); - MenuItem item = new MenuItem(HELIX); - item.addActionListener(this); - pop.add(item); - item = new MenuItem(SHEET); - item.addActionListener(this); - pop.add(item); + MenuItem item; + /* + * Just display the needed structure options + */ + if (av.getAlignment().isNucleotide() == true) + { + item = new MenuItem(STEM); + item.addActionListener(this); + pop.add(item); + } else { + item = new MenuItem(HELIX); + item.addActionListener(this); + pop.add(item); + item = new MenuItem(SHEET); + item.addActionListener(this); + pop.add(item); + } item = new MenuItem(LABEL); item.addActionListener(this); pop.add(item); @@ -333,6 +357,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen ap.scalePanel.mousePressed(evt); } + @Override public void mouseReleased(MouseEvent evt) { graphStretch = -1; @@ -346,12 +371,14 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen ap.scalePanel.mouseReleased(evt); } + @Override public void mouseClicked(MouseEvent evt) { } boolean needValidating = false; + @Override public void mouseDragged(MouseEvent evt) { if (graphStretch > -1) @@ -373,6 +400,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen } } + @Override public void mouseMoved(MouseEvent evt) { AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation(); @@ -417,11 +445,13 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen } } + @Override public void mouseEntered(MouseEvent evt) { ap.scalePanel.mouseEntered(evt); } + @Override public void mouseExited(MouseEvent evt) { ap.scalePanel.mouseExited(evt); @@ -526,11 +556,13 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen activeRes.addElement(String.valueOf(i)); } + @Override public void update(Graphics g) { paint(g); } + @Override public void paint(Graphics g) { Dimension d = getSize(); @@ -598,7 +630,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen /** * DOCUMENT ME! - * + * * @param g * DOCUMENT ME! * @param startRes @@ -636,7 +668,7 @@ public class AnnotationPanel extends Panel implements AwtRenderPanelI, Adjustmen renderer.drawComponent(this, av, g, activeRow, startRes, endRes); g.translate(0, +scrollOffset); } - + int scrollOffset = 0; public void setScrollOffset(int value)