Add new attachment

Only authorized users are allowed to upload new attachments.

This page (revision-1) was last changed on 19-Feb-2007 20:45 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 31 lines
[UIBranchContainer|https://saffron.caret.cam.ac.uk/svn/projects/RSFUtil/trunk/src/uk/org/ponder/rsf/components/UIBranchContainer.java] is an RSF component, derived from [UIContainer|Container]. In addition to the function of simply containing other components, the purpose of a branch container is to peer with a branching tag (with an {{[rsf:id|ID]}} containing a colon character) in the [view template|ViewTemplate]. Branch containers mark the points at which IKAT rendering logic "branches" by performing an IKAT resolution to find the appropriate template segment for rendering the current component. See the pages on the [IKAT] renderer and [IKAT algorithm|IKATAlgorithm] for more details.
The standard usage of UIBranchContainer is to build one and link it to the component tree using one of its "constructor" {{make}}.
!Taking a simple branch
A simple branch, where we are indicating that the renderer is to take a simple choice, either by showing/suppressing a section of markup, or jumping to a different part of the template, is created by using the 2-arg constructor, for example:
{{{
UIBranchContainer.make(tofill, "content-not-logged-in-pane:");
}}}
When seeing a branch container in the tree, together with a corresponding colon-named tag in the markup, the RSF renderer will consider all tags in the current template set with a matching rsf:id in order to find the target point to branch to. If there is no branch container in the tree that matches a particular tag, that tag an all of its descendents in the template will be suppressed from the output markup.
An example of this method can be seen in the [LogonTest|LogonTest_2] sample.
!Making a loop
Where a part of the template is to be replicated, for example creating a list, or a table row or column, we need to use the 3-arg constructor, so that the replicates can be distinguished in ID once they are rendered:
{{{
for (int i = 0; i < values.length; ++i) {
UIBranchContainer radiobranch = UIBranchContainer.make(form,
"animalrow:", Integer.toString(i));
}}}
An example of this method can be seen in the [ComponentTest] sample.
!Joints
A refinement of a UIBranchContainer, called [UIJointContainer], is generally used when [creating reusable UI components|BuildingRSFComponents] or widgets. In effect it consists of two UIBranchContainers fused together, which causes the renderer to take a forced branch.
Version Date Modified Size Author Changes ... Change note
19-Feb-2007 20:45 2.441 kB UnknownAuthor
« This page (revision-) was last changed on 19-Feb-2007 20:45 by UnknownAuthor