You are viewing a plain text version of this content. The canonical link for it is here.
Posted to users@tapestry.apache.org by membersound <me...@web.de> on 2012/10/29 14:41:52 UTC

Render whole table grid row as a link?

Hi,

is it possible to just make a whole row of a table grid clickable?
I know how to apply a t:pagelink to the text of a specific entry. But for
this the link is only executed if I click on the text directly. How can I
just click somewhere on that row?

Or is this ever possible?
Thanks



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
When tapestry starts, it lists the registered components and mixins... Is the
mixin listed in the logs?
Do you have other custom components that are working?
Does the mixin code live inside the webapp?
Or is the mixin part of a component library?
(http://tapestry.apache.org/component-libraries.html)
Have you given tapestry the info it needs to be able to find the mixin (ie
the basepackage)



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717514.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
Well, I'm sure you're a smart guy and can figure out how to get the tbody.
The mixin will fire after the grid component has rendered. The grid renders
a table inside a div so you will need to do something like:

List<Node> topChildren =  writer.getElement().getChildren(); 
Element div = (Element) topChildren.get(topChildren.size() - 1); 
Element tbody = div.find("table/tbody"); 



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717909.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by membersound <me...@web.de>.
Hmm I'm still stuck with a NPE @ List<Node> children = tbody.getChildren();
Which means tbody is null. But why?

org.apache.tapestry5.internal.services.RenderQueueException
Render queue error in AfterRender[admin/Page:mygrid]:
org.apache.tapestry5.ioc.internal.util.TapestryException

java.lang.NullPointerException:
mixins.RowEvent.afterRender(RowEvent.java:43) 
mixins.RowEvent.afterRender(RowEvent.java) 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderPhase.invokeComponent(ComponentPageElementImpl.java:375) 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:143) 
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderPhase.render(ComponentPageElementImpl.java:385) 
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72) 
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124) 
$PageRenderQueue_966117cd9015.render(Unknown Source) 
$PageRenderQueue_966117cd900e.render(Unknown Source) 
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37) 
org.apache.tapestry5.beanvalidator.BeanValidatorModule$2.renderMarkup(BeanValidatorModule.java:119) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1994) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1978) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1960) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1945) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1931) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.got5.tapestry5.jquery.services.js.JSModule$1.renderMarkup(JSModule.java:40) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1913) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1894) 
$MarkupRenderer_966117cd9019.renderMarkup(Unknown Source) 
$MarkupRenderer_966117cd9014.renderMarkup(Unknown Source) 
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47) 
$PageMarkupRenderer_966117cd9012.renderPageMarkup(Unknown Source) 
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67) 
$PageResponseRenderer_966117cd8fd6.renderPageResponse(Unknown Source) 
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64) 
org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2222) 
$PageRenderRequestHandler_966117cd8fd8.handle(Unknown Source) 
$PageRenderRequestHandler_966117cd8f8a.handle(Unknown Source) 
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48) 
org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47) 
$ComponentRequestHandler_966117cd8f8b.handlePageRender(Unknown Source) 
$ComponentRequestFilter_966117cd8f88.handlePageRender(Unknown Source) 
$ComponentRequestHandler_966117cd8f8b.handlePageRender(Unknown Source) 
$ComponentRequestHandler_966117cd8f56.handlePageRender(Unknown Source) 
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45) 
$Dispatcher_966117cd8f59.dispatch(Unknown Source) 
$Dispatcher_966117cd8f51.dispatch(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302) 
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
$RequestFilter_966117cd8f4d.service(Unknown Source) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105) 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95) 
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85) 
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119) 
$RequestHandler_966117cd8f52.service(Unknown Source) 
$RequestHandler_966117cd8f44.service(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253) 
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53) 
$HttpServletRequestHandler_966117cd8f46.service(Unknown Source) 
org.apache.tapestry5.upload.internal.services.MultipartServletRequestFilter.service(MultipartServletRequestFilter.java:44) 
$HttpServletRequestHandler_966117cd8f46.service(Unknown Source) 
org.got5.tapestry5.jquery.services.AjaxUploadServletRequestFilter.service(AjaxUploadServletRequestFilter.java:26) 
$HttpServletRequestHandler_966117cd8f46.service(Unknown Source) 
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62) 
$HttpServletRequestFilter_966117cd8f42.service(Unknown Source) 
$HttpServletRequestHandler_966117cd8f46.service(Unknown Source) 
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852) 
$HttpServletRequestHandler_966117cd8f46.service(Unknown Source) 
$HttpServletRequestHandler_966117cd8f3f.service(Unknown Source) 
org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171) 
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243) 
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210) 
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222) 
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123) 
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) 
org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45) 
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472) 
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168) 
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99) 
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929) 
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118) 
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407) 
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002) 
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585) 
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312) 
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110) 
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603) 
java.lang.Thread.run(Thread.java:722) 




