once:radix is the first application development environment to be delivered entirely within a web browser. This offers a number of important advantages to developers. Finally, what you see really is what you get. Placement of elements on the page is fast and accurate, with pixel-perfect positioning.
Applications are page based, usually combining labels (fixed text), data (loaded from the database), images and event-driven programming (using once:script – an extended version of Javascript).
Pages created using once:editor (oED) are stored on the server (as XML blocks and subblocks).
For example: if a block is created called client_details in oED, it submits two files to oSS (client_details.xml and client_details.css). Also if you create a help page called client_details.html and park it in the help directory, it is automatically linked into the help system (oHELP).
In response to requests from once:client (oCLI), once:secureserver (oSS) performs an eXtensible Stylesheet Language Transformation (XSLT) into XHTML and Javascript, then returns the page as a single package (containing XHTML, Javascript and CSS) to oCLI. once:secureserver also caches the page for faster response to future requests for the same page. oCLI renders the page, then waits for user input or, if the page contains an onLoad event, may automatically send a request for data to populate its fields and/or subblocks.
The examples below show typical oCLI and oED pages.
|
![]() |
|
| Rich data presentation | Multiple subblocks 1:N relationships | Gantt chart example |
|
| |
| Floating oED palettes | Place & position database fields | Event-driven Script Editor |
The system supports concurrent access to all once:radix applications. So you can open several Tabs or Windows at once. As you make changes to a screen design, simply switch from the oED tab to an oCLI tab showing the same page, refresh the page to show changes you have made, then test the page.
A convenient way to do this is to log on first into once:client, then create a second tab with a copy of the same address and session key as the first tab. On this second tab, type ctrl-y to switch to the intermediate Log On screen. Then click Edit to switch to the once:editor (oED) screen.

When oED is launched, the flash screen provides three options:
Click Log Off to cancel and exit oED. This switches back to the intermediate Log On screen.
Click New to create a layout, starting with a blank screen.
or
Click Open to load an existing screen layout. This displays the Open block palette as described below.
Warning: To avoid making accidental changes to working screens, do not save edits to layouts distributed with once:radix. If you wish to base a design on one of these layouts, open then save (Save As...) the layout with a new block name before making any changes.
Before learning how to build screen layouts, let's begin by examining the structure of the pages.
Screen layouts are stored as sets of XML and CSS files on the server. The XML Block file contains the layout, along with your scripts. The first time a screen layout is requested by once:client (oCLI) after the server is restarted, the XML file undergoes an XSL transformation to XHTML and Javascript, then it's cached server side. The XHTML, Javascript and CSS are returned when requested by oCLI.
A single screen may consist of only a parent Block, a mechanism for displaying records from any number of tables, provided the records have a one-to-one relationship. This Relationship is stored in a Metamodel file. The database tables, their Fields and Labels are defined in Model files. The Metamodels, Relationships and Models provide a roadmap for the server to access the database.
Here is a list of the Metamodels, Relationships, Models, field Aliases and the Schema.Table.Field reference in the standard release of once:radix.
Parent Blocks may also contain placeholders for one or more Subblocks. Subblocks may be used to set up a one-to-many link between the parent Block and its related record(s). However it may also allow any data (including data in the parent record(s)) to have security restrictions applied to selected information. For example, if you wished to prevent some users from seeing the salary for fellow staff members, that information could be displayed in a subblock. Only users with access privileges set for that subblock could see those details.
In the example below the name of the parent block file is 'organization.xml'. The names of the subblocks are 'organization_branch.xml' and 'organization_contacts.xml'.
The Branch subblock contains one visible field while the Primary key field is hidden on load. The Contacts subblock has four visible fields while, again, the Primary key field is hidden on load.

Their associated CSS files ('organization.css', 'organization_branch.css' and 'organization_contacts.css') are created automatically when the blocks are saved by oED.
The parent block contains a more complex set of elements, including buttons, graphics, fields, labels and subblock placeholders. The sublock lists:
| Links to: | The name of the associated subblock | Is this a portal sub-block? | 1:1 relationship if No. 1:many relationship if Yes. | Relationship: | The name of the Relationship used to link the parent and child tables of the parent block and subblock, as stored in the Metamodel file. | Model: | The name of the associated database table, as referenced by its model file. | Parent Key: | The name of the linked key field in the parent Block. By convention, the name of this field is usually 'primary' (if a Primary Key) and 'fkSomeFieldName' (if a Foreign Key). |

To view these example blocks, click Open as described above. The Open dialog is displayed. Select the 'contacts' directory.
Click
to create a new directory. Enter a suitable block name, then click Save. You are free to experiment with this copy of the block, without fear of damaging the original file.
Click
to move up one level in the directory tree. To navigate down the directory tree, double-click the icon beside directory name.
To change the name of a directory highlight its name, click
then overtype the old directory name with a new entry. To test this feature, first create a new (empty) directory.
To delete a directory highlight its name then click
.

To view organization.xml, select organization. The block is loaded and displayed as shown above.

To save a copy of the block, right-click (ctrl-click on a Macintosh), then select Save As from the File menu as described above. The Save dialog is displayed.
Click
to create a new directory. Enter a suitable block name, then click Save. You are free to experiment with this copy of the block, without fear of damaging the original file.
Click
to move up one level in the directory tree. To navigate down the directory tree, double-click the icon beside directory name.
To change the name of a directory highlight its name, click
then overtype the old directory name with a new entry. To test this feature, first create a new (empty) directory.
To delete a directory highlight its name then click
.

If an attempt is made to delete a directory that contains block files, an error message is displayed.

