X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FUrlProviderImpl.java;h=c1a57ca4223ec52cf0bb8dbcdb77b5d474aa2d74;hb=refs%2Fheads%2Fbug%2FJAL-2034contextchange;hp=0fae392bfa06fb21852bf0c753848a6b49fa7a11;hpb=a889a61789f15e79ecde7043cddfdea18ad00166;p=jalview.git diff --git a/src/jalview/urls/UrlProviderImpl.java b/src/jalview/urls/UrlProviderImpl.java index 0fae392..c1a57ca 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 primaryUrl; - @Override - public String chooseDefaultUrl() + protected String getPrimaryUrl(String seqid, HashMap urls) { - // 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 @@ -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 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) @@ -105,11 +119,5 @@ public class UrlProviderImpl implements UrlProviderI { return !isMiriamId(id); } - - @Override - public List getDisplayColumnNames() - { - return null; - } - } +