public access to static getAlignFrames method.
[jalview.git] / src / jalview / gui / Desktop.java
index 10d2d43..be05b48 100755 (executable)
@@ -432,15 +432,9 @@ public class Desktop
     JalviewFileChooser chooser = new JalviewFileChooser(jalview.bin.Cache.
         getProperty(
             "LAST_DIRECTORY"),
-        new String[]
-        {
-        "fa, fasta, fastq", "aln", "pfam", "msf", "pir", "blc",
-        "jar"
-    },
-        new String[]
-        {
-        "Fasta", "Clustal", "PFAM", "MSF", "PIR", "BLC", "Jalview"
-    }, jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
+            jalview.io.AppletFormatAdapter.READABLE_EXTENSIONS,
+            jalview.io.AppletFormatAdapter.READABLE_FNAMES, 
+            jalview.bin.Cache.getProperty("DEFAULT_FILE_FORMAT"));
 
     chooser.setFileView(new JalviewFileView());
     chooser.setDialogTitle("Open local file");
@@ -821,21 +815,45 @@ public class Desktop
   {
     if (fileLoadingCount == 0)
     {
+      addProgressPanel("Loading File: " + fileName + "   ");
+      
+    }
+    fileLoadingCount++;
+  }
+  private JProgressBar addProgressPanel(String string)
+  {
+    if (progressPanel==null)
+    {
       progressPanel = new JPanel(new BorderLayout());
-      JProgressBar progressBar = new JProgressBar();
-      progressBar.setIndeterminate(true);
+      totalProgressCount=0;
+    }
+    JProgressBar progressBar = new JProgressBar();
+    progressBar.setIndeterminate(true);
 
-      progressPanel.add(new JLabel("Loading File: " + fileName + "   "),
-                        BorderLayout.WEST);
+    progressPanel.add(new JLabel(string),
+                      BorderLayout.WEST);
 
-      progressPanel.add(progressBar, BorderLayout.CENTER);
+    progressPanel.add(progressBar, BorderLayout.CENTER);
 
-      instance.getContentPane().add(progressPanel, BorderLayout.SOUTH);
+    instance.getContentPane().add(progressPanel, BorderLayout.SOUTH);
+    totalProgressCount++;
+    validate();
+    return progressBar;
+  }
+  int totalProgressCount=0;
+  private void removeProgressPanel(JProgressBar progbar)
+  {
+    if (progressPanel!=null)
+    {
+      progressPanel.remove(progbar);
+      if (--totalProgressCount<1)
+      {
+        this.getContentPane().remove(progressPanel);
+        progressPanel = null;
+      }
     }
-    fileLoadingCount++;
     validate();
   }
-
   public void stopLoading()
   {
     fileLoadingCount--;
@@ -850,7 +868,6 @@ public class Desktop
     }
     validate();
   }
-
   public static int getViewCount(String viewId)
   {
     int count = 0;
@@ -1012,7 +1029,7 @@ public class Desktop
     vamsasStart.setText("Session Update");
     vamsasSave.setVisible(true);
     vamsasStop.setVisible(true);
-    vamsasImport.setVisible(true);
+    vamsasImport.setVisible(false); // Document import to existing session is not possible for vamsas-client-1.0.
   }
   protected void setupVamsasDisconnectedGui()
   {
@@ -1064,15 +1081,25 @@ public class Desktop
             {
               if (dsktp.v_client == null)
               {
-                dsktp.v_client = new VamsasApplication(dsktp, mysesid);
-                dsktp.setupVamsasConnectedGui();
-                dsktp.v_client.initial_update();
+                Thread rthr = new Thread(new Runnable() {
+
+                  public void run()
+                  {
+                    dsktp.v_client = new VamsasApplication(dsktp, mysesid);
+                    dsktp.setupVamsasConnectedGui();
+                    dsktp.v_client.initial_update();
+                  }
+                  
+                });
+                rthr.start();
               }
             };
           });
           VamsasStMenu.add(sessit);
         }
-        VamsasStMenu.setVisible(true);
+        // don't show an empty menu.
+        VamsasStMenu.setVisible(sess.length>0);
+        
       }
       else
       {
@@ -1134,6 +1161,7 @@ public class Desktop
         }
     }
   }
+  JProgressBar vamUpdate = null;
   /**
    * hide vamsas user gui bits when a vamsas document event is being handled.
    * @param b true to hide gui, false to reveal gui
@@ -1142,6 +1170,15 @@ public class Desktop
   {
     jalview.bin.Cache.log.debug("Setting gui for Vamsas update " +
                                 (b ? "in progress" : "finished"));
+    
+    if (vamUpdate!=null)
+    {
+      this.removeProgressPanel(vamUpdate);
+    }
+    if (b)
+    {
+      vamUpdate = this.addProgressPanel("Updating vamsas session");
+    }
     vamsasStart.setVisible(!b);
     vamsasStop.setVisible(!b);
     vamsasSave.setVisible(!b);
@@ -1255,7 +1292,7 @@ public class Desktop
    * Accessor method to quickly get all the AlignmentFrames
    * loaded.
    */
-  protected AlignFrame[] getAlignframes() {
+  public static AlignFrame[] getAlignframes() {
     JInternalFrame[] frames = Desktop.desktop.getAllFrames();
 
     if (frames == null)