Merge branch 'jims_marckhacks' into develop
[jalview.git] / src / jalview / gui / PopupMenu.java
index 0e39f34..7d953d4 100644 (file)
@@ -72,6 +72,7 @@ public class PopupMenu extends JPopupMenu
   protected JRadioButtonMenuItem BLOSUM62Colour = new JRadioButtonMenuItem();
 
   protected JRadioButtonMenuItem purinePyrimidineColour = new JRadioButtonMenuItem();
+  protected JRadioButtonMenuItem RNAInteractionColour = new JRadioButtonMenuItem();
 
   // protected JRadioButtonMenuItem covariationColour = new
   // JRadioButtonMenuItem();
@@ -123,7 +124,11 @@ public class PopupMenu extends JPopupMenu
   JMenu pdbMenu = new JMenu();
 
   JMenuItem pdbFromFile = new JMenuItem();
-
+    // JBPNote: Commented these out - Should add these services via the web services menu system.
+    // JMenuItem ContraFold = new JMenuItem();
+  
+    // JMenuItem RNAFold = new JMenuItem();
+  
   JMenuItem enterPDB = new JMenuItem();
 
   JMenuItem discoverPDB = new JMenuItem();
@@ -194,6 +199,7 @@ public class PopupMenu extends JPopupMenu
     colours.add(PIDColour);
     colours.add(BLOSUM62Colour);
     colours.add(purinePyrimidineColour);
+    colours.add(RNAInteractionColour);
     // colours.add(covariationColour);
 
     for (int i = 0; i < jalview.io.FormatAdapter.WRITEABLE_FORMATS.length; i++)
@@ -282,11 +288,23 @@ public class PopupMenu extends JPopupMenu
             menuItem = new JMenuItem();
             menuItem.setText(MessageManager.formatMessage("label.2d_rna_structure_line", new String[]{structureLine}));\r
             menuItem.addActionListener(new java.awt.event.ActionListener()
+            
             {
               public void actionPerformed(ActionEvent e)
               {
-                new AppVarna(structureLine, seq, seq.getSequenceAsString(),
-                        rnastruc, seq.getName(), ap);
+                       //System.out.println("1:"+structureLine);
+                       System.out.println("1:sname"+seq.getName());
+                       System.out.println("2:seq"+seq);
+                
+                       //System.out.println("3:"+seq.getSequenceAsString());
+                       System.out.println("3:strucseq"+rnastruc);
+                       //System.out.println("4:struc"+seq.getRNA());
+                       System.out.println("5:name"+seq.getName());
+                       System.out.println("6:ap"+ap);
+                       new AppVarna(structureLine, seq, seq.getSequenceAsString(), rnastruc, seq
+                            .getName(), ap);
+                       //new AppVarna(seq.getName(),seq,rnastruc,seq.getRNA(), seq.getName(), ap);
+                       System.out.println("end");
               }
             });
             viewStructureMenu.add(menuItem);