--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717893.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
Well.... the code I gave you was untested.... you could do a bit of debugging
yourself ;)

List<Node> topChildren =  writer.getElement().getChildren();
Element div = (Element) topChildren.get(topChildren.size() - 1);
Element tbody = div.find("tbody");




--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717521.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by membersound <me...@web.de>.
Close... but:

[ERROR] admin.UserProfilePage Render queue error in
AfterRender[admin/UserProfilePage:grid]:
org.apache.tapestry5.ioc.internal.util.TapestryException
org.apache.tapestry5.ioc.internal.util.TapestryException [at
classpath:admin/UserProfilePage.tml, line 9]
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:153)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderPhase.render(ComponentPageElementImpl.java:385)
	at
org.apache.tapestry5.internal.services.RenderQueueImpl.run(RenderQueueImpl.java:72)
	at
org.apache.tapestry5.internal.services.PageRenderQueueImpl.render(PageRenderQueueImpl.java:124)
	at $PageRenderQueue_12e596b699f8a.render(Unknown Source)
	at $PageRenderQueue_12e596b699f89.render(Unknown Source)
	at
org.apache.tapestry5.internal.services.MarkupRendererTerminator.renderMarkup(MarkupRendererTerminator.java:37)
	at
org.apache.tapestry5.beanvalidator.BeanValidatorModule$2.renderMarkup(BeanValidatorModule.java:119)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$31.renderMarkup(TapestryModule.java:1994)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$30.renderMarkup(TapestryModule.java:1978)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$29.renderMarkup(TapestryModule.java:1960)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$28.renderMarkup(TapestryModule.java:1945)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$27.renderMarkup(TapestryModule.java:1931)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$26.renderMarkup(TapestryModule.java:1913)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$25.renderMarkup(TapestryModule.java:1894)
	at $MarkupRenderer_12e596b699f8d.renderMarkup(Unknown Source)
	at $MarkupRenderer_12e596b699f88.renderMarkup(Unknown Source)
	at
org.apache.tapestry5.internal.services.PageMarkupRendererImpl.renderPageMarkup(PageMarkupRendererImpl.java:47)
	at $PageMarkupRenderer_12e596b699f86.renderPageMarkup(Unknown Source)
	at
org.apache.tapestry5.internal.services.PageResponseRendererImpl.renderPageResponse(PageResponseRendererImpl.java:67)
	at $PageResponseRenderer_12e596b699f82.renderPageResponse(Unknown Source)
	at
org.apache.tapestry5.internal.services.PageRenderRequestHandlerImpl.handle(PageRenderRequestHandlerImpl.java:64)
	at
org.apache.tapestry5.services.TapestryModule$38.handle(TapestryModule.java:2222)
	at $PageRenderRequestHandler_12e596b699f84.handle(Unknown Source)
	at $PageRenderRequestHandler_12e596b699eed.handle(Unknown Source)
	at
org.apache.tapestry5.internal.services.ComponentRequestHandlerTerminator.handlePageRender(ComponentRequestHandlerTerminator.java:48)
	at
security.AuthenticationFilter.handlePageRender(AuthenticationFilter.java:70)
	at $ComponentRequestFilter_12e596b699eeb.handlePageRender(Unknown Source)
	at $ComponentRequestHandler_12e596b699eee.handlePageRender(Unknown Source)
	at
org.apache.tapestry5.services.InitializeActivePageName.handlePageRender(InitializeActivePageName.java:47)
	at $ComponentRequestHandler_12e596b699eee.handlePageRender(Unknown Source)
	at $ComponentRequestHandler_12e596b699ea9.handlePageRender(Unknown Source)
	at
org.apache.tapestry5.internal.services.PageRenderDispatcher.dispatch(PageRenderDispatcher.java:45)
	at $Dispatcher_12e596b699eac.dispatch(Unknown Source)
	at $Dispatcher_12e596b699ea6.dispatch(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$RequestHandlerTerminator.service(TapestryModule.java:302)
	at services.AppModule$1.service(AppModule.java:125)
	at $RequestFilter_12e596b699ea5.service(Unknown Source)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.RequestErrorFilter.service(RequestErrorFilter.java:26)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$3.service(TapestryModule.java:902)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$2.service(TapestryModule.java:892)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.StaticFilesFilter.service(StaticFilesFilter.java:90)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:105)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter$2.invoke(CheckForUpdatesFilter.java:95)
	at
