JAL-3690 switching to CompletableFuture to allow chaining
[jalview.git] / src / jalview / gui / SlivkaPreferences.java
index f4f6a9a..6c365b9 100644 (file)
@@ -29,6 +29,7 @@ import javax.swing.JPanel;
 import javax.swing.JProgressBar;
 import javax.swing.JScrollPane;
 import javax.swing.JTable;
+import javax.swing.SwingUtilities;
 import javax.swing.UIManager;
 import javax.swing.table.AbstractTableModel;
 import javax.swing.table.DefaultTableCellRenderer;
@@ -306,13 +307,20 @@ public class SlivkaPreferences extends JPanel
 
   // Discoverer buttons action listeners
   private ActionListener refreshServicesAction = (ActionEvent e) -> {
-    new Thread(() -> {
-      progressBar.setVisible(true);
-      Cache.log.info("Requesting service reload");
-      Desktop.instance.startServiceDiscovery(discoverer, true);
-      Cache.log.info("Reloading done");
-      progressBar.setVisible(false);
-    }).start();
+    progressBar.setVisible(true);
+    Cache.log.info("Requesting service reload");
+    discoverer.startDiscoverer().handle((_discoverer, exception) -> {
+      if (exception == null)
+      {
+        Cache.log.info("Reloading done");
+      }
+      else
+      {
+        Cache.log.error("Reloading failed", exception);
+      }
+      SwingUtilities.invokeLater(() -> progressBar.setVisible(false));
+      return null;
+    });
   };
 
   private ActionListener resetServicesAction = (ActionEvent e) -> {