(try again) PATCH: Bug 98: loadTemplate(ByteStream, String
Matt Mullens <[email protected]> Sat, 5 Apr 2003 19:14:09 -0800 (PST)
| Newsgroups | gmane.comp.java.xwt.general |
|---|---|
| Message-ID | <[email protected]> |
(My apologies, I believe it was messed up by the
wraps, lets try this one instead)
Index: Resources.java
===================================================================
RCS file: /cvs/xwt/src/org/xwt/Resources.java,v
retrieving revision 1.10
diff -u -r1.10 Resources.java
--- Resources.java12 Feb 2003 06:40:22 -00001.10
+++ Resources.java6 Apr 2003 02:27:14 -0000
@@ -131,6 +131,29 @@
if (Log.verbose) Log.log(Resources.class,
"done loading archive");
}
+
+ /** Load a bytestream */
+ public static synchronized void
loadTemplate(InputStream is, String name) throws
IOException {
+
+ String templateName = new String(name);
+
+ if (templateName.endsWith(".xwt")){
+ templateName = templateName.substring(0,
templateName.length() - 4);
+ }
+ String packageName =
JSObject.nodeNameToPackageName(templateName);
+ String shortName =
templateName.substring(templateName.lastIndexOf(".")+1);
+ if (!validResourceName(shortName)) return;
+
+ Object user = usedPackages.get(packageName);
+ if (user != null){
+ if (Log.on) Log.log(Resources.class,
"templates have already been loaded into " +
packageName + "; refusing to load " + templateName);
+ }else{
+ Static.createStatic(templateName, false);
+ usedPackages.put(packageName, new
Object());
+ bytes.put(templateName + ".xwt",
isToByteArray(is));
+ }
+ }
+
/** holds the current theme mappings */
static Vector mapFrom = new Vector();
Index: XWT.java
===================================================================
RCS file: /cvs/xwt/src/org/xwt/XWT.java,v
retrieving revision 1.18
diff -u -r1.18 XWT.java
--- XWT.java3 Oct 2002 22:45:58 -00001.18
+++ XWT.java6 Apr 2003 02:27:15 -0000
@@ -64,6 +64,7 @@
else if (name.equals("println")) return
println;
else if (name.equals("math")) return
org.xwt.util.JSObject.defaultObjects.get("Math",
null);
else if (name.equals("loadArchive")) return
loadArchive;
+ else if (name.equals("loadTemplate")) return
loadTemplate;
else if (name.equals("prefetchImage")) return
prefetchImage;
else if (name.equals("prefs")) return prefs;
else if (name.equals("encodeURI")) return
JSObject.defaultObjects.get("encodeURI", null);
@@ -508,6 +509,30 @@
return null;
}
};
+
+ private static final JSObject.JSFunction
loadTemplate = new JSObject.JSFunction() {
+ public Object call(Context cx, Scriptable
thisObj, Scriptable ctorObj, Object[] args) throws
JavaScriptException {
+ if (!ThreadMessage.suspendThread())
return null;
+
+ try {
+ if (args == null || args.length <
2 || args[0] == null || args[1] == null) return null;
+ InputStream is =
((ByteStream)(args[0])).getInputStream();
+ String name = (String)args[1];
+ Resources.loadTemplate(is, name);
+ } catch (IOException ioe) {
+ if (Log.on) Log.log(this,
"IOException while loading Template:");
+ if (Log.on) Log.log(this, ioe);
+ throw new
JavaScriptException(ioe.toString());
+
+ } finally {
+ ThreadMessage.resumeThread();
+
+ }
+ return null;
+ }
+ };
+
+
private static final JSObject.JSFunction
prefetchImage = new JSObject.JSFunction() {
public Object call(Context cx, Scriptable
thisObj, Scriptable ctorObj, Object[] args) throws
JavaScriptException {
__________________________________________________
Do you Yahoo!?
Yahoo! Tax Center - File online, calculators, forms, and more
http://tax.yahoo.com
_______________________________________________
http://lists.xwt.org/listinfo/dev