JAL-882; VARNA crashed when non-standard gaps where in structure; the
[jalview.git] / src / jalview / gui / PopupMenu.java
index e85da7a..82ce835 100644 (file)
@@ -161,8 +161,8 @@ public class PopupMenu extends JPopupMenu
    * @param links
    * @param groupLinks
    */
-  public PopupMenu(final AlignmentPanel ap, Sequence seq, Vector links,
-          Vector groupLinks)
+  public PopupMenu(final AlignmentPanel ap, final Sequence seq, final Vector links,
+          final Vector groupLinks)
   {
     // /////////////////////////////////////////////////////////
     // If this is activated from the sequence panel, the user may want to
@@ -253,10 +253,40 @@ public class PopupMenu extends JPopupMenu
         }
       }
       else
-      {
-        structureMenu.remove(viewStructureMenu);
+      {        
+         if(ap.av.alignment.isNucleotide()==false){
+                 structureMenu.remove(viewStructureMenu);
+         }
         // structureMenu.remove(colStructureMenu);
       }
+      
+      if(ap.av.alignment.isNucleotide()==true){
+         AlignmentAnnotation[] aa = ap.av.alignment.getAlignmentAnnotation();
+         String rnastruc=new String();
+         for(int i=0; i<aa.length;i++){
+                 if(aa[i]._rnasecstr != null){
+                         rnastruc=aa[i].getRNAStruc();
+                         break;
+                 }
+         }
+         
+         SequenceGroup a = aa[0].groupRef;
+
+         //TODO: make rnastrucF a bit more nice
+         final String rnastrucF=rnastruc;
+         menuItem = new JMenuItem();
+         menuItem.setText("RNA structure");
+         menuItem.addActionListener(new java.awt.event.ActionListener()
+         {
+                 public void actionPerformed(ActionEvent e)
+                 {
+                         System.out.println("Call Varna "+seq.getSequenceAsString()+" "+seq.getName());
+                         //TODO: VARNA does'nt print gaps in the sequence
+                         new AppVarna(seq.getSequenceAsString(),rnastrucF,seq.getName(),ap);
+                 }
+                       });       
+                       viewStructureMenu.add(menuItem);
+       }
 
       menuItem = new JMenuItem("Hide Sequences");
       menuItem.addActionListener(new java.awt.event.ActionListener()