Merge branch 'feature/JAL-3686_slivka_client_js_update' into alpha/merge_212_JalviewJ...
[jalview.git] / src / jalview / gui / Desktop.java
index 82d38e3..a99bab9 100644 (file)
@@ -120,6 +120,7 @@ import jalview.util.Platform;
 import jalview.util.ShortcutKeyMaskExWrapper;
 import jalview.util.UrlConstants;
 import jalview.viewmodel.AlignmentViewport;
+import jalview.ws.WSDiscovererI;
 import jalview.ws.params.ParamManager;
 import jalview.ws.utils.UrlDownloadClient;
 
@@ -155,7 +156,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   protected static final String CONFIRM_KEYBOARD_QUIT = "CONFIRM_KEYBOARD_QUIT";
 
-  public static HashMap<String, FileWriter> savingFiles = new HashMap<>();
+  public static HashMap<String, FileWriter> savingFiles = new HashMap<String, FileWriter>();
 
   private JalviewChangeSupport changeSupport = new JalviewChangeSupport();
 
@@ -1547,7 +1548,8 @@ public class Desktop extends jalview.jbgui.GDesktop
       return;
     }
 
-    AlignmentViewport source = null, target = null;
+    AlignViewportI source = null;
+    AlignViewportI target = null;
     if (frames[0] instanceof AlignFrame)
     {
       source = ((AlignFrame) frames[0]).getCurrentView();
@@ -1767,7 +1769,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           {
                try 
             {
-              new Jalview2XML().loadJalviewAlign(choice);
+              new Jalview2XML().loadJalviewAlign(selectedFile);
             } catch (OutOfMemoryError oom)
                {
                  new OOMWarning("Whilst loading project from " + choice, oom);
@@ -2489,7 +2491,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   @Override
   public void setProgressBar(String message, long id)
   {
-           Platform.timeCheck("Desktop " + message, Platform.TIME_MARK);     
+    // Platform.timeCheck("Desktop " + message, Platform.TIME_MARK);
 
     if (progressBars == null)
     {
@@ -2630,7 +2632,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   public void startServiceDiscovery(boolean blocking)
   {
     boolean alive = true;
-    Thread t0 = null, t1 = null, t2 = null;
+    Thread t0 = null, t1 = null, t2 = null, t3 = null;
     // JAL-940 - JALVIEW 1 services are now being EOLed as of JABA 2.1 release
     if (true)
     {
@@ -2648,12 +2650,14 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
     {
-      t2 = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
-              .startDiscoverer(changeSupport);
+      t2 = startServiceDiscovery(
+          jalview.ws.jws2.Jws2Discoverer.getDiscoverer(), false);
     }
-    Thread t3 = null;
+    if (Cache.getDefault("SHOW_SLIVKA_SERVICES", true))
     {
-      // TODO: do rest service discovery
+      // start slivka discovery
+      t3 = startServiceDiscovery(
+          jalview.ws.slivkaws.SlivkaWSDiscoverer.getInstance(), false);
     }
     if (blocking)
     {
@@ -2665,13 +2669,31 @@ public class Desktop extends jalview.jbgui.GDesktop
         } catch (Exception e)
         {
         }
+        // FIXME: Condition should check the discoverer's isRunning rather than
+        // threads
         alive = (t1 != null && t1.isAlive()) || (t2 != null && t2.isAlive())
-                || (t3 != null && t3.isAlive())
-                || (t0 != null && t0.isAlive());
+            || (t3 != null && t3.isAlive()) || (t0 != null && t0.isAlive());
       }
     }
   }
 
+  public Thread startServiceDiscovery(WSDiscovererI discoverer,
+      boolean blocking)
+  {
+    Thread thread = discoverer.startDiscoverer(changeSupport);
+    if (blocking)
+    {
+      try
+      {
+        thread.join();
+      } catch (InterruptedException e)
+      {
+        e.printStackTrace();
+      }
+    }
+    return thread;
+  }
+
   /**
    * called to check if the service discovery process completed successfully.
    * 
@@ -2681,8 +2703,9 @@ public class Desktop extends jalview.jbgui.GDesktop
   {
     if (evt.getNewValue() == null || evt.getNewValue() instanceof Vector)
     {
-      final String ermsg = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
-              .getErrorMessages();
+      final WSDiscovererI discoverer = jalview.ws.jws2.Jws2Discoverer
+          .getDiscoverer();
+      final String ermsg = discoverer.getErrorMessages();
       if (ermsg != null)
       {
         if (Cache.getDefault("SHOW_WSDISCOVERY_ERRORS", true))