// Copyright 2003 Adam Megacz, see the COPYING file for licensing [LGPL]
package org.xwt.util;
-import org.xwt.js.JS;
+import org.xwt.js.*;
import java.io.*;
import java.util.*;
/** log a message with the current JavaScript sourceName/line */
public static void logJS(Object o, Object message) { logJS(message); }
- public static void logJS(Object message) {
- JS.Context current = org.xwt.js.JS.Context.current();
- if (current == null) {
- log("<none>", message);
- } else {
- log(current.getSourceName() + ":" + current.getLine(), message);
- }
- }
+ public static void logJS(Object message) { log(JSContext.getSource() + ":" + JSContext.getLine(), message); }
/** message can be a String or a Throwable */
public static synchronized void log(Object o, Object message) {
}
}
+ public static void recurseiveLog(String indent, String name, Object o) {
+ if (!name.equals("")) name += " : ";
+
+ if (o == null) {
+ Log.logJS(indent + name + "<null>");
+
+ } else if (o instanceof JSArray) {
+ Log.logJS(indent + name + "<array>");
+ JSArray na = (JSArray)o;
+ for(int i=0; i<na.length(); i++)
+ recurse(indent + " ", i + "", na.elementAt(i));
+
+ } else if (o instanceof JS) {
+ Log.logJS(indent + name + "<object>");
+ JS s = (JS)o;
+ Enumeration e = s.keys();
+ while(e.hasMoreElements()) {
+ Object key = e.nextElement();
+ if (key != null)
+ recurse(indent + " ", key.toString(),
+ (key instanceof Integer) ?
+ s.get(((Integer)key)) : s.get(key.toString()));
+ }
+ } else {
+ Log.logJS(indent + name + o);
+
+ }
+ }
+
}