JAL-3690 separate startup and poll code in SeqAnnotationCalcWorker
[jalview.git] / src / jalview / gui / ProgressBar.java
index d7b04ee..abf096f 100644 (file)
@@ -126,9 +126,7 @@ public class ProgressBar implements IProgressIndicator
       @Override
       public void run()
       {
-        final Long longId = Long.valueOf(id);
-
-        JPanel progressPanel = progressBars.get(longId);
+        JPanel progressPanel = progressBars.get(id);
         if (progressPanel != null)
         {
           /*
@@ -139,9 +137,9 @@ public class ProgressBar implements IProgressIndicator
           {
             statusBar.setText(message);
           }
-          if (progressBarHandlers.containsKey(longId))
+          if (progressBarHandlers.containsKey(id))
           {
-            progressBarHandlers.remove(longId);
+            progressBarHandlers.remove(id);
           }
           removeRow(progressPanel);
         }
@@ -160,7 +158,7 @@ public class ProgressBar implements IProgressIndicator
 
           addRow(progressPanel);
 
-          progressBars.put(longId, progressPanel);
+          progressBars.put(id, progressPanel);
         }
 
         refreshLayout();
@@ -168,6 +166,23 @@ public class ProgressBar implements IProgressIndicator
     });
 
   }
+  
+  @Override
+  public void removeProgressBar(final long id)
+  {
+    SwingUtilities.invokeLater(() -> {
+      JPanel progressPanel = progressBars.get(id);
+      if (progressPanel != null)
+      {
+        progressBars.remove(id);
+        if (progressBarHandlers.containsKey(id))
+        {
+          progressBarHandlers.remove(id);
+        }
+        removeRow(progressPanel);
+      }
+    });
+  }
 
   /**
    * Lays out progress bar container hierarchy
@@ -230,8 +245,7 @@ public class ProgressBar implements IProgressIndicator
       @Override
       public void run()
       {
-        Long longId = Long.valueOf(id);
-        final JPanel progressPanel = progressBars.get(longId);
+        final JPanel progressPanel = progressBars.get(id);
         if (progressPanel == null)
         {
           System.err.println(
@@ -247,7 +261,7 @@ public class ProgressBar implements IProgressIndicator
           return;
         }
 
-        progressBarHandlers.put(longId, handler);
+        progressBarHandlers.put(id, handler);
         JButton cancel = new JButton(
                 MessageManager.getString("action.cancel"));
         cancel.addActionListener(new ActionListener()