blob: 4ed2789934a55b88abdb7c7914f04eb412723304 [file] [log] [blame]
<!-- $Id$ -->
<!--
Copyright 2004 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.
-->
<appendix id="properties">
<title>Tapestry Object Properties</title>
<para>
When using Tapestry, an important aspect of your work is to leverage the properties exposed
by the various objects within Tapestry. A page has properties (inherited from base classes
such as &AbstractComponent; and &BasePage;) and contains components and other objects
with more properties. Pages are connected to an engine, which exports its own set of properties.
This appendix is a quick guide to the most common objects and their properties.
</para>
<table>
<title>Tapestry Object Properties</title>
<tgroup cols="4">
<thead>
<row>
<entry>Property name</entry>
<entry>Defining class</entry>
<entry>Property type</entry>
<entry>Description</entry>
</row>
</thead>
<tbody>
<row>
<entry>activePageNames</entry>
<entry>&BaseEngine;</entry>
<entry>&Collection; of &String;</entry>
<entry>Names of all pages for which a page recorder has been created.</entry>
</row>
<row>
<entry>assets</entry>
<entry>&IComponent;</entry>
<entry>&Map; of &IAsset;</entry>
<entry>
Localized assets as defined in the component's specification.
</entry>
</row>
<row>
<entry>beans</entry>
<entry>&IComponent;</entry>
<entry>&IBeanProvider;</entry>
<entry>Used to access beans defined using the &spec.bean; specification element.</entry>
</row>
<row>
<entry>bindingNames</entry>
<entry>&IComponent;</entry>
<entry>&Collection; of &String;</entry>
<entry>
The names of all formal and informal parameter bindings for the component.
</entry>
</row>
<row>
<entry>bindings</entry>
<entry>&IComponent;</entry>
<entry>&Map; of &IBinding;</entry>
<entry>
All bindings (for both formal and informal parameters) for this component, keyed on
the parameter name.
</entry>
</row>
<row>
<entry>body</entry>
<entry>&AbstractComponent;</entry>
<entry>&IRender;[]</entry>
<entry>
The body of the component: the text (as &IRender;) and components (which inherit from
&IRender;) that the component directly encloses within its container's template.
</entry>
</row>
<row>
<entry>bodyCount</entry>
<entry>&AbstractComponent;</entry>
<entry>int</entry>
<entry>
The active number of elements in the <varname>body</varname> property array.
</entry>
</row>
<row>
<entry>componentClassEnhancer</entry>
<entry>&IEngine;</entry>
<entry>&IComponentClassEnhancer;</entry>
<entry>
Object responsible for dynamic creation of enhanced subclasses of Tapestry pages and components.
</entry>
</row>
<row>
<entry>components</entry>
<entry>&IComponent;</entry>
<entry>&Map; of &IComponent;</entry>
<entry>
All components contained by this component, keyed on the component id.
</entry>
</row>
<row>
<entry>contextPath</entry>
<entry>&IEngine;</entry>
<entry>&String;</entry>
<entry>
The path, if any, for the web application context.
</entry>
</row>
<row>
<entry>changeObserver</entry>
<entry>&IPage;</entry>
<entry>&ChangeObserver;</entry>
<entry>An object that recieves notifications about changes to persistent page properties.</entry>
</row>
<row>
<entry>componentMessagesSource</entry>
<entry>&IEngine;</entry>
<entry>&IComponentMessagesSource;</entry>
<entry>
An object that allows components to find their set of localized messages.
</entry>
</row>
<row>
<entry>container</entry>
<entry>&IComponent;</entry>
<entry>&IComponent;</entry>
<entry>
The page or component which contains this component. Pages will return null.
</entry>
</row>
<row>
<entry>dataSqueezer</entry>
<entry>&IEngine;</entry>
<entry>&DataSqueezer;</entry>
<entry>Object used to encode and decode arbitrary values into a URL while maintaining their type.</entry>
</row>
<row>
<entry>dirty</entry>
<entry>&AbstractEngine;</entry>
<entry>boolean</entry>
<entry>
True if the engine has been (potentially) modified, and should be stored
into the &HttpSession;.
</entry>
</row>
<row>
<entry>disabled</entry>
<entry>&IFormComponent;</entry>
<entry>boolean</entry>
<entry>
If true, the component should be disabled (and not respond to query parameters passed up in the request).
</entry>
</row>
<row>
<entry>displayName</entry>
<entry>&IFormComponent;</entry>
<entry>&String;</entry>
<entry>
Localized string to be displayed as a label for the form control. Most implementations leave this
undefined (as null).
</entry>
</row>
<row>
<entry>engine</entry>
<entry>&IPage;</entry>
<entry>&IEngine;</entry>
<entry>The engine to which the page is currently attached.</entry>
</row>
<row>
<entry>extendedId</entry>
<entry>&IComponent;</entry>
<entry>&String;</entry>
<entry>
An "extended" version of the <varname>idPath</varname> property that
includes the name of the page containing the component as well.
</entry>
</row>
<row>
<entry>form</entry>
<entry>&IFormComponent;</entry>
<entry>&IForm;</entry>
<entry>
The form which encloses the form control component.
</entry>
</row>
<row>
<entry>global</entry>
<entry>&IEngine;, &IPage;</entry>
<entry>&Object;</entry>
<entry>
The Global object for the application.
</entry>
</row>
<row>
<entry>hasVisit</entry>
<entry>&AbstractEngine;</entry>
<entry>boolean</entry>
<entry>
Returns true if the Visit object has been created, false initially.
</entry>
</row>
<row>
<entry>id</entry>
<entry>&IComponent;</entry>
<entry>&String;</entry>
<entry>
The id of the component, which is unique within its container. In many cases, the framework
may have assigned an automatically generated id. Pages do not have an id and return null.
</entry>
</row>
<row>
<entry>idPath</entry>
<entry>&IComponent;</entry>
<entry>&String;</entry>
<entry>A sequence of id's used to locate a component within a page. A component <literal>bar</literal>
within a component <literal>foo</literal> within a page will have an <varname>idPath</varname>
of <literal>foo.bar</literal>. Pages return null.
</entry>
</row>
<row>
<entry>listeners</entry>
<entry>&AbstractComponent;, &AbstractEngine;</entry>
<entry>&ListenerMap;</entry>
<entry>
Used to map listener methods as objects that implement the &IActionListener; interface.
</entry>
</row>
<row>
<entry>locale</entry>
<entry>&IEngine;</entry>
<entry>&Locale;</entry>
<entry>
The locale for the current client; this is used when loading pages from the page pool, or
when instantiating new page instances.
</entry>
</row>
<row>
<entry>locale</entry>
<entry>&IPage;</entry>
<entry>&Locale;</entry>
<entry>
The locale to which the page and all components within the page is localized.
</entry>
</row>
<row>
<entry>location</entry>
<entry><emphasis>many</emphasis></entry>
<entry>&ILocation;</entry>
<entry>
The location that should be used with any error messages generated about the object. This is
ultimately the file, line (and even column) of the template or specification file responsible
for defining the object (be it a component, a page, or some other kind of object).
</entry>
</row>
<row>
<entry>messages</entry>
<entry>&IComponent;</entry>
<entry>&IMessages;</entry>
<entry>
Localized messages for the component.
</entry>
</row>
<row>
<entry>name</entry>
<entry>&IFormComponent;</entry>
<entry>&String;</entry>
<entry>
The name, or element id, assigned to the form control by the &IForm;. This is set as the component
renders (but the property can then be read after the component renders).
</entry>
</row>
<row>
<entry>namespace</entry>
<entry>&IComponent;</entry>
<entry>&INamespace;</entry>
<entry>The namespace containing the component. Components are always within <emphasis>some</emphasis>
namespace, whether it is the default (application) namespace, the framework namespace,
or a namespace for a component library.</entry>
</row>
<row>
<entry>outputEncoding</entry>
<entry>&AbstractPage;</entry>
<entry>&String;</entry>
<entry>
Output encoding for the page.
</entry>
</row>
<row>
<entry>page</entry>
<entry>&IComponent;</entry>
<entry>&IPage;</entry>
<entry>
The page which ultimately contains the component.
</entry>
</row>
<row>
<entry>propertySource</entry>
<entry>&IEngine;</entry>
<entry>&IPropertySource;</entry>
<entry>
Source for configuration properties.
</entry>
</row>
<row>
<entry>pageName</entry>
<entry>&IPage;</entry>
<entry>&String;</entry>
<entry>
The fully qualified page name (possibly including a namespace prefix).
</entry>
</row>
<row>
<entry>pageSource</entry>
<entry>&IEngine;</entry>
<entry>&IPageSource;</entry>
<entry>
The object used to obtain page instances.
</entry>
</row>
<row>
<entry>pool</entry>
<entry>&IEngine;</entry>
<entry>&Pool;</entry>
<entry>
Stores objects that are expensive to create.
</entry>
</row>
<row>
<entry>requestCycle</entry>
<entry>&IPage;</entry>
<entry>&IRequestCycle;</entry>
<entry>
The request cycle to which the page is currently attached.
</entry>
</row>
<row>
<entry>resetServiceEnabled</entry>
<entry>&IEngine;</entry>
<entry>boolean</entry>
<entry>
If true, the reset service is enabled. The reset service is disabled by default.
</entry>
</row>
<row>
<entry>resourceResolver</entry>
<entry>&IEngine;</entry>
<entry>&IResourceResolver;</entry>
<entry>
Object responsible for locating classes and classpath resources.
</entry>
</row>
<row>
<entry>scriptSource</entry>
<entry>&IEngine;</entry>
<entry>&IScriptSource;</entry>
<entry>
Object that parses and caches script specifications.
</entry>
</row>
<row>
<entry>servletPath</entry>
<entry>&IEngine;</entry>
<entry>&String;</entry>
<entry>
The URL path used to reference the application servlet (including the context path, if any).
</entry>
</row>
<row>
<entry>specification</entry>
<entry>&IComponent;</entry>
<entry>&IComponentSpecification;</entry>
<entry>
The specification which defines this component. Often used to access
meta data defined in the component's specification using the
&spec.property; element.
</entry>
</row>
<row>
<entry>specification</entry>
<entry>&IEngine;</entry>
<entry>&IApplicationSpecification;</entry>
<entry>
The specification for the application.
</entry>
</row>
<row>
<entry>specificationSource</entry>
<entry>&IEngine;</entry>
<entry>&ISpecificationSource;</entry>
<entry>Object responsible for reading and caching page and component specifications.</entry>
</row>
<row>
<entry>stateful</entry>
<entry>&IEngine;</entry>
<entry>boolean</entry>
<entry>
If true, then an &HttpSession; has been created for the client to store server-side state. Initially false.
</entry>
</row>
<row>
<entry>templateSource</entry>
<entry>&IEngine;</entry>
<entry>&ITemplateSource;</entry>
<entry>
Object responsible for reading and caching page and component templates.
</entry>
</row>
<row>
<entry>visit</entry>
<entry>&IEngine;</entry>
<entry>&Object;</entry>
<entry>
Returns the Visit object for the current client, or null if the Visit object
has not yet been created.
</entry>
</row>
<row>
<entry>visit</entry>
<entry>&IPage;</entry>
<entry>&Object;</entry>
<entry>
Returns the Visit object for the current client, creating it if necessary.
</entry>
</row>
</tbody>
</tgroup>
</table>
</appendix>