Modified: websites/production/tapestry/content/component-cheat-sheet.html
==============================================================================
--- websites/production/tapestry/content/component-cheat-sheet.html (original)
+++ websites/production/tapestry/content/component-cheat-sheet.html Tue Nov  8 
12:22:26 2016
@@ -44,18 +44,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Cheat Sheet</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Cheat Sheet</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -67,91 +62,55 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>&#160;</p><p>This is a summary 
of the more common annotations and methods you can add to Tapestry pages and 
component classes.</p><div class="aui-label" style="float:right" title="Related 
Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-parameters.html">Component 
Parameters</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="templating-and-markup-faq.html">Templating 
and Markup FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-classes.html">Component Classes</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-reference.html">Component 
Reference</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-libraries.html">Component 
Libraries</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="page-and-component-classes-faq.html">Page 
And Component Classes FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-templates.html">Component 
Templates</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>For an exhaustive list, see the <a  
href="annotations.html">annotations list</a>.</p><h2 
id="ComponentCheatSheet-FieldInjectionAnnotations">Field Injection 
Annotations</h2><p>Main articles: <a  href="component-classes.html">Component 
Classes</a>, <a  href="injection.html">Injection</a>, <a  
href="annotations.html">Annotations</a></p><h3 
id="ComponentCheatSheet-@Inject">@Inject</h3><p>@Inject is the Swiss Army knife 
of annotations; it's designed to connect your component to services, resources, 
and other objects. See <a  href="injection.html">Injection</a>.</p><h4 
id="ComponentCheatSheet-ServiceInjection">Service Injection</h4><p>In most 
cases, the injected value is a service; the service is located by type. If 
there are ambiguities, caused by multiple services implementing the same 
interface, you'll see injection exceptions. You can resolve those exceptions by 
adding marker annotations to select a specific service, or by adding @Service 
to specify the specific service ID yo
 u want.</p><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Use of @Service is discouraged. If 
marker annotations are available, that is preferred.</p></div></div><h3 
id="ComponentCheatSheet-@InjectComponent">@InjectComponent</h3><p>Injects a 
component from this component's template into this component's class. Injecting 
a component is based on the component's ID, which should match the field name. 
However, the value attribute of the @InjectComponent annotation can be 
specified as well, this takes precedence over the field name.</p><p>It is 
common to inject a component in order to obtain its client-side ID (used when 
generating client-side JavaScript).</p><h3 
id="ComponentCheatSheet-@InjectContainer">@InjectContainer</h3><p>Injects the 
container of a component or, when used in a mixin, injects the component t
 he mixin is attached to.</p><h3 
id="ComponentCheatSheet-@InjectPage">@InjectPage</h3><p>Injects a page of the 
application. Normally, the page to inject is identified based on the field 
type. The value attribute can be specified, in which case the page to be 
injected is identified by name.</p><h3 
id="ComponentCheatSheet-@Environmental">@Environmental</h3><p>Injects an <a  
href="environmental-services.html">environmental object</a>; such objects are 
request scoped but may be overridden at any time using the methods of the 
Environment service. Environmental objects are used to allow outer components 
to communicate with components they enclose.</p><p>Most often, @Environmental 
is used with type JavaScriptSupport, which is used to add JavaScript code and 
libraries to the rendered page.</p><h2 
id="ComponentCheatSheet-FieldBehaviorAnnotations">Field Behavior 
Annotations</h2><p>Main articles: <a  href="component-classes.html">Component 
Classes</a>, <a  href="annotations.html">Annotations</a
 ></p><h3 
 >id="ComponentCheatSheet-@PageActivationContext">@PageActivationContext</h3><p>This
 > annotation is allowed on a <em>single</em> field; the value of the field 
 >will be included in URLs for the page as the page's activation context. This 
 >is an alternative to implementing event handler methods<br clear="none"> for 
 >the activate and passivate events directly.</p><h3 
 >id="ComponentCheatSheet-@Parameter">@Parameter</h3><p>Marks the field as a 
 >component parameter. Attributes of the annotation allow the parameter to be 
 >marked as required or optional. If the parameter value will typically be a 
 >literal string (for example, the title parameter to a Layout component), you 
 >should add <code>defaultPrefix=BindingConstants.LITERAL</code> to the 
 >annotation so that users of the component won't have to use the "literal:" 
 >binding prefix with the parameter. See <a  
 >href="component-parameters.html">Component Parameters</a></p><h3 
 >id="ComponentCheatSheet-@Persist">@Persist</h3><p>Marks the field as a 
 persistent value, one that maintains its value between requests. The default 
<em>strategy</em> is to simply store the value in the session (which is created 
as needed). Other strategies can be specified by name as the value attribute. 
See <a  href="persistent-page-data.html">Persistent Page Data</a>.</p><h3 
id="ComponentCheatSheet-@Property">@Property</h3><p>Directs Tapestry to 
automatically generate a getter and a setter for the field, converting it to a 
JavaBeans property than can be referenced from the template.</p><h3 
id="ComponentCheatSheet-@SessionState">@SessionState</h3><p>Marks the field as 
a Session State Object (SSO). SSOs store global data, and can be injected into 
any page or component. The SSOs are stored in the session, using a key based on 
the Java type. SSOs are usually created on demand, but the <code>create</code> 
attribute can turn this off. See <a  href="session-storage.html">Session 
Storage</a></p><h3 id="ComponentCheatSheet-@SessionAttribute">@SessionAttribute
 </h3><p>In Tapestry 5.2 and later, marks the field as a Session Attribute. 
Like Session State Objects (SSO), a Session Attribute is stored in the session, 
however Session Attributes are stored by using a name you choose rather than 
based on the Java type. See <a  href="session-storage.html">Session 
Storage</a>.</p><h3 
id="ComponentCheatSheet-@ActivationRequestParameter">@ActivationRequestParameter</h3><p>Fields
 with this annotation will be encoded into URLs as query parameters, in much 
