JAL-3690 refactoring web-services discovery
[jalview.git] / src / jalview / gui / SlivkaPreferences.java
index 4df4bf6..0743d58 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;
@@ -138,7 +139,7 @@ public class SlivkaPreferences extends JPanel
 
   private String showEditUrlDialog(String oldUrl)
   {
-    String input = (String) JOptionPane
+    String input = (String) JvOptionPane
         .showInternalInputDialog(
             this, 
             MessageManager.getString("label.url:"),
@@ -156,8 +157,10 @@ public class SlivkaPreferences extends JPanel
       new URL(input);
     } catch (MalformedURLException ex)
     {
-      JOptionPane.showMessageDialog(this,
-          MessageManager.getString("label.invalid_url"), "Warning",
+      JvOptionPane.showInternalMessageDialog(this,
+          MessageManager.getString("label.invalid_url"),
+          UIManager.getString("OptionPane.messageDialogTitle",
+              MessageManager.getLocale()),
           JOptionPane.WARNING_MESSAGE);
       return null;
     }
@@ -203,7 +206,7 @@ public class SlivkaPreferences extends JPanel
   };
 
   private ActionListener moveUrlUpAction = (ActionEvent e) -> {
-    int i = urlListTable.getSelectedRow();
+    final int i = urlListTable.getSelectedRow();
     if (i > 0)
     {
       moveTableRow(i, i - 1);
@@ -212,7 +215,7 @@ public class SlivkaPreferences extends JPanel
   };
 
   private ActionListener moveUrlDownAction = (ActionEvent e) -> {
-    int i = urlListTable.getSelectedRow();
+    final int i = urlListTable.getSelectedRow();
     if (i >= 0 && i < urls.size() - 1)
     {
       moveTableRow(i, i + 1);
@@ -304,12 +307,18 @@ public class SlivkaPreferences extends JPanel
 
   // Discoverer buttons action listeners
   private ActionListener refreshServicesAction = (ActionEvent e) -> {
+    progressBar.setVisible(true);
     new Thread(() -> {
-      progressBar.setVisible(true);
       Cache.log.info("Requesting service reload");
-      Desktop.instance.startServiceDiscovery(discoverer, true);
-      Cache.log.info("Reloading done");
-      progressBar.setVisible(false);
+      var task = discoverer.startDiscoverer();
+      try {
+        task.get();
+        Cache.log.info("Reloading done");
+      } catch (Exception exc) {
+        Cache.log.error("Reloading failed", exc);
+      } finally {
+        SwingUtilities.invokeLater(() -> progressBar.setVisible(false));
+      }
     }).start();
   };