*/
package jalview.urls;
+import static jalview.util.UrlConstants.SEP;
+
import java.util.ArrayList;
import java.util.List;
import java.util.Map;
// Specific reference to custom URL link provider
private UrlProviderI customProvider;
+ // List of columns which this provider will supply
+ private List<String> colNames = new ArrayList<String>();
+
/**
* Construct URL provider from string of cached URLs, and set default URL
*
providers = new ArrayList<UrlProviderI>();
UrlProviderI idProvider = new IdentifiersUrlProvider(cachedUrlList,
- ID_ORG_FILE);
+ IdentifiersUrlProvider.ID_ORG_FILE);
customProvider = new CustomUrlProvider(cachedUrlList);
- // providers.add(idProvider);
+ providers.add(idProvider);
providers.add(customProvider);
+ setUpColumns();
+
// check that the defaultUrl still exists
if (!setDefaultUrl(defaultUrlString))
{
providers = new ArrayList<UrlProviderI>();
UrlProviderI idProvider = new IdentifiersUrlProvider(null,
- ID_ORG_FILE);
+ IdentifiersUrlProvider.ID_ORG_FILE);
customProvider = new CustomUrlProvider(urlList);
providers.add(idProvider);
providers.add(customProvider);
+ setUpColumns();
+
// check that the defaultUrl still exists
if (!setDefaultUrl(defaultUrlString))
{
}
}
- @Override
- public String getDefaultUrl()
+ private void setUpColumns()
{
- String defaultUrl = null;
- for (UrlProviderI p : providers)
- {
- defaultUrl = p.getDefaultUrl();
- if (defaultUrl != null)
- {
- return defaultUrl;
- }
- }
-
- // no provider has a default set, just choose one
- if (defaultUrl == null)
- {
- defaultUrl = chooseDefaultUrl();
- }
- return defaultUrl;
+ colNames.add("Name");
+ colNames.add("URL");
+ colNames.add("In Menu");
+ colNames.add("Default");
+ colNames.add("ID");
}
@Override
for (UrlProviderI p : providers)
{
result += p.writeUrlsAsString();
+ result += SEP;
}
+ // remove last sep
+ result = result.substring(0, result.length() - 1);
return result;
}
@Override
- public Vector<String> getLinksForDisplay()
+ public Vector<String> getLinksForMenu()
{
Vector<String> fullLinks = new Vector<String>();
for (UrlProviderI p : providers)
{
- List<String> links = p.getLinksForDisplay();
+ List<String> links = p.getLinksForMenu();
if (links != null)
{
// will obliterate links with same keys from different providers
}
@Override
+ public List<UrlLinkDisplay> getLinksForTable()
+ {
+ ArrayList<UrlLinkDisplay> displayLinks = new ArrayList<UrlLinkDisplay>();
+ for (UrlProviderI p : providers)
+ {
+ displayLinks.addAll(p.getLinksForTable());
+ }
+ return displayLinks;
+ }
+
+ @Override
+ public void setUrlData(List<UrlLinkDisplay> links)
+ {
+ for (UrlProviderI p : providers)
+ {
+ p.setUrlData(links);
+ }
+ }
+
+ @Override
public String getDefaultUrl(String seqid)
{
String link = null;
}
return target;
}
-
- @Override
- public void setUrlLinks(Vector<String> names, Vector<String> urls)
- {
- // only allow custom urls to be updated by user
- customProvider.setUrlLinks(names, urls);
- }
@Override
public String chooseDefaultUrl()
return customProvider.chooseDefaultUrl();
}
+ @Override
+ public boolean isUserEntry(String id)
+ {
+ return customProvider.isUserEntry(id);
+ }
+
+ @Override
+ public List<String> getDisplayColumnNames()
+ {
+ return colNames.subList(0, 4);
+ }
}