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
- 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:
- On the Settings menu, click View Settings to open the View
Settings dialog box.
- Under Host Integrator settings, expand the Entity Design
directory tree and select MoveCursor Command List Timeout.
- Under Setting details, specify how long (in seconds) to wait for
a move cursor command list to execute before an error appears.
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
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
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.
Note: 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
- When generating tabstops, temporarily clear the Wait for cursor
check box on the Validation
tab of the Advanced Entity Properties dialog box. If you do not clear
this check box, the screen snapshot will fail because the entity is set
to match attributes according to cursor positioning and generating a tabstop
changes the initial cursor position.
- The Generate Next button is disabled in offline mode.
- Tabstops are only generated for attributes that appear after the currently
defined tabstop on the terminal screen.
- 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