2003/04/24 14:33:28
[org.ibex.core.git] / src / org / xwt / Resources.java
index f193477..26d4f68 100644 (file)
@@ -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;
     }
@@ -59,8 +58,9 @@ public class Resources {
                 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());
+                    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);
             }
@@ -83,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() {
@@ -97,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))) {
@@ -120,7 +122,7 @@ public class Resources {
                 } else {
                     usedPackages.put(packageName, thisArchive);
                     Static.createStatic(name.replace('/', '.'), false);
-                    Template.buildTemplate(zis, name.replace('/', '.'));
+                    Template.buildTemplate(zis, name.replace('/', '.'), t);
                 }
 
             } else {