Text { Name = "my_roles_"; Value = "/.../ClientRolesSelect"; Visible = NO; Columns = 1; }In this example, we've declared a text gadget with a name of "my_roles_". When the panel gets loaded, the GUI code detects that this gadget represents a multi-valued attribute and loads the value of the attribute into a special location in the gadget. This location is not accessible from the DSL or from the GUI itself.
The value of this gadget is set to the patch of the gadget "ClientRolesSelect". The ClientRolesSelect gadget is a list box that will display each of the id's in the multi-value attribute's value for selection. When the panel loads, the ClientRolesSelect gadget is automatically populated with the id's from the value of the multi-value attribute sap_roles.
All of the needed callbacks to support a multivalued attribute are in the following pages, with examples for each callback. With the ability to chain callbacks together to act on changed or selected events, a powerful and complex set of multi-valued data can be built. Just remember that the more complex your data the harder it is to edit the data using the CLI's available in Tivoli SecureWay User Administration.