Most oED functions are accessed by clicking the right mouse button (ctrl-click on a single button Macintosh mouse) to display the context-sensitive menu. Palettes and direct functions can be accessed through this menu and through keyboard shortcuts. Direct functions on the top level of the menu include:
| Undo | ctrl+Z | One level of Undo/Redo is supported. |
| Cut | ctrl+^+X | Delete an element or group of elements from the layout and save to the Clipboard. |
| Copy | ctrl+C | Sava a copy of an element or group of elements from the layout to the Clipboard. |
| Paste | ctrl+V | Paste the contents of the Clipboard to the last recorded cursor position on the layout. |
| Delete | Del | Delete an element or group of elements from the layout. |
| Select All | ctrl+A | Select all elements on the layout. |
A Stack Palette option (ctrl-I) places the most commonly-used palettes in a collapsed format on the screen at the last mouse position clicked. Refer View Sub-menu for more details.
| Border/Fill | ctrl+F | Insert Data Source | ctrl+H | Text | ctrl+T | Position | ctrl+P | Elements | ctrl+L | Image Map | ctrl+M | Controls | ctrl+W | Properties | ctrl+J | Duplicate | Styles | ctrl+Y | Change Data Source | Script Editor | ctrl+E |
Let's use a copy of organization.xml to explore the capabilities of oED.
Elements can be selected individually or in groups by clicking, shift clicking or dragging a marquee. A drag point is located in the top left-hand corner of the selected element(s). When selected, the distance from the top left-hand corner of the display is continually updated as the elements are moved.

When an individual element is selected, a resize drag point is displayed in the bottom right-hand corner. When selected, the distance from the top left-hand corner of the display to the bottom right-hand corner of the element, as well as its width and height are continually updated as the element is resized.
Snap to Grid
Dragging is by default, one pixel at a time to give smooth movement of elements to any position on screen. If you prefer to operate on a 10px grid, enable the alignment grid by typing Ctrl - g. With this enabled, object can be aligned and dragged to this 10 pixels layout.
Note: To undo any change made to a layout, simply type ctrl-Z. Only one level of Undo is supported.

The examples at left show some of the most frequently used palettes: Border/Fill, Text and Position. They operate in the same way as similar palettes in other applications. Remember to select one or more elements before selecting a function from one of these palettes.
The Border function must be completed from the top down before changes will take effect. For example, the border must be set before a border width and/or color can take effect. Borders can have different settings on each side. So a field can be set to have a red double stroke on the bottom bottom, while the other sides have a grey single stroke.
Special Note: The padding option that is set on this palette affects the positioning of elements. For example, if a padding of one pixel is set in the X and Y dimensions, this will change the positioning values in Position palette and when displayed in the drag handles by one pixel in each direction.
The Position palette includes control of the Z-layer. That is, fields can be moved to the front or rear of all other elements on the screen. This allows elements to overlay one another.
Note: Occasionally some browsers have difficulty resolving Z-layer positioning. If you find that fields will not move when dragged or when the cursor control keys are used, try moving the selected element(s) forward or backward. This usually clears the problem.
The Position palette also includes tools to align objects on the left, right, top and bottom. Simply select the elements to be aligned, then select one of these options.
Text, border and fill color palettes may be set to a solid color from the standard set or by keying in the red, green and blue values as decimals (0-255) for more precise control.
File Menu

The File option in the context palette provides access to file upload and download operations, as well as the Log Off command. Its functions include:
| New | Create a new parent Block or Subblock. |
| Open... | Open an existing parent Block or Subblock. |
| Revert To Saved | If a saved block has been edited but not saved, this command reloads the block from the server, overwriting the changes that have been made. |
| Save | If a saved block has been edited, this command saves the block to the server, overwriting the previous version. |
| Save As... | If a new block has been created but not saved, this command requests a name be entered, then saves the block to the server using that block name. |
| Upload... | This command allows image files to be uploaded to the server. |
| Setup... | This command opens the Block Setup palette. |
| Log Off | Quit oED, after asking whether any unsaved changes to the current Block layout should be saved. |
Block Setup


The Block Setup palette is displayed:
Also, the palette can be opened:
It is used to set up the basic parameters of the Block, including:
| Page Dimensions |
| Block Width | Sets the width that the block resizes to if the Allow once:radix to resize the window checkbox is set. |
| Block Height | Sets the height that the block resizes to if the Allow once:radix to resize the window checkbox is set. |
| Show page borders | If a saved block has been edited but not saved, this command reloads the block from the server, overwriting the changes that have been made. |
| Permissions | |
| Group | The default Read, Delete, Write and Modify Block permissions are displayed for each user Group. These can be changed on this palette or set in the Block Security screen in oCLI. |
| Metamodel | This records the name of the Metamodel used to define the data structure. |
| Relationship | The Relationship defines the way the database tables are joined. |
| Block Type | A Block may be a parent Block (or unlinked Subblock) or child Block (Linked Subblock). |
| Model: | If a child Block, this field lists the Model that contains the link field. This is typically a foreign key. |
| Link field: | The name of field that is used at the Subblock end of the database Join. |
In the example shown at left, the Contacts Metamodel has been selected. When this is done, this menu displays a list of the Relationships stored in that Metamodel.
Image Upload

This command allows image files to be uploaded to the server.
To upload an image, click Browse, navigate to locate the file, then click Open. The pathname to the file is shown in the Source field of the Image Upload palette. Type a Destination filename, then click Upload.
Click
to create a new directory. Enter a suitable block name, then click Save. You are free to experiment with this copy of the block, without fear of damaging the original file.
Click
to move up one level in the directory tree. To navigate down the directory tree, double-click the icon beside directory name.
To change the name of a directory highlight its name, click
then overtype the old directory name with a new entry. To test this feature, first create a new (empty) directory.
To delete a directory highlight its name then click
.
Insert Menu

The Insert option in the context palette enables Elements, Controls and database fields to be added to the layout. Their functions include:
| Elements... | Insert labels, non-database fields, combo (label plus field), buttons, Subblock, horizontal rule and images. |
| Controls... | Insert Radio buttons, Checkboxes, Dropdown lists, Fieldsets and Menu lists. |
| Data Source... | Insert database labels and fields. |
These functions are described below.
Insert Elements > Label

To add a label to the screen layout:
| Caption: | The text that will appear on the label. | |
![]() | The height of the label in pixels. If no value is entered, the height is automatically set to the height of the text. | |
![]() | The width of the label in pixels. If no value is entered, the width is automatically set to the width of the text. | |
Records: | If None is selected, the element is treated as a standard label. If Current is selected, the element displays the current record number. If Total is selected, the element displays the total number of records in the current found set. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: | |
![]() | The distance (in pixels) that the label is positioned in from the left margin of the layout. | |
![]() | The distance (in pixels) that the label is positioned down from the top margin of the layout. |
Insert Elements > Non-database Field

