JAL-2388 Renamed viewport position props to viewport ranges
[jalview.git] / src / jalview / appletgui / IdPanel.java
index feca846..b03a638 100755 (executable)
@@ -24,8 +24,9 @@ import jalview.datamodel.Sequence;
 import jalview.datamodel.SequenceFeature;
 import jalview.datamodel.SequenceGroup;
 import jalview.datamodel.SequenceI;
-import jalview.urls.UrlProvider;
-import jalview.urls.UrlProviderI;
+import jalview.urls.api.UrlProviderFactoryI;
+import jalview.urls.api.UrlProviderI;
+import jalview.urls.applet.AppletUrlProviderFactory;
 import jalview.viewmodel.AlignmentViewport;
 
 import java.awt.BorderLayout;
@@ -36,7 +37,6 @@ import java.awt.event.MouseListener;
 import java.awt.event.MouseMotionListener;
 import java.util.HashMap;
 import java.util.List;
-import java.util.Vector;
 
 public class IdPanel extends Panel implements MouseListener,
         MouseMotionListener
@@ -78,14 +78,20 @@ public class IdPanel extends Panel implements MouseListener,
         label = av.applet.getParameter("linkLabel_" + i);
         url = av.applet.getParameter("linkURL_" + i);
 
-        urlList.put(label, url);
+        // only add non-null parameters
+        if (label != null)
+        {
+          urlList.put(label, url);
+        }
       }
 
       if (!urlList.isEmpty())
       {
         // set default as first entry in list
         String defaultUrl = av.applet.getParameter("linkLabel_1");
-        urlProvider = new UrlProvider(defaultUrl, urlList);
+        UrlProviderFactoryI factory = new AppletUrlProviderFactory(
+                defaultUrl, urlList);
+        urlProvider = factory.createUrlProvider();
       }
     }
   }
@@ -219,8 +225,8 @@ public class IdPanel extends Panel implements MouseListener,
     String id = sq.getName();
 
     // get the default url with the sequence details filled in
-    String url = urlProvider.getDefaultUrl(id);
-    String target = urlProvider.getDefaultTarget(id);
+    String url = urlProvider.getPrimaryUrl(id);
+    String target = urlProvider.getPrimaryTarget(id);
     try
     {
       alignPanel.alignFrame.showURL(url, target);
@@ -281,7 +287,7 @@ public class IdPanel extends Panel implements MouseListener,
 
       // build a new links menu based on the current links + any non-positional
       // features
-      Vector<String> nlinks = urlProvider.getLinksForMenu();
+      List<String> nlinks = urlProvider.getLinksForMenu();
 
       SequenceFeature sf[] = sq == null ? null : sq.getSequenceFeatures();
       for (int sl = 0; sf != null && sl < sf.length; sl++)
@@ -292,7 +298,7 @@ public class IdPanel extends Panel implements MouseListener,
           {
             for (int l = 0, lSize = sf[sl].links.size(); l < lSize; l++)
             {
-              nlinks.addElement(sf[sl].links.elementAt(l));
+              nlinks.add(sf[sl].links.elementAt(l));
             }
           }
         }