2003/12/19 05:21:11
authordavid <david@xwt.org>
Fri, 30 Jan 2004 07:43:02 +0000 (07:43 +0000)
committerdavid <david@xwt.org>
Fri, 30 Jan 2004 07:43:02 +0000 (07:43 +0000)
darcs-hash:20040130074302-0c9ea-e15ac9d58032e4133846007d439e480ffb70cce8.gz

src/org/xwt/Template.java

index 1d39655..af84178 100644 (file)
@@ -6,6 +6,7 @@ import java.util.zip.*;
 import java.util.*;
 import java.lang.*;
 import org.xwt.js.*;
+import org.xwt.translators.*;
 import org.xwt.util.*;
 
 /**
@@ -145,7 +146,9 @@ public class Template {
                 if (rbox == null) Log.log(this, "unknown box id '"+vals[i]+"' referenced in XML attribute");
                 else b.putAndTriggerTraps(keys[i], rbox);
             }
-            else if ("image".equals(keys[i])) b.putAndTriggerTraps("image", resolveStringToResource((String)vals[i], xwt, true));
+            else if ("fill".equals(keys[i]) && ((String)vals[i]).indexOf('.') >= 0) {
+                b.putAndTriggerTraps("fill", resolveStringToResource((String)vals[i], xwt, true));
+            }
             else if ("redirect".equals(keys[i])) {
                 if (vals[i] == null || "null".equals(vals[i])) b.putAndTriggerTraps("redirect", null);
                 Object rbox = pis.get("$"+vals[i]);
@@ -235,8 +238,10 @@ public class Template {
             // WARNING: c.keys.length != c.len; USE c.len
             for(int i=0; i<c.len; i++) {
                 if (c.keys[i] == null) throw new RuntimeException("XML parser returned a null key position="+i);
-                if (c.keys[i].equals("font") && c.uris[i] != null) c.vals[i] = c.uris[i] + "." + c.vals[i];
-                if (c.keys[i].equals("preapply")) {
+                else if (c.keys[i].equals("font") && c.uris[i] != null) c.vals[i] = c.uris[i] + "." + c.vals[i];
+                else if (c.keys[i].equals("fill") && c.uris[i] != null && !c.vals[i].startsWith("#")
+                        && SVG.colors.get(c.vals[i]) == null) c.vals[i] = c.uris[i] + "." + c.vals[i];
+                else if (c.keys[i].equals("preapply")) {
                     // process preapply and 'remove' from array
                     String uri = c.uris[i] == null ? "" : c.uris[i] + '.';
                     StringTokenizer tok = new StringTokenizer(c.vals[i].toString(), " ");