RTView® 
User Guide


Navigation Control Objects
Display your data in navigation controls by attaching it to the valueTable property. The input of tabular data determines the content of the navigation control, as well as the appearance of each object in the navigation control. As with other controls, to configure a drill-down, set substitutions, or execute a command when a user clicks an navigation control node, use the actionCommand property. As with other table-driven objects, the drillDownColumnSubs property can be configured to set substitutions to column values from the row in the valueTable that corresponds to the selected navigation control node. If the navigation control is not large enough to display all of the data, scroll bars are automatically added.

You can configure user access control for nodes in navigation controls based on user roles. For example, the specified displays are not visible (nor accessible) to users with the associated role.

There are two types of navigation controls: the tree control (class name: obj_c1tree) and the accordion control (class name: obj_c1accordion). Both controls allow you to configure status icons and to propagate the status up to parent nodes.

Tree Control

Multiple nodes can expand at at time and you can configure type icons for tree nodes (static images that visually indicate the element type, such as Production or Sales, or the node depth).

To configure, see Tree Control.

  Accordion Control

A single node expands at at time and icons visually indicate whether an element in the accordion is closed, open, or a leaf node.

To configure, see Accordion Control.

The following sections describe configurations that are common to navigation controls, including:


Table Formats for Navigation Controls 
There are two table format options for navigation controls, each with their own requirements:

  • Row-Leaf: This format is intended for use when the valueTable property is attached to an indexed table and all leaves in the navigation control are at the same depth. For example, where the navigation control is attached to the current table of an indexed cache.

Typically, the RTView cache data source is indexed. That is, the cache indexColumnNames property specifies the columns to index. If those index columns represent a hierarchy (for example, server, application, process or country, state, city), the cache current table could be used as the valueTable property of a control in the Row-Leaf format. In other cases, a table in the Row-Node format might be required.

To configure, see Creating a Row-Leaf Format Table.

  • Row-Node: If the Row-Leaf format is not suitable for your data, use the Row-Node format. This format is intended for use when the valueTable property is attached to an un-indexed table. Your data table must also contain a row for each node in the navigation control, including the top-level node (rather than just the leaf nodes, as with the Row-Leaf format), as well as a column for the node and a column for the parent node. The Row-Node format allows each leaf of the navigation control to have a different depth.

To configure, see Creating a Row-Node Format Table.

NOTE: If you have an XML file that has the navtree.xml format you can convert it into a row-node format. For details, see navtree.xml For Navigation Control Objects.

The default table format is Row-Leaf. The following are examples of the Row-Leaf and Row-Node table formats which both produce the tree control on the right:

Row-Leaf   Row-Node  
App Name PID   Node Parent  
App0 1000   app0 <blank>  
App0 1004   1000 app0  
App0 1008   1004 app0  
App1 1001   1008 app0    
App1 1005   app1 <blank>    
      1001 app1    
      1005 app1    

 


Creating a Row-Leaf Format Table 
In the Row-Leaf table format, there is one row in the table for each leaf node in the navigation control. A leaf node is added to the navigation control for each row in the valueTable. The path to a leaf node (that is, the ancestor nodes of the leaf) is determined by the values in each of the table columns specified by the nodeIndexColumnNames property. When the valueTable property is attached to the current table of an indexed RTView cache, the navigation control nodeIndexColumnNames property is typically set to the same columns that are specified for the cache index columns.

To illustrate how to create a navigation control using the Row-Leaf format, let us say we have a cache named Applications that has two index columns,
App Name and PID, and the current table in that cache has the following rows:  

App Name PID
App0 1000
App0 1004
App0 1008
App1 1001
App1 1005

We set the navigation control valueTable property to attach to the cache data, with the following fields specified in the Attach To Cache Data dialog:

Cache: Applications
Table: Current

Specify Row-Leaf format for the valueTableFormat property, and App Name;PID for the nodeIndexColumnNames property. The following figure illustrates the structure of the navigation control. There are two nodes labeled App0 and App1. Node App0 has three child nodes labeled 1000, 1004, 1008. Node App1 has two child nodes, labeled 1001 and 1005

We add another index column, AgentName, to the Applications cache, so that the current table now has the following rows:

