blob: 4789eada5454701b3849821e63e0c50774cb7a00 [file] [log] [blame]
<document>
<body>
<section name="Examples">
<p>
In this example, we are showing how to trigger an event from the template of a page. When the following page is rendered
the both instances of the component Trigger publish an arbitrary event.
</p>
<subsection name="TriggerDemo.tml">
<source><![CDATA[
<html xmlns:t="http://tapestry.apache.org/schema/tapestry_5_1_0.xsd">
<body>
<h1>Trigger Demo</h1>
<p> ... </p>
<t:trigger event="addAdditionalScriptLinks"/>
<p> ... </p>
<t:trigger event="provideAdditionalMarkup"/>
</body>
</html>
]]></source>
<p>
Inside the handler method for the event <em>addAdditionalScriptLinks</em> we add a link to a JavaScript file.
The handler method for the event <em>provideAdditionalMarkup</em> provides some additional markup.
The MarkupWriter is passed as the event context.
</p>
</subsection>
<subsection name="TriggerDemo.java">
<source><![CDATA[
public class TriggerDemo
{
@Environmental
private JavaScriptSupport jsSupport;
@Inject @Path("context:js/scripts.js")
private Asset scripts;
public void onAddAdditionalScriptLinks()
{
jsSupport.importJavaScriptLibrary(scripts);
}
public void onProvideAdditionalMarkup(MarkupWriter writer)
{
writer.writeRaw("Hello.");
}
}
]]></source>
</subsection>
</section>
</body>
</document>