Handle multiple url links
authoramwaterhouse <Andrew Waterhouse>
Tue, 9 Aug 2005 16:51:02 +0000 (16:51 +0000)
committeramwaterhouse <Andrew Waterhouse>
Tue, 9 Aug 2005 16:51:02 +0000 (16:51 +0000)
src/jalview/gui/IdPanel.java
src/jalview/gui/PopupMenu.java

index 310276c..201516f 100755 (executable)
@@ -106,6 +106,7 @@ public class IdPanel extends JPanel implements MouseListener,
         alignPanel.repaint();\r
     }\r
 \r
+\r
     /**\r
      * DOCUMENT ME!\r
      *\r
@@ -113,35 +114,42 @@ public class IdPanel extends JPanel implements MouseListener,
      */\r
     public void mouseClicked(MouseEvent e)\r
     {\r
-        if (e.getClickCount() == 2)\r
-        {\r
-            int y = e.getY();\r
-\r
-            if (av.getWrapAlignment())\r
-            {\r
-                y -= (2 * av.charHeight);\r
-            }\r
-\r
-            int seq = av.getIndex(y);\r
-            String id = av.getAlignment().getSequenceAt(seq).getName();\r
-\r
-            try\r
-            {\r
-                jalview.util.BrowserLauncher.openURL(\r
-                    "http://srs.ebi.ac.uk/srs7bin/cgi-bin/wgetz?-e+[uniprot-all:" +\r
-                    id + "]+-vn+2");\r
-            }\r
-            catch (Exception ex)\r
-            {\r
-                // TODO: JBPNote : state dependent error message for real browserLaunch problems rather than unix misconfiguration.\r
-                System.err.println(ex.getMessage() +\r
-                    "\nUnixers: Try adding this jalview.browser property line \n" +\r
-                    "in your jalview.properties file (/usr/local/bin/firefox is an exanmple browser path):\n" +\r
-                    "jalview.browser=/usr/local/bin/firefox\n");\r
-\r
-                //ex.printStackTrace();\r
-            }\r
-        }\r
+        if (e.getClickCount() < 2)\r
+        return;\r
+\r
+      java.util.Vector links = Preferences.sequenceURLLinks;\r
+      if (links == null || links.size() < 1)\r
+        return;\r
+\r
+      int y = e.getY();\r
+\r
+      if (av.getWrapAlignment())\r
+      {\r
+        y -= (2 * av.charHeight);\r
+      }\r
+\r
+      //DEFAULT LINK IS FIRST IN THE LINK LIST\r
+      int seq = av.getIndex(y);\r
+      String id = av.getAlignment().getSequenceAt(seq).getName();\r
+\r
+      String url = links.elementAt(0).toString();\r
+      url = url.substring(url.indexOf("|")+1);\r
+\r
+      int index = url.indexOf("$SEQUENCE_ID$");\r
+      url = url.substring(0, index)+ id + url.substring(index+13);\r
+\r
+      try\r
+      {\r
+        jalview.util.BrowserLauncher.openURL(url);\r
+      }\r
+      catch (Exception ex)\r
+      {\r
+       JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+           "Unixers: Couldn't find default web browser."\r
+          +"\nAdd the full path to your browser in Preferences.",\r
+          "Web browser not found", JOptionPane.WARNING_MESSAGE );\r
+        ex.printStackTrace();\r
+      }\r
     }\r
 \r
     /**\r
index 705d407..0b53111 100755 (executable)
@@ -195,6 +195,35 @@ public class PopupMenu extends JPopupMenu
         {\r
             sequenceMenu.setVisible(false);\r
         }\r
+        else\r
+        {\r
+          java.util.Vector links = Preferences.sequenceURLLinks;\r
+\r
+          JMenu linkMenu = new JMenu("Link");\r
+          JMenuItem item;\r
+          for(int i=0; i<links.size(); i++)\r
+          {\r
+            String link = links.elementAt(i).toString();\r
+\r
+            item = new JMenuItem(link.substring(0, link.indexOf("|")));\r
+\r
+            final String url = link.substring(link.indexOf("|")+1, link.indexOf("$SEQUENCE_ID$"))\r
+                + sequence.getName() +\r
+                link.substring(link.indexOf("$SEQUENCE_ID$") + 13);\r
+\r
+\r
+            item.addActionListener(new java.awt.event.ActionListener()\r
+            {\r
+                public void actionPerformed(ActionEvent e)\r
+                {\r
+                    showLink(url);\r
+                }\r
+            });\r
+\r
+            linkMenu.add(item);\r
+          }\r
+          add(linkMenu);\r
+        }\r
     }\r
 \r
     /**\r
@@ -858,4 +887,22 @@ public class PopupMenu extends JPopupMenu
         getGroup().setColourText(showColourText.isSelected());\r
         refresh();\r
     }\r
+\r
+    public void showLink(String url)\r
+    {\r
+      try\r
+      {\r
+        jalview.util.BrowserLauncher.openURL(url);\r
+      }\r
+      catch (Exception ex)\r
+      {\r
+        JOptionPane.showInternalMessageDialog(Desktop.desktop,\r
+            "Unixers: Couldn't find default web browser."\r
+           +"\nAdd the full path to your browser in Preferences.",\r
+           "Web browser not found", JOptionPane.WARNING_MESSAGE );\r
+\r
+\r
+        ex.printStackTrace();\r
+      }\r
+    }\r
 }\r