Hi, I'm just getting started with Tapestry5, and very impressed so far. I have a zone on my page containing a grid component that takes about 20 seconds to calculate the contents of. I don't want the loading of the page to hang while this occurs, so I initially have the contents of the zone hidden by an "if" component associated with a boolean property for the visibility, and have the "get" method for the grid contents conditionally returning null when the property is set to false. To calculate the contents and display the zone I have an actionlink that changes the boolean property and returns the zone body.
The toggling works fine, but what I would like to do is display a message on the page as soon as the actionlink is clicked saying that the load is in progress (at the moment there is no visible change for 20s), and then this message should go away when the zone appears. Is there a way to do this? Also, I would appreciate any insights into whether there is a better way to do this... >From the tml: <t:actionlink t:id="toggleDomains" zone="domainsZone">Domains</t:actionlink> <t:zone t:id="domainsZone"> <t:if test="domainsVisible"> <t:grid source="domains" rowsPerPage="15"/> </t:if> </t:zone> >From the page class: @Persist @Property private boolean domainsVisible; @InjectComponent private Zone domainsZone; Zone onActionFromToggleDomains() { domainsVisible = domainsVisible ? false : true; return domainsZone; } public List<Domain> getDomains() { if(domainsVisible) { return retrieveDomainList(); } else { return null; } } Thanks for all the interesting discussion and tips. David