X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FUrlProviderImpl.java;h=87e40c6ddf9265c7891ecbc7376fd51007b889f5;hb=4d22590f9c429fe89f4e44b2045e6741acb27fa5;hp=82eeee930bf66d7cbdbdeb9d8142d0039f01a8bf;hpb=44fc22cf950ff114ce3a5a07600e7a7eb5fd1216;p=jalview.git diff --git a/src/jalview/urls/UrlProviderImpl.java b/src/jalview/urls/UrlProviderImpl.java index 82eeee9..87e40c6 100644 --- a/src/jalview/urls/UrlProviderImpl.java +++ b/src/jalview/urls/UrlProviderImpl.java @@ -20,8 +20,13 @@ */ package jalview.urls; +import jalview.urls.api.UrlProviderI; +import jalview.util.UrlLink; + +import java.util.ArrayList; +import java.util.HashMap; import java.util.List; -import java.util.Vector; +import java.util.Map.Entry; import java.util.regex.Pattern; /** @@ -31,56 +36,47 @@ import java.util.regex.Pattern; * @version $Revision$ */ -public class UrlProviderImpl implements UrlProviderI +public abstract class UrlProviderImpl implements UrlProviderI { - private static final Pattern MIRIAM_PATTERN = Pattern - .compile("^MIR:\\d{8}$"); - // minimum length of substitution in url link string protected static final int MIN_SUBST_LENGTH = 4; - protected String defaultUrl; - - @Override - public Vector getLinksForMenu() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getDefaultUrl(String seqid) - { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getDefaultTarget(String seqid) - { - // TODO Auto-generated method stub - return null; - } - - @Override - public boolean setDefaultUrl(String id) - { - // TODO Auto-generated method stub - return false; - } + private static final Pattern MIRIAM_PATTERN = Pattern + .compile("^MIR:\\d{8}$"); - @Override - public String writeUrlsAsString() - { - // TODO Auto-generated method stub - return null; - } + protected String defaultUrl; - @Override - public String chooseDefaultUrl() + protected String getDefaultUrl(String seqid, HashMap urls) { - // TODO Auto-generated method stub - return null; + if (seqid.length() < MIN_SUBST_LENGTH) + { + return null; + } + else if (defaultUrl == null) + { + return null; + } + else if (!urls.containsKey(defaultUrl)) + { + return null; + } + else + { + String url = null; + UrlLink urlLink = urls.get(defaultUrl); + String[] defaultUrls = urlLink.makeUrls(seqid, true); + if (defaultUrls == null || defaultUrls[0] == null + || defaultUrls[0].length() < MIN_SUBST_LENGTH) + { + url = null; + } + else + { + // just take first URL made from regex + url = defaultUrls[1]; + } + return url; + } } @Override @@ -89,10 +85,28 @@ public class UrlProviderImpl implements UrlProviderI return null; } - @Override - public void setUrlData(List links) + protected ArrayList getLinksForTable( + HashMap urls, ArrayList selectedUrls, + boolean selected) { - // deliberately left empty + ArrayList displayLinks = new ArrayList(); + for (Entry entry : urls.entrySet()) + { + String key = entry.getKey(); + boolean isDefault = (key.equals(defaultUrl)); + boolean isSelected; + if (selectedUrls != null) + { + isSelected = selectedUrls.contains(key); + } + else + { + isSelected = selected; + } + displayLinks.add(new UrlLinkDisplay(key, entry.getValue(), + isSelected, isDefault)); + } + return displayLinks; } protected boolean isMiriamId(String id) @@ -105,5 +119,5 @@ public class UrlProviderImpl implements UrlProviderI { return !isMiriamId(id); } - } +