JAL-3253 preliminary static fixes for JavaScript part 4 of 3
[jalview.git] / src / jalview / gui / Desktop.java
index 88835c6..38cdf35 100644 (file)
@@ -198,6 +198,10 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public static Desktop getInstance()
   {
+    if (instance == null)
+    {
+      new Desktop(true);
+    }
     Desktop d;
     @SuppressWarnings("unused")
     ThreadGroup g = Thread.currentThread().getThreadGroup();
@@ -250,6 +254,8 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public JInternalFrame conservationSlider, PIDSlider;
 
+  private boolean instanceOnly;
+
   class MyDesktopManager implements DesktopManager
   {
 
@@ -373,12 +379,16 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   }
 
+  public Desktop(boolean forInstance)
+  {
+    instanceOnly = true;
+    setInstance(this);
+  }
   /**
    * Creates a new Desktop object.
    */
   public Desktop()
   {
-    super();
     /**
      * A note to implementors. It is ESSENTIAL that any activities that might
      * block are spawned off as threads rather than waited for during this
@@ -892,7 +902,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     // A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN
     // IF JALVIEW IS RUNNING HEADLESS
     // ///////////////////////////////////////////////
-    if (getInstance() == null || Jalview.isHeadlessMode())
+    if (getInstance().instanceOnly || Jalview.isHeadlessMode())
     {
       return;
     }
@@ -3276,7 +3286,7 @@ public class Desktop extends jalview.jbgui.GDesktop
           }
           ;
         }
-        if (getInstance() == null)
+        if (instanceOnly)
         {
           return;
         }