Skip to content

Instantly share code, notes, and snippets.

@uklance
uklance / LazyTreeModel.java
Last active December 18, 2015 14:18
A more database friendly TreeModel implementation
public class LazyTreeModel<T> implements TreeModel<T> {
private final ValueEncoder<T> encoder;
private final LazyTreeModelSource<T> source;
public LazyTreeModel<T>(ValueEncoder<T> encoder, LazyTreeModelSource<T> source) {
this.encoder = encoder;
this.source = source;
}
@Override
@uklance
uklance / AppModule.java
Last active December 17, 2015 08:49
Create a hibernate / lucene FullTextSession service that can be @Inject'ed into your tapestry pages and services
@Scope(ScopeConstants.PERTHREAD)
public static FullTextSession buildFullTextSession(PropertyShadowBuilder propertyShadowBuilder) {
return Search.getFullTextSession(sessionManager.getSession());
}
@uklance
uklance / Tab.java
Last active December 11, 2015 22:58
TabGroup tapestry component for use with twitter-bootstrap CSS.
package mypackage.components;
import javax.inject.Inject;
import org.apache.tapestry5.BindingConstants;
import org.apache.tapestry5.ComponentResources;
import org.apache.tapestry5.annotations.Parameter;
import org.apache.tapestry5.annotations.SetupRender;
import org.apache.tapestry5.services.Request;
import mypackage.TabModel;
@uklance
uklance / AssertCommand.java
Last active August 29, 2015 14:15
sproc-unit thoughts
@Events({Event.SCENARIO_THEN, Event.SCENARIO_AFTER})
public class AssertCommand {
@Parameter(requiredGroup="value")
private String sql;
@Parameter(name="attribute", requiredGroup="value")
private String attributeName;
@Parameter(name="expected", required=true)
private String expectedString;
@uklance
uklance / Page.tml
Last active August 29, 2015 14:08
Tapestry - Render body in parallel
<t:parallel>
<t:someComponent />
</t:parallel>
[INFO] +- org.apache.tapestry:tapestry-core:jar:5.4-beta-22:compile
[INFO] | +- org.antlr:antlr-runtime:jar:3.5.2:compile
[INFO] | +- commons-codec:commons-codec:jar:1.5:compile
[INFO] | +- org.apache.tapestry:tapestry-json:jar:5.4-beta-22:compile
[INFO] | \- org.apache.tapestry:tapestry-ioc:jar:5.4-beta-22:compile
[INFO] | +- org.apache.tapestry:tapestry5-annotations:jar:5.4-beta-22:compile
[INFO] | +- org.apache.tapestry:plastic:jar:5.4-beta-22:compile
[INFO] | +- javax.inject:javax.inject:jar:1:compile
[INFO] | \- org.apache.tapestry:tapestry-func:jar:5.4-beta-22:compile
[INFO] +- com.google.code:sitemapgen4j:jar:1.0.1:compile
public class FileBean {
private UploadedFile file;
public void setUploadedFile(UploadedFile file) {
this.file = file;
}
public UploadedFile getUploadedFile() {
return file;
}
@uklance
uklance / MyPage.java
Last active August 29, 2015 14:06
Dynamic template usage
public class MyPage {
@Inject
private DynamicTemplateParser parser;
public DynamicTemplate getMyDynamicTemplate() {
// if you want this to come from a string you might need to
// implement a StringResource by extending AbstractResource
Resource resource = new ClasspathResource("path/to/some-template.tml");
return parser.parseTemplate(resource);
}
@uklance
uklance / BlockContainer.java
Last active August 29, 2015 14:05
Tapestry5 Dialog Avoiding Nested Forms
public interface BlockContainer {
void addBlock(Block block);
}