- for(int i=0; keys != null && i<keys.length; i++)
- if (vals[i] instanceof String && ((String)vals[i]).charAt(0) == '$') {
- Object rbox = pis.get(vals[i]);
- if (rbox == null) Log.log(this, "unknown box id '"+vals[i]+"' referenced in XML attribute");
- else b.putAndTriggerTraps(keys[i], rbox);
- }
- else if ("fill".equals(keys[i]) && ((String)vals[i]).indexOf('.') >= 0) {
- b.putAndTriggerTraps("fill", resolveStringToResource((String)vals[i], xwt, true));
+ Object key, val;
+ for(int i=0; keys != null && i < keys.length; i++) {
+ if (keys[i] == null) continue;
+ key = keys[i];
+ val = vals[i];
+
+ if ("null".equals(val)) val = null;
+
+ if (val != null && val instanceof String && ((String)val).length() > 0) {
+ switch (((String)val).charAt(0)) {
+ case '$':
+ val = pis.get(val);
+ if (val == null) throw new JSExn("unknown box id '"+vals[i]+"' referenced in XML attribute");
+ break;
+ case '.':
+ val = resolveStringToResource(((String)val).substring(1), xwt, true);
+ }