JAL-2587 Added progress bar to overview. Not fully working yet.
[jalview.git] / src / jalview / gui / OverviewPanel.java
index 0b33b3b..af80725 100755 (executable)
@@ -20,6 +20,7 @@
  */
 package jalview.gui;
 
+import jalview.renderer.OverviewRenderer;
 import jalview.util.MessageManager;
 import jalview.util.Platform;
 import jalview.viewmodel.OverviewDimensions;
@@ -68,6 +69,8 @@ public class OverviewPanel extends JPanel implements Runnable,
 
   private boolean draggingBox = false;
 
+  private ProgressPanel progressPanel;
+
   /**
    * Creates a new OverviewPanel object.
    * 
@@ -85,10 +88,15 @@ public class OverviewPanel extends JPanel implements Runnable,
 
     setSize(od.getWidth(), od.getHeight());
 
-    oviewCanvas = new OverviewCanvas(od, av);
     setLayout(new BorderLayout());
+    progressPanel = new ProgressPanel(OverviewRenderer.UPDATE,
+            MessageManager.getString("label.oview_calc"));
+    this.add(progressPanel, BorderLayout.SOUTH);
+    oviewCanvas = new OverviewCanvas(od, av, progressPanel);
+
     add(oviewCanvas, BorderLayout.CENTER);
 
+
     av.getRanges().addPropertyChangeListener(this);
 
     addComponentListener(new ComponentAdapter()
@@ -271,9 +279,13 @@ public class OverviewPanel extends JPanel implements Runnable,
       return;
     }
 
+    // oviewCanvas.addPropertyChangeListener(OverviewRenderer.UPDATE, this);
+
     Thread thread = new Thread(this);
     thread.start();
     repaint();
+
+    
   }
 
   @Override
@@ -314,10 +326,39 @@ public class OverviewPanel extends JPanel implements Runnable,
       av.getRanges().removePropertyChangeListener(this);
     } finally
     {
+      progressPanel = null;
       av = null;
       oviewCanvas = null;
       ap = null;
       od = null;
     }
   }
+
+  /*  private void addProgressBar()
+  {
+    progressPanel = new JPanel(new BorderLayout(10, 0));
+    progressPanel.setBorder(new EmptyBorder(0, 3, 0, 20));
+  
+    this.add(progressPanel, BorderLayout.SOUTH);
+  
+    progressBar = new OvProgressBar();
+    progressBar.setMinimum(0);
+  
+    progressPanel.add(new JLabel("Recalculating overview..."),
+            BorderLayout.WEST);
+    progressPanel.add(progressBar, BorderLayout.CENTER);
+  }
+  
+  private void removeProgressBar()
+  {
+    if (progressPanel != null)
+    {
+      synchronized (progressPanel)
+      {
+        progressPanel.remove(progressBar);
+        this.remove(progressPanel);
+        progressPanel = null;
+      }
+    }
+  }*/
 }