* just an instance (for testng, probably); no actual frames
*
* This flag, when set true, allows a headless-like operation, with a Desktop
- * object but no actual frames. The issue has to do with the mess-up of the
- * Windows JInternalFrame implementation, which surreptitiously and
- * unforgivingly accesses a native peer class, preventing headless operation.
+ * object but no actual frames. Though not headless, this option disallows
+ * dialogs to run in test environments.
*
- * It is set by invoking the Desktop(true) constructor.
- *
- * It is possible that we can remove this option now, since headless mode is
- * finally working on Windows through careful attention to not creating any
- * JInternalFrame objects when in that mode.
+ * It is set by invoking Desktop.getInstanceOnly().
*
*/
- private boolean instanceOnly;
+ boolean instanceOnly;
class MyDesktopManager implements DesktopManager
{
}
/**
- * For testing purposes, this constructor can be utilized to allow the creation
- * of a singleton Desktop instance without the formation of frames. The Cache is
- * initialized, but that is all.
- *
- * It is not currently used.
+ * For TestNG, this constructor can be utilized to allow the creation of a
+ * singleton Desktop instance with the creation of frames, but no addition to
+ * the Desktop object, as in headless mode. Dialogs are not initiated.
+ * Cache.log is also initialized for some tests that require it despite there
+ * being no Desktop.
*
- * @param forInstance
*/
- public Desktop(boolean forInstance)
+ public static Desktop getInstanceOnly()
{
-
- Cache.initLogger();
- instanceOnly = true;
+ Desktop d = (Desktop) ApplicationSingletonProvider
+ .getInstance(Desktop.class);
+ d.instanceOnly = true;
+ return d;
}
/**
}
// THIS IS A PUBLIC STATIC METHOD, SO IT MAY BE CALLED EVEN IN
// A HEADLESS STATE WHEN NO DESKTOP EXISTS. MUST RETURN
- // IF JALVIEW IS RUNNING HEADLESS
+ // IF JALVIEW IS RUNNING HEADLESS OR IN INSTANCE-ONLY (testNG) MODE
// ///////////////////////////////////////////////
if (Jalview.isHeadlessMode() || Desktop.getInstance().instanceOnly)
{
{
}
}
- if (instanceOnly)
+ if (instanceOnly || Jalview.isHeadlessMode())
{
return;
}