projects
/
org.ibex.core.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
2004/01/07 20:37:32
[org.ibex.core.git]
/
src
/
org
/
xwt
/
Template.java
diff --git
a/src/org/xwt/Template.java
b/src/org/xwt/Template.java
index
a5a9661
..
f85f3a7
100644
(file)
--- a/
src/org/xwt/Template.java
+++ b/
src/org/xwt/Template.java
@@
-54,6
+54,7
@@
public class Template {
// Static data/methods ///////////////////////////////////////////////////////////////////
// Static data/methods ///////////////////////////////////////////////////////////////////
+ // FIXME need to provide the XWT object too
public static Template getTemplate(Stream r) throws JSExn {
try {
r = r.addExtension(".xwt");
public static Template getTemplate(Stream r) throws JSExn {
try {
r = r.addExtension(".xwt");
@@
-61,7
+62,8
@@
public class Template {
r.t = new Template(r);
new TemplateHelper().parseit(r.getInputStream(), r.t);
return r.t;
r.t = new Template(r);
new TemplateHelper().parseit(r.getInputStream(), r.t);
return r.t;
- } catch (Exception e) { throw new JSExn(e.toString());
+ } catch (Exception e) {
+ throw new JSExn("Error reading template stream: " + r + "\n" + e.toString());
}
}
}
}
@@
-107,15
+109,13
@@
public class Template {
* @param pboxes a vector of all box parents on which to put $-references
* @param ptemplates a vector of the fileNames to recieve private references on the pboxes
*/
* @param pboxes a vector of all box parents on which to put $-references
* @param ptemplates a vector of the fileNames to recieve private references on the pboxes
*/
- void apply(Box b, XWT xwt) {
+ void apply(Box b, XWT xwt) throws JSExn {
try {
apply(b, xwt, null);
} catch (JSExn e) {
b.clear(b.VISIBLE);
b.mark_for_repack();
try {
apply(b, xwt, null);
} catch (JSExn e) {
b.clear(b.VISIBLE);
b.mark_for_repack();
- Log.info(Template.class, "WARNING: exception (below) thrown during application of template;");
- Log.info(Template.class, " setting visibility of target box to \"false\"");
- JS.log(e);
+ throw e;
}
}
}
}
@@
-131,10
+131,11
@@
public class Template {
}
PerInstantiationJSScope pis = new PerInstantiationJSScope(b, xwt, parentPis, staticScope);
}
PerInstantiationJSScope pis = new PerInstantiationJSScope(b, xwt, parentPis, staticScope);
+
for (int i=0; children != null && i<children.size(); i++) {
Box kid = new Box();
((Template)children.elementAt(i)).apply(kid, xwt, pis);
for (int i=0; children != null && i<children.size(); i++) {
Box kid = new Box();
((Template)children.elementAt(i)).apply(kid, xwt, pis);
- b.putAndTriggerTraps(JS.N(b.treeSize()), kid);
+ b.putAndTriggerTraps(b.get("numchildren"), kid);
}
if (script != null) script.cloneWithNewParentScope(pis).call(null, null, null, null, 0);
}
if (script != null) script.cloneWithNewParentScope(pis).call(null, null, null, null, 0);
@@
-163,7
+164,12
@@
public class Template {
if (val == null) throw new JSExn("redirect target '"+vals[i]+"' not found");
}
if (val == null) throw new JSExn("redirect target '"+vals[i]+"' not found");
}
- b.putAndTriggerTraps(key, val);
+ try {
+ b.putAndTriggerTraps(key, val);
+ } catch(JSExn e) {
+ e.addBacktrace(fileName + ":attr-" + key,0);
+ throw e;
+ }
}
}
}
}