AgentName App Name PID
Agent1 App0 1000
Agent1 App0 1004
Agent1 App0 1008
Agent1 App1 1001
Agent1 App1 1005
Agent2 App0 1000
Agent2 App0 1004
Agent2 App1 1001

We also update the navigation control nodeIndexColumnNames property to AgentName;App Name;PID. The following figure illustrates the new structure of the navigation control: two top-level nodes labeled Agent1 and Agent2, each with two child nodes, app0 and app1

As illustrated above, the label string for a node at depth N is taken from the Nth column in nodeIndexColumnNames property. Therefore, the labels for the top-level nodes come from the first column in the nodeIndexColumnNames property (AgentName), the labels for the second-level nodes come from the second column in nodeIndexColumnNames property (App Name), and so forth.

To specify node labels from a different set of valueTable columns, use the nodeLabelColumnNames property. Enter a semicolon-separated list of column names in the nodeLabelColumnNames property, one for each level in the navigation control, where the Nth column name in the list contains the labels for navigation control nodes at depth N.

Return to Creating a Tree Control.

Return to Creating an Accordion Control.


Creating a Row-Node Format Table 
In the Row-Node table format, there is one row in the table for each node in the navigation control, including the top-level node (rather than just the leaf nodes, as with the Row-Leaf format).

NOTE: For a demo of an tree control that uses a data table in the row-node format, see the treecon.rtv display, located in the RTV_HOME/demos/features directory. The tree in that display is attached to an XML file (navtree_rownode.xml) that defines a navigation tree containing display titles and filenames in the row-node format. To view the demo: in an initialized command window, navigate to the RTV_HOME/demos/features directory, and type: run_viewer -panelconfig:PANELS_treecon.ini.

There are two columns in the table that help define the navigation control structure:

  • One of the table columns contains a node ID string and is identified by the nodeIdColumnName property. By default, the node ID string is used as the node label in the navigation control. The node ID string must be unique among all nodes with the same parent. Or, if the uniqueNodeIdFlag property is checked, each node ID string must be unique in the entire navigation control.
  • Another table column contains the ID of the parent node, which is identified by the parentIdColumnName property.

To create the same navigation control as with our Row-Leaf format example, a table representation of the navigation control using the Row-Node format would be as follows:

Node Parent
app0 <blank>
1000 app0
1004 app0
1008 app0
app1 <blank>
1001 app1
1005 app1

The <blank> entries represent an empty string, which indicates that nodes app0 and app1 have no parent, making them top-level nodes in the navigation control. 

We set the navigation control:

  • valueTable property to attach to the unindexed table
  • valueTableFormat property to the Row-Node format
  • nodeIdColumnName property to Node
  • parentIdColumnName property to Parent

We then have the following navigation control structure. There are two top-level nodes labeled App0 and App1. Node App0 has three child nodes labeled 1000, 1004, 1008. Node App1 has two child nodes, labeled 1001 and 1005.

To add another navigation control level for the AgentName, as we did with the Row-Leaf format example, we modify our table as follows:

Node Parent
Agent1  <blank>
app0 Agent1
1000 app0
1004 app0
1008 app0
Agent2 <blank>
app0 Agent2
1000 app0
1004 app0
app1 Agent2
1001 app1
1005 app1

We also uncheck the uniqueNodeIdFlag property to allow for node IDs that are not unique, such as the app0 and 1000 nodes in our example which are used in multiple navigation control levels. Because some of the rows are also identical, the order of the table rows is important. For example, this row appears twice in the table: 1000 app0. In each case the row comes after a unique parent row: first under app0 Agent1 and then under app0 Agent2. The navigation control uses this information to determine where to place the node for 1000 in each case.

The following figure illustrates the new structure of the navigation control. The navigation control now has two top-level nodes labeled Agent1 and Agent2, each with two child nodes, app0 and app1

By default, the node ID string is used as the node label in the navigation control. If a different column in the table must provide the label, specify the name of that column in the nodeLabelColumnName property.

Note that in the Row-Node format each branch of the navigation control can have a different depth, while in the Row-Leaf format all branches typically have the same depth (the number of columns specified in the nodeIndexColumnNames property).

Return to Creating a Tree Control.

Return to Creating an Accordion Control.