Fields can be added to the layout for temporarily inputting and displaying data. To add a field to the screen layout that is not stored in the database:
| Alias: | The name of the field. |
![]() | The height of the field in pixels. If no value is entered, the height is automatically set to 16px. |
![]() | The width of the field in pixels. If no value is entered, the width is automatically set to 115px. |
Multi-Row: | If this checkbox is set, the field allows multi-line entries. It the amount of text exceeds the space available, a slider bar automatically appears to allow scrolling. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the field is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the field is positioned down from the top margin of the layout. |
Insert Elements > Combo (Label + Field)

Label/field pairs can be added to the layout for temporarily inputting and displaying data. To add a combo field to the screen layout that is not stored in the database:
| Alias: | The name of the field. |
| Caption: | The text that will appear on the label. |
![]() | The height of the field in pixels. If no value is entered, the height of the label is automatically set to the height of the text. The height of the field is automatically set to 16px. |
![]() | The width of the label in pixels. If no value is entered, the width of the label is automatically set to the width of the text. The width of the field is automatically set to 115px. |
Multi-Row: | If this checkbox is set, the field allows multi-line entries. It the amount of text exceeds the space available, a slider bar automatically appears to allow scrolling. Manual Positioning To create the elements, click the location on the layout where you wish to place them, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the label is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the label is positioned down from the top margin of the layout. |
Insert Elements > Button

To add a button to the screen layout:
| Caption: | The text that will appear on the button. |
![]() | The height of the button in pixels. If no value is entered, the height is automatically set to the browser's default setting. |
![]() | The width of the button in pixels. If no value is entered, the width is automatically set to the browser's default setting. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the button is positioned down from the top margin of the layout. |
Insert Elements > Subblock


To create a Subblock placeholder on the parent Block:
| Subblock: | The name of the Subblock that will load into the placeholder. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) containing the key field at the parent Block end of the Join between the parent Block and Subblock. There are special cases where there are no details on the parent Block. For example, this may occur when summary pages are built with all data in the Subblock. In this case, choose None as the Model. |
| Parent Key: | The name of the database Key field at the parent Block end of the Join between the parent Block and Subblock. There are special cases where there are no details on the parent Block. For example, this may occur when summary pages are built with all data in the Subblock. In this case, choose None as the key field. |
| Display as: | Subblocks can be displayed as single line entries (Normal) or multiple lines with a slider appearing automatically when the quantity of text exceeds the space available (Multiple Records). |
| Highlight: | Click on this option to open the Color palette. Double-click or key in RGB color values (0-255) to set the color used to show which row in a Subblock is selected. |
![]() | The height of the Subblock in pixels. If no value is entered, the height is automatically set to the browser's default setting. |
![]() | The width of the Subblock in pixels. If no value is entered, the width is automatically set to the browser's default setting. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the Subblock is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the Subblock is positioned down from the top margin of the layout. |
Insert Elements > Horizontal Rule

To add a horizontal rule to the screen layout:
|
The width of the rule in pixels. If no value is entered, the width is automatically set to 65px. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the rule is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the rule is positioned down from the top margin of the layout. |
Insert Elements > Image

To add an image (e.g. .gif, .png or .jpg) to the screen layout:
| Image: | The name of the image file loaded from the server when the block is loaded. |
| Repeats: | There are three options when the image area defined on the screen is not the same as the size of the image: Never (stretch) scales the image to fill the space. Repeat Horizontally and Vertically step and repeat the image in the direction specified. |
| The height of the image in pixels. If no value is entered, the height is automatically set to the browser's default setting. |
![]() | The width of the image in pixels. If no value is entered, the width is automatically set to the browser's default setting. Manual Positioning To create the element, click the location on the layout where you wish to place it, or click Insert after entering the manual positioning parameters: |
![]() | The distance (in pixels) that the image is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the image is positioned down from the top margin of the layout. |
Insert Controls > Radio Button


To add radio button controls to the screen layout:
| No of buttons: | Enter the number of radio buttons. |
| Position Label | Labels can be automatically positioned immediately above (Top) or to the right (Right) of each button, as shown in the example at left. |
| Labels for the Buttons | Button labels are created for the specified number of entries. One of these can be set as the default. Position To create the control, click the location on the layout where you wish to place it. The position is recorded in this palette, or enter the position manually. Then click Add: |
![]() | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the button is positioned down from the top margin of the layout. |
| Offset: | Enter the vertical number spacing between controls (in pixels). |
Insert Controls > Checkbox


To add checkbox controls to the screen layout:
| No of Checkboxes: | Enter the number of checkboxes. |
| Position Label | Labels can be automatically positioned immediately above (Top), as shown in the example at left, or to the right (Right) of each checkbox. |
| Labels for the Checkboxes | Labels are created for the specified number of entries. One of these can be set as the default Value. Position To create the control, click the location on the layout where you wish to place it. The position is recorded in this palette, or enter the position manually. Then click Add: |
![]() | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the button is positioned down from the top margin of the layout. |
| Offset: | Enter the vertical number spacing between controls (in pixels). |
Insert Controls > Dropdown List


A dropdown list provides a fixed set of values from which to make a selection. It is identical in appearance to the Menu control which draws its data from a field index. To add a dropdown list to the screen layout:
| Title: | Enter the title of the menu list. |
| Position | The title can be automatically positioned immediately above (Top) or to the left (Left) of the list, as shown in the example at left. |
| No of options: | Enter the number of list options to be entered. Fields are created in the Option Settings section of the palette, ready to accept your input. |
| Default: | Enter the number of default list option here (if required). |
| No of Rows: | Enter the number of rows that are displayed when the list is activated. This is typically 4-10 rows. |
| Option Settings | Enter the text for each List Item here. Position To create the control, click the location on the layout where you wish to place it. The position is recorded in this palette, or enter the position manually. Then click Add: |
![]() | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the button is positioned down from the top margin of the layout. |
Insert Controls > Fieldset


