import com.stevesoft.pat.Regex;
+import jalview.bin.Jalview;
import jalview.javascript.json.JSON;
import swingjs.api.JSUtilI;
isWin = null;
private static Boolean isHeadless = null;
-
+
private static swingjs.api.JSUtilI jsutil;
- static {
- if (isJS) {
+ static
+ {
+ if (isJS)
+ {
try
{
- // this is ok - it's a highly embedded method in Java; the deprecation is
+ // this is ok - it's a highly embedded method in Java; the deprecation
+ // is
// really a recommended best practice.
jsutil = ((JSUtilI) Class.forName("swingjs.JSUtil").newInstance());
} catch (InstantiationException | IllegalAccessException
{
e.printStackTrace();
}
- }
+ }
}
// private static Boolean isHeadless = null;
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;
+ }
/**
*
{
return s == null ? null : s.replace("\\", "\\\\");
}
-
+
/**
* Answers true if the mouse event has Meta-down (Command key on Mac) or
* Ctrl-down (on other o/s). Note this answers _false_ if the Ctrl key is
}
}
-
public static void cacheFileData(File file)
{
if (isJS)
}
return null;
}
-
+
public static String getFileAsString(String url)
{
if (isJS && url != null)
return false;
}
-
public static void addJ2SBinaryType(String ext)
{
if (isJS)
jsutil.addBinaryFileType(ext);
}
}
-
+
/**
* Encode the URI using JavaScript encodeURIComponent
*
return (isJS ? (String) jsutil.getAppletAttribute("_uniqueId") : null);
}
-
/**
* Read the Info block for this applet.
*
public static Object parseJSON(String json) throws ParseException
{
- return (isJS() ? JSON.parse(json)
- : new JSONParser().parse(json));
+ return (isJS() ? JSON.parse(json) : new JSONParser().parse(json));
}
public static Object parseJSON(Reader r)
* @param is
* @param outFile
* @throws IOException
- * if the file cannot be created or there is a problem
- * reading the input stream.
+ * if the file cannot be created or there is a problem reading the
+ * input stream.
*/
public static void streamToFile(InputStream is, File outFile)
throws IOException
jsutil.addDirectDatabaseCall(domain);
System.out.println(
- "Platform adding known access-control-allow-origin * for domain "
- + domain);
+ "Platform adding known access-control-allow-origin * for domain "
+ + domain);
}
}
+ /**
+ * Allow for URL-line command arguments. Untested.
+ *
+ */
public static void getURLCommandArguments()
{
+ try {
/**
* Retrieve the first query field as command arguments to Jalview. Include
* only if prior to "?j2s" or "&j2s" or "#". Assign the applet's __Info.args
* decodeURI((document.location.href.replace("&","?").split("?j2s")[0]
* + "?").split("?")[1].split("#")[0]); a &&
* (J2S.thisApplet.__Info.args = a.split(" "));
+ *
+ * System.out.println("URL arguments: " + a);
*/
-
+ } catch (Throwable t) {
+ }
}
/**
- * A (case sensitive) file path comparator that ignores the difference between /
- * and \
+ * A (case sensitive) file path comparator that ignores the difference between
+ * / and \
*
* @param path1
* @param path2
return p1.equals(p2);
}
+ ///////////// JAL-3253 Applet additions //////////////
-
-///////////// JAL-3253 Applet additions //////////////
-
-
/**
* Retrieve the object's embedded size from a div's style on a page if
* embedded in SwingJS.
}
}
-
/**
* load a resource -- probably a core file -- if and only if a particular
* class has not been instantialized. We use a String here because if we used
public static String getUserPath(String subpath)
{
char sep = File.separatorChar;
- return System.getProperty("user.home") + sep + subpath.replace('/', sep);
+ return System.getProperty("user.home") + sep
+ + subpath.replace('/', sep);
}
/**
*/
public static boolean isFileOlderThanThreshold(File file, int noOfDays)
{
- if (isJS()) {
- // not meaningful in SwingJS -- this is a session-specific temp file. It doesn't have a timestamp.
+ if (isJS())
+ {
+ // not meaningful in SwingJS -- this is a session-specific temp file. It
+ // doesn't have a timestamp.
return false;
}
Path filePath = file.toPath();
{
return failValue;
}
- if (isJS) {
- int val = /** @j2sNative 1 ? parseInt(input) : */ 0;
+ if (isJS)
+ {
+ int val = /** @j2sNative 1 ? parseInt(input) : */
+ 0;
return (val == val + 0 ? val : failValue);
}
// JavaScript does not support Regex ? lookahead
return (isJS ? jsutil.getAppletInfoAsMap() : null);
}
+ /**
+ * Get the SwingJS applet ID and combine that with the frameType
+ *
+ * @param frameType
+ * "alignment", "desktop", etc., or null
+ * @return
+ */
+ public static String getAppID(String frameType)
+ {
+ String id = Jalview.getInstance().j2sAppletID;
+ if (id == null)
+ {
+ Jalview.getInstance().j2sAppletID = id = (String) jsutil
+ .getAppletAttribute("_id");
+ }
+ return id + (frameType == null ? "" : "-" + frameType);
+ }
+
}