the same way as data is encoded into the URL path. The query parameter name 
matches the field name, unless the value attribute is specified.</p><h2 
id="ComponentCheatSheet-MethodAnnotations">Method Annotations</h2><p>Main 
articles: <a  href="component-classes.html">Component Classes</a>, <a  
href="annotations.html">Annotations</a></p><h3 
id="ComponentCheatSheet-@OnEvent">@OnEvent</h3><p>Marks a method as an event 
handler method. Such methods may have any visibility, and typically use package 
private v
 isibility (that is, no visibility keyword at all). By default, the method will 
handle the action event from any component; the value attribute controls the 
matched event, and the component annotation is used to limit the event 
source.</p><p>An event handler method may take parameters, corresponding the 
event context associated with the event, such as the page activation context 
for the activate event. The method will not be invoked if it defines more 
parameters than there are values in the context.</p><p>The @RequestParameter 
annotation can be used on parameters, in which case the parameters value comes 
from a request query parameter, and not from the event context.</p><p>Events 
fired on a component bubble up the component's container. Return a non-null 
value to cancel event bubbling. What values may be returned from an event 
handler method is dependent on the type of event.</p><p>You may also return 
true to indicate that the event is handled and bubbling should cancel (even for 
eve
 nts that do not permit a return value).</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>An alternative to @OnEvent is the 
naming convention <code>on</code><em>EventName</em> or 
<code>on</code><em>EventName</em><code>From</code><em>ComponentId</em>.</p></div></div><h3
 id="ComponentCheatSheet-@Log">@Log</h3><p>Marks the method to be logged for 
debugging purposes: method entry (with parameters) and exit (with return value) 
will be logged at debug level, as will any thrown exception. This is primarily 
for debugging purposes. The Logger name will match the component classes' fully 
qualified class name.</p><h3 
id="ComponentCheatSheet-@CommitAfter">@CommitAfter</h3><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning confluence-info
 rmation-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The support for this annotation 
comes from the <a  href="hibernate.html">tapestry-hibernate</a> module or 
tapestry-jpa module.</p></div></div><h3 
id="ComponentCheatSheet-@Cached">@Cached</h3><p>Used on methods that perform 
expensive operations, such as database queries. The first time such a method is 
invoked, the return value is cached. Future invocations of the same method 
return the cached value.</p><p>The result cache is per-request and is discarded 
at the end of the request.</p><p>@Cached only works on methods that take no 
parameters.</p><h2 id="ComponentCheatSheet-ParameterAnnotations">Parameter 
Annotations</h2><p>Main article: <a  href="component-parameters.html">Component 
Parameters</a></p><h3 
id="ComponentCheatSheet-@RequestParameter">@RequestParameter</h3><p>Used with 
event handler methods to get the value for the parameter from a request query 
parameter.</p><h2 id="ComponentCheatSheet-TypeAnnotat
 ions">Type Annotations</h2><h3 
id="ComponentCheatSheet-@Events">@Events</h3><p>Lists the names of events that 
may be fired from within this component; used for documentation purposes 
only.</p><h3 id="ComponentCheatSheet-@Import">@Import</h3><p>Allows JavaScript 
libraries and CSS stylesheet files to be included in the rendered page. Each 
such file is added to the page only once, in the order in which the page 
renders.</p><p>It is allowed to use symbol expansions (with the 
<code>${...</code>} syntax) inside a library or stylesheet path.</p><p>@Import 
may also be applied to individual methods, in which case the import operation 
only occurs when the method is invoked.</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When specifying a file to import, 
you'll often use the prefix <code>context:</code> to indicate
  that the file is stored in the web application context, and not on the 
classpath. Relative paths will be on the classpath, relative to the Java 
class.</p></div></div><h3 
id="ComponentCheatSheet-@SupportsInformalParameters">@SupportsInformalParameters</h3><p>Marks
 the component as allowing informal parameters (extra attributes in the 
template that do not match formally declared parameters). Normally, informal 
parameters are simply discarded.</p><p>The method 
ComponentResources.renderInformalParameters() can be used to include the 
informal parameters within the element rendered by your component.</p><h3 
id="ComponentCheatSheet-@Secure">@Secure</h3><p>Marks the page as accessible 
only via secure (HTTPs). Any attempt to access the page via standard HTTP will 
be redirected to the HTTPs version.</p><p>By default, the @Secure annotation is 
ignored in development mode and only active in production mode.</p><h2 
id="ComponentCheatSheet-RenderPhaseMethods">Render Phase Methods</h2><p>Main art
 icle: <a  href="component-rendering.html">Component Rendering</a></p><p>Render 
phase methods are close cousins to event handler methods; they are how Tapestry 
integrates your code into the overall rendering of the page. For each render 
phase, there's an annotation and corresponding naming convention to define a 
render phase method:</p><div class="table-wrap"><table 
class="confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Annotation</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>General Use</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>@SetupRender</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>setupRender()</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Initializes the component before 
rendering</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@BeginRender</p></td><td colspan="1" rowspan="1" 
class="con
 fluenceTd"><p>beginRender()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Renders the element and primary attributes of the 
component</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@AfterRender</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>afterRender()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Closes the element started in 
beginRender()</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@CleanupRender</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>cleanupRender()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Performs cleanup after all rendering of the component 
finishes</p></td></tr></tbody></table></div><p>Render phase methods either take 
no parameters, or take a single parameter of type MarkupWriter.</p><p>Render 
phase methods may return <code>void</code>, a <code>boolean</code>, or a 
<em>renderable object</em>.</p><div class="confluence-information-macro 
confluence-in
 formation-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Generally, a <code>renderable 
object</code> is a <a  class="external-link" 
href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/Block.html";>Block</a>
 or a component. The object is pushed onto the stack of rendering operations, 
temporarily replacing the current component as the object to be 
rendered.</p></div></div><p>Returning true is the same as returning void; it 
means that the component should follow the typical 
flow:</p><ul><li>@SetupRender</li><li>@BeginRender</li><li>Render the 
component's template, if any</li><li>Render the component's 
body</li><li>@AfterRender</li><li>@CleanupRender</li></ul><p>If a component has 
a template, the component's body will only render if the template contains a 
&lt;t:body&gt; element. If a component has no template, then it will always 
render its body (between @Begi
 nRender and @AfterRender).</p><p>A render phase method may also return false, 