The fieldset is a useful tool for presenting information as the text heading is bound to the surrounding box. For example, the Fieldset palette uses three of them: Title Details, Size Details and Position. To add a fieldset to the screen layout:
| Title: | Enter the title of the fieldset. |
| Width: | Enter the width of the fieldset (in pixels). The default is 25px. |
| Height: | Enter the height of the fieldset (in pixels). The default is 25px. |
| Default: | Enter the number of default list option here (if required). Position To create the control, click the location on the layout where you wish to place it. The position is recorded in this palette, or enter the position manually. Then click Add: |
![]() | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the button is positioned down from the top margin of the layout. |
Insert Controls > Menu List


A menu list presents a set of values from which to make a selection. It draws its data from the index of a field in the database. It is the same in appearance as the Dropdown list control, but the selection is written directly to a field. When a Source menu item is selected in oCLI's Edit mode, its value is appended to the Target field specified by its Model.Alias.
To add a dropdown list to the screen layout:
| Target | |
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) containing the field (referenced by its Alias) that is assigned a value when a menu item is selected. |
| Field: | The name of the targe field stored in the database Model into which an entry selected from the menu is stored. Aliases may contain alphanumeric characters. Spaces may be represented as underscores. These are converted to spaces when the Label (using the Alias), with its associated Field, is added to the block. | Source |
| Metamodel: | The name of the Metamodel that references the lookup field index. This may be any section of the database. |
| Relationship: | The name of the database Relationship within the Metamodel that references the lookup field index. |
| Model: | The name of the database Model (representing a table) that references the lookup field index. |
| Field: | The name of the source field stored in the database Model that provides a sorted indexed list of all entries in that field to populate the Menu. |
![]() | The distance (in pixels) that the menu is positioned in from the left margin of the layout. |
![]() | The distance (in pixels) that the menu is positioned down from the top margin of the layout. |
Insert Datasource

Vertical Positioning

Label/database field pairs can be added to the layout.
Their details are obtained by oED from the Metamodel and Model files. The Metamodel stores the Relationships that define the Joins between tables. Each table is represented through Model files. These store the field description and an Alias that can be used to automatically apply labels when the field is added to the layout.
To add a database field and label to the screen layout:
| Metamodel: | The name of the Metamodel selected when the Block is created. | |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. | |
| Models: | The name of the database Model (representing a table) selected when the field is set in the Insert Datasource or Change Datasource palette. | |
| Fields | All fields contained in the Model (Usually that means all fields in the table.) are listed by Label name and data Type. To add a field to the layout, click the Add checkbox beside its name to select it. To select all fields that are NOT key fields (primary or foreign keys), click Select. To select all fields including key fields (primary and foreign keys), click Select All. To de-select all fields that have been checked, click Deselect . Position To add the fields to the layout, click the location where you wish to place them, or click Add after typing in the positioning parameters. Note that the coordinates are based on the position of the fields. Take care to allow for the width of the longest label when placing fields in the vertical format or they may be placed off the layout. | |
| Vertical | If this radio button is selected, the fields are positioned one above the other with spacing set by the Entries: setting. Labels are placed above their associated fields, with spacing set by the Label: setting. Labels and Fields are both left justified. | |
| Horizontal | If this radio button is selected, the fields are positioned side by side with spacing set by the Entries: setting. Labels are placed beside their associated fields, with spacing set by the Label: setting. Labels are right justified and Fields are left justified. | |
![]() | The distance (in pixels) that the label is positioned in from the left margin of the layout. | |
![]() | The distance (in pixels) that the label is positioned down from the top margin of the layout. |
Format Menu

| Text... | Change text formatting. |
| Border/Fill... | Change boundary and color fill formatting. |
| Position... | Change the position and alignment of elements, as well as their layer positions (forward and backward). |
| Data Sources... | Change the Blocks links to Metamodel and Relationships. |
| Styles... | Change the style settings for all elements and save these as the master settings for subsequent Block design. |
These functions are described below.
Format > Text

Individual elements can be adjusted for fonts, size, color, style and alignment.
| font | It is advisable to select alternate fonts, in case a client machine does not have the first choice. |
| size | Text is set in pixels. |
| color | Preset colors can be selected or precise values for red, green and blue can be entered as decimal numbers, each between 0 and 255. |
| style | Text can be set to bold, italic, underline and |
| alignment | Text can be aligned left, right, centre and proportionally spaced (multi-line). |
Format > Border/Fill

Individual elements can be adjusted for fill color, as well as border sides, color, pattern, weight and padding.
| Fill | |
| color | Preset colors can be selected or precise values for red, green and blue can be entered as decimal numbers, each between 0 and 255. |
| Border | |
| sides | Icons representing the sides allow all borders to be turned off, on, top, bottom, left and right. This allows elements to have different borders settings on each side, if needed. |
| color | If the side(s) selected is/are on, preset colors can be selected or precise values for red, green and blue can be entered as decimal numbers, each between 0 and 255. |
| pattern | If the side(s) selected is/are on, preset to None, Dotted, Dashed, Solid, Double, Groove, Ridge, Inset and Outset. This provides a flexible set of options including embossed and debossed images. |
| weight | If the side(s) selected is/are on, this specifies the width of the border (in pixels). |
| padding | If the side(s) selected is/are on, this sets a space between the edge of the element and the border. |
Format > Position


Individual elements can be adjusted for fonts, size, color, style and alignment.
| x: | The distance (in pixels) that the button is positioned in from the left margin of the layout. |
| y: | The distance (in pixels) that the button is positioned in from the top margin of the layout. |
| w: | The width of the element in pixels. |
| h: | The height of the element in pixels. |
| move | Move element in front of or to the rear of all other elements on the layout. |
| align | Align elements to top, bottom, left or rightmost position of the selected set as shown in the example at left. |
Change Datasource


Time can be saved when creating layouts by duplicating an existing layout, then changing it to reflect the new design. For example, you may choose to set up all of your navigation buttons on a layout, then re-use that design for all other pages.
This can often mean that the Metamodel and/or Relationship must change. This is done in the Block Setup palette. Once this is done, any fields on the layout with broken links are highlighted with a solid red border. The Change Datasource palette allows them to be linked to fields in Models of the new Relationship.
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Models: | The name of the database Model (representing a table) selected when the field is set. |
| Fields | All fields contained in the Model (Usually that means all fields in the table.) are listed by Label name. To apply a new field to the layout, highlight the Field name, then click the Change button. |
| Label Text | The label is, by default, set to the Alias, with underscores (_) changed to spaces. This can be manually changed by entering a new name. |
Format > Styles

