Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_overridden.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_overridden.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_overridden.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_overridden.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title.", "cascade":true}) - $tiles.putAttribute({"name":"header", "value":"/velocity/alternate-header.vm", "type":"velocity", "cascade":true}) - $tiles.putAttribute({"name":"body", "value":"test.inner.definition"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title.", "cascade":true})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/alternate-header.vm", "type":"velocity", "cascade":true})#end + #tiles_putAttribute({"name":"body", "value":"test.inner.definition"})#end +#end
Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_template.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_template.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_template.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_cascaded_template.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title.", "cascade":true}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity", "cascade":true}) - $tiles.putAttribute({"name":"body", "value":"/velocity/layout_nobody.vm", "type":"velocity"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title.", "cascade":true})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity", "cascade":true})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/layout_nobody.vm", "type":"velocity"})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el.vm Tue Jan 19 20:04:59 2010 @@ -21,8 +21,8 @@ *# #set($bodyContent="Body Content defined by and el") -$tiles.insertTemplate().start({"template":"/velocity/layout.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title."}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":$bodyContent}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title."})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":$bodyContent})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el_singleeval.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el_singleeval.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el_singleeval.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_el_singleeval.vm Tue Jan 19 20:04:59 2010 @@ -22,8 +22,8 @@ #set($doNotShowBody="$" + "{" + "requestScope.doNotShow}") #set($doNotShow="DO NOT SHOW!!!") -$tiles.insertTemplate().start({"template":"/velocity/layout.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title."}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":$doNotShowBody}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title."})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":$doNotShowBody})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_flush.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_flush.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_flush.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_flush.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout.vm", "flush":true}) - $tiles.putAttribute({"name":"title", "value":"This is the title."}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm", "flush":true}) + #tiles_putAttribute({"name":"title", "value":"This is the title."})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout_alt_title.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title.", "type":"reversed"}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout_alt_title.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title.", "type":"reversed"})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed_explicit.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed_explicit.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed_explicit.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_reversed_explicit.vm Tue Jan 19 20:04:59 2010 @@ -19,9 +19,9 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout_alt_title.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title.", - "type":"org.apache.tiles.test.renderer.ReverseStringAttributeRenderer"}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout_alt_title.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title.", + "type":"org.apache.tiles.test.renderer.ReverseStringAttributeRenderer"})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_servlet.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_servlet.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_servlet.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testput_servlet.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/servlets/layoutServlet"}) - $tiles.putAttribute({"name":"title", "value":"This is the title."}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"}) -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/servlets/layoutServlet"}) + #tiles_putAttribute({"name":"title", "value":"This is the title."})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/body.vm", "type":"velocity"})#end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist.vm Tue Jan 19 20:04:59 2010 @@ -19,11 +19,11 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/putattributeslayout.vm"}) - $tiles.putAttribute({"name":"stringTest", "value":"This is a string", "type":"string"}) - $tiles.putListAttribute().start({"name":"list"}) - $tiles.addAttribute({"value":"valueOne", "type":"string"}) - $tiles.addAttribute({"value":"valueTwo", "type":"string"}) - $tiles.addAttribute({"value":"valueThree", "type":"string"}) - $tiles.putListAttribute().end() -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/putattributeslayout.vm"}) + #tiles_putAttribute({"name":"stringTest", "value":"This is a string", "type":"string"})#end + #tiles_putListAttribute({"name":"list"}) + #tiles_addAttribute({"value":"valueOne", "type":"string"})#end + #tiles_addAttribute({"value":"valueTwo", "type":"string"})#end + #tiles_addAttribute({"value":"valueThree", "type":"string"})#end + #end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_cascaded.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_cascaded.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_cascaded.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_cascaded.vm Tue Jan 19 20:04:59 2010 @@ -19,14 +19,14 @@ * under the License. * *# -$tiles.insertTemplate().start({"template":"/velocity/layout.vm"}) - $tiles.putAttribute({"name":"title", "value":"This is the title."}) - $tiles.putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"body", "value":"/velocity/putattributeslayout.vm", "type":"velocity"}) - $tiles.putAttribute({"name":"stringTest", "value":"This is a string", "type":"string", "cascade":true}) - $tiles.putListAttribute().start({"name":"list", "cascade":true}) - $tiles.addAttribute({"value":"valueOne", "type":"string"}) - $tiles.addAttribute({"value":"valueTwo", "type":"string"}) - $tiles.addAttribute({"value":"valueThree", "type":"string"}) - $tiles.putListAttribute().end() -$tiles.insertTemplate().end() +#tiles_insertTemplate({"template":"/velocity/layout.vm"}) + #tiles_putAttribute({"name":"title", "value":"This is the title."})#end + #tiles_putAttribute({"name":"header", "value":"/velocity/header.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"body", "value":"/velocity/putattributeslayout.vm", "type":"velocity"})#end + #tiles_putAttribute({"name":"stringTest", "value":"This is a string", "type":"string", "cascade":true})#end + #tiles_putListAttribute({"name":"list", "cascade":true}) + #tiles_addAttribute({"value":"valueOne", "type":"string"})#end + #tiles_addAttribute({"value":"valueTwo", "type":"string"})#end + #tiles_addAttribute({"value":"valueThree", "type":"string"})#end + #end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_inherit.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_inherit.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_inherit.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testputlist_inherit.vm Tue Jan 19 20:04:59 2010 @@ -19,8 +19,8 @@ * under the License. * *# -$tiles.insertDefinition().start({"name":"velocity.test.putAttributes"}) - $tiles.putListAttribute().start({"name":"list", "inherit":true}) - $tiles.addAttribute({"value":"valueFour", "type":"string"}) - $tiles.putListAttribute().end() -$tiles.insertDefinition().end() +#tiles_insertDefinition({"name":"velocity.test.putAttributes"}) + #tiles_putListAttribute({"name":"list", "inherit":true}) + #tiles_addAttribute({"value":"valueFour", "type":"string"})#end + #end +#end Modified: tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testsetcurrentcontainer.vm URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testsetcurrentcontainer.vm?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testsetcurrentcontainer.vm (original) +++ tiles/framework/trunk/tiles-test-pom/tiles-test/src/main/webapp/velocity/testsetcurrentcontainer.vm Tue Jan 19 20:04:59 2010 @@ -20,6 +20,6 @@ * *# $tiles.setCurrentContainer("alternate") -$tiles.insertDefinition({"name":"velocity.test.definition"}) +#tiles_insertDefinition({"name":"velocity.test.definition"})#end $tiles.setCurrentContainer(null) -$tiles.insertDefinition({"name":"velocity.test.definition"}) +#tiles_insertDefinition({"name":"velocity.test.definition"})#end Modified: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityUtil.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityUtil.java?rev=900938&r1=900937&r2=900938&view=diff ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityUtil.java (original) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/context/VelocityUtil.java Tue Jan 19 20:04:59 2010 @@ -22,6 +22,7 @@ package org.apache.tiles.velocity.context; import java.io.IOException; +import java.io.StringWriter; import java.io.Writer; import java.util.Map; @@ -32,6 +33,9 @@ import org.apache.velocity.context.Context; import org.apache.velocity.context.InternalContextAdapter; import org.apache.velocity.runtime.Renderable; +import org.apache.velocity.runtime.parser.node.ASTBlock; +import org.apache.velocity.runtime.parser.node.ASTMap; +import org.apache.velocity.runtime.parser.node.Node; /** * Utilities for Velocity usage in Tiles. @@ -135,4 +139,34 @@ servletContext.setAttribute(name, obj); } } + + public static String getBodyAsString(InternalContextAdapter context, Node node) + throws IOException { + ASTBlock block = (ASTBlock) node.jjtGetChild(1); + StringWriter stringWriter = new StringWriter(); + block.render(context, stringWriter); + stringWriter.close(); + String body = stringWriter.toString(); + if (body != null) { + body = body.replaceAll("^\\s*|\\s*$", ""); + if (body.length() <= 0) { + body = null; + } + } + return body; + } + + public static void evaluateBody(InternalContextAdapter context, Writer writer, + Node node) throws IOException { + ASTBlock block = (ASTBlock) node.jjtGetChild(1); + block.render(context, writer); + } + + public static Map<String, Object> getParameters(InternalContextAdapter context, + Node node) { + ASTMap astMap = (ASTMap) node.jjtGetChild(0); + Map<String, Object> params = (Map<String, Object>) astMap + .value(context); + return params; + } } Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,48 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.ArrayStack; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.AddAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public class AddAttributeDirective extends BodyBlockDirective { + + private AddAttributeModel model = new AddAttributeModel(); + + @Override + public String getName() { + return "tiles_addAttribute"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, String body, + HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext) throws IOException { + model.end(ServletUtil.getComposeStack(request), params.get("value"), (String) params + .get("expression"), body, (String) params.get("role"), + (String) params.get("type")); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request)); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,46 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.ArrayStack; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.AddListAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public class AddListAttributeDirective extends BlockDirective { + + private AddListAttributeModel model = new AddListAttributeModel(); + + @Override + public String getName() { + return "tiles_addListAttribute"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getComposeStack(request)); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request), (String) params.get("role")); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/AddListAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,55 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.directive.Directive; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public abstract class BlockDirective extends Directive { + + /** {...@inheritdoc} */ + + @Override + public int getType() { + return BLOCK; + } + + /** {...@inheritdoc} */ + + @Override + public boolean render(InternalContextAdapter context, Writer writer, Node node) + throws IOException, ResourceNotFoundException, ParseErrorException, + MethodInvocationException { + ViewContext viewContext = (ViewContext) context + .getInternalUserContext(); + Map<String, Object> params = VelocityUtil.getParameters(context, node); + HttpServletRequest request = viewContext.getRequest(); + HttpServletResponse response = viewContext.getResponse(); + ServletContext servletContext = viewContext.getServletContext(); + start(context, writer, params, request, response, servletContext); + VelocityUtil.evaluateBody(context, writer, node); + end(context, writer, params, request, response, servletContext); + return true; + } + + public abstract void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext); + + public abstract void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException; +} \ No newline at end of file Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BlockDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,55 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.directive.Directive; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public abstract class BodyBlockDirective extends Directive { + + /** {...@inheritdoc} */ + + @Override + public int getType() { + return BLOCK; + } + + /** {...@inheritdoc} */ + + @Override + public boolean render(InternalContextAdapter context, Writer writer, Node node) + throws IOException, ResourceNotFoundException, ParseErrorException, + MethodInvocationException { + ViewContext viewContext = (ViewContext) context + .getInternalUserContext(); + Map<String, Object> params = VelocityUtil.getParameters(context, node); + HttpServletRequest request = viewContext.getRequest(); + HttpServletResponse response = viewContext.getResponse(); + ServletContext servletContext = viewContext.getServletContext(); + start(context, null, params, request, response, servletContext); + String body = VelocityUtil.getBodyAsString(context, node); + end(context, writer, params, body, request, response, servletContext); + return true; + } + + public abstract void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext); + + public abstract void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, String body, + HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) + throws IOException; +} \ No newline at end of file Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/BodyBlockDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,44 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.mgmt.MutableTilesContainer; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.DefinitionModel; +import org.apache.velocity.context.InternalContextAdapter; + +public class DefinitionDirective extends BlockDirective { + + private DefinitionModel model = new DefinitionModel(); + + @Override + public String getName() { + return "tiles_definition"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end((MutableTilesContainer) ServletUtil.getCurrentContainer( + request, servletContext), ServletUtil.getComposeStack(request), context, request, + response); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request), (String) params.get("name"), (String) params + .get("template"), (String) params.get("role"), (String) params + .get("extends"), (String) params.get("preparer")); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/DefinitionDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,62 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.ArrayStack; +import org.apache.tiles.Attribute; +import org.apache.tiles.TilesContainer; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.DefaultAttributeResolver; +import org.apache.tiles.template.GetAsStringModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.directive.Directive; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public class GetAsStringDirective extends BlockDirective { + + private GetAsStringModel model = new GetAsStringModel( + new DefaultAttributeResolver()); + + @Override + public String getName() { + return "tiles_getAsString"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getComposeStack(request), ServletUtil + .getCurrentContainer(request, servletContext), writer, + VelocityUtil.toSimpleBoolean((Boolean) params.get("ignore"), + false), context, request, response, writer); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request), ServletUtil + .getCurrentContainer(request, servletContext), VelocityUtil + .toSimpleBoolean((Boolean) params.get("ignore"), false), + (String) params.get("preparer"), (String) params.get("role"), + params.get("defaultValue"), (String) params + .get("defaultValueRole"), (String) params + .get("defaultValueType"), (String) params.get("name"), + (Attribute) params.get("value"), context, request, response, + writer); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/GetAsStringDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,63 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.ArrayStack; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.ImportAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; +import org.apache.velocity.exception.MethodInvocationException; +import org.apache.velocity.exception.ParseErrorException; +import org.apache.velocity.exception.ResourceNotFoundException; +import org.apache.velocity.runtime.directive.Directive; +import org.apache.velocity.runtime.parser.node.Node; +import org.apache.velocity.tools.view.ViewContext; + +public class ImportAttributeDirective extends Directive { + + private ImportAttributeModel model = new ImportAttributeModel(); + + @Override + public String getName() { + return "tiles_importAttribute"; + } + + @Override + public int getType() { + return LINE; + } + + @Override + public boolean render(InternalContextAdapter context, Writer writer, Node node) + throws IOException, ResourceNotFoundException, ParseErrorException, + MethodInvocationException { + ViewContext viewContext = (ViewContext) context + .getInternalUserContext(); + Map<String, Object> params = VelocityUtil.getParameters(context, node); + HttpServletRequest request = viewContext.getRequest(); + HttpServletResponse response = viewContext.getResponse(); + ServletContext servletContext = viewContext.getServletContext(); + Map<String, Object> attributes = model.getImportedAttributes( + ServletUtil + .getCurrentContainer(request, servletContext), + (String) params.get("name"), (String) params + .get("toName"), VelocityUtil.toSimpleBoolean( + (Boolean) params.get("ignore"), false), + context, request, response); + String scope = (String) params.get("scope"); + for (Map.Entry<String, Object> entry : attributes.entrySet()) { + VelocityUtil.setAttribute(context, request, + servletContext, entry.getKey(), entry.getValue(), + scope); + } + return true; + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/ImportAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,51 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.Attribute; +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.DefaultAttributeResolver; +import org.apache.tiles.template.InsertAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; + +public class InsertAttributeDirective extends BlockDirective { + + private InsertAttributeModel model = new InsertAttributeModel( + new DefaultAttributeResolver()); + + @Override + public String getName() { + return "tiles_insertAttribute"; + } + + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getComposeStack(request), ServletUtil.getCurrentContainer(request, + servletContext), VelocityUtil.toSimpleBoolean((Boolean) params + .get("ignore"), false), context, request, response, + writer); + } + + public void start(InternalContextAdapter context, + Writer writer, Map<String, Object> params, + HttpServletRequest request, HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request), ServletUtil.getCurrentContainer(request, + servletContext), VelocityUtil.toSimpleBoolean((Boolean) params + .get("ignore"), false), (String) params + .get("preparer"), (String) params.get("role"), params + .get("defaultValue"), (String) params.get("defaultValueRole"), + (String) params.get("defaultValueType"), (String) params + .get("name"), (Attribute) params.get("value"), context, + request, response); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,45 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.InsertDefinitionModel; +import org.apache.velocity.context.InternalContextAdapter; + +public class InsertDefinitionDirective extends BlockDirective { + + private InsertDefinitionModel model = new InsertDefinitionModel(); + + @Override + public String getName() { + return "tiles_insertDefinition"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getCurrentContainer(request, + servletContext), (String) params.get("name"), (String) params + .get("template"), (String) params.get("templateType"), + (String) params.get("templateExpression"), (String) params + .get("role"), (String) params.get("preparer"), context, + request, response, writer); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getCurrentContainer(request, + servletContext), context, request, response); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertDefinitionDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,45 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.InsertTemplateModel; +import org.apache.velocity.context.InternalContextAdapter; + +public class InsertTemplateDirective extends BlockDirective { + + private InsertTemplateModel model = new InsertTemplateModel(); + + @Override + public String getName() { + return "tiles_insertTemplate"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getCurrentContainer(request, servletContext), + (String) params.get("template"), (String) params + .get("templateType"), (String) params + .get("templateExpression"), + (String) params.get("role"), (String) params.get("preparer"), + context, request, response, writer); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getCurrentContainer(request, servletContext), + context, request, response); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/InsertTemplateDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,45 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.PutAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; + +public class PutAttributeDirective extends BodyBlockDirective { + + private PutAttributeModel model = new PutAttributeModel(); + + @Override + public String getName() { + return "tiles_putAttribute"; + } + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, String body, + HttpServletRequest request, HttpServletResponse response, + ServletContext servletContext) throws IOException { + model.end(ServletUtil.getCurrentContainer(request, servletContext), + ServletUtil.getComposeStack(request), (String) params.get("name"), params.get("value"), + (String) params.get("expression"), body, (String) params + .get("role"), (String) params.get("type"), VelocityUtil + .toSimpleBoolean((Boolean) params.get("cascade"), false), + context, request, response, writer); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request)); + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL Added: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java URL: http://svn.apache.org/viewvc/tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java?rev=900938&view=auto ============================================================================== --- tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java (added) +++ tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java Tue Jan 19 20:04:59 2010 @@ -0,0 +1,46 @@ +package org.apache.tiles.velocity.template; + +import java.io.IOException; +import java.io.Writer; +import java.util.Map; + +import javax.servlet.ServletContext; +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; + +import org.apache.tiles.servlet.context.ServletUtil; +import org.apache.tiles.template.PutListAttributeModel; +import org.apache.tiles.velocity.context.VelocityUtil; +import org.apache.velocity.context.InternalContextAdapter; + +public class PutListAttributeDirective extends BlockDirective { + + private PutListAttributeModel model = new PutListAttributeModel(); + + @Override + public void end(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) + throws IOException { + model.end(ServletUtil.getCurrentContainer(request, servletContext), + ServletUtil.getComposeStack(request), (String) params + .get("name"), VelocityUtil.toSimpleBoolean( + (Boolean) params.get("cascade"), false), + context, request, response); + } + + @Override + public void start(InternalContextAdapter context, Writer writer, + Map<String, Object> params, HttpServletRequest request, + HttpServletResponse response, ServletContext servletContext) { + model.start(ServletUtil.getComposeStack(request), (String) params + .get("role"), VelocityUtil.toSimpleBoolean((Boolean) params + .get("inherit"), false)); + } + + @Override + public String getName() { + return "tiles_putListAttribute"; + } + +} Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java ------------------------------------------------------------------------------ svn:eol-style = native Propchange: tiles/framework/trunk/tiles-velocity/src/main/java/org/apache/tiles/velocity/template/PutListAttributeDirective.java ------------------------------------------------------------------------------ svn:keywords = Date Author Id Revision HeadURL
