Type to start searching...

Switch : Switch : Layout

A container that displays only one of its child views at a time - within a switch in a layout.

Description

Switches allow you to polymorphically switch the current layout based on some attributes of the object you are displaying.

The value property of the switch is an association path or expression that points to an attribute on the object. This path typically starts with a layoutRef whose model is traversed.

All contained container views have a case property and this is used to determine which view to present.

Composites, Tabs, and Switches are containers. They contain other views and may contain each other to any level. e.g. Composite->Tabs or Tabs->Switch->Tabs

In Portlets and Dialogs, they are mainly used to organize Layouts. In Layouts, they are mainly used to organize Controls e.g. Charts, Tables, Cards, ...

Properties
augment : uiIdentifier

A path to the view to augment with this view.

Augmentation rules depend on the types of augmented and augmenting views. When augmented view is a layout, such as Composite, Tabs, or Switch, and augmenting view is also of the same type, the children views will be added to the augmented layout. When both augmented views are layouts but of different type, the augmenting view is inserted next to the augmented one. When augmented view is primitive, the augmenting view is inserted next to it.
Valid values based on“string”.
:?[\p{L}_][\p{L}\p{N}_]*(:[\p{L}_][\p{L}\p{N}_]*)*

Value must begin with a letter. Case and length are not restricted. Letters and numbers are allowed. Colon is used as a scope separator. Spaces and other punctuation characters are not allowed.

caption : string

Caption text

case : string

A space separated list of metaclass names, primitive values or 'null' used to drive polymorphic display.

The case part of a polymorphic form switch. This is conceptually similar to a JAVA switch, but for UI. The value property of a parent Switch contains the expression that the cases are evaluated against. If this resolves to a non-primitive, the cases are compared against the non-primitive's class type. Note: The class, all subclasses, and the 'null' case should be handled. If it resolves to a primitive, the cases are compared directly with the value. Note: All possible values and the 'null' case should be handled. That being said Enumerated values and booleans are most appropriate. All possible values must be covered by the cases - there is no 'else' case. Within the Switch the cases are checked from left to right. The first Layout to match will be the one to display.
Example


Non-primitive case: The parent Switch value property is set to EntityList.  This is
a View Path to the the EntityList form.  There are three child Layouts with cases of
1. null 2. Person UserPerson 3. Company.  The currently selected instance in the model of
the EntityList form will determine which Layout will display.  If an instance of Company
is selected in the EntityList then Layout 3 displays.
Primitive case: The parent Switch value property is set to EntityList isPerson.
This is a View Path to the EntityList form and an Association Path to the isPerson attribute.
There again are three child Layouts with cases of 1. null 2. #t 3. #f.  As
we move through the EntityList the Layouts will dynamically display based on the values in case.

enabled : string

Enablement flag association path or expression

name : identifier

Unique view name

Valid values based on“string”.
:?[\p{L}_][\p{L}\p{N}_]*(:[\p{L}_][\p{L}\p{N}_]*)*

Value must begin with a letter or an underscore. Case and length are not restricted. Letters, numbers and underscores are allowed. Colon is used as a scope separator. Spaces and other punctuation characters are not allowed.

privilege : identifier

Access privilege

Valid values based on“string”.
:?[\p{L}_][\p{L}\p{N}_]*(:[\p{L}_][\p{L}\p{N}_]*)*

Value must begin with a letter or an underscore. Case and length are not restricted. Letters, numbers and underscores are allowed. Colon is used as a scope separator. Spaces and other punctuation characters are not allowed.

value : string

Switch value view path followed by an optional association path used to drive polymorphic display.

The expression part of a polymorphic layout switch. This is conceptually similar to a JAVA switch, but for UI. The value property contains the expression that the cases are evaluated against. If this resolves to a non-primitive, the cases are compared against the non-primitive's class type. Note: The class, all subclasses, and the 'null' case should be handled. If this resolves to a primitive, the cases are compared directly with the value. Note: All possible values and the 'null' case should be handled. That being said Enumerated values and booleans are most appropriate.

Within the Switch the cases are checked from left to right. The first Layout to match will be the one to display. If the Switch is on a layout and the value is (@), the association is defaulted to the current instance of the layouts's underlying model.

Example


See the Switch case property for an example.

visible : string

Default visibility flag association path or expression

Default visiblity set to a control but value can be overriden by script, client state, or control-specific mechanism such as setListColumn in a table.
Content
  • Sequence of:

    • Choice of:

      • Composite [1..1] - A container that displays its child views in columns - within a switch in a layout.

      • Tabs [1..1] - A container that displays its child views in tabs - within a switch in a layout.

      • Switch [1..1] - A container that displays only one of its child views at a time - within a switch in a layout.

Example


For example, if the object is a Person, you can show a very different layout than if
the object is a Company or Household.

Parents
  • Switch - A container that displays only one of its child views at a time - within a switch in a layout.
  • Switch - A container that displays only one of its child views at a time - within tabs in a layout.
  • Switch - A container that displays only one of its child views at a time - within a composite in a layout.
  • Switch - A container that displays only one of its child views at a time - in the root of a layout.