Merge branch 'JAL-1397' into develop
[jalview.git] / src / jalview / gui / PopupMenu.java
index ef19521..037f007 100644 (file)
@@ -23,14 +23,6 @@ import java.awt.*;
 import java.awt.event.*;
 
 import javax.swing.*;
-import javax.xml.parsers.ParserConfigurationException;
-
-import org.xml.sax.SAXException;
-
-import fr.orsay.lri.varna.exceptions.ExceptionFileFormatOrSyntax;
-import fr.orsay.lri.varna.exceptions.ExceptionLoadingFailed;
-import fr.orsay.lri.varna.exceptions.ExceptionPermissionDenied;
-import fr.orsay.lri.varna.exceptions.ExceptionUnmatchedClosingParentheses;
 
 import jalview.analysis.*;
 import jalview.commands.*;
@@ -98,7 +90,7 @@ public class PopupMenu extends JPopupMenu
   JMenuItem sequenceSelDetails = new JMenuItem();
 
   SequenceI sequence;
-
+  JMenuItem createGroupMenuItem = new JMenuItem();
   JMenuItem unGroupMenuItem = new JMenuItem();
 
   JMenuItem outline = new JMenuItem();
@@ -130,7 +122,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();
@@ -415,9 +411,10 @@ public class PopupMenu extends JPopupMenu
     }
 
     SequenceGroup sg = ap.av.getSelectionGroup();
+    boolean isDefinedGroup = (sg!=null) ? ap.av.getAlignment().getGroups().contains(sg) : false;
 
     if (sg != null && sg.getSize() > 0)
-    {
+    {      
       groupName.setText("Name: " + sg.getName());
       groupName.setText("Edit name and description of current group.");
 
@@ -470,10 +467,7 @@ public class PopupMenu extends JPopupMenu
         purinePyrimidineColour.setSelected(true);
       }
       
-      else if (sg.cs instanceof RNAInteractionColourScheme)
-      {
-        RNAInteractionColour.setSelected(true);
-      }
+   
       /*
        * else if (sg.cs instanceof CovariationColourScheme) {
        * covariationColour.setSelected(true); }
@@ -548,9 +542,15 @@ public class PopupMenu extends JPopupMenu
       editMenu.setVisible(false);
     }
 
-    if (!ap.av.getAlignment().getGroups().contains(sg))
+    if (!isDefinedGroup)
     {
+      createGroupMenuItem.setVisible(true);
       unGroupMenuItem.setVisible(false);
+      jMenu1.setText("Edit New Group");
+    } else {
+      createGroupMenuItem.setVisible(false);
+      unGroupMenuItem.setVisible(true);
+      jMenu1.setText("Edit Group");
     }
 
     if (seq == null)
@@ -963,6 +963,14 @@ public class PopupMenu extends JPopupMenu
         unGroupMenuItem_actionPerformed();
       }
     });
+    createGroupMenuItem.setText("Create Group");
+    createGroupMenuItem.addActionListener(new java.awt.event.ActionListener()
+    {
+      public void actionPerformed(ActionEvent e)
+      {
+        createGroupMenuItem_actionPerformed();
+      }
+    });
 
     outline.setText("Border colour");
     outline.addActionListener(new java.awt.event.ActionListener()
@@ -1063,32 +1071,35 @@ public class PopupMenu extends JPopupMenu
     {
       public void actionPerformed(ActionEvent e)
       {
-        try {
-                       pdbFromFile_actionPerformed();
-               } catch (ExceptionFileFormatOrSyntax e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (ParserConfigurationException e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (SAXException e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (ExceptionPermissionDenied e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (ExceptionLoadingFailed e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (InterruptedException e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               } catch (ExceptionUnmatchedClosingParentheses e1) {
-                       // TODO Auto-generated catch block
-                       e1.printStackTrace();
-               }
+        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("Enter PDB Id");
     enterPDB.addActionListener(new ActionListener()
     {
@@ -1148,6 +1159,8 @@ public class PopupMenu extends JPopupMenu
     groupMenu.add(editMenu);
     groupMenu.add(outputMenu);
     groupMenu.add(sequenceFeature);
+    groupMenu.add(createGroupMenuItem);
+    groupMenu.add(unGroupMenuItem);
     groupMenu.add(jMenu1);
     sequenceMenu.add(sequenceName);
     sequenceMenu.add(sequenceDetails);
@@ -1165,7 +1178,8 @@ public class PopupMenu extends JPopupMenu
     colourMenu.add(buriedColour);
     colourMenu.add(nucleotideMenuItem);
     if (ap.getAlignment().isNucleotide()) {
-      colourMenu.add(RNAInteractionColour);
+       // JBPNote - commented since the colourscheme isn't functional
+       //  colourMenu.add(RNAInteractionColour);
        colourMenu.add(purinePyrimidineColour);
     }
     // colourMenu.add(covariationColour);
@@ -1201,10 +1215,12 @@ 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);
-    jMenu1.add(unGroupMenuItem);
     jMenu1.add(colourMenu);
     jMenu1.add(showBoxes);
     jMenu1.add(showText);
@@ -1330,15 +1346,7 @@ public class PopupMenu extends JPopupMenu
               }
             });
     
-    RNAInteractionColour.setText("RNA Interaction type");
-    RNAInteractionColour
-            .addActionListener(new java.awt.event.ActionListener()
-            {
-              public void actionPerformed(ActionEvent e)
-              {
-                RNAInteractionColour_actionPerformed();
-              }
-            });
+   
     /*
      * covariationColour.addActionListener(new java.awt.event.ActionListener() {
      * public void actionPerformed(ActionEvent e) {
@@ -1526,11 +1534,7 @@ public class PopupMenu extends JPopupMenu
     refresh();
   }
 
-  protected void RNAInteractionColour_actionPerformed()
-  {
-    getGroup().cs = new RNAInteractionColourScheme();
-    refresh();
-  }
+
   /*
    * protected void covariationColour_actionPerformed() { getGroup().cs = new
    * CovariationColourScheme(sequence.getAnnotation()[0]); refresh(); }
@@ -1692,7 +1696,7 @@ public class PopupMenu extends JPopupMenu
             sequence.getAnnotation()[0], null,
             AnnotationColourGradient.NO_THRESHOLD);
 
-    acg.predefinedColours = true;
+    acg.setPredefinedColours(true);
     sg.cs = acg;
 
     refresh();
@@ -1792,6 +1796,11 @@ public class PopupMenu extends JPopupMenu
     ap.av.setSelectionGroup(null);
     refresh();
   }
+  void createGroupMenuItem_actionPerformed()
+  {
+    getGroup(); // implicitly creates group - note - should apply defaults / use standard alignment window logic for this
+    refresh();
+  }
 
   /**
    * DOCUMENT ME!
@@ -1984,7 +1993,7 @@ public class PopupMenu extends JPopupMenu
     oal = null;
   }
 
-  public void pdbFromFile_actionPerformed() throws IOException
+  public void pdbFromFile_actionPerformed()
   {
     jalview.io.JalviewFileChooser chooser = new jalview.io.JalviewFileChooser(
             jalview.bin.Cache.getProperty("LAST_DIRECTORY"));
@@ -2005,7 +2014,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,