Skip to content

Instantly share code, notes, and snippets.

@davejsmith
Created December 28, 2012 21:47
Show Gist options
  • Star 1 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save davejsmith/4402251 to your computer and use it in GitHub Desktop.
Save davejsmith/4402251 to your computer and use it in GitHub Desktop.
package me.davesmith.t5samples.components;
import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.MarkupWriter;
import org.apache.tapestry5.annotations.*;
import org.apache.tapestry5.ioc.annotations.Inject;
@SupportsInformalParameters
public class Repeat<T> {
@Parameter(required = true, defaultPrefix = BindingConstants.LITERAL)
private Integer times;
private int count;
@Parameter(defaultPrefix = BindingConstants.LITERAL)
private String element;
String defaultElement() {
return resources.getElementName();
}
@Inject
private ComponentResources resources;
@SetupRender
boolean setup() {
count = 0;
return times > 0;
}
@BeginRender
void begin(MarkupWriter writer) {
count++;
if (element != null) {
writer.element(element);
resources.renderInformalParameters(writer);
}
}
@AfterRender
Boolean after(MarkupWriter writer) {
if (element != null) {
writer.end();
}
return count < times ? false : null;
}
}
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment