X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;ds=sidebyside;f=src%2Forg%2Fxwt%2FSpecialBoxProperty.java;h=56ee2091a5aee01188df1d8cd7dd6fce2f197908;hb=5e6c7408d885681a6eb8576d3411227865b46a2a;hp=2da34107f23947f923b403020398ba945a3e24b9;hpb=b549fc8820c5f1852f7563c933a88502b02cbb7d;p=org.ibex.core.git diff --git a/src/org/xwt/SpecialBoxProperty.java b/src/org/xwt/SpecialBoxProperty.java index 2da3410..56ee209 100644 --- a/src/org/xwt/SpecialBoxProperty.java +++ b/src/org/xwt/SpecialBoxProperty.java @@ -683,6 +683,33 @@ class SpecialBoxProperty { catch (NumberFormatException e) { return 0; } } + private static 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