JAL-3253 jalview.bin.Instance streamlining
[jalview.git] / src / jalview / gui / Desktop.java
index c835248..826a869 100644 (file)
@@ -139,6 +139,7 @@ public class Desktop extends jalview.jbgui.GDesktop
         implements DropTargetListener, ClipboardOwner, IProgressIndicator,
         jalview.api.StructureSelectionManagerProvider
 {
+
   private final static int DEFAULT_MIN_WIDTH = 300;
 
   private final static int DEFAULT_MIN_HEIGHT = 250;
@@ -195,7 +196,13 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public static MyDesktopPane getDesktopPane()
   {
-    return Instance.getDesktop().desktopPane;
+    return Desktop.getInstance().desktopPane;
+  }
+
+  public static StructureSelectionManager getStructureSelectionManager()
+  {
+    return StructureSelectionManager
+            .getStructureSelectionManager(Desktop.getInstance());
   }
 
   static int openFrameCount = 0;
@@ -344,6 +351,18 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public MyDesktopPane desktopPane;
 
+  public static Desktop getInstance()
+  {
+    Instance i = Instance.getInstance();
+    return (i.desktop == null ? (i.desktop = new Desktop(true))
+            : i.desktop);
+  }
+
+  /**
+   * For testing.
+   * 
+   * @param forInstance
+   */
   public Desktop(boolean forInstance)
   {
     instanceOnly = true;
@@ -358,7 +377,8 @@ public class Desktop extends jalview.jbgui.GDesktop
      * block are spawned off as threads rather than waited for during this
      * constructor.
      */
-    Instance.setDesktop(this);
+    Instance.getInstance().desktop = this;
+
     if (!Platform.isJS())
     {
       doVamsasClientCheck();
@@ -538,8 +558,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   public void doConfigureStructurePrefs()
   {
     // configure services
-    StructureSelectionManager ssm = StructureSelectionManager
-            .getStructureSelectionManager(this);
+    StructureSelectionManager ssm = getStructureSelectionManager();
     if (jalview.bin.Cache.getDefault(Preferences.ADD_SS_ANN, true))
     {
       ssm.setAddTempFacAnnot(jalview.bin.Cache
@@ -866,7 +885,7 @@ public class Desktop extends jalview.jbgui.GDesktop
     // A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN
     // IF JALVIEW IS RUNNING HEADLESS
     // ///////////////////////////////////////////////
-    if (Instance.getDesktop().instanceOnly || Jalview.isHeadlessMode())
+    if (Desktop.getInstance().instanceOnly || Jalview.isHeadlessMode())
     {
       return;
     }
@@ -944,7 +963,7 @@ public class Desktop extends jalview.jbgui.GDesktop
         {
           menuItem.removeActionListener(menuItem.getActionListeners()[0]);
         }
-        Instance.getDesktop().windowMenu.remove(menuItem);
+        Desktop.getInstance().windowMenu.remove(menuItem);
       };
     });
 
@@ -968,7 +987,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     getDesktopPane().add(frame);
 
-    Instance.getDesktop().windowMenu.add(menuItem);
+    Desktop.getInstance().windowMenu.add(menuItem);
 
     frame.toFront();
     try
@@ -1025,7 +1044,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   {
     if (!internalCopy)
     {
-      Instance.getDesktop().jalviewClipboard = null;
+      Desktop.getInstance().jalviewClipboard = null;
     }
 
     internalCopy = false;
@@ -1504,12 +1523,7 @@ public class Desktop extends jalview.jbgui.GDesktop
      * reset state of singleton objects as appropriate (clear down session state
      * when all windows are closed)
      */
-    StructureSelectionManager ssm = StructureSelectionManager
-            .getStructureSelectionManager(this);
-    if (ssm != null)
-    {
-      ssm.resetAll();
-    }
+    getStructureSelectionManager().resetAll();
   }
 
   @Override
@@ -3013,7 +3027,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
     if (Cache.getDefault("SHOW_JWS2_SERVICES", true))
     {
-      t2 = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
+      t2 = jalview.ws.jws2.Jws2Discoverer.getInstance()
               .startDiscoverer(changeSupport);
     }
     Thread t3 = null;
@@ -3046,7 +3060,7 @@ public class Desktop extends jalview.jbgui.GDesktop
   {
     if (evt.getNewValue() == null || evt.getNewValue() instanceof Vector)
     {
-      final String ermsg = jalview.ws.jws2.Jws2Discoverer.getDiscoverer()
+      final String ermsg = jalview.ws.jws2.Jws2Discoverer.getInstance()
               .getErrorMessages();
       if (ermsg != null)
       {
@@ -3122,7 +3136,7 @@ public class Desktop extends jalview.jbgui.GDesktop
    */
   public static void showUrl(final String url)
   {
-    showUrl(url, Instance.getDesktop());
+    showUrl(url, Desktop.getInstance());
   }
 
   /**
@@ -3171,7 +3185,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public static ParamManager getUserParameterStore()
   {
-    Desktop d = Instance.getDesktop();
+    Desktop d = Desktop.getInstance();
     if (d.wsparamManager == null)
     {
       d.wsparamManager = new WsParamSetManager();
@@ -3463,7 +3477,7 @@ public class Desktop extends jalview.jbgui.GDesktop
 
   public static groovy.ui.Console getGroovyConsole()
   {
-    return Instance.getDesktop().groovyConsole;
+    return Desktop.getInstance().groovyConsole;
   }
 
   /**