X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FUrlProviderImpl.java;h=d2fd3597b498f082ae53bfef2a8f14e560ae75e0;hb=f8d65c3705e11a6aacb4fcaff1bf76e4932f1609;hp=4511919e6b61b842e235d62b81b6d39660f84c21;hpb=c25a5c7301fa43bec8da032f93898d6133391f8a;p=jalview.git diff --git a/src/jalview/urls/UrlProviderImpl.java b/src/jalview/urls/UrlProviderImpl.java index 4511919..d2fd359 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,65 +36,48 @@ import java.util.regex.Pattern; * @version $Revision$ */ -public class UrlProviderImpl implements UrlProviderI +public abstract class UrlProviderImpl implements UrlProviderI { + // minimum length of substitution in url link string + protected static final int MIN_SUBST_LENGTH = 4; + private static final Pattern MIRIAM_PATTERN = Pattern .compile("^MIR:\\d{8}$"); - protected String defaultUrl; - - @Override - public Vector getLinksForDisplay() - { - // TODO Auto-generated method stub - return null; - } - - @Override - public String getDefaultUrl() - { - return defaultUrl; - } - - @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; - } + protected String primaryUrl; - @Override - public String writeUrlsAsString() + protected String getPrimaryUrl(String seqid, + HashMap urls) { - // TODO Auto-generated method stub - return null; - } - - @Override - public void setUrlLinks(Vector names, Vector urls) - { - // TODO Auto-generated method stub - - } - - @Override - public String chooseDefaultUrl() - { - // TODO Auto-generated method stub - return null; + if (seqid.length() < MIN_SUBST_LENGTH) + { + return null; + } + else if (primaryUrl == null) + { + return null; + } + else if (!urls.containsKey(primaryUrl)) + { + return null; + } + else + { + String url = null; + UrlLink urlLink = urls.get(primaryUrl); + String[] primaryUrls = urlLink.makeUrls(seqid, true); + if (primaryUrls == null || primaryUrls[0] == null + || primaryUrls[0].length() < MIN_SUBST_LENGTH) + { + url = null; + } + else + { + // just take first URL made from regex + url = primaryUrls[1]; + } + return url; + } } @Override @@ -98,10 +86,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 isPrimary = (key.equals(primaryUrl)); + boolean isSelected; + if (selectedUrls != null) + { + isSelected = selectedUrls.contains(key); + } + else + { + isSelected = selected; + } + displayLinks.add(new UrlLinkDisplay(key, entry.getValue(), isSelected, + isPrimary)); + } + return displayLinks; } protected boolean isMiriamId(String id) @@ -114,5 +120,4 @@ public class UrlProviderImpl implements UrlProviderI { return !isMiriamId(id); } - }