X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FStatic.java;h=3376d02fd934a9d2e8365417f71d3ddc02e2e29a;hb=ad7d057ea80d61610f4b8729919384a979f389a2;hp=4117892fdb2837edef594e31bc164c1099088299;hpb=fea7f27cc252c8feaafb8a5c0d4b9f391f03975d;p=org.ibex.core.git diff --git a/src/org/xwt/Static.java b/src/org/xwt/Static.java index 4117892..3376d02 100644 --- a/src/org/xwt/Static.java +++ b/src/org/xwt/Static.java @@ -8,17 +8,17 @@ import org.mozilla.javascript.*; public class Static extends JSObject { public static Static getStatic(String resourcename) { - Static ret = (Static)cache.get(resourcename); - if (ret == null) { - Template t = Template.getTemplate(resourcename, null); - - // FIXME: ugly - if (t == null) return new Static(resourcename, true); + Template t = Template.getTemplate(resourcename, null); + if (t != null) t.link(); + return (Static)cache.get(resourcename); + } - ret = new Static(resourcename, false); - t.link(); - return ret; - } + public static Static createStatic(String resourcename, boolean isPackage) { + Static ret = (Static)cache.get(resourcename); + if (ret != null) return ret; + if (resourcename.indexOf('.') != -1) + createStatic(resourcename.substring(0, resourcename.lastIndexOf('.')), true); + ret = new Static(resourcename, isPackage); return ret; } @@ -54,10 +54,10 @@ public class Static extends JSObject { for(Scriptable cur = Context.enter().currentFunction; cur != null; cur = cur.getParentScope()) if (cur == this) return XWT.singleton; - System.out.println("casc up " + (resourcename + (resourcename.length() == 0 ? "" : ".") + name)); - if (!ispackage) return super.get(name, start); return getStatic(resourcename + (resourcename.length() == 0 ? "" : ".") + name); } + static { createStatic("", true); } + }