This page contains all the tagged values that CodeBot recognises. Tag names generally are used consistently in all UI components and elsewhere, so you should find pretty quickly that you start to recognise their names and purposes, and “intuitively know” which tag name to use.
The tags are grouped here by their general category:
Applicable to any model element.
| ||true or false||In certain cases, CodeBot will ‘pluralise’ an element’s name, following basic ‘Anglified’ rules such as adding an s, or turning y into ies. To override the pluralised name, add this tagged value to the model element.|
These tags are used on Interfaces that represent a Data Access Object such as an external REST API.
|Multiple values are allowed, but each must be one of: count, create, delete file, delete many, delete one, download file, find many, find one, get many, login, read one, register, replace, replace file, update, upload file||Specifies the default CRUD operations that CodeBot should generate on the DAO interface pointed to by this domain class. Please note: This tag is placed on the class or dependency pointing to the Interface, not the interface itself.|
| ||For external REST APIs, an additional path that is appended to the base URL for operations.|
| ||The base URL for external REST APIs.|
These tags are used on domain classes.
|Specifies whether the Operation return type is a single value or an array. Use ‘common’ notation such as: 1, 0, or 0..*|
These tags are used on Task operations.
| ||Must be one of: GET, HEAD, POST, PUT, PATCH, DELETE, HEAD, OPTIONS||The HTTP method this operation should use when making a request to the external REST API.|
These tags are used on UI Elements within a wireframe.
Some of these tags are based on Bootstrap properties and values. For more info, find the relevant matching component at: https://react-bootstrap.github.io/components.
| ||Button, Link||Must be one of: create, replace, update, delete, get many, find, find one, login, register, logout, task, task, form task||With a form button, this tag defines the type of action that will take place when the button is clicked - essentially, which REST API endpoint to call; e.g. ‘create’.|
| ||Button, Checkbox, ComboBox, Image, Label, Link, MapPicker, MediaPlayer, RangeInput, Table, TextArea, TextField||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
|Table||DEFAULT: All attributes except ||For a data-linked table, this specifies which attributes to display as table columns.|
| ||All||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 |
|Checkbox, PasswordField, RangeInput, TextArea, TextField|
| ||Button, Checkbox, ComboBox, Image, Link, ListBox, MapPicker, MediaPlayer, PasswordField, RangeInput, Table, TextArea, TextField||Specifies which domain class attribute to display. For cases where the display attribute/relationship is different from the ‘data’ domain attribute/relationship.|
|ComboBox, Label, Link, RangeInput, TextArea, TextField||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.
| ||Button, Checkbox, ComboBox, Image, 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.
| ||Button, Link||Custom user-facing error message to display if the REST API returned an error. Use ‘none’ to prevent the message being shown at all.|
| ||Button, Checkbox, ComboBox, Image, Link, ListBox, MapPicker, MediaPlayer, PasswordField, RangeInput, Table, TextArea, TextField||Define a single-line predicate (valid TypeScript expression that evaluates to a boolean) to filter a UI list.|
| ||Image||true or false||If true, scales the image nicely to the parent element.|
| ||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.|
| ||MapPicker||any valid CSS size|
| ||Image|| ||A static URL or relative path pointing to an image; must be reachable by any browser using the generated web-app.|
| ||Container||Must be one of: left, right, center||Text justification for the UI element container.|
|MapPicker||domain attribute name, e.g. ||The map can be linked to a domain class to display multiple map markers. This tag defines the attribute on the linked domain class containing the |
|ListBox, Table||true or false DEFAULT: ||If |
| ||MapPicker|| ||The map’s initial location, if no other location is given (e.g. data-linked, or reacting to the value in a bound component).|
| ||TextField, TextArea, PasswordField||For text input, the ‘placeholder’ text to display when the textfield is empty.|
| ||MapPicker||An optional message to display in a popup when you click the map selection marker.|
| ||ComboBox, Label, Link, RangeInput, TextArea, TextField||DEFAULT: no||If true (or yes), the input element can’t be edited; updates are only via a bound element such as a ComboBox.|
| ||MapPicker||true or false||Whether the map can be zoomed in or out with the mouse scroll-wheel.|
| ||Image||Must be one of: rounded, roundedCircle, thumnbnail||Affects the image appearance.|
|MapPicker||true or false DEFAULT: ||If |
| ||Button, Link||Lets you override the message displayed when an ‘action’ completes successfully, e.g. on form create. Use the text ‘none’ to prevent any message being shown (‘none’ is required as EA will interpret a blank tagged value as absent, i.e. won’t export it).|
| ||Table||Must be one of: sm||Cuts the table row spacing in half|
| ||Button, Link||Must be one of: create, replace, update, delete, get many, find, find one, login, register, logout, task, task, form task||For a ‘task’ action, pinpoints the domain class and Operation that the action should invoke - e.g. Game.upgradePlayer|
| ||MapPicker||DEFAULT: openstreetmap attribution||Attribution text that accompanies the tile layer. This text appears at the bottom-right of the map.|
| ||MapPicker||A URL that follows Leaflet’s tile URL format DEFAULT: An openstreetmap layer||In addition to ‘everyday’ street maps, Leaflet can be extended with third-party tile layers, e.g. satellite or ESRI topological views. This tag allows you to specify the main tile layer for the map.To choose a tile layer, we recommend this resource.|
|TextField, TextArea||This allows input elements such as textfields to match the required data type, e.g. only allow numbers; or (on mobile) show a keyboard tailored for entering an email address; e.g. ‘email’, or the ‘usual’ attribute data types such as number, int, string.|
|All||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”).
| ||MapPicker||any valid CSS size e.g. ||Leaflet needs the component size to be set when it’s created, so |
| ||MapPicker||1 to 12 DEFAULT: ||The initial zoom level.|
Throughout this documentation you’ll see tag names in “lower sentence case”, e.g.
stylesheet url. Although we recommend using this style, you can use upper case in places if preferred, or underscores, full-stops/periods and dashes in place of spaces; e.g.
Stylesheet URL or
StyleSheet_URL would also work. The names are all “normalised” by CodeBot before they’re used.
variant tag is applicable to some UI components, primarily
Table and containers (
Client Area). The allowed values are based on Bootstrap’s variant CSS classes, as follows:
While these variants are quite Bootstrap-specific, we’ll carry them over to any future UI platforms that CodeBot generates, so that the same wireframes can be reused.