else if (name.equals("newBox")) return newBox;
else if (name.equals("soap")) return soap;
else if (name.equals("xmlrpc")) return xmlrpc;
+ else if (name.equals("origin")) return Main.origin;
else if (name.equals("clipboard")) return Platform.getClipBoard();
else if (name.equals("altKeyName")) return Platform.altKeyName();
else if (name.equals("screenWidth")) return new Integer(Platform.getScreenWidth());
else if (name.equals("saveFile")) return saveFile;
else if (name.equals("saveFileAs")) return saveFileAs;
else if (name.equals("utfEncode")) return utfEncode;
+ else if (name.equals("fileSeparator")) return File.separator;
+ else if (name.equals("homeDir")) return System.getProperty("user.home");
+ else if (name.equals("tempDir")) return System.getProperty("java.io.tempdir");
+ else if (name.equals("recursivePrintObject")) return recursivePrintObject;
else if (name.equals("button")) {
if (Surface.button1 && !Surface.button2 && !Surface.button3) return new Integer(1);
else if (!Surface.button1 && Surface.button2 && !Surface.button3) return new Integer(1);
private static final JSFunction openFile = new JSFunction() {
public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
- if (args == null || args.length != 1) return null;
+ if (args.length != 1) return null;
String file = Platform.fileDialog(args[0].toString(), false);
return file == null ? null : new ByteStream(file);
}
private static final JSFunction saveFile = new JSFunction() {
public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
- if (args == null || args.length != 2) return null;
+ if (args.length != 2) return null;
if (!(args[1] instanceof ByteStream)) return null;
String file = args[0].toString();
if (safeFiles.get(Platform.isCaseSensitive() ? file : file.toLowerCase()) == null) {
file = Platform.fileDialog(file, true);
if (file == null) return null;
- System.out.println(">>" + file + "<<");
safeFiles.put(Platform.isCaseSensitive() ? file : file.toLowerCase(), new Object());
}
try {
- System.out.println("WRITING TO " + file);
((ByteStream)args[1]).writeTo(new FileOutputStream(file));
return null;
} catch (IOException e) {
private static final JSFunction saveFileAs = new JSFunction() {
public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
- if (args == null || args.length != 2) return null;
+ if (args.length != 2) return null;
if (!(args[1] instanceof ByteStream)) return null;
String file = args[0].toString();
file = Platform.fileDialog(file, true);
}
};
+
+ private static void recurse(String indent, String name, Object o, Context cx) {
+ if (!name.equals("")) name += " : ";
+
+ if (o == null) {
+ Log.log(cx.interpreterSourceFile, indent + name + "<null>");
+
+ } else if (o instanceof NativeArray) {
+ Log.log(cx.interpreterSourceFile, indent + name + "<array>");
+ NativeArray na = (NativeArray)o;
+ for(int i=0; i<na.jsGet_length(); i++)
+ recurse(indent + " ", i + "", na.get(i, null), cx);
+
+ } else if (o instanceof JSObject || o instanceof ScriptableObject) {
+ Log.log(cx.interpreterSourceFile, indent + name + "<object>");
+ Scriptable s = (Scriptable)o;
+ Object[] keys = s.getIds();
+ for(int i=0; i<keys.length; i++)
+ recurse(indent + " ", keys[i].toString(),
+ keys[i] instanceof Integer ? s.get(((Integer)keys[i]).intValue(), null) : s.get(keys[i].toString(), null), cx);
+
+ } else {
+ Log.log(cx.interpreterSourceFile, indent + name + o);
+
+ }
+ }
+
+ private static final JSFunction recursivePrintObject = new JSFunction() {
+ public Object call(Context cx, Scriptable thisObj, Scriptable ctorObj, Object[] args) throws JavaScriptException {
+ if (args == null || args.length != 1) return null;
+ recurse("", "", args[0], cx);
+ return null;
+ }
+ };
+
}