in which case the flow continues to an alternate render phase, as per the chart 
in the <a  href="component-rendering.html">Component Rendering</a> reference 
page.</p><p>The most common cases:</p><ul><li>return <code>false</code> from 
@BeginRender to skip the rendering of the component's template and/or body, and 
continue with @AfterRender</li><li>return <code>false</code> from @AfterRender 
to return to @BeginRender (this is used in component, such as 
<code>Loop</code>, that render themselves multiple times)</li></ul><h2 
id="ComponentCheatSheet-PageLifeCycleMethods">Page Life Cycle 
Methods</h2><p>Main article: <a  href="page-life-cycle.html">Page Life 
Cycle</a></p><p>Pages have a life cycle and this is represented by a 
<em>third</em> set of annotations or method naming conventions. Life cycle 
methods may appear on a page or any component of a page.</p><div 
class="table-wrap"><table class="confluenceTable"><
 tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Annotation</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>@PageLoaded</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>pageLoaded()</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The page instance has been loaded but not 
yet attached for the first time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@PageAttached</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>pageAttached()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The page is being used within a particular request. 
This occurs before the activate event.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>@PageReset</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>pageReset()</p></td><td colspan="1" rowspa
 n="1" class="confluenceTd"><p>See notes below.</p></td></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>@PageDetached</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>pageDetached()</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>End of request 
notification.</p></td></tr></tbody></table></div><p>Page life cycle methods may 
be any visibility. They must take no parameters and return void.</p><p>Page 
life cycle methods are of lower importance starting in Tapestry 5.2, since page 
instances are now shared across threads, rather than pooled.</p><p>The 
@PageReset life cycle is new in Tapestry 5.2. It will be invoked on a page 
render request when linked to from some other page of the application. This is 
to allow the page to reset its state, if any, when a user returns to the page 
from some other part of the application.</p><h2 
id="ComponentCheatSheet-ConfiguringAnnotations">Configuring 
Annotations</h2><p>The SymbolProvider service has two interfaces : Fac
 toryDefaults and ApplicationDefaults. Tapestry provides 2 annotations in order 
to define which implementation you want to override in your AppModule 
:&#160;</p><ul><li><p>@FactoryDefaults</p><div class="code panel pdl" 
style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>AppModule with 
@FactoryDefaults</b></div><div class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p>&#160;</p><p>This is a summary 
of the more common annotations and methods you can add to Tapestry pages and 
component classes.</p><div class="aui-label" style="float:right" title="Related 
Articles"><h3>Related Articles</h3><ul class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-parameters.html">Component Parameters</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="templating-and-markup-faq.html">Templating and Markup FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-classes.html">Component Classes</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-reference.html">Component Reference</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-libraries.html">Component Libraries</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="page-and-component-classes-faq.html">Page And Component Classes 
FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-templates.html">Component Templates</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-cheat-sheet.html">Component Cheat Sheet</a> 
+  </div> </li></ul></div><p>For an exhaustive list, see the <a  
href="annotations.html">annotations list</a>.</p><h2 
id="ComponentCheatSheet-FieldInjectionAnnotations">Field Injection 
Annotations</h2><p>Main articles: <a  href="component-classes.html">Component 
Classes</a>, <a  href="injection.html">Injection</a>, <a  
href="annotations.html">Annotations</a></p><h3 
id="ComponentCheatSheet-@Inject">@Inject</h3><p>@Inject is the Swiss Army knife 
of annotations; it's designed to connect your component to services, resources, 
and other objects. See <a  href="injection.html">Injection</a>.</p><h4 
id="ComponentCheatSheet-ServiceInjection">Service Injection</h4><p>In most 
cases, the injected value is a service; the service is located by type. If 
there are ambiguities, caused by multiple services implementing the same 
interface, you'll see injection exceptions. You can resolve those exceptions by 
adding marker annotations to select a specific service, or by adding @Service 
to specify the spe
 cific service ID you want.</p><div class="confluence-information-macro 
confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Use of @Service is discouraged. If 
marker annotations are available, that is preferred.</p></div></div><h3 
id="ComponentCheatSheet-@InjectComponent">@InjectComponent</h3><p>Injects a 
component from this component's template into this component's class. Injecting 
a component is based on the component's ID, which should match the field name. 
However, the value attribute of the @InjectComponent annotation can be 
specified as well, this takes precedence over the field name.</p><p>It is 
common to inject a component in order to obtain its client-side ID (used when 
generating client-side JavaScript).</p><h3 
id="ComponentCheatSheet-@InjectContainer">@InjectContainer</h3><p>Injects the 
container of a component or, when used in a mixin, inje
 cts the component the mixin is attached to.</p><h3 
id="ComponentCheatSheet-@InjectPage">@InjectPage</h3><p>Injects a page of the 
application. Normally, the page to inject is identified based on the field 
type. The value attribute can be specified, in which case the page to be 
injected is identified by name.</p><h3 
id="ComponentCheatSheet-@Environmental">@Environmental</h3><p>Injects an <a  
href="environmental-services.html">environmental object</a>; such objects are 
request scoped but may be overridden at any time using the methods of the 
Environment service. Environmental objects are used to allow outer components 
to communicate with components they enclose.</p><p>Most often, @Environmental 
is used with type JavaScriptSupport, which is used to add JavaScript code and 
libraries to the rendered page.</p><h2 
id="ComponentCheatSheet-FieldBehaviorAnnotations">Field Behavior 
Annotations</h2><p>Main articles: <a  href="component-classes.html">Component 
Classes</a>, <a  href="annotations.h
 tml">Annotations</a></p><h3 
id="ComponentCheatSheet-@PageActivationContext">@PageActivationContext</h3><p>This
 annotation is allowed on a <em>single</em> field; the value of the field will 
be included in URLs for the page as the page's activation context. This is an 
alternative to implementing event handler methods<br clear="none"> for the 
activate and passivate events directly.</p><h3 
id="ComponentCheatSheet-@Parameter">@Parameter</h3><p>Marks the field as a 
component parameter. Attributes of the annotation allow the parameter to be 
marked as required or optional. If the parameter value will typically be a 
literal string (for example, the title parameter to a Layout component), you 
should add <code>defaultPrefix=BindingConstants.LITERAL</code> to the 
annotation so that users of the component won't have to use the "literal:" 
binding prefix with the parameter. See <a  
href="component-parameters.html">Component Parameters</a></p><h3 
id="ComponentCheatSheet-@Persist">@Persist</h3><p>Ma
 rks the field as a persistent value, one that maintains its value between 
