patch to prevent NPE - which occurs if no features are available (see JAL-650)
[jalview.git] / src / jalview / gui / Desktop.java
index 23b18b0..8531e04 100755 (executable)
@@ -19,6 +19,7 @@ package jalview.gui;
 
 import jalview.bin.Cache;
 import jalview.io.*;
+import jalview.ws.params.ParamManager;
 
 import java.awt.*;
 import java.awt.datatransfer.*;
@@ -54,7 +55,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
 
   private class JalviewChangeSupport implements PropertyChangeListener
   {
-    @Override
     public void propertyChange(PropertyChangeEvent evt)
     {
       // Handle change events - most are simply routed to other sources
@@ -2088,6 +2088,29 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     return v_client;
 
   }
+  /**
+   * flag set if jalview GUI is being operated programmatically
+   */
+  private boolean inBatchMode=false;
+
+  /**
+   * check if jalview GUI is being operated programmatically
+   * @return inBatchMode
+   */
+  public boolean isInBatchMode()
+  {
+    return inBatchMode;
+  }
+
+  /**
+   * set flag if jalview GUI is being operated programmatically
+   * @param inBatchMode 
+   */
+  public void setInBatchMode(boolean inBatchMode)
+  {
+    this.inBatchMode = inBatchMode;
+  }
+
 
   public void startServiceDiscovery()
   {
@@ -2113,7 +2136,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
 
     try
     {
-      if (Cache.getDefault("SHOW_ENVISION2_SERVICES", true))
+      if (Cache.getDefault("SHOW_ENFIN_SERVICES", true))
       {
         // EnfinEnvision web service menu entries are rebuild every time the
         // menu is shown, so no changeSupport events are needed.
@@ -2153,4 +2176,39 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     }
   }
 
+  /**
+   * start a thread to open a URL in the configured browser. Pops up a warning dialog to the user if there is an exception when calling out to the browser to open the URL.
+   * @param url
+   */
+  public static void showUrl(final String url)
+  {
+    new Thread(new Runnable() {
+      public void run() {
+        try {
+          jalview.util.BrowserLauncher.openURL(url);
+        } catch (Exception ex)
+        {    
+          JOptionPane
+                  .showInternalMessageDialog(
+                          Desktop.desktop,
+                          "Unixers: Couldn't find default web browser."
+                                  + "\nAdd the full path to your browser in Preferences.",
+                          "Web browser not found", JOptionPane.WARNING_MESSAGE);
+
+          ex.printStackTrace();
+        }
+      }
+    }).start();    
+  }
+
+  public static WsParamSetManager wsparamManager = null;
+  public static ParamManager getUserParameterStore()
+  {
+    if (wsparamManager==null)
+    {
+      wsparamManager = new WsParamSetManager();
+    }
+    return wsparamManager;
+  }
+
 }