X-Git-Url: http://git.megacz.com/?a=blobdiff_plain;f=src%2Forg%2Fxwt%2FTemplate.java;h=2dbaa3b5116660342ad6242d2574d6c700e2c0ce;hb=0f94de16d032aa04fcfa50056f7964de2fcd2d58;hp=56ca4d96463019b8feee1ed0e15d062d32d92775;hpb=c2a138c3882a4bd8dce0212ac59765af5cb126c6;p=org.ibex.core.git diff --git a/src/org/xwt/Template.java b/src/org/xwt/Template.java index 56ca4d9..2dbaa3b 100644 --- a/src/org/xwt/Template.java +++ b/src/org/xwt/Template.java @@ -47,7 +47,6 @@ public class Template { private StringBuffer content = null; ///< during XML parsing, this holds partially-read character data; null otherwise private int content_start = 0; ///< line number of the first line of content - private int content_lines = 0; ///< number of lines in content private int startLine = -1; ///< the line number that this element starts on private final Res r; ///< the resource we came from @@ -59,7 +58,8 @@ public class Template { r = r.addExtension(".xwt"); if (r.t != null) return r.t; r.t = new Template(r); - new TemplateHelper().parseit(r.getInputStream(), r.t); + try { new TemplateHelper().parseit(r.getInputStream(), r.t); } + catch (FileNotFoundException e) { Log.log(Template.class, "template not found: "+r); } return r.t; } catch (Exception e) { if (Log.on) Log.log(r.t == null ? "null" : r.t.fileName, e); @@ -70,8 +70,7 @@ public class Template { public static Res resolveStringToResource(String str, XWT xwt, boolean permitAbsolute) { // URL if (str.indexOf("://") != -1) { - // FIXME - //if (permitAbsolute) return Res.fromString(str); + if (permitAbsolute) return (Res)xwt.callMethod("res.url", str, null, null, null, 1); Log.log(Template.class, "absolute URL " + str + " not permitted here"); return null; } @@ -90,7 +89,12 @@ public class Template { // Methods to apply templates //////////////////////////////////////////////////////// - private Template(Res r) { this.r = r; } + private Template(Res r) { + this.r = r; + String f = r.toString(); + if (f != null && !f.equals("")) + fileName = f.substring(f.lastIndexOf('/')+1, f.endsWith(".xwt") ? f.length() - 4 : f.length()); + } /** called before this template is applied or its static object can be externally referenced */ JSScope getStatic() { @@ -122,7 +126,7 @@ public class Template { for (int i=0; children != null && i i; i++) t.content.append('\n'); } } } @@ -317,12 +330,10 @@ public class Template { if ("static".equals(nameOfHeaderNodeBeingProcessed) || state == STATE_IN_TEMPLATE_NODE) { if (t.content == null) { t.content_start = getLine(); - t.content_lines = 0; t.content = new StringBuffer(); } t.content.append(ch, start, length); - t.content_lines++; } else if (nameOfHeaderNodeBeingProcessed != null && state != STATE_FINISHED_TEMPLATE_NODE) { throw new XML.SchemaException("header node <" + nameOfHeaderNodeBeingProcessed + "> cannot have text content");