requests. The default <em>strategy</em> is to simply store the value in the 
session (which is created as needed). Other strategies can be specified by name 
as the value attribute. See <a  href="persistent-page-data.html">Persistent 
Page Data</a>.</p><h3 
id="ComponentCheatSheet-@Property">@Property</h3><p>Directs Tapestry to 
automatically generate a getter and a setter for the field, converting it to a 
JavaBeans property than can be referenced from the template.</p><h3 
id="ComponentCheatSheet-@SessionState">@SessionState</h3><p>Marks the field as 
a Session State Object (SSO). SSOs store global data, and can be injected into 
any page or component. The SSOs are stored in the session, using a key based on 
the Java type. SSOs are usually created on demand, but the <code>create</code> 
attribute can turn this off. See <a  href="session-storage.html">Session 
Storage</a></p><h3 id="ComponentCheatSheet-@SessionAttribute
 ">@SessionAttribute</h3><p>In Tapestry 5.2 and later, marks the field as a 
Session Attribute. Like Session State Objects (SSO), a Session Attribute is 
stored in the session, however Session Attributes are stored by using a name 
you choose rather than based on the Java type. See <a  
href="session-storage.html">Session Storage</a>.</p><h3 
id="ComponentCheatSheet-@ActivationRequestParameter">@ActivationRequestParameter</h3><p>Fields
 with this annotation will be encoded into URLs as query parameters, in much 
the same way as data is encoded into the URL path. The query parameter name 
matches the field name, unless the value attribute is specified.</p><h2 
id="ComponentCheatSheet-MethodAnnotations">Method Annotations</h2><p>Main 
articles: <a  href="component-classes.html">Component Classes</a>, <a  
href="annotations.html">Annotations</a></p><h3 
id="ComponentCheatSheet-@OnEvent">@OnEvent</h3><p>Marks a method as an event 
handler method. Such methods may have any visibility, and typically us
 e package private visibility (that is, no visibility keyword at all). By 
default, the method will handle the action event from any component; the value 
attribute controls the matched event, and the component annotation is used to 
limit the event source.</p><p>An event handler method may take parameters, 
corresponding the event context associated with the event, such as the page 
activation context for the activate event. The method will not be invoked if it 
defines more parameters than there are values in the context.</p><p>The 
@RequestParameter annotation can be used on parameters, in which case the 
parameters value comes from a request query parameter, and not from the event 
context.</p><p>Events fired on a component bubble up the component's container. 
Return a non-null value to cancel event bubbling. What values may be returned 
from an event handler method is dependent on the type of event.</p><p>You may 
also return true to indicate that the event is handled and bubbling should c
 ancel (even for events that do not permit a return value).</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>An alternative to @OnEvent is the 
naming convention <code>on</code><em>EventName</em> or 
<code>on</code><em>EventName</em><code>From</code><em>ComponentId</em>.</p></div></div><h3
 id="ComponentCheatSheet-@Log">@Log</h3><p>Marks the method to be logged for 
debugging purposes: method entry (with parameters) and exit (with return value) 
will be logged at debug level, as will any thrown exception. This is primarily 
for debugging purposes. The Logger name will match the component classes' fully 
qualified class name.</p><h3 
id="ComponentCheatSheet-@CommitAfter">@CommitAfter</h3><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warn
 ing confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>The support for this annotation 
comes from the <a  href="hibernate.html">tapestry-hibernate</a> module or 
tapestry-jpa module.</p></div></div><h3 
id="ComponentCheatSheet-@Cached">@Cached</h3><p>Used on methods that perform 
expensive operations, such as database queries. The first time such a method is 
invoked, the return value is cached. Future invocations of the same method 
return the cached value.</p><p>The result cache is per-request and is discarded 
at the end of the request.</p><p>@Cached only works on methods that take no 
parameters.</p><h2 id="ComponentCheatSheet-ParameterAnnotations">Parameter 
Annotations</h2><p>Main article: <a  href="component-parameters.html">Component 
Parameters</a></p><h3 
id="ComponentCheatSheet-@RequestParameter">@RequestParameter</h3><p>Used with 
event handler methods to get the value for the parameter from a request query 
parameter.</p><h2 id="ComponentChe
 atSheet-TypeAnnotations">Type Annotations</h2><h3 
id="ComponentCheatSheet-@Events">@Events</h3><p>Lists the names of events that 
may be fired from within this component; used for documentation purposes 
only.</p><h3 id="ComponentCheatSheet-@Import">@Import</h3><p>Allows JavaScript 
libraries and CSS stylesheet files to be included in the rendered page. Each 
such file is added to the page only once, in the order in which the page 
renders.</p><p>It is allowed to use symbol expansions (with the 
<code>${...</code>} syntax) inside a library or stylesheet path.</p><p>@Import 
may also be applied to individual methods, in which case the import operation 
only occurs when the method is invoked.</p><div 
class="confluence-information-macro confluence-information-macro-note"><span 
class="aui-icon aui-icon-small aui-iconfont-warning 
confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>When specifying a file to import, 
you'll often use the prefix <code>context:
 </code> to indicate that the file is stored in the web application context, 
and not on the classpath. Relative paths will be on the classpath, relative to 
the Java class.</p></div></div><h3 
id="ComponentCheatSheet-@SupportsInformalParameters">@SupportsInformalParameters</h3><p>Marks
 the component as allowing informal parameters (extra attributes in the 
template that do not match formally declared parameters). Normally, informal 
parameters are simply discarded.</p><p>The method 
ComponentResources.renderInformalParameters() can be used to include the 
informal parameters within the element rendered by your component.</p><h3 
id="ComponentCheatSheet-@Secure">@Secure</h3><p>Marks the page as accessible 
only via secure (HTTPs). Any attempt to access the page via standard HTTP will 
be redirected to the HTTPs version.</p><p>By default, the @Secure annotation is 
ignored in development mode and only active in production mode.</p><h2 
id="ComponentCheatSheet-RenderPhaseMethods">Render Phase Meth
 ods</h2><p>Main article: <a  href="component-rendering.html">Component 
