JAL-2069 update spike branch with latest
[jalview.git] / src / jalview / urls / CustomUrlProvider.java
index 0471e4b..86d5660 100644 (file)
@@ -37,7 +37,6 @@ import java.util.List;
 import java.util.Map;
 import java.util.Map.Entry;
 import java.util.StringTokenizer;
-import java.util.Vector;
 
 /**
  * 
@@ -130,7 +129,7 @@ public class CustomUrlProvider extends UrlProviderImpl
         {
           url = url + SEP + st.nextToken();
         }
-        urls.put(name, new UrlLink(name + SEP + url));
+        urls.put(name, new UrlLink(name, url, name));
       }
     }
     upgradeOldLinks(urls);
@@ -150,7 +149,7 @@ public class CustomUrlProvider extends UrlProviderImpl
     {
       Map.Entry<String, String> pair = it.next();
       urls.put(pair.getKey(),
-              new UrlLink(pair.getKey() + SEP + pair.getValue()));
+              new UrlLink(pair.getKey(), pair.getValue(), pair.getKey()));
     }
     upgradeOldLinks(urls);
     return urls;
@@ -161,18 +160,34 @@ public class CustomUrlProvider extends UrlProviderImpl
    */
   private void upgradeOldLinks(HashMap<String, UrlLink> urls)
   {
+    boolean upgrade = false;
     // upgrade old SRS link
     if (urls.containsKey(SRS_LABEL))
     {
       urls.remove(SRS_LABEL);
-      urls.put(UrlConstants.DEFAULT_LABEL, new UrlLink(UrlConstants.DEFAULT_STRING));
+      upgrade = true;
+    }
+    // upgrade old EBI link - easier just to remove and re-add than faffing
+    // around checking exact url
+    if (urls.containsKey(UrlConstants.DEFAULT_LABEL))
+    {
+      // note because this is called separately for selected and nonselected
+      // urls, the default url will not always be present
+      urls.remove(UrlConstants.DEFAULT_LABEL);
+      upgrade = true;
+    }
+    if (upgrade)
+    {
+      UrlLink link = new UrlLink(UrlConstants.DEFAULT_STRING);
+      link.setLabel(UrlConstants.DEFAULT_LABEL);
+      urls.put(UrlConstants.DEFAULT_LABEL, link);
     }
   }
 
   @Override
-  public Vector<String> getLinksForMenu()
+  public List<String> getLinksForMenu()
   {
-    Vector<String> links = new Vector<String>();
+    List<String> links = new ArrayList<String>();
     Iterator<Map.Entry<String, UrlLink>> it = selectedUrls.entrySet()
             .iterator();
     while (it.hasNext())
@@ -294,13 +309,13 @@ public class CustomUrlProvider extends UrlProviderImpl
         }
         if (link.getIsSelected())
         {
-          selurls.put(link.getId(),
-                  new UrlLink(link.getName() + SEP + link.getUrl()));
+          selurls.put(link.getId(), new UrlLink(link.getDescription(),
+                  link.getUrl(), link.getDescription()));
         }
         else
         {
-          unselurls.put(link.getId(), new UrlLink(link.getName() + SEP
-                  + link.getUrl()));
+          unselurls.put(link.getId(), new UrlLink(link.getDescription(),
+                  link.getUrl(), link.getDescription()));
         }
         // sort out primary and selected ids
         if (link.getIsPrimary())
@@ -321,8 +336,9 @@ public class CustomUrlProvider extends UrlProviderImpl
     if ((!nonselectedUrls.containsKey(UrlConstants.DEFAULT_LABEL))
             && (!selectedUrls.containsKey(UrlConstants.DEFAULT_LABEL)))
     {
-      selectedUrls.put(UrlConstants.DEFAULT_LABEL, new UrlLink(
-              UrlConstants.DEFAULT_STRING));
+      UrlLink link = new UrlLink(UrlConstants.DEFAULT_STRING);
+      link.setLabel(UrlConstants.DEFAULT_LABEL);
+      selectedUrls.put(UrlConstants.DEFAULT_LABEL, link);
     }
     primaryUrl = UrlConstants.DEFAULT_LABEL;
     return UrlConstants.DEFAULT_LABEL;
@@ -331,7 +347,8 @@ public class CustomUrlProvider extends UrlProviderImpl
   @Override
   public boolean contains(String id)
   {
-    return (selectedUrls.containsKey(id) || nonselectedUrls.containsKey(id));
+    return (selectedUrls.containsKey(id)
+            || nonselectedUrls.containsKey(id));
   }
 
 }