(JAL-970) interactive editing of RNA helix annotation in applet
authorjprocter <jprocter@compbio.dundee.ac.uk>
Fri, 28 Oct 2011 14:54:09 +0000 (15:54 +0100)
committerjprocter <jprocter@compbio.dundee.ac.uk>
Fri, 28 Oct 2011 14:54:09 +0000 (15:54 +0100)
src/jalview/appletgui/AnnotationPanel.java

index 2b67500..a941ef2 100755 (executable)
@@ -41,19 +41,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";
+  
+  /**
+   * For RNA secondary structure "stems" aka helices
+   */
+  final String STEM = "RNA Helix";
 
-  static String LABEL = "Label";
+  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;
 
@@ -207,6 +212,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;
@@ -304,12 +316,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);