static final int white = 0xFFFFFFFF;
static {
-
specialBoxProperties.put("color", new SpecialBoxProperty() {
public Object get(Box b) {
if ((b.color & 0xFF000000) == 0) return null;
specialBoxProperties.put("apply", new SpecialBoxProperty() {
public void put(Box b, Object value) { }
- public Object get(Box b) { return new Apply(b); }
+ public Object get(final Box b) { return new Apply(b); }
});
-
+
specialBoxProperties.put("id", new SpecialBoxProperty() {
public void put(Box b, Object value) { }
public Object get(Box b) { return b.id; }
catch (NumberFormatException e) { return 0; }
}
- /** helper that converts a String to a int according to JavaScript coercion rules */
- public static class Apply extends JS.Callable {
-
+ private static class Apply extends JS.Callable {
Box b;
- public Apply(Box b) { super(); this.b = b; }
-
+ public Apply(Box b) { this.b = b; }
public Object call(JS.Array args) throws JS.Exn {
-
- // apply a template
if (args.elementAt(0) instanceof String) {
String templatename = (String)args.elementAt(0);
Template t = Template.getTemplate(templatename, null);
ThreadMessage.resumeThread();
}
}
-
- // apply a list of properties
+
} 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;
}
}
-
}