/* * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$) * Copyright (C) $$Year-Rel$$ The Jalview Authors * * This file is part of Jalview. * * Jalview is free software: you can redistribute it and/or * modify it under the terms of the GNU General Public License * as published by the Free Software Foundation, either version 3 * of the License, or (at your option) any later version. * * Jalview is distributed in the hope that it will be useful, but * WITHOUT ANY WARRANTY; without even the implied warranty * of MERCHANTABILITY or FITNESS FOR A PARTICULAR * PURPOSE. See the GNU General Public License for more details. * * You should have received a copy of the GNU General Public License * along with Jalview. If not, see . * The Jalview Authors are detailed in the 'AUTHORS' file. */ package jalview.urls; import static jalview.util.UrlConstants.DB_ACCESSION; import static jalview.util.UrlConstants.DELIM; 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; /** * * Implements the UrlProviderI interface for a UrlProvider object which serves * custom URLs defined by the user * * @author $author$ * @version $Revision$ */ public class CustomUrlProvider extends UrlProviderImpl { // Default sequence URL link label for SRS private static final String SRS_LABEL = "SRS"; // 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 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(Map inMenuUrlList, Map storedUrlList) { try { 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