2002/08/16 23:37:51
[org.ibex.core.git] / src / org / xwt / Static.java
index 4117892..3376d02 100644 (file)
@@ -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); }
+
 }