add(idCanvas, BorderLayout.CENTER);\r
addMouseListener(this);\r
addMouseMotionListener(this);\r
+ ToolTipManager.sharedInstance().registerComponent(this);\r
}\r
\r
/**\r
*/\r
public void mouseMoved(MouseEvent e)\r
{\r
+ int y = e.getY();\r
+\r
+ if (av.getWrapAlignment())\r
+ {\r
+ y = getWrappedY(y);\r
+ }\r
+\r
+ int seq = av.getIndex(y);\r
+ if(seq!=-1)\r
+ {\r
+ StringBuffer tip = new StringBuffer("<html>");\r
+ tip.append(av.alignment.getSequenceAt(seq).getDisplayId(true));\r
+ if (av.alignment.getSequenceAt(seq).getDescription() != null)\r
+ {\r
+ tip.append("<table width=250 border=0><tr><td><i>");\r
+ tip.append(av.alignment.getSequenceAt(seq).getDescription());\r
+ tip.append("</i></td></tr></table>");\r
+ }\r
+ tip.append("</html>");\r
+ setToolTipText(tip.toString());\r
+ }\r
+\r
+ }\r
+\r
+ int getWrappedY(int y)\r
+ {\r
+ int hgap = av.charHeight;\r
+ if (av.scaleAboveWrapped)\r
+ hgap += av.charHeight;\r
+\r
+ return y - hgap;\r
}\r
\r
+\r
/**\r
* DOCUMENT ME!\r
*\r
\r
if (av.getWrapAlignment())\r
{\r
- y -= (2 * av.charHeight);\r
+ y = getWrappedY(y);\r
}\r
\r
int seq = av.getIndex(y);\r
alignPanel.repaint();\r
}\r
\r
+\r
/**\r
* DOCUMENT ME!\r
*\r
*/\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 = getWrappedY(y);\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
\r
if (av.getWrapAlignment())\r
{\r
- y -= (2 * av.charHeight);\r
+ y = getWrappedY(y);\r
}\r
\r
int seq = av.getIndex(y);\r
*/\r
void selectSeqs(int start, int end)\r
{\r
+ if(av.getSelectionGroup()==null)\r
+ return;\r
+\r
lastid = start;\r
\r
if (end < start)\r
\r
for (int i = start; i <= end; i++)\r
{\r
- av.getSelectionGroup().addSequence(av.getAlignment().getSequenceAt(i),\r
+ av.getSelectionGroup().addSequence(av.getAlignment().getSequenceAt(i),\r
true);\r
}\r
}\r