return null;
} else {
- Thread thread = Thread.currentThread();
+ java.lang.Thread thread = java.lang.Thread.currentThread();
if (!(thread instanceof ThreadMessage)) {
if (Log.on) Log.log(Box.class, "HTTP images can not be loaded from the foreground thread");
return null;
}
// FIXME: use primitives here
ThreadMessage mythread = (ThreadMessage)thread;
- mythread.setPriority(Thread.MIN_PRIORITY);
+ mythread.setPriority(java.lang.Thread.MIN_PRIORITY);
mythread.done.release();
try {
HTTP http = new HTTP(str);
} finally {
MessageQueue.add(mythread);
- mythread.setPriority(Thread.NORM_PRIORITY);
+ mythread.setPriority(java.lang.Thread.NORM_PRIORITY);
mythread.go.block();
}
}
} else {
image = getPicture(s);
if (image == null) {
- if (Log.on) Log.log(Box.class, "unable to load image " + s + " at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(Box.class, "unable to load image " + s);
return;
}
if (sizetoimage) syncSizeToImage();
if (border == null) {
ImageDecoder id = getImage(s, null);
if (id == null) {
- if (Log.on) Log.log(this, "unable to load border image " + s + " at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "unable to load border image " + s);
return;
}
int[] data = id.getData();
if (++surface.sizePosChangesSinceLastRender >= 500) {
if (surface.sizePosChangesSinceLastRender == 500) {
- if (Log.on) Log.log(this, "Warning, more than 500 SizeChange/PosChange traps triggered since last complete render");
- if (Log.on) Log.log(this, " interpreter is at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "Warning, more than 500 SizeChange/PosChange traps triggered since last complete render");
/*
try {
Trap t = sizechange ? Trap.getTrap(this, "SizeChange") : Trap.getTrap(this, "PosChange");
if (i < 0) return;
if (value != null && !(value instanceof Box)) {
- if (Log.on) Log.log(this, "attempt to set a numerical property on a box to anything other than a box at " + Context.getCurrentSourceNameAndLine());
-
+ if (Log.on) Log.logJS(this, "attempt to set a numerical property on a box to anything other than a box");
} else if (redirect == null) {
- if (Log.on) Log.log(this, "attempt to add/remove children to/from a node with a null redirect at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to add/remove children to/from a node with a null redirect");
} else if (redirect != this) {
Box b = value == null ? (Box)redirect.get(i) : (Box)value;
redirect.put(i, value);
}
} else if (value instanceof RootProxy) {
- if (Log.on) Log.log(this, "attempt to reparent a box via its proxy object at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to reparent a box via its proxy object");
} else {
Box newnode = (Box)value;
// check if box being moved is currently target of a redirect
for(Box cur = newnode.getParent(); cur != null; cur = cur.getParent())
if (cur.redirect == newnode) {
- if (Log.on) Log.log(this, "attempt to move a box that is the target of a redirect at "+
- Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to move a box that is the target of a redirect");
return;
}
// check for recursive ancestor violation
for(Box cur = this; cur != null; cur = cur.getParent())
if (cur == newnode) {
- if (Log.on) Log.log(this, "attempt to make a node a parent of its own ancestor at " +
- Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to make a node a parent of its own ancestor");
if (Log.on) Log.log(this, "box == " + this + " ancestor == " + newnode);
return;
}
Object ret = super.get(name);
if (name.startsWith("$") && ret == null)
- if (Log.on) Log.log(this, "WARNING: attempt to access " + name + ", but no child with id=\"" + name.substring(1) + "\" found; " +
- Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "WARNING: attempt to access " + name + ", but no child with id=\"" + name.substring(1) + "\" found");
return ret;
}
String name = (String)name_;
if (name == null) return; // FIXME, shouldn't be necessary
if (name.startsWith("xwt_")) {
- if (Log.on) Log.log(this, "attempt to set reserved property " + name + " at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to set reserved property " + name);
return;
}
if (name.charAt(0) == '_') {
if (value != null && !(value instanceof JS.Callable)) {
- if (Log.on) Log.log(this, "attempt to put a non function value (" + value + ") to " +
- name + " at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to put a non function value (" + value + ") to " + name);
} else if (value != null && !(value instanceof JS.CompiledFunction)) {
- if (Log.on) Log.log(this, "attempt to put a non-compiled function value (" + value + ") to " +
- name + " at " + Context.getCurrentSourceNameAndLine());
+ if (Log.on) Log.logJS(this, "attempt to put a non-compiled function value (" + value + ") to " + name);
} else if (name.charAt(1) == '_') {
name = name.substring(2).intern();
Trap t = Trap.getTrap(this, name);
}
-
+/** this is in Box.java solely to work around a GCJ bug */
+class Apply extends JS.Callable {
+ Box b;
+ public Apply(Box b) { this.b = b; }
+ public Object call(JS.Array args) throws JS.Exn {
+ if (args.elementAt(0) instanceof String) {
+ String templatename = (String)args.elementAt(0);
+ Template t = Template.getTemplate(templatename, null);
+ if (t == null) {
+ if (Log.on) Log.logJS(this, "template " + templatename + " not found");
+ } else {
+ if (ThreadMessage.suspendThread()) try {
+ JS.Callable callback = args.length() < 2 ? null : (Callable)args.elementAt(1);
+ t.apply(b, null, null, callback, 0, t.numUnits());
+ } finally {
+ ThreadMessage.resumeThread();
+ }
+ }
+
+ } else if (args.elementAt(0) instanceof JS && !(args.elementAt(0) instanceof Box)) {
+ JS s = (JS)args.elementAt(0);
+ Object[] keys = s.keys();
+ for(int j=0; j<keys.length; j++) b.put(keys[j].toString(), s.get(keys[j]));
+ }
+
+ return b;
+ }
+}