A combobox can be linked to a domain class (via the
domain tag or a Dependency arrow), to display data from the domain class’ relevant API endpoint. Each row shows a single attribute. The selected value is always the domain object’s
id attribute, though UI listeners are given the whole domain object. A combobox can also be linked to an Enumeration, in which case it will display ‘hardwired’ enum values. The selected value is then the enum name.
Depending which modeling tool you’re using, add the following component from the palette into the wireframe:
|Enterprise Architect||Combo Box|
|Displays a single text value||The component can display an individual text value, which can be derived from a bound UI event (e.g. table row selection).|
|Domain item chooser||The component can be used as an item selector, to choose a domain object. Can be used in a form, or simply to generate an ‘item chosen’ event.|
|Enum chooser||The component can be used to choose from an array of Enumeration values. Can be used in a form, or simply to generate an ‘item chosen’ event.|
|Domain data||The component can be linked to a domain class, via the |
|Reactive||The component can listen to UI events triggered by another component, via the |
|Bind target||Other components can listen and react to this component’s’ UI events, via their |
| ||Makes this UI Element listen to another UI element for events (e.g. row item selected), via a Redux UI global state selector. |
This tag is the same as connecting the elements with a Dependency arrow. However, you can use this tag, for example, if the other UI element is on a different wireframe.
The following component types can be ‘state-bound’ (i.e. listen to another UI Element via the bind tag or dependency arrow):
Button, Checkbox, ComboBox, Link, ListBox, MapPicker, MediaPlayer, PasswordField, RangeInput, Table, TextArea, TextField
| ||Links a component to a domain class, and optionally an attribute. |
Depending on the component, it will then use the domain data in some way, e.g. to populate a table or listbox with domain data for selection.
The linked data will be loaded via the domain class’ matching REST API endpoint, with loading state managed in the UI via a Redux domain selector.
Please note: This tag is the same as connecting the element to a domain class with a Dependency arrow.
| ||Specifies which domain class attribute to display. For cases where the display attribute/relationship is different from the ‘data’ domain attribute/relationship.|
| ||For Domain Chooser UI Elements (listbox, ComboBox), where the form attribute/relationship is different from the ‘data’ domain attribute/relationship, as two domain classes are involved.|
| ||Define a single-line predicate (valid TypeScript expression that evaluates to a boolean) to filter a UI list.|
|DEFAULT: the UI element name||Text to display, if not using the component name. |
For EA wireframes the element name is normally used; however this tag will override that if the name needs to be different, e.g. to avoid duplicate element names, or if the text won’t map well to variable names etc.
| ||DEFAULT: no||If true (or yes), the input element can’t be edited; updates are only via a bound element such as a ComboBox.|
| ||Any CSS class name, without a preceding ||Adds the specified CSS class (or classes) to the UI element. If you define a class in a custom CSS file, you can apply it to a component using this tag. CodeBot will also recognise any ‘standard’ Bootstrap CSS classes such as |
|Must be one of: primary, secondary, success, danger, warning, info, light, dark, link||Changes a UI Element’s appearance. The allowed values are based on Bootstrap’s variant CSS classes. |
For React Labels, this will turn the label into an “Alert” component, with a background and text colour matching the variant. Useful for callouts, notes and static warnings (“Clicking OK will delete all your data”).