After merge
[jalview.git] / src / jalview / gui / PopupMenu.java
index 153e9fb..f9e0d19 100755 (executable)
@@ -24,7 +24,6 @@ import jalview.analysis.*;
 \r
 import jalview.datamodel.*;\r
 \r
-import jalview.io.*;\r
 \r
 import jalview.schemes.*;\r
 \r
@@ -63,7 +62,6 @@ public class PopupMenu extends JPopupMenu
     JMenuItem sequenceName = new JMenuItem();\r
     Sequence sequence;\r
     JMenuItem unGroupMenuItem = new JMenuItem();\r
-    JMenuItem pdbMenuItem = new JMenuItem();\r
     JMenuItem outline = new JMenuItem();\r
     JRadioButtonMenuItem nucleotideMenuItem = new JRadioButtonMenuItem();\r
     JMenu colourMenu = new JMenu();\r
@@ -77,7 +75,7 @@ public class PopupMenu extends JPopupMenu
      * @param ap DOCUMENT ME!\r
      * @param seq DOCUMENT ME!\r
      */\r
-    public PopupMenu(AlignmentPanel ap, Sequence seq)\r
+    public PopupMenu(final AlignmentPanel ap, Sequence seq)\r
     {\r
         ///////////////////////////////////////////////////////////\r
         // If this is activated from the sequence panel, the user may want to\r
@@ -112,9 +110,27 @@ public class PopupMenu extends JPopupMenu
             e.printStackTrace();\r
         }\r
 \r
-        if ((seq == null) || (seq.getPDBId() == null))\r
+\r
+        if ((seq != null)\r
+            && seq.getDatasetSequence().getPDBId() != null)\r
         {\r
-            pdbMenuItem.setVisible(false);\r
+          java.util.Enumeration e = seq.getDatasetSequence().getPDBId().elements();\r
+          while(e.hasMoreElements())\r
+          {\r
+            final PDBEntry pdb = (PDBEntry)e.nextElement();\r
+\r
+            JMenuItem pdbMenuItem = new JMenuItem();\r
+            pdbMenuItem.setText("View PDB entry: "+pdb.getId());\r
+            pdbMenuItem.addActionListener(new java.awt.event.ActionListener()\r
+            {\r
+                public void actionPerformed(ActionEvent e)\r
+                {\r
+                  new PDBViewer(pdb, sequence, ap.seqPanel.seqCanvas);\r
+                }\r
+            });\r
+            sequenceMenu.add(pdbMenuItem);\r
+          }\r
+\r
         }\r
 \r
         SequenceGroup sg = ap.av.getSelectionGroup();\r
@@ -206,9 +222,12 @@ public class PopupMenu extends JPopupMenu
             String link = links.elementAt(i).toString();\r
 \r
             item = new JMenuItem(link.substring(0, link.indexOf("|")));\r
+            String id = sequence.getName();\r
+            if(id.indexOf("|")>-1)\r
+              id = id.substring(id.lastIndexOf("|")+1);\r
 \r
             final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$"))\r
-                + sequence.getName() +\r
+                + id +\r
                 link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\r
 \r
 \r
@@ -261,14 +280,7 @@ public class PopupMenu extends JPopupMenu
                     unGroupMenuItem_actionPerformed(e);\r
                 }\r
             });\r
-        pdbMenuItem.setText("View PDB structure");\r
-        pdbMenuItem.addActionListener(new java.awt.event.ActionListener()\r
-            {\r
-                public void actionPerformed(ActionEvent e)\r
-                {\r
-                    pdbMenuItem_actionPerformed(e);\r
-                }\r
-            });\r
+\r
         outline.setText("Border colour");\r
         outline.addActionListener(new java.awt.event.ActionListener()\r
             {\r
@@ -325,7 +337,6 @@ public class PopupMenu extends JPopupMenu
         groupMenu.addSeparator();\r
         groupMenu.add(outline);\r
         sequenceMenu.add(sequenceName);\r
-        sequenceMenu.add(pdbMenuItem);\r
         colourMenu.add(noColourmenuItem);\r
         colourMenu.add(clustalColour);\r
         colourMenu.add(BLOSUM62Colour);\r
@@ -494,6 +505,9 @@ public class PopupMenu extends JPopupMenu
             superG.setSuperGroupProperties(sg);\r
           }\r
         }\r
+        if (ap.overviewPanel != null)\r
+          ap.overviewPanel.updateOverviewImage();\r
+\r
         ap.seqPanel.repaint();\r
     }\r
 \r
@@ -827,37 +841,6 @@ public class PopupMenu extends JPopupMenu
         refresh();\r
     }\r
 \r
-    /**\r
-     * DOCUMENT ME!\r
-     *\r
-     * @param e DOCUMENT ME!\r
-     */\r
-    void pdbMenuItem_actionPerformed(ActionEvent e)\r
-    {\r
-        if (sequence.getPDBId() == null)\r
-        {\r
-            return;\r
-        }\r
-\r
-        try\r
-        {\r
-            EBIFetchClient ebi = new EBIFetchClient();\r
-            String[] result = ebi.fetchData("pdb:" + sequence.getPDBId(), null,\r
-                    null);\r
-\r
-            PDBfile pdb = new PDBfile(result);\r
-\r
-            rotCanvas rc = new rotCanvas(pdb, sequence, ap.av);\r
-            JInternalFrame frame = new JInternalFrame();\r
-            frame.setContentPane(rc);\r
-            Desktop.addInternalFrame(frame,\r
-                sequence.getName() + " " + sequence.getPDBId(), 400, 400);\r
-        }\r
-        catch (Exception ex)\r
-        {\r
-            ex.printStackTrace();\r
-        }\r
-    }\r
 \r
     /**\r
      * DOCUMENT ME!\r