Individual elements (Label, Field, Fieldset, Legend, Page, Select and Subblock) can be adjusted for fonts, size, color, style, alignment, etc.

| Add Attribute | The Add Element Style palette is displayed when this button is clicked. It allows new attributes to be added to the current element displayed on the Format Styles palette. |
| Delete Attribute | This removes the selected attribute from the current element displayed on the Format Styles palette. |
| Set Type Master | This sets the current type style to be the Master setting for new pages created. |
| Colour | This option is available whenever a colour-related attribute is selected. |
| Set As Master | This sets the current style to be the Master setting for non-text related options (such as lines, subblocks, etc. |
Tools Menu

| Script Editor... | oED supports an extensive scripting language that is based on standard Javascript commands as well as purpose-built functions, such as the ability to hide and show elements and to search and step through records. |
| Image Map... | Image maps mark areas of the screen over a graphical image that can trigger a mouse-activated event (such as onMouseover and onClick). Note: While this feature is implemented in oED, support is yet to be added to oCLI. |
| Default Sort Order... | Sorting of records is an important function when presenting and analyzing data. This function allows data to be sorted when loaded into a block or subblock. |
These functions are described below.
Script Editor

once:radix features a powerful scripting engine that is based on the Javascript language with special-purpose functions (Actions) that make the task of creating a rich user experience easier to achieve.
The Script Editor is designed to make the creation of client-side scripts easier by listing all Actions, Elements, Operators and Scripts in scrollable windows. For details about once:script Actions, refer to the Scripting section.
Elements may include lists of Buttons, Fields, Labels, Subblocks, Images and Other items. Element names are automatically assigned when they are created on the screen. Each element has its type (e.g. field, label, button, etc.) appended, followed by a sequence number. If desired, these names can be set manually (in the Properties palette) to assist with keeping track of elements on your layout. However there elements can be assigned to statements simply by placing the cursor in the correct position in the script panel, then double-clicking the element on the layout.
Operators are grouped under four categories: Standard, Strings, Components and Escape.
Scripts created on the layout are listed by the names entered when saved. These names are used when binding a script to an Event, as described later in this section.
Below this is the script pane. This is where scripts are entered and displayed. To add an entry from any list into the script pavne, simply double-click on its name. For example: An existing script can be re-loaded, simply by double-clicking its name in the Scripts list.
| Save Block | To save layout changes to the server each time a script is saved, set the Save Block checkbox. |
| Attach | To bind a script to an element, click on the element to make it active, then click Attach. The Attach Script palette is displayed with the element ScriptId listed as the Item. Select the type of Event that will trigger the script (e.g. onClick), and the Script name. The list of available events will depend on the type of Element to which the script will be bound, as is demonstrated in the two examples shown at left.
Click Attach to complete the operation. |
| New | Erases the script pane, ready to create a new script. If changes have been made in the script pane, but not saved, you will be prompted to save them first. |
| Delete | To delete an entry from the Scripts list, click to select the name in the list, then click Delete. |
| Open | To open a saved script, double-click on the name in the Scripts list, or click the name once, then click Open. |
| Save | This command saves saves changes to edited scripts. If saving a script for the first time, clicking Save will add your script to the Scripts list. You will be prompted to enter a name or use the default name. It is wise to save your scripts with names that will help you find them later, as shown in the example. |
| Save As | Clicking Save As will add your script to the Scripts list. You will be prompted to enter a name or use the default name. It is wise to save your scripts with names that will help you find them later, as shown in the example. |
| Close | This command closes the Script Editor window. If changes have been made to the script page, you will be prompted to save the changes before closing the window. |
| Example: | To add the If... Else... construct to a script in the script pane, first position the cursor in the pane where you would like the code placed, double-click If in the Actions list, press the return key (to move the insert position down one line after the closing brace), then double-click Else. The pane will display:
if (condition) Select 'condition' then double-click getMode() in the Actions list. Complete the statement by typing: == "Find" Follow this same process using the Actions list to enter clearAllFields(); and enterFindMode(false); into the else condition. Finally, do the same to enter the getTotal(); statement after the closing brace. Your small program should appear the same as the example shown at left. Click Save to add your script to the Scripts list. You will be prompted to enter a name or use the default name. It is wise to save your scripts with names that will help you find them later, as shown in the example at left. |
Attach Script

Event-driven scripting is a key source of the power of web browsers. When an event occurs, a script (bound to that object and event) is executed.
Events can be attached to the Page (parent block), Subblocks, Fields, Labels, Buttons, Images, Radio Buttons, Checkboxes, Dropdown Lists, Menus and Fieldsets. To attach an event to an object, first select the object, then click Attach on the Script Editor or Properties palette. This opens the Attach Script palette. With the name of the object displayed in the Item field.

The event list is context sensitive to ensure that only valid events can be bound to an object. Select the event on which the script will execute, then select the script name. Click Attach to complete the operation.
To remove an event binding from an object, select the object with the Properties palette displayed. Select the Event name. Click Unattach. The Event and associated Script names are removed from the Properties list.
once:radix combines many of the standard browser events with its own special-purpose functions. They include:
| Click | The onClick event occurs when an object bound to a script is clicked. |
| Blur | The onBlur event occurs when an object bound to a script loses focus. It may be the result of a mouse click on another object, pressing tab to move to another object, or a script command that moves focus to another object. See also onFocus. |
| Change | The onChange event occurs when the contents of a field bound to a script changes value. |
| Delete (After) | The onDeleteAfter event is bound to a block or subblock. It is triggered on successful completion of a record delete operation performed on the parent block or subblock. |
| Delete (Before) | The onDeleteBefore event is bound to a block or subblock. It is triggered immediately before a record delete operation is performed on the parent block or subblock. |
| Double Click | The onDoubleClick event occurs when an object bound to a script is double-clicked. |
| Error | The onError event is triggered when an error occurs while loading a document or image. It is bound to the parent block. |
| Find | The onFind event occurs prior to submitting a Find request to the server. It is bound to the parent block. |
| Focus | The onFocus event occurs when focus is applied to an object bound to a script. It may be the result of a mouse click on the object, pressing tab to move to the object, or a script command that moves focus to the object. See also onBlur. |
| Key Down | The onKeyDown event occurs when any key (including shift and control keys) is pressed. |
| Key Press | The onKeyPress event occurs when any character key (NOT including shift and control keys) is pressed or held down. It fires immediately after the onKeyDown event. |
| Key Up | The onKeyUp event occurs when any key (including shift and control keys) is released. |
| Load | The onLoad event occurs when a page or an image is loaded. |
| Mode Change | The onModeChange event occurs when control is switched to a new mode (Find, Browse or Edit). It is bound to the parent block. |
| Mouse Button Down | The onMouseButtonDown event occurs when a mouse button is clicked. |
| Mouse Button Up | The onMouseButtonUp event occurs when a mouse button is released. |
| Mouse Out | The onMouseOut occurs when the mouse pointer moves away from an object bound to a script. |
| Mouse Over | The onMouseOver occurs when the mouse pointer moves onto an object bound to a script. |
| Record Change | The onRecordChange event is bound to the parent block. It is triggered when moving from one record to another. |
| Record Submit (After) | The onRecordSubmitAfter event is bound to a parent block. It is triggered immediately after a parent record submit operation is performed. |
| Record Submit (Before) | The onRecordSubmitBefore event is bound to a parent block. It is triggered immediately before a parent record submit operation is performed. |
| Select Text | The onSelectText event occurs each time one or more characters in a field are selected. |
| Subblock Edit | The onSubblockEdit event is bound to a subblock. It is triggered when a subblock row enters Edit mode. |
| Subblock Row Show | The onSubblockRowShow event is bound to a subblock. It is triggered when a subblock row is displayed. |
| Subblock Submit (After) | The onSubblockSubmitAfter event is bound to a subblock. It is triggered immediately after a subblock record submit operation is performed. |
| Subblock Submit (Before) | The onSubblockSubmitBefore event is bound to a subblock. It is triggered immediately before a subblock record submit operation is performed. |
| Window Move | The onWindowMove event is bound to the Page. It is triggered if the user repositions the browser window on screen. |
| Window Resize | The onWindowMove event is bound to the Page. It is triggered if the user changes the size of the browser window. |
Image Map

An Image Map is a list of coordinates overlaying a section of an image that can trigger a mouse-activated event (such as onMouseover and onClick), as opposed to a normal link which triggers on the entire area of the image.
Note: While this feature is implemented in oED, support is yet to be added to oCLI.
Each Image Map is assigned a Script Id and a set of coordinates marking points relative to the top left corner of the image. To create a map, click to select the image, then click New. The map name is assigned sequentially in the form: Map 1, Map 2, Map 3, etc. as well as a Scipt Id.
Click Create Map then click on a set of points to mark the boundary of the region. Any number of points can be entered.
To cancel the set, click Reset then start marking the map again.
To erase a map, select its name in the list of Existing Maps, then click delete.
Once this feature is fully impletemented, it will be a simple matter of selecting a map in the Image Map properties palette, then clicking Attach to apply a script to an Image Map.
Default Sort Order

Sorting of records is an important function when presenting and analyzing data. The Default Sort Order palette allows data to be sorted when loaded into a block or subblock.
| Unsorted Fields: | When one or more fields from a Model (table) is/are placed on the layout, all fields from that Model are available for sorting, including those not present on the layout. |
| Sorted Fields: | They are presented in the Unsorted Fields list. All fields to be sorted apper in the Sorted Fields list on the right side of the palette. |
| -> | Move the selected field from the Unsorted Fields list to the Sorted Fields list. |
| <- | Remove the selected field from the Sorted Fields list. |
| ALL -> | Move all fields from the Unsorted Fields list to the Sorted Fields list. |
| <- ALL | Remove all fields from the Sorted Fields list. |
| Move Up | Move the selected field up the sort order in the Sorted Fields list. |
| Move Down | Move the selected field down the sort order in the Sorted Fields list. |
| Sort Direction | Entries in the Sorted Fields list marked (asc) are sorted in ascending order. Entries marked (desc) are sorted in descending order. Switch the sort direction of the selected field. If the field currently displays (asc), switch to (desc) or vice versa. |
Arrange Menu

All elements on the layout have a stacking order (z-order). The Arrange Menu function allows the order to be changed by moving the elements toward the front or back. This feature is also available through the Position palette.
| Front | Move the selected element(s) in front of all other elements on the layout. |
| Back | Move the selected element(s) to the rear of all other elements on the layout. |
The examples below show a horizontal rule in front of a field. To move the rule behind the field, select the rule then click Arrange > Back or select the field then click Arrange > Front.

View Menu

The View Menu allows the visual presentation of the editor layout to be customized.
| Show/Hide Palettes | This function hides all palettes. If all are hidden, the palettes that were visible prior to being hidden are re-displayed. |
| Save Palettes | This function saves the current position of all visible palettes. When oED is started, the palettes are presented in the same positions as when they were saved. |
| Restore Palettes | This function restores palettes to the same positions as when they were saved. |

| Stack Palettes | Display the palettes in the stacked order at the position where the mouse button was last clicked. |

| Persistent | Keep a persistent marquee around the whole selection. |
| Outline | Outline each selected object. |
| Display | Show page border. |
Help Menu
once:radix supports a context-sensitive Help system (oHELP) for oED, oCLI and oADMIN.
To see an example of an application supporting oHELP, visit the once:fabrik demonstration system. After creating a user account, log on to the system and activate the help system by pressing F1 or by selecting the Help functions from the context-sensitive menu. Refer the oHELP section of this guide for more details.
| Contents | Displays a table of contents for all once:radix documentation. |
| About... | Displays the flash screen that is also shown at log on. |

Properties Palettes
Properties palettes display information about the page and the elements on the page. They enable parameters to be added and changed as described below. When activated (from the Context Menu or by typing ctrl+J) the format of the Properties palette switches automatically, as elements are selected and de-selected. For example, if no element is selected, the Page Properties are displayed. If a group of elements is selected, the Group Properties are displayed; and so on.
The Properties palette formats include:
Group Properties

The Group Properties palette contains the only option that can apply to a selected set of elements. This is the Hidden checkbox. When checked, the selected elements (regardless of their type) are hidden from view when the block is loaded.
Page Properties

The Page Properties palette allows scripts to be performed when specified events occur on a parent Block or Subblock. e.g. in response to an onLoad or onUnload event.
| Script: | This lists the scripts attached to the Block. |
| Event: | This lists the Events that trigger the Scripts bound to the Page. |
Scripts are bound to the Page using the Attach button and removed using the UnAttach button.
Field Properties

The Field Properties palette defines the settings for each database field and its associated label.
| Field Script Id: | Scripts refer to the associated field by this name. |
| Label Script Id: | Scripts refer to the associated label by this name. |
| Label Text: | The text displayed for the label. When the Label is created, it is set to the Alias. It can be changed manually by changing the contents of this field. |
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) selected when the field is set in the Insert Datasource or Change Datasource palette. |
| Field: | The name of the database field set in the Insert Datasource or Change Datasource palette. |
| Alias: | The name of the pre-defined label stored in the database Model selected when the field is set in the Insert Datasource or Change Datasource palette. Aliases may contain alphanumeric characters. Spaces may be represented as underscores. These are converted to spaces when the Label (using the Alias), with its associated Field, is added to the block. |
| Data Type: | The data type of the database field set in the Insert Datasource or Change Datasource palette. The format may be date (stored as a timestamp), string, integer, float, text, binary, boolean or password. |
| Tab Index: | Clicking the TAB key on a layout in oCLI moves the cursor through the fields in the order set by this field. Each element to be included in the tab order should contain an integer indicating its position in the sequence. Hint:To allow for future layout changes, use a sequence with gaps (e.g. 5, 10, 15, ...) to allow new fields to be easily added into the sequence. |
| Number: | If the Properities palette defines a numeric field, this extra function is displayed. Click Format... to display the Numeric Format palette. See below for details. |
| Field Type: | Fields can be displayed as single line entries (Normal), multiple lines, with a slider appearing automatically when the quantity of text exceeds the space available (Multi-Row), or as an obfuscated entry with an asterisk (*) representing each charcter (Password). |
| Hide Label: | When checked, the Label is hidden from view when the block is loaded. |
| Hide Field: | When checked, the Field is hidden from view when the block is loaded. |
| Read Only: | Sets the field to read only. i.e. The field's content can not be changed. |
| Label Script: | One or more scripts can be attached to the Label using the Attach button and removed using the UnAttach Label button. This is normally used for the onClick event. |
| Label Event: | This lists the Event(s) that trigger the associated Label Script(s). |
| Field Script: | One or more scripts can be attached to the Field using the Attach button and removed using the UnAttach Field button. |
| Field Event: | This lists the Event(s) that trigger the associated Field Script(s). |
Numeric Properties

