JAL-2316 Restructure identifiers.org download
[jalview.git] / src / jalview / urls / UrlProviderImpl.java
index 82eeee9..b846976 100644 (file)
  */
 package jalview.urls;
 
+import jalview.util.UrlLink;
+
+import java.util.ArrayList;
+import java.util.HashMap;
 import java.util.List;
+import java.util.Map.Entry;
 import java.util.Vector;
 import java.util.regex.Pattern;
 
@@ -62,6 +67,35 @@ public class UrlProviderImpl implements UrlProviderI
     return null;
   }
 
+  protected String getDefaultUrl(String seqid, HashMap<String, UrlLink> urls)
+  {
+    if (seqid.length() < MIN_SUBST_LENGTH)
+    {
+      return null;
+    }
+    else if (defaultUrl == null)
+    {
+      return null;
+    }
+    else
+    {
+      String url = null;
+      UrlLink urlLink = urls.get(defaultUrl);
+      String[] defaultUrls = urlLink.makeUrls(seqid, true);
+      if (defaultUrls == null || defaultUrls[0] == null
+              || defaultUrls[0].length() < MIN_SUBST_LENGTH)
+      {
+        url = null;
+      }
+      else
+      {
+        // just take first URL made from regex
+        url = defaultUrls[1];
+      }
+      return url;
+    }
+  }
+
   @Override
   public boolean setDefaultUrl(String id)
   {
@@ -70,7 +104,7 @@ public class UrlProviderImpl implements UrlProviderI
   }
 
   @Override
-  public String writeUrlsAsString()
+  public String writeUrlsAsString(boolean selected)
   {
     // TODO Auto-generated method stub
     return null;
@@ -89,6 +123,31 @@ public class UrlProviderImpl implements UrlProviderI
     return null;
   }
 
+  protected ArrayList<UrlLinkDisplay> getLinksForTable(
+          HashMap<String, UrlLink> urls, ArrayList<String> selectedUrls,
+          boolean selected)
+  {
+    ArrayList<UrlLinkDisplay> displayLinks = new ArrayList<UrlLinkDisplay>();
+    for (Entry<String, UrlLink> entry : urls.entrySet())
+    {
+      String key = entry.getKey();
+      boolean isDefault = (key.equals(defaultUrl));
+      boolean isSelected;
+      if (selectedUrls != null)
+      {
+        isSelected = selectedUrls.contains(key);
+      }
+      else
+      {
+        isSelected = selected;
+      }
+      String displayLink = entry.getValue().getUrlWithToken();
+      displayLinks.add(new UrlLinkDisplay(key, entry.getValue().getLabel(),
+              displayLink, isSelected, isDefault));
+    }
+    return displayLinks;
+  }
+
   @Override
   public void setUrlData(List<UrlLinkDisplay> links)
   {
@@ -106,4 +165,11 @@ public class UrlProviderImpl implements UrlProviderI
     return !isMiriamId(id);
   }
 
+  @Override
+  public String getDefaultUrlId()
+  {
+    // TODO Auto-generated method stub
+    return null;
+  }
+
 }