X-Git-Url: http://source.jalview.org/gitweb/?a=blobdiff_plain;f=src%2Fjalview%2Furls%2FCustomUrlProvider.java;h=86d5660b3e1df0b749a1c62f9ef46d8133faa78a;hb=14307f5cfcbc90c419c892434613a500ca550ecc;hp=d88c57166eebead3c601d38e7c1c0f73310fddb8;hpb=7b733c615ca6ef20fd2e330c89aa566de0d4836f;p=jalview.git diff --git a/src/jalview/urls/CustomUrlProvider.java b/src/jalview/urls/CustomUrlProvider.java index d88c571..86d5660 100644 --- a/src/jalview/urls/CustomUrlProvider.java +++ b/src/jalview/urls/CustomUrlProvider.java @@ -27,13 +27,16 @@ import static jalview.util.UrlConstants.SEP; import static jalview.util.UrlConstants.SEQUENCE_ID; import jalview.util.MessageManager; +import jalview.util.UrlConstants; import jalview.util.UrlLink; +import java.util.ArrayList; import java.util.HashMap; import java.util.Iterator; +import java.util.List; import java.util.Map; +import java.util.Map.Entry; import java.util.StringTokenizer; -import java.util.Vector; /** * @@ -45,34 +48,75 @@ import java.util.Vector; */ public class CustomUrlProvider extends UrlProviderImpl { - - // minimum length of substitution in url link string - private static final int MIN_SUBST_LENGTH = 4; - // Default sequence URL link label for SRS private static final String SRS_LABEL = "SRS"; - // map of string ids to urlLinks - private HashMap urls; + // map of string ids to urlLinks (selected) + private HashMap selectedUrls; + + // map of string ids to urlLinks (not selected) + private HashMap nonselectedUrls; + + /** + * Construct UrlProvider for custom (user-entered) URLs + * + * @param inMenuUrlList + * list of URLs set to be displayed in menu, in form stored in Cache. + * i.e. SEP delimited string + * @param storedUrlList + * list of custom URLs entered by user but not currently displayed in + * menu, in form stored in Cache + */ + public CustomUrlProvider(String inMenuUrlList, String storedUrlList) + { + try + { + selectedUrls = parseUrlStrings(inMenuUrlList); + nonselectedUrls = parseUrlStrings(storedUrlList); + } catch (Exception ex) + { + System.out + .println(ex.getMessage() + "\nError parsing sequence links"); + } + } /** * Construct UrlProvider for custom (user-entered) URLs * - * @param cachedUrlList - * list of URLs in form stored in Cache. i.e. SEP delimited string + * @param urlList + * list of URLs to be displayed in menu, as (label,url) pairs + * @param storedUrlList + * list of custom URLs entered by user but not currently displayed in + * menu, as (label,url) pairs */ - public CustomUrlProvider(String cachedUrlList) + public CustomUrlProvider(Map inMenuUrlList, + Map storedUrlList) { try { - urls = new HashMap(); + selectedUrls = parseUrlList(inMenuUrlList); + nonselectedUrls = parseUrlList(storedUrlList); + } catch (Exception ex) + { + System.out + .println(ex.getMessage() + "\nError parsing sequence links"); + } + } + + private HashMap parseUrlStrings(String urlStrings) + { + // cachedUrlList is in form