Package nl.imsystems.atag.tags

Package Specification


Class Summary
ActionData A value object to hold action data entered on a <a:action/> tag.
ActionTag Tag handler for <a:action/> tag.
ATagBase Base class for the ATag family of tag handlers.
Provides common support methods to subclasses.
AutoRefreshTag Tag handler for <a:autoRefresh/> tag.
ComponentRefTag Tag handler for <a:componentRef/> tag.
ComponentTag Tag handler for <a:component/> tag.
ContainerBase Base class for container tags.
ELFunctions Some array and collection functions exposed by ATag.
PageTag Tag handler for <a:page/> tag.
PanelRefTag Tag handler for <a:panelRef/> tag.
PanelTag Tag handler for <a:panel/> tag.
ParamTag Tag handler for <a:param/> tag.
ReferenceBase Tag handler for <a:action/> tag.
WrapperTag Tag handler for <a:wrapper/> tag.

Package nl.imsystems.atag.tags Description

Package Specification

This package contains tag handler classes for the ATag family of JSP tags.

The ATag family consists of 3 categories of tags: definition, reference, and control tags.

1) Definition Tags

There are 4 types of definition tags: page, panel, component, and wrapper.

Page (<a:page>):
A page defines the root of a page containing ATag components. It must be placed in the page that is initially loaded and must surround any panelRef tags.

Panel (<a:panel>):
A panel is the definition of a composite of references to other panels or components.

Component (<a:component>):
A component is the definition of single component such as a text input field, radio/checkbox group, or a select list, etc.
Components are always referenced from a panel.

Wrapper (<a:wrapper>):
A wrapper defines a single component such as a text input field, or a radio/checkbox group, etc., which is placed inline within a panel.
Such a component can never be refreshed independently of its container panel, however it can still generate events and consequently refresh its dependents.
A <a:wrapper> can only be placed inside a <a:panel> tag.

Components and panels are created as JSP files, so that each component or panel has its own unique file.

2) Reference Tags

There are 2 types of ATag reference: panel reference and component reference.

Much of the configuration and behavior of a component is applied on the reference level. For example, a form requiring 3 text input fields will make 3 references to 1 component: 'inputText'. Each reference is then configured with the correct id, bind path, optional parameter name, event registration, and dependents list for the target component.

This injection of configuration and behavior from the reference level is an important feature of ATag, and is extremely useful when designing generic components and panels.

Some values are always injected by ATag, but using <a:param> it is also possible to inject custom values into the target component.
See <a:component> and <a:panel> for a list of variables passed into the definition from the reference.

Panel Reference (<a:panelRef>):
A panel reference is used to refer to a panel definition from another panel definition or the root page.
A <a:panelRef> can only be placed inside a <a:panel> or a <a:page> tag.

Component Reference (<a:componentRef>):
A component reference is used to refer to a component definition from within a panel definition.
A <a:componentRef> can only be placed inside a <a:panel> tag.

3) Control Tags

There are 3 types of control tag: action, param, and autoRefresh.

Action (<a:action>):
Action is used to determine an action to be taken when an event of a given type is fired on a component referenced by the reference containing the action.

There are 3 forms of action: javascript action, server event action (post component only), server event action (post entire form).

Javascript actions simply execute the javascript code on the client, while server event actions post a request to the server.

Actions are executed in order of appearance in the componentRef or wrapper tag.

Param (<a:param>):
Params are used for passing custom parameters into panels or components from the reference.
Param tags can be placed in panelRef, and componentRef tags.

Auto Refresh (<a:autoRefresh>):
Unlike the above control tags, autoRefresh is applied directly to a component definition, and not to a reference.

AutoRefresh takes an attribute interval which determines the number of seconds between each reload of the component. An interval value of less than 1 disables auto refresh.

AutoRefresh can only be placed inside a component tag.