2 * Jalview - A Sequence Alignment Editor and Viewer ($$Version-Rel$$)
3 * Copyright (C) $$Year-Rel$$ The Jalview Authors
5 * This file is part of Jalview.
7 * Jalview is free software: you can redistribute it and/or
8 * modify it under the terms of the GNU General Public License
9 * as published by the Free Software Foundation, either version 3
10 * of the License, or (at your option) any later version.
12 * Jalview is distributed in the hope that it will be useful, but
13 * WITHOUT ANY WARRANTY; without even the implied warranty
14 * of MERCHANTABILITY or FITNESS FOR A PARTICULAR
15 * PURPOSE. See the GNU General Public License for more details.
17 * You should have received a copy of the GNU General Public License
18 * along with Jalview. If not, see <http://www.gnu.org/licenses/>.
19 * The Jalview Authors are detailed in the 'AUTHORS' file.
21 package jalview.urls.api;
23 import jalview.urls.UrlLinkDisplay;
25 import java.util.List;
28 * Methods for providing consistent access to up-to-date URLs
33 public interface UrlProviderI
37 * Get names and urls in the UrlProvider as strings for display
40 List<String> getLinksForMenu();
43 * Get names and urls as strings for display
46 List<UrlLinkDisplay> getLinksForTable();
49 * Set names and urls from display settings
51 void setUrlData(List<UrlLinkDisplay> links);
54 * Get the link for the primary URL
56 * @seqid sequence id for which to build link
57 * @return link for the primary URL
59 String getPrimaryUrl(String seqid);
62 * Get the primary URL id
64 * @return id for primary URL
66 String getPrimaryUrlId();
69 * Get the target of the link for the primary URL
71 * @seqid sequence id for which to build link
72 * @return target of link for the primary URL
74 String getPrimaryTarget(String seqid);
77 * Set the primary URL: if only one URL can be used, this URL is the one which
78 * should be chosen, e.g. provides the URL to be used on double-click of a
82 * the id of the URL to set as primary
83 * @return true if setting is successful
84 * @throws IllegalArgumentException
85 * if id does not exist as a url in the UrlProvider
87 boolean setPrimaryUrl(String id) throws IllegalArgumentException;
90 * Test if UrlProvider contains a url
94 * @return true of UrlProvider contains this id, false otherwise
96 boolean contains(String id);
99 * Write out all URLs as a string suitable for serialising
101 * @return string representation of available URLs
103 String writeUrlsAsString(boolean selected);
106 * Choose the primary URL in the event of the selected primary being
109 * @return id of chosen primary url
111 String choosePrimaryUrl();
114 * Determine if id is for a user-defined URL
116 boolean isUserEntry(String id);