org.apache.tapestry5.ioc.internal.util.ConcurrentBarrier.withRead(ConcurrentBarrier.java:85)
	at
org.apache.tapestry5.internal.services.CheckForUpdatesFilter.service(CheckForUpdatesFilter.java:119)
	at $RequestHandler_12e596b699ea7.service(Unknown Source)
	at $RequestHandler_12e596b699e9b.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$HttpServletRequestHandlerTerminator.service(TapestryModule.java:253)
	at
org.apache.tapestry5.internal.gzip.GZipFilter.service(GZipFilter.java:53)
	at $HttpServletRequestHandler_12e596b699e9d.service(Unknown Source)
	at
org.apache.tapestry5.internal.services.IgnoredPathsFilter.service(IgnoredPathsFilter.java:62)
	at $HttpServletRequestFilter_12e596b699e99.service(Unknown Source)
	at $HttpServletRequestHandler_12e596b699e9d.service(Unknown Source)
	at
org.apache.tapestry5.services.TapestryModule$1.service(TapestryModule.java:852)
	at $HttpServletRequestHandler_12e596b699e9d.service(Unknown Source)
	at $HttpServletRequestHandler_12e596b699e98.service(Unknown Source)
	at org.apache.tapestry5.TapestryFilter.doFilter(TapestryFilter.java:171)
	at
org.apache.catalina.core.ApplicationFilterChain.internalDoFilter(ApplicationFilterChain.java:243)
	at
org.apache.catalina.core.ApplicationFilterChain.doFilter(ApplicationFilterChain.java:210)
	at
org.apache.catalina.core.StandardWrapperValve.invoke(StandardWrapperValve.java:222)
	at
org.apache.catalina.core.StandardContextValve.invoke(StandardContextValve.java:123)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at org.apache.tomee.catalina.OpenEJBValve.invoke(OpenEJBValve.java:45)
	at
org.apache.catalina.authenticator.AuthenticatorBase.invoke(AuthenticatorBase.java:472)
	at
org.apache.catalina.core.StandardHostValve.invoke(StandardHostValve.java:168)
	at
org.apache.catalina.valves.ErrorReportValve.invoke(ErrorReportValve.java:99)
	at
org.apache.catalina.valves.AccessLogValve.invoke(AccessLogValve.java:929)
	at
org.apache.catalina.core.StandardEngineValve.invoke(StandardEngineValve.java:118)
	at
org.apache.catalina.connector.CoyoteAdapter.service(CoyoteAdapter.java:407)
	at
org.apache.coyote.http11.AbstractHttp11Processor.process(AbstractHttp11Processor.java:1002)
	at
org.apache.coyote.AbstractProtocol$AbstractConnectionHandler.process(AbstractProtocol.java:585)
	at
org.apache.tomcat.util.net.JIoEndpoint$SocketProcessor.run(JIoEndpoint.java:312)
	at
java.util.concurrent.ThreadPoolExecutor.runWorker(ThreadPoolExecutor.java:1110)
	at
java.util.concurrent.ThreadPoolExecutor$Worker.run(ThreadPoolExecutor.java:603)
	at java.lang.Thread.run(Thread.java:722)
Caused by: java.lang.NullPointerException
	at mixins.RowEvent.afterRender(RowEvent.java:36)
	at mixins.RowEvent.afterRender(RowEvent.java)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AfterRenderPhase.invokeComponent(ComponentPageElementImpl.java:375)
	at
org.apache.tapestry5.internal.structure.ComponentPageElementImpl$AbstractPhase.invoke(ComponentPageElementImpl.java:143)
	... 87 more




--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717519.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
Tapestry is interpreting the event as a property on your page. Change the
default binding prefix for the property to LITERAL:

