/*
* 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 <http://www.gnu.org/licenses/>.
*/
package jalview.appletgui;
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
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;
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();
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;
aa[activeRow].validateRangeAndDisplay();
adjustPanelHeight();
+ ap.alignmentChanged();
repaint();
return;
return null;
}
+ @Override
public void mousePressed(MouseEvent evt)
{
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
}
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);
ap.scalePanel.mousePressed(evt);
}
+ @Override
public void mouseReleased(MouseEvent evt)
{
graphStretch = -1;
ap.scalePanel.mouseReleased(evt);
}
+ @Override
public void mouseClicked(MouseEvent evt)
{
}
boolean needValidating = false;
+ @Override
public void mouseDragged(MouseEvent evt)
{
if (graphStretch > -1)
}
}
+ @Override
public void mouseMoved(MouseEvent evt)
{
AlignmentAnnotation[] aa = av.getAlignment().getAlignmentAnnotation();
}
}
+ @Override
public void mouseEntered(MouseEvent evt)
{
ap.scalePanel.mouseEntered(evt);
}
+ @Override
public void mouseExited(MouseEvent evt)
{
ap.scalePanel.mouseExited(evt);
activeRes.addElement(String.valueOf(i));
}
+ @Override
public void update(Graphics g)
{
paint(g);
}
+ @Override
public void paint(Graphics g)
{
Dimension d = getSize();
/**
* DOCUMENT ME!
- *
+ *
* @param g
* DOCUMENT ME!
* @param startRes
renderer.drawComponent(this, av, g, activeRow, startRes, endRes);
g.translate(0, +scrollOffset);
}
-
+
int scrollOffset = 0;
public void setScrollOffset(int value)