Here the correct code:
public class TemplateSourceDelegate implements ITemplateSourceDelegate {
/**
* Method called by Tapestry when it is unable to find the template of a
component or a page
*/
public ComponentTemplate findTemplate(IRequestCycle cycle, IComponent
component, Locale locale) {
Resource res = component.getSpecification().getSpecificationLocation();
String componentAttributeName = "jwcid";
// code that retrives the template in a db:
char[] templateData = "<h2>Test</h2>".toCharArray();
ITemplateParserDelegate delegate = new
DefaultParserDelegate(component, componentAttributeName, cycle, new
ComponentSpecificationResolverImpl());
TemplateToken[] tokens;
TemplateParser parser = new TemplateParser();
parser.setFactory(new TemplateTokenFactory());
try {
// code that throws no more a NullPointerException:
tokens = parser.parse(templateData, delegate, res);
}
catch (TemplateParseException ex) {
throw new ApplicationRuntimeException("Error in
TemplateSourceDelegate", ex);
}
return new ComponentTemplate(templateData, tokens);
}
}
2006/12/11, Tapestry User List <[EMAIL PROTECTED]>:
Hello,
It seems nobody has ever been able to implement the
ITemplateSourceDelegate interface.
Does it mean that it is simply not possible ?
I tried to implement this interface but as others people, I got a
NullPointerException in the method TemplateParser.addTextToken().
Here my code:
public class TemplateSourceDelegate implements ITemplateSourceDelegate {
/**
* Method called by Tapestry when it is unable to find the template of
a component or a page
*/
public ComponentTemplate findTemplate(IRequestCycle cycle, IComponent
component, Locale locale) {
Resource res = component.getSpecification().getSpecificationLocation();
String componentAttributeName = "jwcid";
// code that retrives the template in a db:
char[] templateData = "<h2>Test</h2>".toCharArray();
ITemplateParserDelegate delegate = new
DefaultParserDelegate(component, componentAttributeName, cycle, new
ComponentSpecificationResolverImpl());
TemplateToken[] tokens;
ITemplateParser parser = new TemplateParser();
try {
// code that throws a NullPointerException:
tokens = parser.parse(templateData, delegate, res);
}
catch (TemplateParseException ex) {
throw new ApplicationRuntimeException("Error in
TemplateSourceDelegate", ex);
}
return new ComponentTemplate(templateData, tokens);
}
}
D.