if (subfiles[i].equals("CVS") || !validResourceName(subfiles[i])) continue;
String name = prefix + subfiles[i];
File file = new File(dir.getPath() + File.separatorChar + subfiles[i]);
- if (file.isDirectory()) loadDirectory(file, name + File.separatorChar);
- else bytes.put(name.replace(File.separatorChar, '.'), file);
+ if (file.isDirectory()) {
+ loadDirectory(file, name + File.separatorChar);
+ } else {
+ if (name.endsWith(".xwt")) {
+ Static.createStatic(name.replace(File.separatorChar, '.'), false);
+ usedPackages.put(JSObject.nodeNameToPackageName(name.replace('/', '.')), new Object());
+ }
+ bytes.put(name.replace(File.separatorChar, '.'), file);
+ }
}
}
if (Log.on) Log.log(Resources.class, "templates have already been loaded into " + packageName + "; refusing to load " + name);
} else {
usedPackages.put(packageName, thisArchive);
- for(int i=0; i<name.length() && i != -1; i = name.indexOf('/', i + 1))
- Static.createStatic(name.substring(0, i).replace('/', '.'));
+ Static.createStatic(name.replace('/', '.'), false);
Template.buildTemplate(zis, name.replace('/', '.'));
}
public class Static extends JSObject {
public static Static getStatic(String resourcename) {
+ Template t = Template.getTemplate(resourcename, null);
+ if (t != null) t.link();
return (Static)cache.get(resourcename);
}
- public static Static createStatic(String resourcename) {
+ public static Static createStatic(String resourcename, boolean isPackage) {
Static ret = (Static)cache.get(resourcename);
- if (ret == null) {
- Template t = Template.getTemplate(resourcename, null);
- if (t == null) return new Static(resourcename, true);
- ret = new Static(resourcename, false);
- t.link();
- return ret;
- }
+ if (ret != null) return ret;
+ if (resourcename.indexOf('.') != -1)
+ createStatic(resourcename.substring(0, resourcename.lastIndexOf('.')), true);
+ ret = new Static(resourcename, false);
+ cache.put(resourcename, ret);
return ret;
}