2002/09/15 23:38:37
[org.ibex.core.git] / src / org / xwt / Template.java
index f345718..324fea1 100644 (file)
@@ -273,11 +273,8 @@ public class Template {
     }
 
     /** adds a theme mapping, retemplatizing as needed */
-    public static void retheme(String from, String to) {
-        if (Log.on) Log.log(Template.class, "retheming from " + from + " to " + to);
+    public static void retheme(Function callback) {
         XWF.flushXWFs();
-        Resources.mapFrom.addElement(from);
-        Resources.mapTo.addElement(to);
 
         // clear changed marker and relink
         Template[] t = new Template[cache.size()];
@@ -293,6 +290,17 @@ public class Template {
             Box b = ((Surface)Surface.allSurfaces.elementAt(i)).root;
             if (b != null) reapply(b);
         }
+
+        if (callback != null)
+            try {
+                callback.call(Context.enter(), null, null, new Object[] { new Double(1.0), new Double(1.0) });
+            } catch (EcmaError ex) {
+                if (Log.on) Log.log(Template.class, "WARNING: uncaught interpreter exception: " + ex.getMessage());
+                if (Log.on) Log.log(Template.class, "         thrown from within progress callback at " + ex.getSourceName() + ":" + ex.getLineNumber());
+            } catch (JavaScriptException ex) {
+                if (Log.on) Log.log(Template.class, "WARNING: uncaught ecmascript exception: " + ex.getMessage());
+                if (Log.on) Log.log(Template.class, "         thrown from within progress callback at " + ex.sourceFile + ":" + ex.line);
+            }
     }
 
     /** template reapplication procedure */