Cursor Tab

The Cursor tab contains cursor movement settings to be used with character-mode hosts. (If you are not working with a character-mode host, Cursor tab controls are unavailable.) Defining cursor movement is helpful when the host and the host application are working in character mode and there are multiple pieces of data to enter on the terminal screen. To enable Host Integrator to control cursor movement, a key must be mapped in a move cursor command list to create this action. For example, configure tabstops to navigate around attributes or recordset fields on a selected entity by creating a move cursor command list, so that Host Integrator recognizes that the Tab key is mapped to move the cursor on the screen.

You can define cursor movement differently on each entity by using the options on the Cursor tab or you can choose to define a global definition to be used throughout your model using the options in the Advanced Model Properties dialog box. Under Character mode cursor positioning, use the following options to configure a move cursor command list for the selected entity:

Use global definition from Model Properties dialog
Default. Select this option to use the global configuration that you defined in the Advanced Model Properties dialog box to move the cursor between attributes on an entity.

Execute operations to move cursor
This option allows you to select existing operations to move the cursor around the attributes and/or recordset fields of the selected entity. The entity can use one operation to move the cursor forward and another to move the cursor backward. Each time Host Integrator executes one of these operations, it expects the cursor to move to a new tabstop. Host Integrator will iteratively execute a cursor operation as needed to reach a desired location on the screen.

Tip: Use tabstops to synchronize the host state instead of waiting for a host update.

To configure the MoveCursor Command List Timeout setting:

Configuring Tabstops

Use the options in the Tabstops box to configure a list of tabstops that constitute all of the possible valid "at rest" positions on the terminal screen. By default, when executing a move cursor operation or command list, Host Integrator will assume that any location other than the current position constitutes the host's next tabstop or new "at rest" position for user interaction. In most cases, the host requires additional information from Host Integrator to ensure tabstop accuracy. The host often updates status lines or performs other terminal updates before moving the cursor to the next tabstop. Because character mode terminals always write data at the cursor position, the host has to move the cursor to the status line or another update location to make the desired screen changes. Without additional configuration, Host Integrator may issue more move cursor requests than is necessary and get out of sync with the host.

To prevent Host Integrator from getting into this state, define tabstops at the locations for which Host Integrator should wait after issuing move cursor requests. For example, from a given location on the screen, Host Integrator may issue a move forward operation or command list that waits for the cursor to appear at any valid tabstop that is not the starting cursor position. If this new location matches the desired destination, the process terminates. Otherwise, Host Integrator repeats the process until it reaches the correct location. It is essential that all locations where the host can leave the cursor "at rest" for user interaction be defined as tabstops, regardless of whether the model has an attribute or field defined in that location. If even one location is missed, Host Integrator will issue timeout exceptions when the cursor is moved to the omitted location.

Note: If moving through the fields of your host application requires application interaction, you may have to define the tabstops manually.

The following three lists contain tabstop positioning information:

Represents the number of tabstops on the screen.

Represents the screen row in which the tabstop begins.

Represents the terminal column of the tabstop.

The following options allow you to configure an ordered list of tabstops for the selected entity:

Click to manually insert a tabstop at the current cursor position. To have the Design Tool identify the tabstop positions automatically, click the Generate Next button.

Add Current Pos
Click to add the tabstop order number (Num), the screen row, (Row), and the terminal column (Col) of the current cursor position on the Terminal window.

The Apply and Cancel buttons on the Cursor tab are unavailable if the Design Tool recognizes that you have not made any other changes since the last apply was made. Even though the Apply button is unavailable, any changes that you add will be automatically applied to your model.

Click to remove the selected entry.

Move Up
Click to move the tab position up one row in the ordered list of tabstops.

Move Down
Click to move the tabstop down one row in the ordered list of tabstops.

Click to delete the entire list.

Generate Next
Click to execute the move cursor command list until all attributes have been recognized and recorded. Once this list is generated, it appears in the Character mode applications box and is saved in the .model file.


Click to test the tabstops in the list. If a tabstop in the list does not accurately reflect an attribute on the entity, an error message will appear. Note: This button is disabled in offline mode.

Use writable attributes as automatic tabstops
Select this option to automatically include configured attributes as tabstops. This eliminates the need to enter all tabstops manually. If there are other tabstops besides those defined as writable attributes, those tabstops will still have to be entered manually.

Tabstops are in specified order
Select this option to make sure that the order of the tabstops reflected in the Design Tool is the order that they will execute at runtime. By default, tabstops are not assumed to be in any specific order.

If both move forward and move backward options are defined above, Host Integrator uses the screen offsets of the cursor destination location relative to the current cursor location to determine whether to move forward or backward. On some terminal screens, the cursor offset is not a good indicator of direction; therefore, listing tabstops in the same order that the host accesses them can be helpful. Host Integrator then uses the relative location of the tabstop in the list to choose a move cursor direction.

Note: This does not mean Host Integrator will wait for the next or prior tabstop in the list. This ordered list is only used to determine the direction to move. Once the operation or command list has been executed, Host Integrator will still wait for any valid tabstop to become the current cursor position.