Status Icons
Status icons indicate the current state of a node. You can optionally configure status icons by assigning images that are used when an element in the navigation control has a specified value. You can also configure the status in order of priority so that the most critical status is propagated up to ancestor nodes. The status icon shown for an ancestor node corresponds to the current highest status priority of all of its descendants. By default, no status icons appear in navigation controls.

The status icon for a node is determined by the discrete value of a specified column in the valueTable. The values can be strings or numbers. The comparison is done for an exact match. If the current status value for a navigation control node does not match any of the values you specify in the nodeStatusProperties property, no status icon is displayed for that node.

When a status icon is configured for the tree control, by default the status icon appears on the left of the node label. The value, Left or Right, is specified in the nodeStatusIconPos property. If a node has both a type icon and a status icon, the type icon always appears to the left of the status icon. By default, no status icons appear in the tree.

When a status icon is configured for the accordion control, by default the status icon appears inside the node button, either to the left or right of the button label, according to the value of the nodeStatusIconPos property.

Configuring Status Icons
This section describes how to configure status icons for the navigation controls using the Node Properties dialog. NOTE: Status icons can also be configured by Attaching a Status Icon To Data.

To configure the Status Icon 
To configure the status icon, specify the status table column name in the nodeStatusColumnName property, then use the nodeStatusProperties property to define a three-column table of data and configure icon behavior. NOTE: The nodeStatusProperties property is only visible if the nodeStatusColumnName property is non-blank.

Select the nodeStatusProperties property in the property sheet, then click the  button to open the Node Properties dialog.

To map an image to a node status 
Click New, then click in the Status Value column. A drop-down list appears containing all values in the node status column of the valueTable (which you previously specified in the nodeStatusColumnName property). Select a value from the drop-down list.

Click the  button in the Image column for the node and choose an icon from the Select Image dialog. The icon is used as the status icon for all nodes that match the value selected in the Status column.

Click the  button in the Priority column for the node and assign a integer value: 0, 1, 2, 3, 4, 5, or a higher number (there is no upper limit on the number), where the largest number is the highest priority and propagated up the navigation control first, and a value of zero (0) is not propagated. A value of zero (0) can be assigned to multiple nodes (so that they do not propagate up the navigation control). Non-zero values must be assigned only once.

For example, if we set the nodeStatusColumnName property to our Application Status table column of our valueTable, and define the mapping for the nodeStatusProperties as follows:

Status Value Image Priority
blocked 2
running 1

The values in the Application Status column of each row in the valueTable is compared to the two values listed in the Status Value column (blocked and running). If the Application Status value in one of the rows is blocked, the status icon is displayed as the status icon for that row. If there is no match (for example, the Application Status value in one of the rows is unknown), no status icon is displayed in the navigation control node for that row. Because the status icon is assigned the highest priority, the status icon is always propagated up the navigation control first. If none of the rows has a blocked status, the status icon is propagated up the navigation control.

For example, in the following illustration the priority status of a single node, app3/1003, is propagated up to its parent, app3, and also to the top-level ancestor, Agent1.

For details about creating an application with multiple panels, see Multiple Display Panels.

Attaching a Status Icon To Data
For convenience, the status icon can be attached to data. Typically, an attachment to a static XML file containing the appropriate tables is used. To attach the status icon to data, use the nodeStatusProperties property. The data attachment must be a three-column table. Typically, a static XML file containing the table is used. The first column must contain string values that match values from the column in valueTable specified by the nodeStatusColumnName property. The second column must be the path to the .png, .gif, or .jpg image. The third column must contain the non-negative integer priority value.

NOTE: A static XML file is only read once each time you run RTView. If you specify (or modify) an XML source using the Application Options dialog, you may specify whether that XML source is static. For details, see Creating XML Sources

 

 

 

 
SL, SL-GMS, GMS, RTView, SL Corporation, and the SL logo are trademarks or registered trademarks of Sherrill-Lubinski Corporation in the United States and other countries. Copyright © 1998-2012 Sherrill-Lubinski Corporation. All Rights Reserved.

 

JMS, JMX and Java are trademarks or registered trademarks of Sun Microsystems, Inc. in the United States and other countries. They are mentioned in this document for identification purposes only. 

 

Third Party Notice Requirements