import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.Reader;
-import java.net.MalformedURLException;
import java.net.URL;
import java.util.Properties;
private static Boolean isNoJSMac = null, isNoJSWin = null, isMac = null,
isWin = null;
- // private static Boolean isHeadless = null;
+ private static Boolean isHeadless = null;
/**
* 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;
- // }
+ /**
+ *
+ * @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;
+ }
/**
*
}
/**
- * escape a string according to the local platform's escape character
+ * Answers the input with every backslash replaced with a double backslash (an
+ * 'escaped' single backslash)
*
- * @param file
- * @return escaped file
+ * @param s
+ * @return
*/
- public static String escapeString(String file)
+ public static String escapeBackslashes(String s)
{
- StringBuffer f = new StringBuffer();
- int p = 0, lastp = 0;
- while ((p = file.indexOf('\\', lastp)) > -1)
- {
- f.append(file.subSequence(lastp, p));
- f.append("\\\\");
- lastp = p + 1;
- }
- f.append(file.substring(lastp));
- return f.toString();
+ return s == null ? null : s.replace("\\", "\\\\");
}
/**
*/
protected static boolean isControlDown(MouseEvent e, boolean aMac)
{
- if (!aMac)
- {
- return e.isControlDown();
- }
- // answer false for right mouse button
- // shortcut key will be META for a Mac
- return !e.isPopupTrigger()
- && (Toolkit.getDefaultToolkit().getMenuShortcutKeyMask()
- & e.getModifiers()) != 0;
- // could we use e.isMetaDown() here?
- }
+ if (aMac)
+ {
+ /*
+ * answer false for right mouse button
+ */
+ if (e.isPopupTrigger())
+ {
+ return false;
+ }
+ return (jalview.util.ShortcutKeyMaskExWrapper.getMenuShortcutKeyMaskEx() // .getMenuShortcutKeyMaskEx()
+ & e.getModifiersEx()) != 0; // getModifiers()) != 0;
+ }
+ return e.isControlDown();
+ }
// BH: I don't know about that previous method. Here is what SwingJS uses.
// Notice the distinction in mouse events. (BUTTON3_MASK == META)
* @param url
* @return true if window has been opened
*/
- public static boolean openURL(String url) throws IOException
+ public static boolean openURL(String url)
{
if (!isJS())
{
- BrowserLauncher.openURL(url);
return false;
}
/**
System.out.println(
"Platform id=" + id + " reading Info." + key + " = " + value);
- p.put(key, value);
+ p.put(id + "_" + key, value);
/**
* @j2sNative
}
- public static URL getDocumentBase()
+ /**
+ * A (case sensitive) file path comparator that ignores the difference between /
+ * and \
+ *
+ * @param path1
+ * @param path2
+ * @return
+ */
+ public static boolean pathEquals(String path1, String path2)
{
- try
- {
- return (isJS() ? new URL(/**
- * @j2sNative J2S.thisApplet._applet.appletViewer.appletDocumentBase
- * ||
- */
- "") : null);
- } catch (MalformedURLException e)
+ if (path1 == null)
{
- return null;
+ return path2 == null;
}
- }
-
- public static URL getCodeBase()
- {
- try
- {
- return (isJS() ? new URL(/**
- * @j2sNative J2S.thisApplet._applet.appletViewer.appletCodeBase
- * ||
- */
- "") : null);
- } catch (MalformedURLException e)
+ if (path2 == null)
{
- return null;
+ return false;
}
+ String p1 = path1.replace('\\', '/');
+ String p2 = path2.replace('\\', '/');
+ return p1.equals(p2);
}
-
}