Rendering</a></p><p>Render phase methods are close cousins to event handler 
methods; they are how Tapestry integrates your code into the overall rendering 
of the page. For each render phase, there's an annotation and corresponding 
naming convention to define a render phase method:</p><div 
class="table-wrap"><table class="confluenceTable"><tbody><tr><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Annotation</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>Method Name</p></th><th colspan="1" 
rowspan="1" class="confluenceTh"><p>General Use</p></th></tr><tr><td 
colspan="1" rowspan="1" class="confluenceTd"><p>@SetupRender</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>setupRender()</p></td><td 
colspan="1" rowspan="1" class="confluenceTd"><p>Initializes the component 
before rendering</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@BeginRender</p></td><td colspan="1" row
 span="1" class="confluenceTd"><p>beginRender()</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>Renders the element and primary attributes 
of the component</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@AfterRender</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>afterRender()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Closes the element started in 
beginRender()</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@CleanupRender</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>cleanupRender()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>Performs cleanup after all rendering of the component 
finishes</p></td></tr></tbody></table></div><p>Render phase methods either take 
no parameters, or take a single parameter of type MarkupWriter.</p><p>Render 
phase methods may return <code>void</code>, a <code>boolean</code>, or a 
<em>renderable object</em>.</p><div class="confluence-information-
 macro confluence-information-macro-note"><span class="aui-icon aui-icon-small 
aui-iconfont-warning confluence-information-macro-icon"></span><div 
class="confluence-information-macro-body"><p>Generally, a <code>renderable 
object</code> is a <a  class="external-link" 
href="http://tapestry.apache.org/5.4/apidocs/org/apache/tapestry5/Block.html";>Block</a>
 or a component. The object is pushed onto the stack of rendering operations, 
temporarily replacing the current component as the object to be 
rendered.</p></div></div><p>Returning true is the same as returning void; it 
means that the component should follow the typical 
flow:</p><ul><li>@SetupRender</li><li>@BeginRender</li><li>Render the 
component's template, if any</li><li>Render the component's 
body</li><li>@AfterRender</li><li>@CleanupRender</li></ul><p>If a component has 
a template, the component's body will only render if the template contains a 
&lt;t:body&gt; element. If a component has no template, then it will always 
render its 
 body (between @BeginRender and @AfterRender).</p><p>A render phase method may 
also return false, in which case the flow continues to an alternate render 
phase, as per the chart in the <a  href="component-rendering.html">Component 
Rendering</a> reference page.</p><p>The most common cases:</p><ul><li>return 
<code>false</code> from @BeginRender to skip the rendering of the component's 
template and/or body, and continue with @AfterRender</li><li>return 
<code>false</code> from @AfterRender to return to @BeginRender (this is used in 
component, such as <code>Loop</code>, that render themselves multiple 
times)</li></ul><h2 id="ComponentCheatSheet-PageLifeCycleMethods">Page Life 
Cycle Methods</h2><p>Main article: <a  href="page-life-cycle.html">Page Life 
Cycle</a></p><p>Pages have a life cycle and this is represented by a 
<em>third</em> set of annotations or method naming conventions. Life cycle 
methods may appear on a page or any component of a page.</p><div 
class="table-wrap"><table class=
 "confluenceTable"><tbody><tr><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Annotation</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Method Name</p></th><th colspan="1" rowspan="1" 
class="confluenceTh"><p>Description</p></th></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>@PageLoaded</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>pageLoaded()</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>The page instance has been loaded but not 
yet attached for the first time.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@PageAttached</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>pageAttached()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>The page is being used within a particular request. 
This occurs before the activate event.</p></td></tr><tr><td colspan="1" 
rowspan="1" class="confluenceTd"><p>@PageReset</p></td><td colspan="1" 
rowspan="1" class="confluenceTd"><p>pageReset()</p></td><td
  colspan="1" rowspan="1" class="confluenceTd"><p>See notes 
below.</p></td></tr><tr><td colspan="1" rowspan="1" 
class="confluenceTd"><p>@PageDetached</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>pageDetached()</p></td><td colspan="1" rowspan="1" 
class="confluenceTd"><p>End of request 
notification.</p></td></tr></tbody></table></div><p>Page life cycle methods may 
be any visibility. They must take no parameters and return void.</p><p>Page 
life cycle methods are of lower importance starting in Tapestry 5.2, since page 
instances are now shared across threads, rather than pooled.</p><p>The 
@PageReset life cycle is new in Tapestry 5.2. It will be invoked on a page 
render request when linked to from some other page of the application. This is 
to allow the page to reset its state, if any, when a user returns to the page 
from some other part of the application.</p><h2 
id="ComponentCheatSheet-ConfiguringAnnotations">Configuring 
Annotations</h2><p>The SymbolProvider service has t
 wo interfaces : FactoryDefaults and ApplicationDefaults. Tapestry provides 2 
annotations in order to define which implementation you want to override in 
your AppModule :&#160;</p><ul><li><p>@FactoryDefaults</p><div class="code panel 
pdl" style="border-width: 1px;"><div class="codeHeader panelHeader pdl" 
style="border-bottom-width: 1px;"><b>AppModule with 
@FactoryDefaults</b></div><div class="codeContent panelContent pdl">
 <pre class="brush: java; gutter: false; theme: Default" 