| Thousands (repeating) | [t] |
| Units | [u] |
| Decimal | |
| Show 1, 2, ... decimal places | [d1], [d2], ... |
| Show up to 1, 2, ... decimal place | [-d1], [-d2], ... |
| Only show "." if there are decimal places | [d?.] |
| Pad with '0' to 1, 2, ... digit | [p1:0], [p2:0] ... |
| Pad with 'y' to x digits | [px:y] |
| Negative part follows | [-] |
| Zero part follows | [0] |
| Black, Green, Red text | [b], [g], [r] |
| An open square bracket '[' | [] |
| Any fixed text except '[' | Enter without quotes or square brackets. |
| Contents of a field (e.g. currency) | [c:model.alias] |
The Default format setting displays data with leading and trailing spaces.
Example
[c:contact_client.Currency_Symbol][t],[u].[d2][-]
([c:contact_client.Currency_Symbol][t],[u].[d2][r])
If the client currency is set to $, a field containing:
1234567.456 would be shown as: $1,234,567.46
-1234567.444 would be shown as ($1,234,567.44).
Subblock Properties

The Subblock Properties palette defines the settings for the Subblock placeholder on the parent Block. It also allows scripts to be performed when specified events occur on the Subblock. e.g. in response to an onLoad or onUnload event.
Parent Block
| Script Id: | Scripts refer to the associated Subblock by this name. |
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) containing the key field at the parent Block end of the Join between the parent Block and Subblock. There are special cases where there are no details on the parent Block. For example, this may occur when summary pages are built with all data in the Subblock. In this case, choose None as the Model. |
| Key: | The name of the database Key field in the parent Block. |
| Subblock | |
| Name: | The name of the Subblock that loads into the placeholder of the parent Block. |
| Display as: | Subblocks can be displayed as single line entries (Normal) or multiple lines with a slider appearing automatically when the quantity of text exceeds the space available (Multiple Records). |
| Highlight color: | Click on this option to open the Color palette. Double-click or key in RGB color values (0-255) to set the color used to show which row in a Subblock is selected. |
| Hidden: | When checked, the Subblock is hidden from view when the parent Block is loaded. |
| Read Only: | Sets the Subblock to read only. i.e. The content of the fields can not be changed. |
| Script: | This lists the Scripts attached to the Subblock. |
| Event: | This lists the Events that trigger the Scripts bound to the Page using the Attach button and removed using the UnAttach button. |
Note: If you change the Metamodel and/or Relationship after the Subblock is created, click Update to set the changes in the Subblock.
Image Properties

