Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 24-Feb-2007 22:13 by UnknownAuthor

Only authorized users are allowed to rename pages.

Only authorized users are allowed to delete pages.

Difference between version and

At line 1 added 28 lines
UIJointContainer is a primitive RSF [component] which is very closely related to a [UIBranchContainer]. In fact a UIJointContainer is nearly functionally identical to two UIBranchContainers, one nested immediately in inside the other. This is reflected by the fact that the UIJointContainer "constructor" accepts two ids, one for the outer, and one for the inner branch, as follows:
{{{
/**
* Create a new UIJointContainer and add it to the component tree.
*
* @param parent The container to receive this newly created joint container.
* @param ID The "client ID" or "source ID" of this container, that is, the
* rsf:id under which the host template and producer refer to the
* component.
* @param jointID The "joint ID" or "target ID" of this container, that is,
* the rsf:id under which the implementing or component template
* refer to the component.
*/
public UIJointContainer(UIContainer parent, String ID, String jointID) {
}}}
UIJointContainers are typically used by [Evolvers|BuildingRSFComponents] or other Producers which are trying to implement reusable UI component ("widgets"). The idea is that the first ID is the ''client's'' {{rsf:id}}, which appears in the page template wanting to use the component, and the second ID appears in the implementation template defining the component. The UIJointContainer thus forms a "joint" from one template to the other, forcing the renderer to make a branch from the demand site in the page template to the implementation site in the component template.
Note that UIJointContainers are constructed using standard Java {{new}} rather than the static {{make()}} methods that are more usual in RSF. This is primarily to get around the idiocy within the Java specification which causes static methods to be ''inherited'' amongst classes - any {{make()}} methods we declared in UIJointContainer would conflict with those in the base class {{UIBranchContainer}}. In fact the use of {{new()}} with UIJointContainer is slightly helpful in that it reflects the fact that the constructed component is nearly ''always'' used in the following lines of code.
For example,
{{{
UIJointContainer page = new UIJointContainer(tofill, "page-replace:", "page:");
pageproducer.fillComponents(page);
}}}
Version Date Modified Size Author Changes ... Change note
24-Feb-2007 22:13 2.344 kB UnknownAuthor
« This page (revision-) was last changed on 24-Feb-2007 22:13 by UnknownAuthor