static Hash imageToNameMap = new Hash();
/** the empty object, used for get-traps */
static Hash imageToNameMap = new Hash();
/** the empty object, used for get-traps */
// Instance Data: IndexOf ////////////////////////////////////////////////////////////
/** The indexof() Function; created lazily */
// Instance Data: IndexOf ////////////////////////////////////////////////////////////
/** The indexof() Function; created lazily */
- public JS.Function indexof = null;
- public JS.Function indexof() { if (indexof == null) indexof = new IndexOf(); return indexof; }
+ public JS.Callable indexof = null;
+ public JS.Callable indexof() { if (indexof == null) indexof = new IndexOf(); return indexof; }
- private class IndexOf extends JS.Function {
- public IndexOf() { super(-1, "java", null, null); this.setSeal(true); }
- public Object _call(JS.Array args) throws JS.Exn {
+ private class IndexOf extends JS.Callable {
+ public IndexOf() { this.setSeal(true); }
+ public Object call(Array args) throws JS.Exn {
if (args.length() != 1 || args.elementAt(0) == null || !(args.elementAt(0) instanceof Box)) return new Integer(-1);
Box b = (Box)args.elementAt(0);
if (b.getParent() != Box.this) {
if (args.length() != 1 || args.elementAt(0) == null || !(args.elementAt(0) instanceof Box)) return new Integer(-1);
Box b = (Box)args.elementAt(0);
if (b.getParent() != Box.this) {
- ThreadMessage.newthread(new JS.Function(-1, "java", null, null) {
- public Object _call(JS.Array args_) throws JS.Exn {
+ ThreadMessage.newthread(new JS.Callable() {
+ public Object call(Array args_) throws JS.Exn {
- Box(Template anonymous, Vec pboxes, Vec ptemplates, Function callback, int numerator, int denominator) {
+ Box(Template anonymous, Vec pboxes, Vec ptemplates, JS.Callable callback, int numerator, int denominator) {
super(null);
set(dmax, 0, Integer.MAX_VALUE);
set(dmax, 1, Integer.MAX_VALUE);
super(null);
set(dmax, 0, Integer.MAX_VALUE);
set(dmax, 1, Integer.MAX_VALUE);
/** creates a new box from an unresolved templatename and an importlist; use "box" for an untemplatized box */
public Box(String templatename, String[] importlist) { this(templatename, importlist, null); }
/** creates a new box from an unresolved templatename and an importlist; use "box" for an untemplatized box */
public Box(String templatename, String[] importlist) { this(templatename, importlist, null); }
super(null);
set(dmax, 0, Integer.MAX_VALUE);
set(dmax, 1, Integer.MAX_VALUE);
super(null);
set(dmax, 0, Integer.MAX_VALUE);
set(dmax, 1, Integer.MAX_VALUE);
for(Box cur = this; cur != null && (cur == this || cur == this.getParent()); cur = cur.getParent()) {
cur.dirty(pos(0) + min(oldsize(0) - bw, size(0) - bw),
pos(1),
for(Box cur = this; cur != null && (cur == this || cur == this.getParent()); cur = cur.getParent()) {
cur.dirty(pos(0) + min(oldsize(0) - bw, size(0) - bw),
pos(1),
max(oldsize(1), size(1)));
cur.dirty(pos(0),
pos(1) + min(oldsize(1) - bh, size(1) - bh),
max(oldsize(0), size(0)),
max(oldsize(1), size(1)));
cur.dirty(pos(0),
pos(1) + min(oldsize(1) - bh, size(1) - bh),
max(oldsize(0), size(0)),
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 (++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, "Current trap is at " + f.getSourceName() + ":" + f.getLineNumbers()[0]);
} catch (Throwable t) { }
*/
if (Log.on) Log.log(this, "Current trap is at " + f.getSourceName() + ":" + f.getLineNumbers()[0]);
} catch (Throwable t) { }
*/
public void put(int i, Object value) {
if (value != null && !(value instanceof Box)) {
public void put(int i, Object value) {
if (value != null && !(value instanceof Box)) {
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 "+
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 "+
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 " +
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 " +
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; " +
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; " +
String name = (String)name_;
if (name == null) return; // FIXME, shouldn't be necessary
if (name.startsWith("xwt_")) {
String name = (String)name_;
if (name == null) return; // FIXME, shouldn't be necessary
if (name.startsWith("xwt_")) {
} else if (name.charAt(1) == '_') {
name = name.substring(2).intern();
Trap t = Trap.getTrap(this, name);
if (t != null) t.delete();
} else if (name.charAt(1) == '_') {
name = name.substring(2).intern();
Trap t = Trap.getTrap(this, name);
if (t != null) t.delete();
- if (value != null) Trap.addTrap(this, name, ((Function)value), true, rp);
+ if (value != null) Trap.addTrap(this, name, ((CompiledFunction)value), true, rp);
} else {
name = name.substring(1).intern();
Trap t = Trap.getTrap(this, name);
if (t != null) t.delete();
} else {
name = name.substring(1).intern();
Trap t = Trap.getTrap(this, name);
if (t != null) t.delete();
- if (value != null) Trap.addTrap(this, name, ((Function)value), false, rp);
+ if (value != null) Trap.addTrap(this, name, ((CompiledFunction)value), false, rp);