You are viewing a plain text version of this content. The canonical link for it is here.
Posted to dev@tapestry.apache.org by jk...@apache.org on 2006/07/15 18:57:31 UTC
svn commit: r422268 [3/5] - in /tapestry/tapestry4/trunk: src/documentation/
src/images/ src/site/ src/site/xdoc/components/ support/
tapestry-framework/src/documentation/content/xdocs/
tapestry-framework/src/documentation/content/xdocs/tapestry/Compon...
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/InsertText.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/InsertText.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/InsertText.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/InsertText.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,131 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>InsertText</title>
+ </properties>
+ <body>
+
+ <section name="InsertText">
+
+ <p>
+ Inserts multi-line text, breaking it into individual lines according to a mode.
+ Commonly used to properly display the data provided by a user via the
+ <a href="TextArea.html">TextArea</a>
+ component.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/html/InsertText.html">
+ org.apache.tapestry.html.InsertText
+ </a>
+ ,
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/html/InsertTextMode.html">
+ org.apache.tapestry.html.InsertTextMode
+ </a>
+ ,
+ <a href="TextArea.html">TextArea</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>value</td>
+ <td>string</td>
+ <td>in</td>
+ <td>yes</td>
+ <td></td>
+ <td>The multi-line string to render.</td>
+ </tr>
+
+ <tr>
+ <td>mode</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/html/InsertTextMode.html">
+ InsertTextMode
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td>BREAK</td>
+ <td>Controls how each line is rendered.</td>
+ </tr>
+
+ <tr>
+ <td>raw</td>
+ <td>boolean</td>
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+ If true, then output is not filtered for HTML entities. Used when the
+ value parameter contains markup that should be rendered as-is.
+ </td>
+ </tr>
+
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>forbidden</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>none</em>
+ </p>
+
+ <p>
+ The value parameter is split into multiple lines, and each line is printed. The
+ default
+ <em>mode</em>
+ renders a <br/> tag between lines (that is, before each line after the
+ first line output). The alternate mode renders <p> and </p> tags
+ around each line.
+ </p>
+ </section>
+
+ <p>
+ The OGNL expression
+ <code>@org.apache.tapestry.html.InsertTextMode@PARAGRAPH</code>
+ can be used to specify paragraph rendering mode.
+ </p>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/InsertText.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/InvokeListener.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/InvokeListener.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/InvokeListener.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/InvokeListener.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,115 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>InvokeListener</title>
+ </properties>
+ <body>
+
+ <section name="InvokeListener">
+
+ <p>
+ Invoke a listener during the render of the page. Parameters may be passed to the
+ listener.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/components/InvokeListener.html">
+ org.apache.tapestry.components.InvokeListener
+ </a>
+ ,
+ <a href="Delegator.html">Delegator</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>listener</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/IActionListener.html">
+ IActionListener
+ </a>
+ </td>
+ <td>in</td>
+ <td>yes</td>
+ <td></td>
+ <td>The listener to invoke.</td>
+ </tr>
+
+ <tr>
+ <td>parameters</td>
+ <td>Object</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ Parameter(s) gathered at the time the listener is invoked, supplied as
+ listener parameters in the IRequestCycle available to the listener.
+ <p>
+ If the parameter is a Collection, it will be converted to an Object
+ array (to match the IRequestCycle getListenerParameters()
+ signature).
+ </p>
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>forbidden</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>none</em>
+ </p>
+
+ <p>
+ This component does not render any output at all. The component is a placeholder
+ within the page or component template that marks a point where logic within the
+ Java class should be executed. A typical use of this is to setup properties
+ needed by components within the template, for example, to fetch an object from a
+ database so that other components may read or update its properties.
+ </p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/InvokeListener.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/LinkSubmit.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/LinkSubmit.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/LinkSubmit.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/LinkSubmit.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,172 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>LinkSubmit</title>
+ </properties>
+ <body>
+
+ <section name="LinkSubmit">
+
+ <p>
+ Creates a hyperlink that submits its enclosing form using a JavaScript function.
+ <br />
+ Pages incorporating a LinkSubmit component must also include a
+ <a href="Body.html">Body</a>
+ component.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/form/LinkSubmit.html">
+ org.apache.tapestry.form.LinkSubmit
+ </a>
+ ,
+ <a href="Form.html">Form</a>
+ ,
+ <a href="ImageSubmit.html">ImageSubmit</a>
+ ,
+ <a href="Submit.html">Submit</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>disabled</td>
+ <td>boolean</td>
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+ Controls whether the link is produced. If disabled, the portion of the
+ template the link surrounds is still rendered, but not the link itself.
+ </td>
+ </tr>
+ <tr>
+ <td>selected</td>
+ <td>Object</td>
+ <td>out</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ This parameter is bound to a property that is updated when the submit
+ button is clicked by the user. The property is updated to match the tag
+ parameter.
+ </td>
+ </tr>
+ <tr>
+ <td>tag</td>
+ <td>Object</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ Tag used with the selected parameter to indicate which Submit button on
+ a form was clicked.
+ </td>
+ </tr>
+ <tr>
+ <td>listener</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/IActionListener.html">
+ IActionListener
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ If specified, the listener is notified. This notification occurs as the
+ component is rewinded, i.e., prior to the Form's listener. In addition,
+ the selected property (if bound) will be updated before the listener is
+ notified.
+ </td>
+ </tr>
+ <tr>
+ <td>action</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/IActionListener.html">
+ IActionListener
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ A listener that is notified if this component is triggered just before
+ the form's listener, after all components enclosed by the Form have had
+ a chance to update their properties.
+ </td>
+ </tr>
+ <tr>
+ <td>parameters</td>
+ <td>Object</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ Parameter(s) gathered at the time the link is triggered, supplied as
+ listener parameters in the IRequestCycle available to the listener.
+ <p>
+ If the parameter is a Collection, it will be converted to an Object
+ array (to match the IRequestCycle getListenerParameters()
+ signature).
+ </p>
+ <p>
+ Allows deferred listeners (defer = true) access to any rewind state
+ not conveniently placed using tag/selected (e.g. when there are
+ multiple objects to select as might happen with a nested Foreach).
+ </p>
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>name, href</em>
+ </p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/LinkSubmit.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/Option.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Option.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Option.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Option.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,114 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>Option</title>
+ </properties>
+ <body>
+
+ <section name="Option">
+
+ <p>
+ A component that renders an HTML <option> form element. The Option component
+ must be wrapped by a
+ <a href="Select.html">Select</a>
+ component. For a fully worked example showing the Option component, please refer to
+ the
+ <a href="Select.html">Select</a>
+ documentation.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/form/Option.html">
+ org.apache.tapestry.form.Option
+ </a>
+ ,
+ <a href="Form.html">Form</a>
+ ,
+ <a href="PropertySelection.html">PropertySelection</a>
+ ,
+ <a href="Select.html">Select</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>selected</td>
+ <td>boolean</td>
+ <td>in-out</td>
+ <td>yes</td>
+ <td />
+ <td>Used to indicate whether the given option is selected.</td>
+ </tr>
+ <tr>
+ <td>label</td>
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+ A string which represents the option that may be selected. This is
+ optional; any text that follows the <option> tag is considered the
+ label, but this saves the designer from have to include one more
+ <a href="Insert.html">Insert</a>
+ component to display the option label.
+ </td>
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>Reserved parameters: value</p>
+
+ </section>
+
+ <section name="Examples">
+
+
+ <p>
+ Please see the documentation for the
+ <a href="Select.html">Select</a>
+ component.
+ </p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/Option.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/PageLink.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/PageLink.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/PageLink.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/PageLink.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,306 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>PageLink</title>
+ </properties>
+ <body>
+
+ <section name="PageLink">
+
+ <p>
+ Creates a HTML <a> hyperlink to another page within the application. The Page
+ component uses the PageService to construct the anchor's "href" URL.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/link/PageLink.html">
+ org.apache.tapestry.link.PageLink
+ </a>
+ ,
+ <a href="DirectLink.html">DirectLink</a>
+ ,
+ <a href="ExternalLink.html">ExternalLink</a>
+ ,
+ <a href="GenericLink.html">GenericLink</a>
+ ,
+ <a href="Rollover.html">Rollover</a>
+ ,
+ <a href="ServiceLink.html">ServiceLink</a>
+ </strong>
+
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>page</td>
+ <td>String</td>
+
+ <td>in</td>
+ <td>yes</td>
+ <td></td>
+ <td>The name of an application page to link to.</td>
+ </tr>
+ <tr>
+ <td>namespace</td>
+ <td>
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/INamespace.html">
+ INamespace
+ </a>
+ </td>
+
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ If specified, the namespace's prefix is prefixed (with a colon) to the
+ page name. This is primarily used when pages (or components) in a
+ namespace need to create links to other pages inside the same namespace
+ (this is only a concern for developers of component libraries, not
+ developers of applications).
+ </td>
+ </tr>
+ <tr>
+ <td>disable</td>
+ <td>boolean</td>
+
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+ Controls whether the link is produced. If disabled, the portion of the
+ template the link surrounds is still rendered, but not the link itself.
+ </td>
+ </tr>
+ <tr>
+ <td>anchor</td>
+
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ The name of an anchor or element to link to. The final URL will have '#'
+ and the anchor appended to it.
+ </td>
+ </tr>
+
+ <tr>
+ <td>scheme</td>
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ The required scheme ("http" or "https", typically) for the URL. This
+ will force the creation of an absolute URL when the current request's
+ scheme does not match the value for this parameter. This is most often
+ used to switch to "https" for secure portions of an application (such as
+ a login page), before switching back to standard "http" for the majority
+ of an application.
+ </td>
+ </tr>
+
+ <tr>
+ <td>port</td>
+ <td>Integer</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>
+ The required port (80, 443, 8080. 8443, typically) for the URL. This
+ will force the creation of an absolute URL when the current request's
+ scheme does not match the value for this parameter. This is most often
+ used in conjunction with scheme to switch to "https:443"/"https:8443"
+ for secure portions of an application (such as a login page), before
+ switching back to standard "http:80"/"http:80" for the majority of an
+ application.
+ </td>
+ </tr>
+
+ <tr>
+ <td>target</td>
+
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td></td>
+ </tr>
+ <tr>
+ <td>renderer</td>
+
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/link/ILinkRenderer.html">
+ ILinkRenderer
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td></td>
+ <td>The object which will actually render the link.</td>
+ </tr>
+ </table>
+
+
+ <p>
+ Body:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>href</em>
+
+ </p>
+
+ </section>
+
+ <section name="Examples">
+
+
+ <p>There are two PageLink components in our Home page: Page1 and Page2.</p>
+
+ <p>The Home.html:</p>
+ <source xml:space="preserve">
+...
+<a jwcid="@PageLink" page="Page1">go to Page1</a>
+<p> </p>
+<a jwcid="page2">go to Page2</a>
+...
+
+</source>
+
+ <p>The Home.page:</p>
+
+ <source xml:space="preserve">
+...
+<page-specification>
+ ...
+ <component id="page2" type="PageLink">
+ <binding name="page" value="literal:Page2"/>
+ </component>
+ ...
+</page-specification>
+
+</source>
+
+ <p>
+ Note: in the Home.page file, we use "literal" prefix when binding value of the
+ "page" parameter of "page2" component, because the default prefix in the
+ specification file is "ognl".
+ </p>
+
+
+ <p>Â </p>
+ <p>
+ <strong>Another example:</strong>
+ </p>
+ <p>
+
+ This example uses the PageLink component to create a navigation menu bar across
+ the top of the page. If the user is not authenticated, in their Visit object,
+ all the navigation bar links are disabled.
+ </p>
+ <p>
+ Typically you would create an navigation menu component, using the RenderBody
+ component. This navigation menu component would then be included as the first
+ element in all the application's pages.
+ </p>
+
+ <p>the html file:</p>
+ <source xml:space="preserve">
+<!-- Navigation Bar -->
+<table bgcolor="navy" cellpadding="8" cellspacing="6" width="100%">
+ <tr jwcid="@Foreach" source="ognl:engine@NAVIGATION_PAGES" value="ognl:navigationPage" element="tr">
+ <td><font color="white"><b><span jwcid="@PageLink" page="ognl:navigationPage" disabled="ognl:! visit.authenticated"/></b></font></td>
+ </tr>
+</table>
+
+</source>
+
+ <p>the application specification file:</p>
+
+ <source xml:space="preserve">
+...
+<application name="PageLink Examples">
+ <meta key="org.apache.tapestry.engine-class" value="MailEngine"/>
+ ...
+</application>
+
+</source>
+
+ <p>the page specification file:</p>
+ <source xml:space="preserve">
+...
+<page-specification class="MailPage">
+ <property name="navigationPage"/>
+ ...
+</page-specification>
+
+</source>
+
+ <p>the java class files:</p>
+
+ <source xml:space="preserve">
+public abstract class MailPage extends BasePage {
+ public abstract String getNavigationPage();
+}
+
+public class Visit implements Serializable {
+ private boolean authenticated;
+
+ public boolean isAuthenticated() { return authenticated; }
+
+ public void setAuthenticated(boolean value) {
+ authenticated = value;
+ }
+}
+
+public class MailEngine extends SimpleEngine implements Serializable {
+ public static final String[] NAVIGATION_PAGES =
+ { "Home", "Inbox", "Sent", "Compose", "Contacts", "Options", "Help", "Logout" };
+}
+
+</source>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/PageLink.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/PropertySelection.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/PropertySelection.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/PropertySelection.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/PropertySelection.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,385 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>PropertySelection</title>
+ </properties>
+ <body>
+
+ <section name="PropertySelection">
+
+ <p>
+ Creates form elements that allow a property of an object to be set from a drop-down
+ list.
+ </p>
+ <p>
+ Uses a
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/IPropertySelectionModel.html">
+ IPropertySelectionModel
+ </a>
+ to map between Java values that will be assigned, and textual labels that will
+ appear in the HTML response.
+ </p>
+ <p>
+ A useful property selection model is available (
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/StringPropertySelectionModel.html">
+ StringPropertySelectionModel
+ </a>
+ ). You can also create your own model, as illustrated in the examples below.
+ </p>
+ <p>
+ Note that complex value Objects need to properly implement the
+ <code>Object.equals()</code>
+ method if the correct initial item is to be displayed.
+ </p>
+
+ <p>
+ Informal parameters are applied to the <select> tag. To have greater control
+ over the <option> tags, you must use the
+ <a href="Select.html">Select</a>
+ and
+ <a href="Option.html">Option</a>
+ components.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/PropertySelection.html">
+ org.apache.tapestry.form.PropertySelection
+ </a>
+ ,
+ <a href="Select.html">Select</a>
+ ,
+ <a href="Option.html">Option</a>
+ ,
+ <a href="Radio.html">Radio</a>
+ ,
+ <a href="RadioGroup.html">RadioGroup</a>
+ ,
+ <a href="Form.html">Form</a>
+ ,
+ <a href="Script.html">Script</a>
+ </strong>
+
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>value</td>
+ <td>Object</td>
+
+ <td>in-out</td>
+ <td>yes</td>
+ <td />
+ <td>
+ The property to set. During rendering, this property is read, and sets
+ the default value of the selection (if it is null, no element is
+ selected). When the form is submitted, this property is updated based on
+ the new selection.
+ </td>
+ </tr>
+ <tr>
+
+ <td>model</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/IPropertySelectionModel.html">
+ IPropertySelectionModel
+ </a>
+ </td>
+ <td>in</td>
+ <td>yes</td>
+ <td />
+ <td>
+ The model provides a list of possible labels, and matches those labels
+ against possible values that can be assigned back to the property.
+ </td>
+
+ </tr>
+ <tr>
+ <td>disabled</td>
+ <td>boolean</td>
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+
+ <td>
+ Controls whether the <select> is active or not. A disabled
+ PropertySelection does not update its value parameter. Corresponds to
+ the "disabled" HTML attribute.
+ </td>
+ </tr>
+ <tr>
+ <td>submitOnChange (deprecated)</td>
+ <td>boolean</td>
+
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+ If true, then additional JavaScript is added to submit the containing
+ form when select is changed. Equivalent to specifying a JavaScript event
+ handler of
+ <code>this.form.submit()</code>
+ .
+ </td>
+ </tr>
+
+ <tr>
+ <td>displayName</td>
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+
+ The user-presentable name for the component, which will be used by a
+ <a href="site:FieldLabel">FieldLabel</a>
+ connected to the component.
+ </td>
+ </tr>
+ <tr>
+ <td>validators</td>
+ <td>
+ Array or collection of
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/validator/Validator.html">
+ Validator
+ </a>
+ , or
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/validator/Validator.html">
+ Validator
+ </a>
+ </td>
+ <td>in</td>
+
+ <td>no</td>
+ <td />
+ <td>The validators to apply to the component.</td>
+ </tr>
+ <tr>
+ <td>id</td>
+
+ <td>String</td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+ The value of the id attribute in the generated
+ <em><select></em>
+ tag.
+ </td>
+
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>name</em>
+ </p>
+
+ </section>
+
+ <section name="Examples">
+
+
+ <subsection name="Example 1">
+
+
+ <p>
+ The PropertySelection component provides Gender selection drop down list
+ using a
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/StringPropertySelectionModel.html">
+ StringPropertySelectionModel
+ </a>
+ </p>
+
+ <source xml:space="preserve">
+<form jwcid="@Form" listener="listener:formSubmit">
+ Gender: <span jwcid="@PropertySelection" model="ognl:@com.myexample.DetailsPage@GENDER_MODEL" value="ognl:gender"/>
+ <input type="submit"/>
+</form>
+</source>
+
+ <source xml:space="preserve">
+public abstract class DetailsPage extends BasePage {
+ public static final IPropertySelectionModel GENDER_MODEL =
+ new StringPropertySelectionModel(new String[] { "Unspecified", "Female", "Male" });
+
+ public abstract String getGender();
+
+ public void formSubmit(IRequestCycle cycle) {
+ // Process form submission
+ String genderSelection = getGender();
+ ...
+ }
+}
+</source>
+
+ </subsection>
+
+ <subsection name="Example 2">
+
+ <p>
+ Provides list of clothing items for the user to select. When the user
+ selects a cloting item from the list the description the label and price is
+ automatically updated. The list of clothing items would typically be loaded
+ from a database.
+ </p>
+
+ <p>PurchasePage.html</p>
+
+ <source xml:space="preserve">
+<body jwcid="@Body">
+<form jwcid="@Form" listener="listener:formSubmit">
+ <span jwcid="@FieldLabel" field="component:itemSelection">Selection</span>
+ <span jwcid="itemSelection@PropertySelection"
+ model="ognl:itemSelectionModel"
+ value="ognl:clothingItem"
+ onchange="javascript:this.form.events.refresh();"
+ displayName="Choose an item"/>
+ <input type="submit" value="Show me this item"/>
+ <span jwcid="@Conditional" condition="ognl:clothingItem!=null">
+ <p>Description: <span jwcid="@Insert" value="ognl:clothingItem.description"/></p>
+ <p>Label: <span jwcid="@Insert" value="ognl:clothingItem.label"/></p>
+ <p>Price: $<span jwcid="@Insert" value="ognl:clothingItem.price"/></p>
+ </span>
+</form>
+</body>
+</source>
+
+ <p>PurchasePage.java</p>
+ <source xml:space="preserve">
+public abstract class PurchasePage extends BasePage implements PageDetachListener {
+
+ private ItemSelectionModel model = null;
+
+ public abstract Item getClothingItem();
+ public abstract void setClothingItem(Item value);
+
+ public ItemSelectionModel getItemSelectionModel() {
+ if (model == null) {
+ List items = new ArrayList();
+ items.add(new Item(1, "Dress", "Cotton full length Summer dress", "CountryClub", "89.95"));
+ items.add(new Item(2, "Jacket", "Gorgeous jacket", "CountryClub", "119.95"));
+ model = new ItemSelectionModel(items);
+ }
+ return model;
+ }
+
+ public void formSubmit() {
+ // Process form submission
+
+ }
+
+ public void pageDetached(PageEvent pageEvent) {
+ model = null;
+ }
+
+}
+</source>
+
+ <p>Item.java</p>
+ <source xml:space="preserve">
+public class Item implements Serializable {
+ private int id;
+ private String name;
+ private String description;
+ private String label;
+ private String price;
+
+ public Item(int id, String name, String desc, String label, String price) {
+ this.id = id;
+ this.name = name;
+ this.description = desc;
+ this.label = label;
+ this.price = price;
+ }
+
+ public int getId() { return id; }
+
+ public String getName() { return name; }
+
+ public String getDescription() { return description; }
+
+ public String getLabel() { return label; }
+
+ public String getPrice() { return price; }
+}
+</source>
+
+ <p>ItemSelectionModel.java</p>
+ <source xml:space="preserve">
+public class ItemSelectionModel implements IPropertySelectionModel, Serializable {
+ private List itemList;
+
+ public ItemSelectionModel(List itemList) {
+ this.itemList = itemList;
+ }
+
+ public int getOptionCount() { return itemList.size(); }
+
+ public Object getOption(int index) {
+ return itemList.get(index);
+ }
+
+ public String getLabel(int index) {
+ return ((Item) itemList.get(index)).getName();
+ }
+
+ public String getValue(int index) { return Integer.toString(index); }
+
+ public Object translateValue(String value) {
+ return getOption(Integer.parseInt(value));
+ }
+}
+</source>
+ </subsection>
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/PropertySelection.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/Radio.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Radio.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Radio.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Radio.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,132 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>Radio</title>
+ </properties>
+ <body>
+
+ <section name="Radio">
+
+ <p>
+ Provides a HTML <input type="radio"> form element. The Radio component must be
+ wrapped (possibly indirectly) inside a
+ <a href="RadioGroup.html">RadioGroup</a>
+ component.
+ </p>
+
+ <p>
+ Generally the
+ <a href="PropertySelection.html">PropertySelection</a>
+ component is used in preference to the Radio and
+ <a href="RadioGroup.html">RadioGroup</a>
+ , except in special cases.
+ </p>
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/form/Radio.html">
+ org.apache.tapestry.form.Radio
+ </a>
+ ,
+ <a href="Form.html">Form</a>
+ ,
+ <a href="Option.html">Option</a>
+ ,
+ <a href="PropertySelection.html">PropertySelection</a>
+ ,
+ <a href="RadioGroup.html">RadioGroup</a>
+ ,
+ <a href="Select.html">Select</a>
+ </strong>
+
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>value</td>
+ <td>Object</td>
+
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+ The value is used to determine if the radio button is initially selected
+ (when rendering) and is the value assigned to the selected parameter
+ when the form is submitted, if the HTML radio button is selected.
+ </td>
+ </tr>
+ <tr>
+
+ <td>disabled</td>
+ <td>boolean</td>
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+
+ If true, then the Radio is disabled. It will write a "disabled"
+ attribute into its tag when rendering, and will not update its selected
+ binding. A Radio may also be disabled if its containing RadioGroup is
+ disabled.
+ </td>
+ </tr>
+
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+
+ </p>
+
+ <p>Reserved parameters: checked, name, type</p>
+
+ </section>
+
+ <section name="Examples">
+
+
+ <p>
+ See
+ <a href="RadioGroup.html">RadioGroup</a>
+ for a Radio component example.
+ </p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/Radio.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/RadioGroup.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/RadioGroup.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/RadioGroup.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/RadioGroup.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,206 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>RadioGroup</title>
+ </properties>
+ <body>
+
+ <section name="RadioGroup">
+
+ <p>
+ Provides a container group for Radio components. The RadioGroup itself must be
+ within a
+ <a href="Form.html">Form</a>
+ component. The
+ <a href="Radio.html">Radio</a>
+ and RadioGroup components work together to update a property of an object, much like
+ a more flexible version of a
+ <a href="PropertySelection.html">PropertySelection</a>
+ . This component should wrap around other
+ <a href="Radio.html">Radio</a>
+ components.
+ </p>
+
+ <span class="warn">
+ <strong>Warning:</strong>
+ <p>
+ RadioGroup components may not nest.
+ </p>
+ </span>
+
+ <p>
+ <strong>
+ See also:
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/form/RadioGroup.html">
+ org.apache.tapestry.form.RadioGroup
+ </a>
+ ,
+ <a href="Option.html">Option</a>
+ ,
+ <a href="PropertySelection.html">PropertySelection</a>
+ ,
+ <a href="Radio.html">Radio</a>
+ ,
+ <a href="Select.html">Select</a>
+ </strong>
+
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+ <tr>
+ <td>selected</td>
+ <td>Object</td>
+
+ <td>in-out</td>
+ <td>yes</td>
+ <td />
+ <td>
+ Read during rendering to determine which Radio will be the default.
+ Updated during rewinding (when the form is submitted) to indicate which
+ radio button was selected by the user (null if no button was selected).
+ </td>
+ </tr>
+ <tr>
+
+ <td>disabled</td>
+ <td>boolean</td>
+ <td>in</td>
+ <td>no</td>
+ <td>false</td>
+ <td>
+
+ If true, then all contained Radio components will be disabled as well.
+ </td>
+ </tr>
+ <tr>
+ <td>displayName</td>
+ <td>string</td>
+ <td>in</td>
+ <td>no</td>
+
+ <td />
+ <td>
+ The user-presentable name for the component, which will be used by a
+ <a href="FieldLabel.html">FieldLabel</a>
+ connected to the component.
+ </td>
+ </tr>
+ <tr>
+ <td>validators</td>
+ <td>
+ Array or collection of
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/validator/Validator.html">
+ Validator
+ </a>
+ , or
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/form/validator/Validator.html">
+ Validator
+ </a>
+ </td>
+
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+ The validators to apply to the component. In many cases, a "validators:"
+ binding prefix should be used.
+ </td>
+ </tr>
+ </table>
+
+
+ <p>
+ Body:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>forbidden</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>none</em>
+
+ </p>
+
+ </section>
+
+ <section name="Examples">
+
+
+ <p>
+ This RadioGroup example illustrates an order form where a user can select the
+ order size.
+ </p>
+
+ <source xml:space="preserve">
+<form jwcid="@Form" success="listener:doSubmit">
+ <span jwcid="@FieldLabel" field="component:size">Radio</span>
+ <span jwcid="size@RadioGroup" selected="ognl:orderSize" displayName="Size" validators="validators:required">
+ <input type="radio" jwcid="@Radio" value="ognl:@com.myexample.OrderPage@SMALL"/> Small
+ <input type="radio" jwcid="@Radio" value="ognl:@com.myexample.OrderPage@MEDIUM"/> Medium
+ <input type="radio" jwcid="@Radio" value="ognl:@com.myexample.OrderPage@LARGE"/> Large
+ <input type="submit" value="Order"/>
+ </span>
+</form>
+</source>
+
+ <source xml:space="preserve">
+package com.myexample;
+
+import org.apache.tapestry.html.BasePage;
+
+public abstract class OrderPage extends BasePage {
+
+ public final static Integer SMALL = new Integer(1);
+ public final static Integer MEDIUM = new Integer(2);
+ public final static Integer LARGE = new Integer(3);
+
+ public abstract Integer getOrderSize();
+
+ public void doSubmit() {
+ // process order
+
+ }
+
+}
+</source>
+
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/RadioGroup.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBlock.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBlock.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBlock.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBlock.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,378 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>RenderBlock</title>
+ </properties>
+ <body>
+
+ <section name="RenderBlock">
+
+ <p>
+ Renders the body of a
+ <a href="Block.html">Block</a>
+ component, which may be selected dynamically. The
+ <a href="Block.html">Block</a>
+ may be on the same page as the RenderBlock or on another page entirely.
+ </p>
+
+ <span class="warn">
+ <strong>Warning:</strong>
+ <p>
+ The
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/event/PageBeginRenderListener.html">
+ PageBeginRenderListener
+ </a>
+ (and
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/event/PageEndRenderListener.html">
+ PageEndRenderListener
+ </a>
+ ) event notications only go to the
+ <em>active page</em>
+ (the active page is the page that renders the response). It is possible to pass a
+ <a href="Block.html">Block</a>
+ from an entirely different page to a RenderBlock, but render listeners of both types
+ on the non-active pages will
+ <em>not</em>
+ be notified.
+ </p>
+ </span>
+
+ <p>
+ <strong>
+ See also:
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/components/RenderBlock.html">
+ org.apache.tapestry.components.RenderBlock
+ </a>
+ ,
+ <a href="Block.html">Block</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>block</td>
+ <td>
+ <a href="Block.html">Block</a>
+ </td>
+ <td>in</td>
+ <td>yes</td>
+ <td></td>
+ <td>
+ The
+ <a href="Block.html">Block</a>
+ to render.
+ </td>
+ </tr>
+
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>none</em>
+ </p>
+
+ <p>
+ Informal parameters are allowed, but are not used by the RenderBlock component.
+ Instead, they are used to pass information to the
+ <a href="Block.html">Block</a>
+ itself. The Block's invoker property will be the
+ <a href="RenderBlock.html">RenderBlock</a>
+ that invokes it (in 3.0, this property was called "inserter", which is
+ maintained for backwards compatibility). The parameters of the RenderBlock are
+ available via the getParameter() method of
+ <a href="Block.html">Block</a>
+ . This is most useful when the RenderBlock and Block are contained within
+ different components or even different pages.
+ </p>
+
+ </section>
+
+ <section name="Example">
+
+
+ <p>
+ This example shows a page with a custom TabPanel component. When a user selects
+ a tab, TabPanel switches content. Each tab content is defined by a Block. The
+ final result shows a tab view that highlights the currently selected tab:
+
+ </p>
+
+ <img src="../../images/tapestry/ComponentReference/RenderBlock.png"
+ alt="RenderBlock Screen Shot" />
+
+ <p>First we'll show a page that makes use of the TabPanel component.</p>
+
+ <p>TabTest.html:</p>
+
+ <source xml:space="preserve">
+<html jwcid="@Shell" title="TabPanel Test">
+ <body>
+ <span jwcid="@TabPanel" blockIds="ognl:{'berlin', 'rome', 'tokyo'}" selectColor="#FFFF00" unSelectColor="#CCFFFF" borderColor="#00CC33"/>
+
+ <span jwcid="berlin@Block">
+ <h1>Berlin</h1>
+ </span>
+
+ <span jwcid="rome@Block">
+ <h1>Rome</h1>
+ </span>
+
+ <span jwcid="tokyo@Block">
+ <h1>Tokyo</h1>
+ </span>
+ </body>
+</html>
+</source>
+
+ <p>
+ For simplicity, this example uses an
+ <em>engineered naming coincidence</em>
+ : the names of the
+ <a href="Block.html">Block</a>
+ components matches the localized message key used to obtain the title. In this
+ case, the Blocks contain just a snippet of HTML ... but they could contain any
+ valid markup, including components, links, forms, or other complex components.
+ The use of
+ <a href="http://www.ognl.org">OGNL</a>
+ makes it easy to assemble a list of strings, the component ids for the Blocks,
+ and pass that list into the TabPanel component.
+ </p>
+
+ <p>TabTest.properties:</p>
+
+ <source xml:space="preserve">
+berlin=Berlin
+rome=Rome
+tokyo=Tokyo
+</source>
+
+ <p>
+ Most of the interesting parts, including the use of the RenderBlock component,
+ occurs inside the TabPanel component specification and template.
+ </p>
+
+ <p>TabPanel.html:</p>
+
+ <source xml:space="preserve">
+<table border="0" width="50%" cellspacing="0" cellpadding="0">
+ <tr>
+ <td width="10">&nbsp;</td>
+ <td>
+ <table border="0" cellspacing="0" cellpadding="5">
+ <tr>
+ <span jwcid="loop">
+ <td jwcid="tab">
+ <a jwcid="link">
+ <span jwcid="@Insert" value="ognl:container.messages.getMessage(blockId)">Tab Title</span>
+ </a>
+ </td>
+ <td width="1"></td>
+ </span>
+ </tr>
+ </table>
+ </td>
+ <td width="10">&nbsp;</td>
+ </tr>
+ <tr>
+ <td jwcid="@Any" height="5" bgcolor="ognl:borderColor" colspan="3">&nbsp;</td>
+ </tr>
+ <tr>
+ <td jwcid="@Any" width="10" bgcolor="ognl:borderColor">&nbsp;</td>
+ <td align="center">
+ <span jwcid="@RenderBlock" block="ognl:selectedBlock">Page content goes here</span>
+ </td>
+ <td jwcid="@Any" width="10" bgcolor="ognl:borderColor">&nbsp;</td>
+ </tr>
+ <tr>
+ <td jwcid="@Any" height="5" bgcolor="ognl:borderColor" colspan="3">&nbsp;</td>
+ </tr>
+</table>
+</source>
+
+ <p>The key concepts shown here are:</p>
+
+ <ul>
+ <li>
+ The loop component, which iterates over the blockIds parameter (a List of
+ strings), setting the blockId property on each pass
+ </li>
+ <li>
+ The @
+ <a href="Insert.html">Insert</a>
+ component, which users the current blockId to look up a localized message in
+ the TabPanel component's container (the TabTest page)
+ </li>
+ <li>
+ The RenderBlock component, which uses the component's selectedBlock property
+ to determine what
+ <a href="Block.html">Block</a>
+ to actually render
+ </li>
+ <li>
+ The use of the @
+ <a href="Any.html">Any</a>
+ component to render several <td> elements with the current bgcolor
+ attribute.
+ </li>
+ </ul>
+
+ <p>Several of the details are filled out in the component specification.</p>
+
+ <p>TabPanel.jwc:</p>
+
+ <source xml:space="preserve">
+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE component-specification
+ PUBLIC "-//Apache Software Foundation//Tapestry Specification 4.0//EN"
+ "http://tapestry.apache.org/dtd/Tapestry_4_0.dtd">
+
+<component-specification class="com.example.components.TabPanel" allow-body="no" allow-informal-parameters="no">
+
+ <property name="selectedBlockId" persist="session"/>
+
+ <parameter name="blockIds" required="yes"/>
+ <parameter name="borderColor" required="yes"/>
+ <parameter name="selectColor" default-value="#7D000D"/>
+ <parameter name="unSelectColor" default-value="#C0C0C0"/>
+
+ <component id="loop" type="Foreach">
+ <binding name="source" value="blockIds"/>
+ <binding name="value" value="blockId"/>
+ </component>
+
+ <component id="tab" type="Any">
+ <binding name="bgcolor">
+ tabSelected ? selectColor : unSelectColor
+ </binding>
+ </component>
+
+ <component id="link" type="DirectLink">
+ <binding name="listener" value="listener:doClick"/>
+ <binding name="parameters" value="blockId"/>
+ <binding name="disabled" value="tabSelected"/>
+ </component>
+</component-specification>
+
+
+</source>
+
+ <p>
+ Several bindings in the specification depend on the tabSelected property, which
+ is a synthetic property calculated in Java code. In addition, the @
+ <a href="DirectLink.html">DirectLink</a>
+ component is configured to pass the block id in the URL as a listener parameter.
+ </p>
+
+ <p>TabPanel.java:</p>
+
+ <source xml:space="preserve">
+package com.example.components;
+
+import org.apache.tapestry.BaseComponent;
+import org.apache.tapestry.components.Block;
+
+import java.util.List;
+
+public abstract class TabPanel extends BaseComponent
+{
+ // Persistent
+ public abstract String getSelectedBlockId();
+ public abstract void setSelectedBlockId(String id);
+
+ public abstract List getBlockIds();
+
+ // Current block id within the loop
+ public abstract String getBlockId();
+
+ public Block getSelectedBlock()
+ {
+ String selectedId = getSelectedBlockId();
+
+ if (selectedId == null)
+ selectedId = (String) getBlockIds().get(0);
+
+ return (Block) getContainer().getComponent(selectedId);
+ }
+
+ public boolean isTabSelected()
+ {
+ String selectedId = getSelectedBlockId();
+
+ if (selectedId == null)
+ selectedId = (String) getBlockIds().get(0);
+
+ return getBlockId().equals(selectedId);
+ }
+
+ public void doClick(String selectedId)
+ {
+ setSelectedBlockId(selectedId);
+ }
+}
+</source>
+
+ <p>
+ The only major trick here is that initially the persistent selectedBlockId
+ property will be null, and we have to work around it by treating the first
+ element in the blockIds parameter as the default selectedBlockId. The doClick()
+ listener method is very simple; the blockId that was passed in the URL is
+ obtained and used to update the selectedBlockId property, which was declared
+ persistent in the specification.
+ </p>
+
+ <p>
+ Note that we don't store the
+ <a href="Block.html">Block</a>
+ <em>instance</em>
+ as a persistent property ... components are not serializable and should never be
+ stored as persistent properties. We store the id needed to locate the
+ <a href="Block.html">Block</a>
+ .
+ </p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBlock.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBody.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBody.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBody.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBody.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,151 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>RenderBody</title>
+ </properties>
+ <body>
+
+ <section name="RenderBody">
+
+ <p>
+ Renders the body (static HTML and components) wrapped by the container of the
+ RenderBody component. Components which have HTML templates and can wrap other
+ elements should include exactly one RenderBody component in their template.
+ </p>
+ <p>
+ This component is very useful for creating a common navigational component used by
+ multiple pages of an application. Typically you create a common navigational
+ component which contains navigational links
+ <a href="PageLink.html">PageLink</a>
+ to other pages and a RenderBody component which will insert the actual content of
+ the page. The application pages then use the navigational component as their first
+ element, and then their usual content. When the pages renders, it renders the
+ surrounding navigational component and then the page's content.
+ </p>
+ <p>
+ <strong>See also:</strong>
+ <a href="Block.html">Block</a>
+ ,
+ <a href="Insert.html">Insert</a>
+ ,
+ <a href="RenderBlock.html">RenderBlock</a>
+ ,
+ <a href="InsertText.html">InsertText</a>
+ </p>
+
+ <section name="Parameters">
+ <table>
+ <tr>
+ <td>None</td>
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>forbidden</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>none</em>
+ </p>
+
+ </section>
+
+ <section name="Examples">
+
+ <p>
+ This example shows an implementation of the classical Border component, an
+ application specific component. It is a common practice to use a Border
+ component to provide common layout to almost all of application pages.
+ </p>
+ <img src="../../images/tapestry/ComponentReference/RenderBody.png"
+ alt="RenderBody Screen Shot" />
+ <p>Template</p>
+ <source xml:space="preserve">
+<span jwcid="@Border">
+<H1 align=center><FONT color=#ff3333>Agnosis</FONT></H1>
+<TABLE align=center border=0>
+ <TR>
+ <TD>
+ <P>
+ <B>A</B>GNOSIS feliz
+ <BR/>
+ <B>G</B>racias al ciego destino
+ <BR/>
+ <B>N</B>ada es constante
+ <BR/>
+ <B>O</B>lvidados por el Hado
+ <BR/>
+ <B>S</B>i El existe
+ <BR/>
+ <B>I</B>ncomprensible y eterno
+ <BR/>
+ <B>S</B>ilencio
+ </P>
+ </TD>
+ </TR>
+</TABLE>
+<br/>
+</span>
+</source>
+ <p>Border.html</p>
+ <source xml:space="preserve">
+<html jwcid="@Shell" title="RenderBody Example">
+ <body jwcid="@Body">
+ <table width="100%" cellspacing="0" border="0">
+ <tr>
+ <td valign="top" style="text-align:justify;">
+ <span jwcid="@RenderBody">Page content goes here.</span>
+ </td>
+ </tr>
+ <tr>
+ <td valign="bottom">
+ <table width="100%" cellspacing="0" border="0">
+ <tr>
+ <td align="center">
+ <a href="http://jakarta.apache.org/tapestry"><img src="images/poweredbyTapestry.gif" width="79" height="33" border="0" alt="Tapestry"></a>
+ <br/>
+ <br/>
+ </td>
+ </tr>
+ </table>
+ </td>
+ </tr>
+ </table>
+ </body>
+</html>
+</source>
+ <p>Border.jwc</p>
+ <source xml:space="preserve">
+.....
+<component-specification allow-body="yes" allow-informal-parameters="no">
+</component-specification>
+.....
+</source>
+ </section>
+
+ </section>
+
+ </body>
+</document>
Propchange: tapestry/tapestry4/trunk/src/site/xdoc/components/RenderBody.xml
------------------------------------------------------------------------------
svn:eol-style = native
Added: tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml
URL: http://svn.apache.org/viewvc/tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml?rev=422268&view=auto
==============================================================================
--- tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml (added)
+++ tapestry/tapestry4/trunk/src/site/xdoc/components/Rollover.xml Sat Jul 15 09:57:28 2006
@@ -0,0 +1,189 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<!--
+ Copyright 2004, 2005 The Apache Software Foundation
+
+ Licensed under the Apache License, Version 2.0 (the "License");
+ you may not use this file except in compliance with the License.
+ You may obtain a copy of the License at
+
+ http://www.apache.org/licenses/LICENSE-2.0
+
+ Unless required by applicable law or agreed to in writing, software
+ distributed under the License is distributed on an "AS IS" BASIS,
+ WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ See the License for the specific language governing permissions and
+ limitations under the License.
+-->
+<document>
+ <properties>
+ <title>Rollover</title>
+ </properties>
+ <body>
+
+ <section name="Rollover">
+
+ <p>
+ The Rollover component provides a rollover image button for use with any kind of
+ link component. A rollover button image changes when the mouse move over it or off
+ of it. A Rollover is disabled if the link that wraps it is disabled (in which case
+ it doesn't respond to the mouse). If this dynamic behavior isn't required use the
+ simpler
+ <a href="Image.html">Image</a>
+ component.
+ </p>
+ <p>
+ The component provides all the necessary JavaScript to swap the image when the mouse
+ enters and exits the button. However, the Rollover must be wrapped (ultimately) by a
+ <a href="Body.html">Body</a>
+ component.
+ </p>
+
+ <p>
+ <strong>
+ See also:
+ <a href="Body.html">Body</a>
+ ,
+ <a href="GenericLink.html">GenericLink</a>
+ ,
+ <a href="Image.html">Image</a>
+ ,
+ <a href="PageLink.html">PageLink</a>
+ ,
+ <a href="Script.html">Script</a>
+ </strong>
+ </p>
+
+ <section name="Parameters">
+
+
+ <table>
+ <tr>
+ <th>Name</th>
+ <th>Type</th>
+ <th>Direction</th>
+ <th>Required</th>
+ <th>Default</th>
+ <th>Description</th>
+ </tr>
+
+ <tr>
+ <td>image</td>
+ <td>
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/IAsset.html">
+ IAsset
+ </a>
+ </td>
+
+ <td>in</td>
+ <td>yes</td>
+ <td />
+ <td>
+ The initial image to show, if the surrounding link component is not
+ disabled.
+ </td>
+ </tr>
+
+ <tr>
+ <td>mouseOver</td>
+ <td>
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/IAsset.html">
+ IAsset
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+
+ <td>
+ If provided (and the component is not disabled), then a JavaScript
+ onMouseOver event handler is added to change the image. An onMouseOut
+ event handler is also provided, to change the button to either it's base
+ image, or its mouseOut image. Deprecated alias: focus.
+ </td>
+ </tr>
+ <tr>
+ <td>mouseOut</td>
+ <td>
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/IAsset.html">
+ IAsset
+ </a>
+ </td>
+ <td>in</td>
+
+ <td>no</td>
+ <td />
+ <td>
+ If provided (and the component is not disabled), then a JavaScript
+ onMouseOut event handler is added to change the image when the mouse is
+ moved off of the image. Deprecated alias: blur.
+ </td>
+ </tr>
+ <tr>
+ <td>disabled</td>
+
+ <td>
+ <a href="../../tapestry-framework/apidocs/org/apache/tapestry/IAsset.html">
+ IAsset
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+ <td>
+ <p>
+ Image used when the Rollover is disabled. A Rollover is disabled
+ when the link component containing it is disabled. Note that the
+ Rollover component is wrapped by a link component such as the
+ <a href="PageLink.html">PageLink</a>
+ component.
+ </p>
+ <p>
+ If no disabled asset is specified, then image asset is used instead.
+ A disabled Rollover does not respond to the mouse.
+ </p>
+ </td>
+
+ </tr>
+ <tr>
+ <td>renderer</td>
+ <td>
+ <a
+ href="../../tapestry-framework/apidocs/org/apache/tapestry/link/ILinkRenderer.html">
+ ILinkRenderer
+ </a>
+ </td>
+ <td>in</td>
+ <td>no</td>
+ <td />
+
+ <td>The object which will actually render the link.</td>
+ </tr>
+ </table>
+
+ <p>
+ Body:
+ <strong>removed</strong>
+ </p>
+
+ <p>
+ Informal parameters:
+ <strong>allowed</strong>
+ </p>
+
+ <p>
+ Reserved parameters:
+ <em>name, src, border</em>
+ </p>
+
+ </section>
+
+ <section name="Examples">
+
+ <p>This example is under construction.</p>
+
+ </section>
+
+ </section>
+
+ </body>
+</document>