@Parameter(required=true, defaultPrefix=BindingConstants.LITERAL) 
private String event; 



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717515.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by membersound <me...@web.de>.
OK i placed it in the mixins package, and /now/ Tapestry complains about
missing rowEvent class :(



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717513.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
> where do I have to place the mixin? I placed it into /components.
Mixins must live in basepackage.mixins
(http://tapestry.apache.org/component-mixins.html)

> RowType is the object that is displayed in the grid? Eg
> onRowClick(UserProfile user)?
Correct, it is the collection type backing the grid

> I implemented it that way, but rowclicks are not recognized at all.
I'm assuming you are at the stage where tapestry is complaining about a
missing mixin named "rowEvent"?



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717510.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by membersound <me...@web.de>.
Could you provide more input on that?
This looks great, but cannot get it working.

-where do I have to place the mixin? I placed it into /components.
-RowType is the object that is displayed in the grid? Eg
onRowClick(UserProfile user)?

I implemented it that way, but rowclicks are not recognized at all.



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717506.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
Something like this:

@MixinAfter
public class RowEvent {
	@InjectContainer
	private Grid grid;
	
	@Inject
	private JavaScriptSupport jss;
	
	@Inject
	private ComponentResources componentResrouces;
	
	@Parameter(required=true)
	private String event;
	
	public void afterRender(MarkupWriter writer) {
		GridDataSource dataSource = grid.getDataSource();
		Element tbody = writer.getElement().find("tbody");
		List<Node> children = tbody.getChildren();
		for (int i = 0; i < children.size(); ++i) {
			Element tr = (Element) children.get(i);
			String rowId = jss.allocateClientId("row");
			
			// give each row an id
			tr.attribute("id", rowId); 
			
			// this will be passed as a parameter to the serverside event
			Object rowContext = dataSource.getRowValue(i);
			
			// this event will bubble up to the containing page / component
			Link eventLink = componentResrouces.createEventLink(event, rowContext);
			
			// observe the 'click' event and fire the eventlink
			jss.addScript("Event.observe('%s', 'click', function() {
window.location.href = '%s' })", rowId, eventLink);
		}
	}
}

Usage:
<t:grid source="..." mixins="rowEvent" event="rowClicked">

public void onRowClicked(RowType rowContext) {
   // do stuff
}



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717399.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Configurable site navigation menu?

Posted by John <jo...@quivinco.com>.
This looks like just what I need.

Is there any example showing an associated page class, can I include this in a Layout class so it goes on all pages? That would rock.

John
  ----- Original Message ----- 
  From: Emmanuel DEMEY 
  To: Tapestry users 
  Sent: Tuesday, October 30, 2012 2:06 PM
  Subject: Re: Configurable site navigation menu?


  Hi,

  You can maybe have a look to the Tapestry5-jQuery Superfish Component :
  http://tapestry5-jquery.com/components/docssuperfish

  Manu

  2012/10/30 John <jo...@quivinco.com>

  > Is there a dynamic and configurable tapestry menu component? Perhaps using
  > a standard JavaScript library.
  >
  > I'm dreading creating a JavaScript based solution and then hacking at it
  > with tapestry, and that would not be 100% dynamic because I'd create a
  > complete menu using a web design package.
  >
  > John




  -- 
  Emmanuel DEMEY
  Ingénieur Etude et Développement
  ATOS Worldline
  +33 (0)6 47 47 42 02
  demey.emmanuel@gmail.com
  http://emmanueldemey.fr/

  Twitter : @EmmanuelDemey

Re: Configurable site navigation menu?

Posted by John <jo...@quivinco.com>.
I didn't get this result!


I put this in my Layout.tml
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

<title>${title}</title>

<link href="/layout/superfish.css" rel="stylesheet" type="text/css"/>

</head>



In the rendered page the new css link appears at the top of the list above component css:

<head><meta content="Apache Tapestry Framework (version 5.3.6)" name="generator"/><meta content="text/html; charset=utf-8" http-equiv="content-type"/><title>TapestryDemo Index</title><link type="text/css" rel="stylesheet" href="/layout/superfish.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/default.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/themes/ui-lightness/jquery-ui-1.8.19.custom.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/ctx/layout/layout.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-console.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-alerts.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tree.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/css/superfish.css"/><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/tap-jquery/tapestry.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery_core/jquery-1.7.2.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.position.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.widget.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.effects.core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery.json-2.2.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.effects.highlight.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery.effects.show.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/underscore_1_3_3.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-spi.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-init.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-pubsub.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-events.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-dom-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-console-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-ajax-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-formfragment.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-alerts-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/tapestry-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-console.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-tree-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-messages.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/hoverIntent.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/jquery.bgiframe.min.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/superfish.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/supersubs.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/mySuperfish.js" type="text/javascript"></script></head>

  ----- Original Message ----- 
  From: Thiago H de Paula Figueiredo 
  To: Tapestry users 
  Sent: Tuesday, October 30, 2012 4:17 PM
  Subject: Re: Configurable site navigation menu?


  On Tue, 30 Oct 2012 14:14:21 -0200, John <jo...@quivinco.com> wrote:

  > This was really great.
  >
  > I just dropped the code into my Layout class and added the dependencies.  
  > I can't see how to customize the css though? I presume it's burried in a  
  > jar. Is there a best approach to change the default style?

  Ordinary (as in "the same as without Tapestry") CSS overriding. Just add  
  your CSS file in your Layout.tml and it will be placed after the component  
  CSS.

  -- 
  Thiago H. de Paula Figueiredo

  ---------------------------------------------------------------------
  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
  For additional commands, e-mail: users-help@tapestry.apache.org

Re: Configurable site navigation menu?

Posted by John <jo...@quivinco.com>.
I didn't get this result!


I put this in my Layout.tml
<head>

<meta http-equiv="content-type" content="text/html; charset=utf-8"/>

<title>${title}</title>

<link href="/layout/superfish.css" rel="stylesheet" type="text/css"/>

</head>



In the rendered page the new css link appears at the top of the list above component css:

<head><meta content="Apache Tapestry Framework (version 5.3.6)" name="generator"/><meta content="text/html; charset=utf-8" http-equiv="content-type"/><title>TapestryDemo Index</title><link type="text/css" rel="stylesheet" href="/layout/superfish.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/default.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/themes/ui-lightness/jquery-ui-1.8.19.custom.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/ctx/layout/layout.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-console.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-alerts.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tree.css"/><link type="text/css" rel="stylesheet" href="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/css/superfish.css"/><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/tap-jquery/tapestry.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery_core/jquery-1.7.2.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.position.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.ui.widget.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.effects.core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery.json-2.2.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/ui_1_8_19/jquery.effects.highlight.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/jquery.effects.show.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/underscore_1_3_3.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-core.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-spi.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-init.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-pubsub.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-events.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-dom-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-console-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-ajax-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/t5-formfragment.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-alerts-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/tapestry-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-console.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/t5-tree-jquery.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/core/tapestry-messages.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/hoverIntent.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/jquery.bgiframe.min.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/superfish.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/supersubs.js" type="text/javascript"></script><script src="/TapestryDemo/assets/1.0-SNAPSHOT-DEV/jquery/assets/components/superfish/js/mySuperfish.js" type="text/javascript"></script></head>

  ----- Original Message ----- 
  From: Thiago H de Paula Figueiredo 
  To: Tapestry users 
  Sent: Tuesday, October 30, 2012 4:17 PM
  Subject: Re: Configurable site navigation menu?


  On Tue, 30 Oct 2012 14:14:21 -0200, John <jo...@quivinco.com> wrote:

  > This was really great.
  >
  > I just dropped the code into my Layout class and added the dependencies.  
  > I can't see how to customize the css though? I presume it's burried in a  
  > jar. Is there a best approach to change the default style?

  Ordinary (as in "the same as without Tapestry") CSS overriding. Just add  
  your CSS file in your Layout.tml and it will be placed after the component  
  CSS.

  -- 
  Thiago H. de Paula Figueiredo

  ---------------------------------------------------------------------
  To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
  For additional commands, e-mail: users-help@tapestry.apache.org

Re: Configurable site navigation menu?

Posted by Thiago H de Paula Figueiredo <th...@gmail.com>.
On Tue, 30 Oct 2012 14:14:21 -0200, John <jo...@quivinco.com> wrote:

> This was really great.
>
> I just dropped the code into my Layout class and added the dependencies.  
> I can't see how to customize the css though? I presume it's burried in a  
> jar. Is there a best approach to change the default style?

Ordinary (as in "the same as without Tapestry") CSS overriding. Just add  
your CSS file in your Layout.tml and it will be placed after the component  
CSS.

-- 
Thiago H. de Paula Figueiredo

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Configurable site navigation menu?

Posted by John <jo...@quivinco.com>.
This was really great.

I just dropped the code into my Layout class and added the dependencies. I can't see how to customize the css though? I presume it's burried in a jar. Is there a best approach to change the default style?

many thanks,
John
  ----- Original Message ----- 
  From: Emmanuel DEMEY 
  To: Tapestry users 
  Sent: Tuesday, October 30, 2012 2:06 PM
  Subject: Re: Configurable site navigation menu?


  Hi,

  You can maybe have a look to the Tapestry5-jQuery Superfish Component :
  http://tapestry5-jquery.com/components/docssuperfish

  Manu

  2012/10/30 John <jo...@quivinco.com>

  > Is there a dynamic and configurable tapestry menu component? Perhaps using
  > a standard JavaScript library.
  >
  > I'm dreading creating a JavaScript based solution and then hacking at it
  > with tapestry, and that would not be 100% dynamic because I'd create a
  > complete menu using a web design package.
  >
  > John




  -- 
  Emmanuel DEMEY
  Ingénieur Etude et Développement
  ATOS Worldline
  +33 (0)6 47 47 42 02
  demey.emmanuel@gmail.com
  http://emmanueldemey.fr/

  Twitter : @EmmanuelDemey

Re: Configurable site navigation menu?

Posted by Emmanuel DEMEY <de...@gmail.com>.
Hi,

You can maybe have a look to the Tapestry5-jQuery Superfish Component :
http://tapestry5-jquery.com/components/docssuperfish

Manu

2012/10/30 John <jo...@quivinco.com>

> Is there a dynamic and configurable tapestry menu component? Perhaps using
> a standard JavaScript library.
>
> I'm dreading creating a JavaScript based solution and then hacking at it
> with tapestry, and that would not be 100% dynamic because I'd create a
> complete menu using a web design package.
>
> John




-- 
Emmanuel DEMEY
Ingénieur Etude et Développement
ATOS Worldline
+33 (0)6 47 47 42 02
demey.emmanuel@gmail.com
http://emmanueldemey.fr/

Twitter : @EmmanuelDemey

Configurable site navigation menu?

Posted by John <jo...@quivinco.com>.
Is there a dynamic and configurable tapestry menu component? Perhaps using a standard JavaScript library.

I'm dreading creating a JavaScript based solution and then hacking at it with tapestry, and that would not be 100% dynamic because I'd create a complete menu using a web design package.

John

Re: breadcrumb trail component

Posted by Dimitris Zenios <di...@gmail.com>.
https://bitbucket.org/zenios/tapestry-zbreadcrumbs/wiki/Home

On Mon, Oct 29, 2012 at 5:13 PM, Chris Cureau <cm...@gmail.com> wrote:
> https://github.com/argoyle/tapestry-breadcrumbs
>
> On Mon, Oct 29, 2012 at 10:10 AM, John <jo...@quivinco.com> wrote:
>
>> Hi,
>>
>> Is there a component to display a breadcrumb trail at the top of a page so
>> users can navigate site structure they have followed?
>>
>> John

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: breadcrumb trail component

Posted by Chris Cureau <cm...@gmail.com>.
https://github.com/argoyle/tapestry-breadcrumbs

On Mon, Oct 29, 2012 at 10:10 AM, John <jo...@quivinco.com> wrote:

> Hi,
>
> Is there a component to display a breadcrumb trail at the top of a page so
> users can navigate site structure they have followed?
>
> John

breadcrumb trail component

Posted by John <jo...@quivinco.com>.
Hi,

Is there a component to display a breadcrumb trail at the top of a page so users can navigate site structure they have followed?

John

Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
This might be best handled by a mixin to the grid. The mixin would:
1. Add an id to each row in the html table markup
2. Generate an event URL for each row using
ComponentResources.createEventLink();
3. Attach an observer to each row (using the row id) which listens to the
"click" event and fires the event URL.



--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717393.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org


Re: Render whole table grid row as a link?

Posted by Lance Java <la...@googlemail.com>.
I've just written a GridDecorator mixin that allows you to decorate rows or
cells in a grid. The code can be found here:
https://github.com/uklance/tapestry-stitch/blob/master/src/main/java/org/lazan/t5/stitch/mixins/GridDecorator.java

A demo can be found here with examples for RowDecorator and CellDecorator:
https://github.com/uklance/tapestry-stitch-demo/blob/master/src/main/java/org/lazan/t5/stitch/demo/pages/GridDecoratorDemo.java
https://github.com/uklance/tapestry-stitch-demo/blob/master/src/main/resources/org/lazan/t5/stitch/demo/pages/GridDecoratorDemo.tml

Cheers,
Lance.






--
View this message in context: http://tapestry.1045711.n5.nabble.com/Render-whole-table-grid-row-as-a-link-tp5717388p5717913.html
Sent from the Tapestry - User mailing list archive at Nabble.com.

---------------------------------------------------------------------
To unsubscribe, e-mail: users-unsubscribe@tapestry.apache.org
For additional commands, e-mail: users-help@tapestry.apache.org