style="font-size:12px;">@Contribute(SymbolProvider.class)
 @FactoryDefaults
 public void setParam(MappedConfiguration&lt; String, String&gt; configuration){

Modified: websites/production/tapestry/content/component-classes.html
==============================================================================
--- websites/production/tapestry/content/component-classes.html (original)
+++ websites/production/tapestry/content/component-classes.html Tue Nov  8 
12:22:26 2016
@@ -45,7 +45,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-events-faq.html
==============================================================================
--- websites/production/tapestry/content/component-events-faq.html (original)
+++ websites/production/tapestry/content/component-events-faq.html Tue Nov  8 
12:22:26 2016
@@ -46,7 +46,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-events.html
==============================================================================
--- websites/production/tapestry/content/component-events.html (original)
+++ websites/production/tapestry/content/component-events.html Tue Nov  8 
12:22:26 2016
@@ -46,7 +46,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-libraries.html
==============================================================================
--- websites/production/tapestry/content/component-libraries.html (original)
+++ websites/production/tapestry/content/component-libraries.html Tue Nov  8 
12:22:26 2016
@@ -45,7 +45,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-mixins.html
==============================================================================
--- websites/production/tapestry/content/component-mixins.html (original)
+++ websites/production/tapestry/content/component-mixins.html Tue Nov  8 
12:22:26 2016
@@ -45,18 +45,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Mixins</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Mixins</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -68,64 +63,37 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>A <strong>Component 
Mixin</strong> is a way to supplement an existing Tapestry component with 
additional behavior.</p><div class="aui-label" style="float:right" 
title="Related Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="page-and-component-classes-faq.html">Page 
And Component Classes FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="legacy-javascript.html">Legacy JavaScript</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-templates.html">Component 
Templates</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-cheat-sheet.html">Component Cheat 
Sheet</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-parameters.html">Component 
Parameters</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>You can think of a mixin as a kind of mashup for a component; it 
combines the new behavior of the mixin with the existing behavior of the 
component, and bundles it all in one place. Mixins may be used to add 
specialized validation to user input fields, dynamically modify the HTML output 
of a component, or to add Ajax effects and behaviors of all sorts to 
components.</p><p>Tapestry comes with several mixins, such as the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete
 mixin</a> which adds autocomplete behavior to an ordinary TextField Component. 
In addition, you can easily create your own.</p><h2 
id="ComponentMixins-MixinClasses">Mixin Classes</h2><p>Mixin classes are stored 
in the <code>mixins</code> sub-package of your application, below the 
application (or library) root package. This parallels where your component and 
page classes are stored.</p><p>Other than that, mixin classes 
 are the same as any other component class.</p><h2 
id="ComponentMixins-MixinLimitations">Mixin Limitations</h2><p>Currently, 
mixins are allowed to do anything a component can do, including having 
parameters and render phase methods.</p><p>Mixins may not have a template. They 
integrate with the component strictly in terms of invoking render phase 
methods.</p><p>Mixins may have persistent fields, but currently, this is not 
implemented perfectly (there is a potential for a name clash between a mixin 
and the component or another mixin). Use persistent fields with mixins with 
care ... or better yet, delegate persistence to the container using 
parameters.</p><p>Mixins may not, themselves, have mixins.</p><h2 
id="ComponentMixins-UsingMixins">Using Mixins</h2><p>Mixins are used in two 
different scenarios: <em>Instance mixins</em> and <em>Implementation 
mixins</em>.</p><h3 id="ComponentMixins-InstanceMixins">Instance 
Mixins</h3><p>An instance mixin is a mixin applied to a specific <em>instanc
 e</em> of a component. This can be done in the <a  
href="component-templates.html">component template</a> with the 
<code>mixins</code> attribute of the component tag. This is a comma-separated 
list of mixin names.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
+                <div id="ConfluenceContent"><p>A <strong>Component 
Mixin</strong> is a way to supplement an existing Tapestry component with 
additional behavior.</p><div class="aui-label" style="float:right" 
title="Related Articles"><h3>Related Articles</h3><ul 
class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="page-and-component-classes-faq.html">Page And Component Classes 
FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="legacy-javascript.html">Legacy JavaScript</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-templates.html">Component Templates</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-cheat-sheet.html">Component Cheat Sheet</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-parameters.html">Component Parameters</a> 
+  </div> </li></ul></div><p>You can think of a mixin as a kind of mashup for a 
component; it combines the new behavior of the mixin with the existing behavior 
of the component, and bundles it all in one place. Mixins may be used to add 
specialized validation to user input fields, dynamically modify the HTML output 
of a component, or to add Ajax effects and behaviors of all sorts to 
components.</p><p>Tapestry comes with several mixins, such as the <a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/corelib/mixins/Autocomplete.html";>Autocomplete
 mixin</a> which adds autocomplete behavior to an ordinary TextField Component. 
In addition, you can easily create your own.</p><h2 
id="ComponentMixins-MixinClasses">Mixin Classes</h2><p>Mixin classes are stored 
in the <code>mixins</code> sub-package of your application, below the 
application (or library) root package. This parallels where your component and 
page classes are stored.</p><p>Other than t
 hat, mixin classes are the same as any other component class.</p><h2 
id="ComponentMixins-MixinLimitations">Mixin Limitations</h2><p>Currently, 
mixins are allowed to do anything a component can do, including having 
parameters and render phase methods.</p><p>Mixins may not have a template. They 
integrate with the component strictly in terms of invoking render phase 
methods.</p><p>Mixins may have persistent fields, but currently, this is not 
implemented perfectly (there is a potential for a name clash between a mixin 
and the component or another mixin). Use persistent fields with mixins with 
care ... or better yet, delegate persistence to the container using 
parameters.</p><p>Mixins may not, themselves, have mixins.</p><h2 
id="ComponentMixins-UsingMixins">Using Mixins</h2><p>Mixins are used in two 
different scenarios: <em>Instance mixins</em> and <em>Implementation 
mixins</em>.</p><h3 id="ComponentMixins-InstanceMixins">Instance 
Mixins</h3><p>An instance mixin is a mixin applied to a s
 pecific <em>instance</em> of a component. This can be done in the <a  
href="component-templates.html">component template</a> with the 
<code>mixins</code> attribute of the component tag. This is a comma-separated 
list of mixin names.</p><div class="code panel pdl" style="border-width: 
1px;"><div class="codeContent panelContent pdl">
 <pre class="brush: xml; gutter: false; theme: Default" 
style="font-size:12px;">&lt;t:textfield t:id="accountName" 
t:mixins="Autocomplete,DefaultFromCookie" /&gt;
 </pre>
 </div></div><p>Alternately, when the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Component.html";>Component</a>
 annotation is used to define the component type, you may specify the mixins in 
two ways:</p><ul><li>The @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Mixins.html";>Mixins</a>
 annotation allows a list of mixin names to be specified.</li><li>The @<a  
class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/MixinClasses.html";>MixinClasses</a>
 annotation allows a set of mixin classes to be specified 
directly.</li></ul><p>The former is often less verbose, and allows core mixins 
to be overridden with application-specific mixins. The later format is more 
specific and more refactor-safe (renaming a mixin class will rename the entry 
in the MixinClasses annotation as well).</p><p>Example:</p><div class="code pane
 l pdl" style="border-width: 1px;"><div class="codeContent panelContent pdl">

Modified: websites/production/tapestry/content/component-parameters.html
==============================================================================
--- websites/production/tapestry/content/component-parameters.html (original)
+++ websites/production/tapestry/content/component-parameters.html Tue Nov  8 
12:22:26 2016
@@ -46,7 +46,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
@@ -125,11 +125,11 @@
 </div></div><p>A component may have any number of parameters. Each parameter 
has a specific name, a specific Java type (which may be a primitive value), and 
may be <em>optional</em> or <em>required</em>.</p><p>Within a component class, 
parameters are declared by using the @<a  class="external-link" 
href="http://tapestry.apache.org/current/apidocs/org/apache/tapestry5/annotations/Parameter.html";>Parameter</a>
 annotation on a private field, as we'll see below.</p><p><span 
class="confluence-anchor-link" 
id="ComponentParameters-bindingparameters"></span></p><h1 
id="ComponentParameters-ParameterBindings">Parameter Bindings</h1><p>In 
Tapestry, a parameter is not a slot into which data is pushed: it is a 
<em>connection</em> between a field of the component (marked with the 
@Parameter annotation) and a property or resource of the component's container. 
(Components can be nested, so the container can be either the page or another 
component.)</p><div class="navmenu" style="float:right; backgr
 ound:white; margin:3px; padding:3px">
 <div class="panel" style="border-width: 1px;"><div class="panelHeader" 
style="border-bottom-width: 1px;"><b>Contents</b></div><div 
class="panelContent">
 <style type="text/css">/*<![CDATA[*/
-div.rbtoc1477588769065 {padding: 0px;}
-div.rbtoc1477588769065 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1477588769065 li {margin-left: 0px;padding-left: 0px;}
+div.rbtoc1478607652971 {padding: 0px;}
+div.rbtoc1478607652971 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1478607652971 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style><div class="toc-macro rbtoc1477588769065">
+/*]]>*/</style><div class="toc-macro rbtoc1478607652971">
 <ul class="toc-indentation"><li><a  
href="#ComponentParameters-ParameterBindings">Parameter Bindings</a></li><li><a 
 href="#ComponentParameters-BindingExpressions">Binding 
Expressions</a></li><li><a  
href="#ComponentParameters-@Parameterannotation">@Parameter 
annotation</a></li><li><a  
href="#ComponentParameters-Don'tusethe${...}syntax!">Don't use the ${...} 
syntax!</a></li><li><a  href="#ComponentParameters-InformalParameters">Informal 
Parameters</a></li><li><a  
href="#ComponentParameters-ParametersAreBi-Directional">Parameters Are 
Bi-Directional</a></li><li><a  
href="#ComponentParameters-InheritedParameterBindings">Inherited Parameter 
Bindings</a></li><li><a  
href="#ComponentParameters-ComputedParameterBindingDefaults">Computed Parameter 
Binding Defaults</a></li><li><a  
href="#ComponentParameters-UnboundParameters">Unbound Parameters</a></li><li><a 
 href="#ComponentParameters-ParameterTypeCoercion">Parameter Type 
Coercion</a></li><li><a  href="#ComponentParameters-ParameterNames">
 Parameter Names</a></li><li><a  
href="#ComponentParameters-DeterminingifBound">Determining if 
Bound</a></li><li><a  
href="#ComponentParameters-PublishingParameters">Publishing 
Parameters</a></li></ul>
 </div>
 </div></div></div>&#160;<p>The connection between a component and a property 
(or resource) of its container is called a <em>binding</em>. The binding is 
two-way: the component can read the bound property by reading its parameter 
field. Likewise, a component that updates its parameter field will update the 
bound property.</p><p>This is important in a lot of cases; for example a 
TextField component can read <em>and update</em> the property bound to its 
value parameter. It reads the value when rendering, but updates the value when 
the form is submitted.</p><p>The component listed below is a looping component; 
it renders its body a number of times, defined by its <code>start</code> and 
<code>end</code> parameters (which set the boundaries of the loop). The 
component can update a <code>result</code> parameter bound to a property of its 
container; it will automatically count up or down depending on whether 
<code>start</code> or <code>end</code> is larger.</p><div class="code panel 
pdl" st
 yle="border-width: 1px;"><div class="codeContent panelContent pdl">

Modified: websites/production/tapestry/content/component-reference.html
==============================================================================
--- websites/production/tapestry/content/component-reference.html (original)
+++ websites/production/tapestry/content/component-reference.html Tue Nov  8 
12:22:26 2016
@@ -36,18 +36,13 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav">
-<ul class="alternate"><li><a  href="index.html">Home</a></li><li><a  
href="getting-started.html">Getting Started</a></li><li><a  
href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul>
-</div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
-            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span>
-<form enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";>
-  <input type="text" name="q">
-  <input type="submit" value="Search">
-</form>
-
-</div><div class="emblem" style="float:left"><p><a  href="index.html"><span 
class="confluence-embedded-file-wrapper"><img class="confluence-embedded-image 
confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Reference</h1></div></div>
+            <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 
+ <input type="text" name="q"> 
+ <input type="submit" value="Search"> 
+</form></div><div class="emblem" style="float:left"><p><a  
href="index.html"><span class="confluence-embedded-file-wrapper"><img 
class="confluence-embedded-image confluence-external-resource" 
src="http://tapestry.apache.org/images/tapestry_small.png"; 
data-image-src="http://tapestry.apache.org/images/tapestry_small.png";></span></a></p></div><div
 class="title" style="float:left; margin: 0 0 0 3em"><h1 
id="SmallBanner-PageTitle">Component Reference</h1></div></div>
       <div class="clearer"></div>
       </div>
 
@@ -59,51 +54,30 @@
       </div>
 
       <div id="content">
-                <div id="ConfluenceContent"><p>Tapestry includes more than 65 
built-in components and mixins. In addition, there are hundreds of Tapestry 
components freely available from others. Of course, Tapestry makes it <a  
href="component-classes.html">trivially easy</a> to create your own custom 
components, so if you don't see what you need, just develop them 
yourself.</p><div class="aui-label" style="float:right" title="Related 
Articles">
-
-
-
-
-
-
-
-
-<h3>Related Articles</h3>
-
-<ul class="content-by-label"><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="templating-and-markup-faq.html">Templating 
and Markup FAQ</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-classes.html">Component Classes</a>
-                
-                        
-                    </div>
-    </li><li>
-        <div>
-                <span class="icon aui-icon aui-icon-small 
aui-iconfont-page-default" title="Page">Page:</span>        </div>
-
-        <div class="details">
-                        <a  href="component-parameters.html">Component 
Parameters</a>
-                
-                        
-                    </div>
-    </li></ul>
-</div><p>&#160;</p><p><strong>Contents</strong></p><p><style 
type="text/css">/*<![CDATA[*/
-div.rbtoc1456885284313 {padding: 0px;}
-div.rbtoc1456885284313 ul {list-style: disc;margin-left: 0px;}
-div.rbtoc1456885284313 li {margin-left: 0px;padding-left: 0px;}
+                <div id="ConfluenceContent"><p>Tapestry includes more than 65 
built-in components and mixins. In addition, there are hundreds of Tapestry 
components freely available from others. Of course, Tapestry makes it <a  
href="component-classes.html">trivially easy</a> to create your own custom 
components, so if you don't see what you need, just develop them 
yourself.</p><div class="aui-label" style="float:right" title="Related 
Articles"><h3>Related Articles</h3><ul class="content-by-label"><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="templating-and-markup-faq.html">Templating and Markup FAQ</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-classes.html">Component Classes</a> 
+  </div> </li><li> 
+  <div> 
+   <span class="icon aui-icon aui-icon-small aui-iconfont-page-default" 
title="Page">Page:</span> 
+  </div> 
+  <div class="details"> 
+   <a  href="component-parameters.html">Component Parameters</a> 
+  </div> 
</li></ul></div><p>&#160;</p><p><strong>Contents</strong></p><p><style 
type="text/css">/*<![CDATA[*/
+div.rbtoc1478607581117 {padding: 0px;}
+div.rbtoc1478607581117 ul {list-style: disc;margin-left: 0px;}
+div.rbtoc1478607581117 li {margin-left: 0px;padding-left: 0px;}
 
-/*]]>*/</style></p><div class="toc-macro rbtoc1456885284313">
+/*]]>*/</style></p><div class="toc-macro rbtoc1478607581117">
 <ul class="toc-indentation"><li><a  
href="#ComponentReference-Tapestry-providedComponents">Tapestry-provided 
Components</a>
 <ul class="toc-indentation"><li><a  
href="#ComponentReference-AJAX-specificComponents">AJAX-specific 
Components</a></li><li><a  
href="#ComponentReference-BeanDisplaying&amp;Editing">Bean Displaying &amp; 
Editing</a></li><li><a  
href="#ComponentReference-ConditionalandLoopingComponents">Conditional and 
Looping Components</a></li><li><a  
href="#ComponentReference-FormComponents">Form Components</a></li><li><a  
href="#ComponentReference-Grids,TablesandTrees">Grids, Tables and 
Trees</a></li><li><a  href="#ComponentReference-LinksandButtons">Links and 
Buttons</a></li><li><a  href="#ComponentReference-OutputandMessages">Output and 
Messages</a></li><li><a  
href="#ComponentReference-Miscellaneous">Miscellaneous</a></li></ul>
 </li><li><a  href="#ComponentReference-TapestryMixins">Tapestry 
Mixins</a></li><li><a  href="#ComponentReference-TapestryPages">Tapestry 
Pages</a></li><li><a  href="#ComponentReference-BaseComponents">Base 
Components</a></li><li><a  
href="#ComponentReference-OtherComponentLibraries">Other Component 
Libraries</a></li></ul>

Modified: websites/production/tapestry/content/component-rendering.html
==============================================================================
--- websites/production/tapestry/content/component-rendering.html (original)
+++ websites/production/tapestry/content/component-rendering.html Tue Nov  8 
12:22:26 2016
@@ -46,7 +46,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-report.html
==============================================================================
--- websites/production/tapestry/content/component-report.html (original)
+++ websites/production/tapestry/content/component-report.html Tue Nov  8 
12:22:26 2016
@@ -44,7 +44,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 

Modified: websites/production/tapestry/content/component-templates.html
==============================================================================
--- websites/production/tapestry/content/component-templates.html (original)
+++ websites/production/tapestry/content/component-templates.html Tue Nov  8 
12:22:26 2016
@@ -45,7 +45,7 @@
 
   <div class="wrapper bs">
 
-        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/";>Apache</a></li><li><a  class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
+        <div id="navigation"><div class="nav"><ul class="alternate"><li><a  
href="index.html">Home</a></li><li><a  href="getting-started.html">Getting 
Started</a></li><li><a  href="documentation.html">Documentation</a></li><li><a  
href="download.html">Download</a></li><li><a  
href="about.html">About</a></li><li><a  class="external-link" 
href="http://www.apache.org/licenses/LICENSE-2.0";>License</a></li><li><a  
href="community.html">Community</a></li><li><a  class="external-link" 
href="http://www.apache.org/security/";>Security</a></li><li><a  
class="external-link" href="http://www.apache.org/";>Apache</a></li><li><a  
class="external-link" 
href="http://www.apache.org/foundation/sponsorship.html";>Sponsorship</a></li><li><a
  class="external-link" 
href="http://www.apache.org/foundation/thanks.html";>Thanks</a></li></ul></div></div>
 
           <div id="top">
             <div id="smallbanner"><div class="searchbox" 
style="float:right;margin: .3em 1em .1em 1em"><span style="color: #999; 
font-size: 90%">Tapestry docs, issues, wikis &amp; blogs:</span><form 
enctype="application/x-www-form-urlencoded" method="get" 
action="http://tapestry.apache.org/search.html";> 


Reply via email to