JAL-1812 bind Groovy to Jalview rather than Desktop, remove reflection
[jalview.git] / src / jalview / gui / Desktop.java
index 7f36f7f..f570217 100644 (file)
@@ -169,8 +169,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
 
   static final int yOffset = 30;
 
-  private static AlignFrame currentAlignFrame;
-
   public static jalview.ws.jws1.Discoverer discoverer;
 
   public static Object[] jalviewClipboard;
@@ -2409,7 +2407,7 @@ public class Desktop extends jalview.jbgui.GDesktop implements
     if (Jalview.isHeadlessMode())
     {
       // Desktop.desktop is null in headless mode
-      return new AlignFrame[] { currentAlignFrame };
+      return new AlignFrame[] { Jalview.currentAlignFrame };
     }
 
     JInternalFrame[] frames = Desktop.desktop.getAllFrames();
@@ -2529,7 +2527,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
       @Override
       public void windowClosed(WindowEvent e)
       {
-        groovyShell.setEnabled(true);
         enableExecuteGroovy(false);
       }
     });
@@ -2538,7 +2535,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
      * if we got this far, enable 'Run Groovy' in AlignFrame menus
      * and disable opening a second console
      */
-    groovyShell.setEnabled(false);
     enableExecuteGroovy(true);
   }
 
@@ -2546,9 +2542,16 @@ public class Desktop extends jalview.jbgui.GDesktop implements
    * Enable or disable 'Run Groovy script' in AlignFrame calculate menus
    * 
    * @param enabled
+   *          true if Groovy console is open
    */
   public void enableExecuteGroovy(boolean enabled)
   {
+    /*
+     * disable opening a second Groovy console
+     * (or re-enable when the console is closed)
+     */
+    groovyShell.setEnabled(!enabled);
+
     AlignFrame[] alignFrames = getAlignFrames();
     if (alignFrames != null)
     {
@@ -3172,17 +3175,6 @@ public class Desktop extends jalview.jbgui.GDesktop implements
      * The dust settles...give focus to the tab we did this from.
      */
     myTopFrame.setDisplayedView(myTopFrame.alignPanel);
-
-  }
-
-  public static AlignFrame getCurrentAlignFrame()
-  {
-    return currentAlignFrame;
-  }
-
-  public static void setCurrentAlignFrame(AlignFrame currentAlignFrame)
-  {
-    Desktop.currentAlignFrame = currentAlignFrame;
   }
 
   public static groovy.ui.Console getGroovyConsole()