X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FResources.java;h=26d4f68acb17d68bf5e7a64f2d85fc065a9edff9;hb=cb1a5438e2216c357fdfcf53b182b78875f782ab;hp=c11562cac24475c25b9ad2f744b1186e254f1577;hpb=9a33358173f08013fdacd02c11f3823352bdae23;p=org.ibex.core.git diff --git a/src/org/xwt/Resources.java b/src/org/xwt/Resources.java index c11562c..26d4f68 100644 --- a/src/org/xwt/Resources.java +++ b/src/org/xwt/Resources.java @@ -4,7 +4,7 @@ package org.xwt; import java.io.*; import java.net.*; import java.util.*; -import jazz.*; +import java.util.zip.*; import java.lang.*; import java.applet.*; import org.mozilla.javascript.*; @@ -39,9 +39,8 @@ public class Resources { char c = name.charAt(i); if (!((c >= 'A' && c <= 'Z') || (c >= 'a' && c <= 'z') || - c == '_' || - (c >= '0' && c <= '9') || - (c == '.' && i == name.length() - 4))) return false; + c == '_' || c == '.' || + (c >= '0' && c <= '9'))) return false; } return true; } @@ -55,8 +54,16 @@ public class Resources { 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")) { + String name2 = name.substring(0, name.length() - 4); + Static.createStatic(name2.replace(File.separatorChar, '.'), false); + usedPackages.put(JSObject.nodeNameToPackageName(name2.replace('/', '.')), new Object()); + } + bytes.put(name.replace(File.separatorChar, '.'), file); + } } } @@ -76,7 +83,6 @@ public class Resources { } public int read(byte[] b, int off, int len) throws IOException { int ret = super.read(b, off, len); - if (ret != -1) bytesDownloaded += ret; if (clear && callback != null) { clear = false; ThreadMessage.newthread(new JSObject.JSFunction() { @@ -90,10 +96,13 @@ public class Resources { } }); } + bytesDownloaded += ret; return ret; } }); + Template.TemplateHelper t = new Template.TemplateHelper(); + for(ZipEntry ze = zis.getNextEntry(); ze != null; ze = zis.getNextEntry()) { String name = ze.getName(); if (!validResourceName(name.substring(name.lastIndexOf('/') + 1))) { @@ -112,9 +121,8 @@ public class Resources { 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