X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FResources.java;h=615ef97ab8394e5c99048f8638f6ec85c0377f70;hb=93224727752b3da9a70bacd473c5f961efb3a297;hp=be058d3db3ee5c24d49543d1e2a8c95b413a6681;hpb=6242c991f365dbd67eba62ecfa5df769a83fcbc6;p=org.ibex.core.git diff --git a/src/org/xwt/Resources.java b/src/org/xwt/Resources.java index be058d3..615ef97 100644 --- a/src/org/xwt/Resources.java +++ b/src/org/xwt/Resources.java @@ -4,10 +4,9 @@ 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.*; +import org.xwt.js.*; import org.xwt.util.*; /** @@ -25,12 +24,12 @@ public class Resources { /** Holds resources added at runtime. Initialized to hold 2000 to work around a NetscapeJVM bug. */ private static Hash bytes = new Hash(2000, 3); - /** The number of bytes read from the initial-xwar stream; used to display a progress bar on the splash screen */ - public static int bytesDownloaded = 0; + /** keeps track of which archive loaded templates into which package */ + private static Hash usedPackages = new Hash(); /** Returns true iff name is a valid resource name */ private static boolean validResourceName(String name) { - if (name == null || name.equals("")) return false; + if (name == null || name.equals("")) return true; if (name.endsWith("/box.xwt") || name.endsWith("/svg.xwt")) return false; if (name.equals("box.xwt") || name.equals("svg.xwt")) return false; if (!((name.charAt(0) >= 'A' && name.charAt(0) <= 'Z') || @@ -39,9 +38,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; } @@ -49,59 +47,79 @@ public class Resources { /** Load a directory as if it were an archive */ public static synchronized void loadDirectory(File dir) throws IOException { loadDirectory(dir, ""); } private static synchronized void loadDirectory(File dir, String prefix) throws IOException { - new Static(prefix.replace(File.separatorChar, '.')); + String n = prefix.replace(File.separatorChar, '.'); + if (n.endsWith(".")) n = n.substring(0, n.length() - 1); + new Static(n); String[] subfiles = dir.list(); for(int i=0; i