The Image Properties palette defines the settings for the associated graphical image, placed on the layout using the Insert Element... palette. It also allows images to be swapped automatically when an entry is made in an associated field.For example, a screen could display a plain white notepad icon when no text is stored in the associated field and a yellow notepad when the field contains text. 
| Image Script Id: | Scripts refer to the associated image by this name. |
| Image Source: | The name of the image file loaded from the server when the block is loaded. |
| Repeats | There are three options when the image area defined on the screen is not the same as the size of the image: Stretch scales the image to fill the space. Repeat Horizontally and Repeat Vertically step and repeat the image in the direction specified. |
| Lit Script Id: | The Script Id of the element that triggers a change of image when its contents is not NULL. |
| Lit Source: | The name of the alternate image file loaded from the server when the contents of the element identified by Lit Script Id is not NULL. |
| Hidden: | When checked, the image is hidden from view when the parent Block is loaded. |
| Image Maps: | If checked, the image is modified by an image map (not yet implemented). |
Radio Button Properties


The Radio Button Properties palette defines the settings for the associated radio button, placed on the layout using the Insert Component... palette.
| Radio Button Script Id: | Scripts refer to the associated radio button by this name. |
| Label Script Id: | Scripts refer to the associated button label by this name. |
| Label Text: | The name attached to the radio button. |
| Group Name | Scripts refer to the associated group of buttons by this name. |
| Tab Index | Clicking the TAB key on a layout in oCLI moves the cursor through the fields in the order set by this field. Each element to be included in the tab order should contain an integer indicating its position in the sequence. Hint:To allow for future layout changes, use a sequence with gaps (e.g. 5, 10, 15, ...) to allow new fields to be easily added into the sequence. |
| Hide Label: | When checked, the Label is hidden from view when the block is loaded. |
| Hide Radio: | When checked, the Field is hidden from view when the block is loaded. |
| Default Button: | This checkbox is set if this radio button is the default value for the group. Refer example at left. |
Checkbox Properties


