import jalview.util.ImageMaker.TYPE;
import jalview.util.MessageManager;
import jalview.util.Platform;
-import jalview.util.ShortcutKeyMaskExWrapper;
import jalview.util.UrlConstants;
import jalview.viewmodel.AlignmentViewport;
import jalview.ws.params.ParamManager;
final JInternalFrame frame, String title, int w, int h)
{
// 58 classes
- getInstance().addFrame(frame, title, Desktop.FRAME_MAKE_VISIBLE, w, h,
+
+ addInternalFrame(frame, title, Desktop.FRAME_MAKE_VISIBLE, w, h,
FRAME_ALLOW_RESIZE, FRAME_SET_MIN_SIZE_300);
}
final JInternalFrame frame, String title, boolean makeVisible,
int w, int h, boolean resizable, boolean ignoreMinSize)
{
- // 15 classes
- getInstance().addFrame(frame, title, makeVisible, w, h, resizable,
+ // 15 classes call this method directly.
+
+ // TODO: allow callers to determine X and Y position of frame (eg. via
+ // bounds object).
+ // TODO: consider fixing method to update entries in the window submenu with
+ // the current window title
+
+ frame.setTitle(title);
+ if (frame.getWidth() < 1 || frame.getHeight() < 1)
+ {
+ frame.setSize(w, h);
+ }
+ if (getInstance() != null)
+ getInstance().addFrame(frame, makeVisible, resizable,
ignoreMinSize);
}
public final static boolean FRAME_ALLOW_ANY_SIZE = true;
public final static boolean FRAME_SET_MIN_SIZE_300 = false;
-
- private void addFrame(JInternalFrame frame, String title,
- boolean makeVisible, int w, int h, boolean resizable,
+
+ private void addFrame(JInternalFrame frame,
+ boolean makeVisible, boolean resizable,
boolean ignoreMinSize)
{
- // TODO: allow callers to determine X and Y position of frame (eg. via
- // bounds object).
- // TODO: consider fixing method to update entries in the window submenu with
- // the current window title
-
- frame.setTitle(title);
- if (frame.getWidth() < 1 || frame.getHeight() < 1)
- {
- frame.setSize(w, h);
- }
- // 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.isHeadlessMode())
- {
- return;
- }
openFrameCount++;
* add an entry for the new frame in the Window menu
* (and remove it when the frame is closed)
*/
- final JMenuItem menuItem = new JMenuItem(title);
+ final JMenuItem menuItem = new JMenuItem(frame.getTitle());
frame.addInternalFrameListener(new InternalFrameAdapter()
{
@Override
import java.awt.Component;
import java.awt.Dimension;
+import java.awt.GraphicsEnvironment;
import java.awt.Toolkit;
import java.awt.event.KeyEvent;
import java.awt.event.MouseEvent;
private static Boolean isNoJSMac = null, isNoJSWin = null, isMac = null,
isWin = null;
- private static Boolean isHeadless = null;
-
private static swingjs.api.JSUtilI jsutil;
static
}
}
}
- // private static Boolean isHeadless = null;
/**
* added to group mouse events into Windows and nonWindows (mac, unix, linux)
static
{
- // Using non-deprecated Extended key mask modifiers, but Java 8 has no
- // getMenuShortcutKeyMaskEx method
- Toolkit tk = Toolkit.getDefaultToolkit();
- Method method = null;
- try
- {
- method = tk.getClass().getMethod("getMenuShortcutKeyMaskEx");
- } catch (NoSuchMethodException e)
- {
- System.err.println(
- "Could not find Toolkit method getMenuShortcutKeyMaskEx. Trying getMenuShortcutKeyMask.");
- }
- if (method == null)
+ if (!GraphicsEnvironment.isHeadless())
{
+ // Using non-deprecated Extended key mask modifiers, but Java 8 has no
+ // getMenuShortcutKeyMaskEx method
+ Toolkit tk = Toolkit.getDefaultToolkit();
+ Method method = null;
try
{
- method = tk.getClass().getMethod("getMenuShortcutKeyMask");
- } catch (NoSuchMethodException e)
+ method = tk.getClass().getMethod("getMenuShortcutKeyMaskEx");
+ } catch (Exception e)
{
System.err.println(
- "Could not find Toolkit method getMenuShortcutKeyMaskEx or getMenuShortcutKeyMask.");
- e.printStackTrace();
+ "Could not find Toolkit method getMenuShortcutKeyMaskEx. Trying getMenuShortcutKeyMask.");
}
- }
- if (method != null)
- {
- try
+ if (method == null)
{
- method.setAccessible(true);
- SHORTCUT_KEY_MASK = ((int) method.invoke(tk, new Object[0]));
- } catch (Exception e)
+ try
+ {
+ method = tk.getClass().getMethod("getMenuShortcutKeyMask");
+ } catch (Exception e)
+ {
+ System.err.println(
+ "Could not find Toolkit method getMenuShortcutKeyMaskEx or getMenuShortcutKeyMask.");
+ e.printStackTrace();
+ }
+ }
+ if (method != null)
{
- e.printStackTrace();
+ try
+ {
+ method.setAccessible(true);
+ SHORTCUT_KEY_MASK = ((int) method.invoke(tk, new Object[0]));
+ } catch (Exception e)
+ {
+ e.printStackTrace();
+ }
+ }
+ if (SHORTCUT_KEY_MASK <= 0xF)
+ {
+ // shift this into the extended region (was Java 8)
+ SHORTCUT_KEY_MASK = SHORTCUT_KEY_MASK << 6;
}
- }
- if (SHORTCUT_KEY_MASK <= 0xF)
- {
- // shift this into the extended region (was Java 8)
- SHORTCUT_KEY_MASK = SHORTCUT_KEY_MASK << 6;
}
}
-
/**
* added to group mouse events into Windows and nonWindows (mac, unix, linux)
*
return (isNoJSWin == null ? (isNoJSWin = !isJS && isWin()) : isNoJSWin);
}
- /**
- *
- * @return true if we are running in non-interactive no UI mode
- */
- public static boolean isHeadless()
- {
- if (isHeadless == null)
- {
- isHeadless = "true".equals(System.getProperty("java.awt.headless"));
- }
- return isHeadless;
- }
/**
*