@@ -312,6 +330,7 @@ public class PopupMenu extends JPopupMenu
                 public void actionPerformed(ActionEvent e)
                 {
                   // TODO: VARNA does'nt print gaps in the sequence
+                
                   new AppVarna(seq.getName() + " structure", seq, seq
                           .getSequenceAsString(), rnastruc, seq.getName(),
                           ap);
@@ -449,6 +468,8 @@ public class PopupMenu extends JPopupMenu
       {
         purinePyrimidineColour.setSelected(true);
       }
+      
+   
       /*
        * else if (sg.cs instanceof CovariationColourScheme) {
        * covariationColour.setSelected(true); }
@@ -472,7 +493,7 @@ public class PopupMenu extends JPopupMenu
         buildGroupURLMenu(sg, groupLinks);
       }
       // Add a 'show all structures' for the current selection
-      Hashtable<String, PDBEntry> pdbe = new Hashtable<String, PDBEntry>();
+      Hashtable<String, PDBEntry> pdbe = new Hashtable<String, PDBEntry>(),reppdb=new Hashtable<String,PDBEntry>();
       SequenceI sqass = null;
       for (SequenceI sq : ap.av.getSequenceSelection())
       {
@@ -480,6 +501,7 @@ public class PopupMenu extends JPopupMenu
                 .getPDBId();
         if (pes != null)
         {
+          reppdb.put(pes.get(0).getId(),pes.get(0));
           for (PDBEntry pe : pes)
           {
             pdbe.put(pe.getId(), pe);
@@ -493,15 +515,16 @@ public class PopupMenu extends JPopupMenu
       if (pdbe.size() > 0)
       {
         final PDBEntry[] pe = pdbe.values().toArray(
-                new PDBEntry[pdbe.size()]);
-        final JMenuItem gpdbview;
+                new PDBEntry[pdbe.size()]),pr = reppdb.values().toArray(
+                        new PDBEntry[reppdb.size()]);
+        final JMenuItem gpdbview,rpdbview;
         if (pdbe.size() == 1)
         {
           structureMenu.add(gpdbview = new JMenuItem(MessageManager.formatMessage("label.view_structure_for", new String[]{sqass.getDisplayId(false)})));\r
         }
         else
         {
-          structureMenu.add(gpdbview = new JMenuItem(MessageManager.formatMessage("label.view_all_structures", new String[]{new Integer(pdbe.size()).toString()})));\r
+          structureMenu.add(gpdbview = new JMenuItem(MessageManager.formatMessage("label.view_all_structures", new String[]{new Integer(pdbe.size()).toString()})));          \r
         }
         gpdbview.setToolTipText(MessageManager.getString("label.open_new_jmol_view_with_all_structures_associated_current_selection_superimpose_using_alignment"));\r
         gpdbview.addActionListener(new ActionListener()
@@ -513,6 +536,20 @@ public class PopupMenu extends JPopupMenu
             new AppJmol(ap, pe, ap.av.collateForPDB(pe));
           }
         });
+        if (reppdb.size()>1 && reppdb.size()<pdbe.size())
+        {
+          structureMenu.add(rpdbview = new JMenuItem(MessageManager.formatMessage("label.view_all_representative_structures", new String[]{new Integer(reppdb.size()).toString()})));
+          rpdbview.setToolTipText(MessageManager.getString("label.open_new_jmol_view_with_all_representative_structures_associated_current_selection_superimpose_using_alignment"));
+          rpdbview.addActionListener(new ActionListener()
+          {
+
+            @Override
+            public void actionPerformed(ActionEvent e)
+            {
+              new AppJmol(ap, pr, ap.av.collateForPDB(pr));
+            }
+          });
+        }
       }
     }
     else
@@ -1045,6 +1082,32 @@ public class PopupMenu extends JPopupMenu
         pdbFromFile_actionPerformed();
       }
     });
+//    RNAFold.setText("From RNA Fold with predict2D");
+//    RNAFold.addActionListener(new ActionListener()
+//    {
+//      public void actionPerformed(ActionEvent e)
+//      {
+//       try {
+//                     RNAFold_actionPerformed();
+//             } catch (Exception e1) {
+//                     // TODO Auto-generated catch block
+//                     e1.printStackTrace();
+//             }
+//      }   
+//    });
+//    ContraFold.setText("From Contra Fold with predict2D");
+//    ContraFold.addActionListener(new ActionListener()
+//    {
+//      public void actionPerformed(ActionEvent e)
+//      {
+//       try {
+//                     ContraFold_actionPerformed();
+//             } catch (Exception e1) {
+//                     // TODO Auto-generated catch block
+//                     e1.printStackTrace();
+//             }
+//      }   
+//    });
     enterPDB.setText(MessageManager.getString("label.enter_pdb_id"));\r
     enterPDB.addActionListener(new ActionListener()
     {
@@ -1122,9 +1185,10 @@ public class PopupMenu extends JPopupMenu
     colourMenu.add(turnColour);
     colourMenu.add(buriedColour);
     colourMenu.add(nucleotideMenuItem);
-    if (ap.getAlignment().isNucleotide())
-    {
-      colourMenu.add(purinePyrimidineColour);
+    if (ap.getAlignment().isNucleotide()) {
+       // JBPNote - commented since the colourscheme isn't functional
+       //  colourMenu.add(RNAInteractionColour);
+       colourMenu.add(purinePyrimidineColour);
     }
     // colourMenu.add(covariationColour);
     colourMenu.add(userDefinedColour);
@@ -1159,6 +1223,9 @@ public class PopupMenu extends JPopupMenu
     editMenu.add(lowerCase);
     editMenu.add(toggle);
     pdbMenu.add(pdbFromFile);
+    // JBPNote: These shouldn't be added here - should appear in a generic 'apply web service to this sequence menu'
+    //    pdbMenu.add(RNAFold);
+    //    pdbMenu.add(ContraFold);
     pdbMenu.add(enterPDB);
     pdbMenu.add(discoverPDB);
     jMenu1.add(groupName);
@@ -1286,6 +1353,8 @@ public class PopupMenu extends JPopupMenu
                 purinePyrimidineColour_actionPerformed();
               }
             });
+    
+   
     /*
      * covariationColour.addActionListener(new java.awt.event.ActionListener() {
      * public void actionPerformed(ActionEvent e) {
@@ -1472,6 +1541,7 @@ public class PopupMenu extends JPopupMenu
     refresh();
   }
 
+
   /*
    * protected void covariationColour_actionPerformed() { getGroup().cs = new
    * CovariationColourScheme(sequence.getAnnotation()[0]); refresh(); }
@@ -1949,7 +2019,18 @@ public class PopupMenu extends JPopupMenu
     }
 
   }
-
+    // JBNote: commented out - these won't be instantiated here...!  
+//  public void RNAFold_actionPerformed() throws Exception
+//  {
+//       Predict2D P2D = new Predict2D();
+//       P2D.getStructure2DFromRNAFold("toto");
+//  }
+//  
+//  public void ContraFold_actionPerformed() throws Exception
+//  {
+//       Predict2D P2D = new Predict2D();
+//       P2D.getStructure2DFromContraFold("toto");
+//  }
   public void enterPDB_actionPerformed()
   {
     String id = JOptionPane.showInternalInputDialog(Desktop.desktop,