import javax.swing.*;
import jalview.datamodel.*;
+import jalview.util.UrlLink;
/**
* DOCUMENT ME!
}
int seq = alignPanel.seqPanel.findSeq(e);
-
- //DEFAULT LINK IS FIRST IN THE LINK LIST
-
+ String url = null;
+ int i = 0;
String id = av.getAlignment().getSequenceAt(seq).getName();
- if (id.indexOf("|") > -1)
+ while (url == null && i < links.size())
{
- id = id.substring(id.lastIndexOf("|") + 1);
- }
-
- String url = links.elementAt(0).toString();
- url = url.substring(url.indexOf("|") + 1);
-
- int index = url.indexOf("$SEQUENCE_ID$");
- url = url.substring(0, index) + id + url.substring(index + 13);
+ // DEFAULT LINK IS FIRST IN THE LINK LIST
+ // BUT IF ITS A REGEX AND DOES NOT MATCH THE NEXT ONE WILL BE TRIED
+ url = links.elementAt(i++).toString();
+ jalview.util.UrlLink urlLink = null;
+ try
+ {
+ urlLink = new UrlLink(url);
+ } catch (Exception foo)
+ {
+ jalview.bin.Cache.log.error("Exception for URLLink '" + url + "'",
+ foo);
+ url = null;
+ continue;
+ }
+ ;
+ if (!urlLink.isValid())
+ {
+ jalview.bin.Cache.log.error(urlLink.getInvalidMessage());
+ url = null;
+ continue;
+ }
+ String urls[] = urlLink.makeUrls(id, true);
+ if (urls == null || urls[0]==null || urls[0].length()<4)
+ {
+ url = null;
+ continue;
+ }
+ // just take first URL made from regex
+ url = urls[1];
+ }
try
{
jalview.util.BrowserLauncher.openURL(url);
JOptionPane.WARNING_MESSAGE);
ex.printStackTrace();
}
+
}
/**