The Checkbox Properties palette defines the settings for the associated check box, placed on the layout using the Insert Component... palette. If a checkbox is set in oCLI's Edit mode, its label value is appended to a field specified by its Model.Alias.
| Checkbox Script Id: | Scripts refer to the associated checkbox by this name. |
| Label Script Id: | Scripts refer to the associated checkbox label by this name. |
| Label Text: | The name attached to the checkbox. |
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) containing the field (referenced by its Alias) that is assigned a value when a checkbox is set. |
| Alias: | The name of the pre-defined label stored in the database Model selected when the field is set in the Insert Datasource or Change Datasource palette. Aliases may contain alphanumeric characters. Spaces may be represented as underscores. These are converted to spaces when the Label (using the Alias), with its associated Field, is added to the block. |
| Group Name: | Scripts refer to the associated group of checkboxes by this name. |
| Tab Index: | Clicking the TAB key on a layout in oCLI moves the cursor through the fields in the order set by this field. Each element to be included in the tab order should contain an integer indicating its position in the sequence. Hint:To allow for future layout changes, use a sequence with gaps (e.g. 5, 10, 15, ...) to allow new fields to be easily added into the sequence. |
| Hide Label: | When checked, the Label is hidden from view when the block is loaded. |
| Hide Checkbox: | When checked, the Field is hidden from view when the block is loaded. |
| Status: | If set if this checkbox is the default value for the group. Refer example at left. |
| Read Only: | Sets the associated field to read only. i.e. The field's content can not be changed. Refer example at left which shows the two positions that labels can be located: Top (above the checkbox) and Right (to the right of the checkbox). |
Dropdown List Properties


The Drop Down List Properties palette defines the settings for the associated drop down list, placed on the layout using the Insert Component... palette.
| DropDown Script Id: | Scripts refer to the associated list by this name. |
| Label Script Id: | Scripts refer to the associated header label by this name. |
| Label Text: | The name attached to the drop down list. |
| No. of Rows | The number of rows shown on screen when the field is selected. If there are more entries than the number of rows, a scroll bar appears to the right of the list. |
| Tab Index | Clicking the TAB key on a layout in oCLI moves the cursor through the fields in the order set by this field. Each element to be included in the tab order should contain an integer indicating its position in the sequence. Hint:To allow for future layout changes, use a sequence with gaps (e.g. 5, 10, 15, ...) to allow new fields to be easily added into the sequence. |
| Hide Label: | When checked, the Label is hidden from view when the block is loaded. |
| Hide Radio: | When checked, the dropdown list is hidden from view when the block is loaded. |
| Options-Text: | Fixed values can be assigned to the dropdown list. To add an entry, click Add. To remove an entry, click to select it, then click Delete. One Text Option can be set as the Default value by clicking its radio button. Refer example at left which shows the two positions that labels can be located: Top (above the list) and Right (to the right of the list). |
Fieldset Properties


A Fieldset is a simple box that can have a text heading linked to it. Refer example at left.
| Fieldset Title: | The name assigned as the name of the fieldset. |
| Hidden: | When checked, the fieldset is hidden from view when the block is loaded. | Script Id: | Scripts refer to the associated fieldset by this name. |
Menu Properties


The menu Properties palette defines the settings for the associated dropdown menu, placed on the layout using the Insert Component... palette. If a Source menu item is selected in oCLI's Edit mode, its value is appended to the Target field specified by its Model.Alias.
| Script Id: | Scripts refer to the associated menu by this name. | Target |
| Metamodel: | The name of the Metamodel selected when the Block is created. |
| Relationship: | The name of the database Relationship within the Metamodel selected when the Block is created. |
| Model: | The name of the database Model (representing a table) containing the field (referenced by its Alias) that is assigned a value when a menu item is selected. |
| Field: | The name of the field stored in the database Model selected when the field is set in the Insert Datasource or Change Datasource palette. Aliases may contain alphanumeric characters. Spaces may be represented as underscores. These are converted to spaces when the Label (using the Alias), with its associated Field, is added to the block. | Source |
| Metamodel: | The name of the Metamodel that references the lookup field index. This may be any section of the database. |
| Relationship: | The name of the database Relationship within the Metamodel that references the lookup field index. |
| Model: | The name of the database Model (representing a table) that references the lookup field index. |
| Field: | The name of the field stored in the database Model that provides a sorted indexed list of all entries in that field to populate the Menu. |
| Tab Index: | Clicking the TAB key on a layout in oCLI moves the cursor through the fields in the order set by this field. Each element to be included in the tab order should contain an integer indicating its position in the sequence. Hint:To allow for future layout changes, use a sequence with gaps (e.g. 5, 10, 15, ...) to allow new fields to be easily added into the sequence. |
| Hidden: | When checked, the Menu is hidden from view when the block is loaded. |
| Script: | This lists scripts attached to the Menu. |
| Event: | This lists Events that trigger Scripts bound to the menu, usually in response to an item being selected from the menu. |