With Multiple Display Panels you can deploy several displays, arranged in separate panels within a single window. This option is not available in the Display Builder, but is supported in all RTView deployments. See demos/multipanels for examples of using Multiple Display Panels.
Configuring Multiple Display Panels
By default, the Display Viewer Application, Display Viewer Applet and Display Server read the PANELS.ini file to populate panels with the specified displays. If the panel configuration file is not found in the current directory, the Display Viewer and Display Server applications will search under lib in your installation directory.
Display Viewer Application and Display Viewer Applet
You may specify a different panel configuration file on the command line or in an applet parameter:
command line: -panelconfig:filename
applet parameter: name= panelconfig value=filename
Note: To run the Display Viewer Application without a panel configuration file, when PANELS.ini is present in the current directory or the lib directory, use the above command line argument with a value for <filename> that does not correspond to a file in either directory, for example: run_viewer -panelconfig:X
You may specify a different panel configuration in the URL:
http://host:8080/rtvdisplay/panels.jsp?file=filename.
To define initial substitution values in the Display Server, you may include a subs parameter in URLs that specify panels.jsp:
http://SomeHost/rtvdisplay/panels.jsp?subs=$table:production_table
The panels.jsp file must use the rtvLayout tag (described below). Substitutions will be applied to the initial display(s) opened in the panel layout. To apply to displays that are subsequently opened, substitutions should be mapped to global variables or you can specify the clearsubs option either on the command line or in the DISPLAYSERVER.ini file.
Note: PANELS.ini formats and associated tags supported in previous releases are still supported. However, the new tags listed below cannot exist in the same PANELS.ini file with any older tags.
Tag |
Description |
||
rtvLayout |
The rtvLayout tag can appear only once in PANELS.ini and expects each child tag to specify a region (i.e. north, south, east, west, or center) in order to determine the location of each child panel. Typically, an rtvLayout will contain one of the following combinations: § A main rtvDisplayPanel with region="center", plus either an rtvAccordionPanel or rtvTreePanel with region="west" or "east", and possibly other secondary rtvDisplayPanels in other regions. § A main rtvTabbedDisplayPanel with region="center", and possibly other secondary rtvDisplayPanels in other regions. Note: The tags listed below can only be used within the rtvLayout tag. PANELS.ini formats and associated tags supported in previous releases are still supported. However, tags listed below cannot exist in the same PANELS.ini file with any older tags. Alternately, it is possible to use style sheets to specify colors, fonts, and other properties of the navigation panels and controls. See “Style Sheets” for more information. |
||
|
|
Attributes |
|
|
|
Name |
Description |
|
|
dividers |
If true, then a movable divider (via dragging) is drawn between the child panels. |
|
|
title |
Set the title of the main window. |
|
Child Tags |
Description |
|
|
rtvDisplayPanel |
Create a panel containing the specified display. |
|
|
|
Attributes |
Description |
|
|
display |
The name of the display (.rtv) file to load into the panel. |
|
|
minimized |
For the Thin Client. If true, specifies that a panel is initially hidden. The dividers attribute must also be true for the rtvLayout tag. In the following example the "north" panel is initially minimized: <?xml version="1.0" ?> <panels xmlns="www.sl.com" version="1.0"> <rtvLayout title="Panel Example" dividers="true"> <rtvDisplayPanel region="north" minimized="true" display="title.rtv"/> <rtvDisplayPanel region="center" name="main" display="test1.rtv"/> </rtvLayout> </panels> A minimized panel is made visible by clicking in the dark area in the center of its divider bar. The minimized attribute is ignored in the Viewer. |
|
|
name |
Corresponds to Window Name entered in the “Drill Down Properties” dialog. When using tabbed panels, if the name is not specified, a name is constructed internally using the display name and substitutions to make it easy to drill down between tabs. In this case, when you drill down from a tab using the Current Window option and the specified display with the specified substitutions is already loaded in another tab, the Display Viewer will switch to that tab. To configure Synchronize Drill-down and Navigation Controls, this name must be nav. See “Drill Down Displays” and “Synchronizing Drill-down and Navigation Controls” for more information. |
|
|
nodivider |
For the thin client only. If movable dividers are enabled in the layout (see the dividers attribute, above), then the divider for a specific panel can be hidden by setting nodivider="true". |
|
|
region |
Position of panel in rtvLayout: west, east, center, north or south. |
|
|
subs |
Specify initial substitutions for this panel. Substitutions are optional and must use the following syntax: $subname:subvalue $subname2:subvalue2 If a substitution value contains a single quote, it must be escaped using a / : $filter:Plant=/'Dallas/' If a substitution value contains a space, it must be enclosed in single quotes. Do not escape these single quotes: $subname:subvalue $subname2:'sub value 2' A substitution string cannot contain the following: : | . tab space , ; = < > ' " & / \ { } [ ] ( ) Note: Substitutions set in Application Options will apply to all displays. See “Substitutions Tab” for more information. |
|
rtvAccordionPanel |
Create a panel containing an accordion control for display navigation. The accordion control assumes there is a rtvDisplayPanel in the center region and sends its navigation commands to that panel. You can configure this control to show/hide displays based on role definitions. For details, see “Role Definitions”. rtvAccordionPanel contents cannot be more then two levels deep (not including the root node). If deeper nesting is required, use rtvTreePanel instead. |
|
|
|
Attributes |
|
|
|
Name |
Description |
|
|
navdata |
Name of the navigation tree definition file. This XML file should describe content of the accordion control. |
|
|
width |
Width (in pixels) of the panel. Default is 125. |
|
|
region |
Position of panel in rtvLayout: west, east, center, north and south. Default is center. |
|
rtvTreePanel |
Create a static tree navigation panel. The tree control assumes there is a DisplayPanel in the center region and sends its navigation commands to that panel. There are two methods for creating a tree-driven multi-panel application: the static tree navigation panel and the tree control. Use the static tree navigation panel method if you know the specific sources that are to populate the tree and they remain constant for the life of the application. For example, if you know all the displays that compose your application and the static representation of a tree will only be used for navigating those displays, the static tree navigation panel is suitable (and is easier to configure). Use the tree control method if the number of nodes or leaves, labels or icons of the tree change during the lifetime of the application. Data can be provided that will change the nodes and leaves of the tree and also change the labels, and icon representations on the tree with dynamic data. For details, see “Tree Control”. You can configure this control to show/hide displays based on role definitions. For details, see “Role Definitions”. |
|
|
|
Attributes |
|
|
|
Name |
Description |
|
|
navdata |
Name of the “Navigation Tree Definition File”. This XML file should describe content of the tree. |
|
|
width |
Width (in pixels) of the panel. Default is 125. |
|
|
region |
Position of panel in rtvLayout: west, east, center, north and south. Default is center. |
|
rtvTabbedDisplayPanel |
Create a panel with tabs for navigation. You can configure this control to show/hide displays based on role definitions. For details, see “Role Definitions”. |
|
|
|
Attributes |
|
|
|
Name |
Description |
|
|
tabs |
Name of the “Tab Definition File”. This XML file should describe content of the tabs. |
|
|
display |
Name of display (.rtv) file to load into the panel. |
|
|
subs |
Specify initial “Substitutions” for this panel. Substitutions are optional and must use the following syntax: $subname:subvalue $subname2:subvalue2 If a substitution value contains a single quote, it must be escaped using a / : $filter:Plant=/'Dallas/' If a substitution value contains a space, it must be enclosed in single quotes. Do not escape these single quotes: $subname:subvalue $subname2:'sub value 2' A substitution string cannot contain the following: : | . tab space , ; = < > ' " & / \ { } [ ] ( ) Note: Substitutions set in Application Options will apply to all displays. See “Substitutions Tab” for more information. |
|
|
region |
Position of panel in rtvLayout: west, east, center, north and south. Default is center. |
|
|
placement |
Position of tabs: top or bottom. Default is top. |
This example of PANELS.ini creates a title panel at the top, an accordion panel on the left, and a main display panel in the center, with movable dividers that can be dragged between the west and center panels:
<?xml version="1.0" ?>
<panels xmlns="www.sl.com" version="1.0">
<rtvLayout title="Accordion Example" dividers="true">
<rtvDisplayPanel region="north" name="title_panel" nodivider=”true” display="title.rtv"/>
<rtvAccordionPanel region="west" width="200" navdata="navtree.xml"/>
<rtvDisplayPanel region="center" name="main_panel" display="chart_main.rtv"/>
</rtvLayout>
</panels>
This example of PANELS.ini uses the new tags to create a tabbed display panel at the top, and a title panel at the bottom:
<?xml version="1.0" ?>
<panels xmlns="www.sl.com" version="1.0">
<rtvLayout title="Tab Example">
<rtvTabbedDisplayPanel region="center" tabs="navtabs.xml" display="stock_chart"/>
<rtvDisplayPanel region="south" name="title_panel" display="title.rtv"/>
</rtvLayout>
</panels>
Synchronizing Drill-down and Navigation Controls
A panel configuration file (PANELS.ini) can be created where one rtvDisplayPanel contains a navigation control (the tree control (obj1_c1tree) or the accordion control (obj_c1accordion)) that drills down in a second rtvDisplayPanel. The navigation control remains synchronized with the second rtvDisplayPanel when a user clicks on an object in the second rtvDisplayPanel--rather than a node in the navigation control--to drill-down to another display.
To configure this behavior for the panels configuration file:
1. The specified name for the rtvDisplayPanel containing the display with the tree or accordion control is nav.
2. The specified region for the other rtvDisplayPanel, which is the target of the tree/accordion control's drilldown, is center.
If the above rules are followed, for example, and the user drills down to a display named X in the center panel by clicking on an object in the center panel display, the node in the navigation control that corresponds to X (if any) is automatically selected.
To view an example of this panel configuration, see PANELS_treecon.ini or PANELS_accordcon.ini, located in the RTV_HOME/demos/features directory. To start the example, type the following commands in an RTView command prompt:
cd %RTV_HOME%\demos\features
run_viewer -panelconfig:PANELS_accordcon.ini
In the accordion control, click the Navigate Displays button. In the main display right-click the object labeled Current Window, then select Drill Down from the popup menu. The object_variety2 display opens in the main window, which corresponds to the button labeled Table Objects in the accordion, and which should now be visible and highlighted.
Limitation
Note that only the display name is compared when determining which node should be selected, substitutions are not compared. If several nodes in the tree use the same display as their value, but with different substitutions (via drilldownColumnSubs), this feature always selects the first node in the control whose display name matches, regardless of the substitutions.
Within the rtvLayout tag, style sheets can be used to specify colors, fonts and other properties of the navigation panels and controls. For detailed information about using style sheets, go to “Style Sheets”.
The following style class names and associated properties are supported in a panels configuration file, such as in the following example:
rtnav {bgColor: 7; fgColor: 12; }
rtnav-state-default {bgColor: 256; font: 1; }
rtnav-state-selected {bgColor: #4c5d65; font: 7;}
rtnav-state-hover {bgColor: #004157; }
rtnav-accordion {buttonWidth: 200;}
Note: If a property is specified for more than one class name, the value set for the class name with highest precedence applied. Class names (with the exception of rtnav-accordion) are listed below in order of precedence, from lowest to highest:
Style Class Name |
Description |
Properties |
rtnav |
Properties specified for this class are applied to all the navigation panels and controls (i.e. tabs, trees, and accordion). |
bgColor/fgColor -- Background and foreground (text) colors. Specify color index number from the RTView color palette or RGB value (in #rrggbb format where rr, gg, bb are the red, green, and blue intensities in hexadecimal values between 00 and ff). font -- Font style for navigation controls. Specify index number, as follows: 1 sans-serif 2 monospaced bold 3 monospaced 4 serif 5 monospaced italic 6 serif bold 7 sans-serif bold 8 sans-serif italic 9 serif bold italic 10 serif italic 11 sans-serif bold italic 12 monospaced bold italic fontSize -- Font size (in pixels) for navigation controls. Note: Unless the font property is specified, fontSize is ignored. bgGradientFlag -- Select gradient fill or solid fill for tabs or accordion control. Default value is true. Set to false for solid fill. |
rtnav-state-default |
Properties for this class are applied to all navigation controls that are in the default (i.e. unselected) state. |
bgColor/fgColor -- Background and foreground (text) colors. Specify color index number from the RTView color palette or RGB value (in #rrggbb format where rr, gg, bb are the red, green, and blue intensities in hexadecimal values between 00 and ff). font -- Font style for navigation controls. Specify index number, as follows: 1 sans-serif 2 monospaced bold 3 monospaced 4 serif 5 monospaced italic 6 serif bold 7 sans-serif bold 8 sans-serif italic 9 serif bold italic 10 serif italic 11 sans-serif bold italic 12 monospaced bold italic |
|
|
fontSize -- Font size (in pixels) for navigation controls. Note: Unless the font property is specified, fontSize is ignored. bgGradientFlag -- Select gradient fill or solid fill for tabs or accordion control. Default value is true. Set to false for solid fill. |
rtnav-state-hover |
Properties for this class are applied to the navigation control that the mouse cursor is currently positioned over (affects tab and accordion controls only, and only in the Thin Client) |
bgColor/fgColor -- Background and foreground (text) colors. Specify color index number from the RTView color palette or RGB value (in #rrggbb format where rr, gg, bb are the red, green, and blue intensities in hexadecimal values between 00 and ff). font -- Font style for navigation controls. Specify index number, as follows: 1 sans-serif 2 monospaced bold 3 monospaced 4 serif 5 monospaced italic 6 serif bold 7 sans-serif bold 8 sans-serif italic 9 serif bold italic 10 serif italic 11 sans-serif bold italic 12 monospaced bold italic fontSize -- Font size (in pixels) for navigation controls. Note: Unless the font property is specified, fontSize is ignored. bgGradientFlag -- Select gradient fill or solid fill for tabs or accordion control. Default value is true. Set to false for solid fill. |
rtnav-state-selected |
Properties for this class are applied to all navigation controls that are in the selected state (e.g. the selected tab in a tabbed panel). |
bgColor/fgColor -- Background and foreground (text) colors. Specify color index number from the RTView color palette or RGB value (in #rrggbb format where rr, gg, bb are the red, green, and blue intensities in hexadecimal values between 00 and ff). font -- Font style for navigation controls. Specify index number, as follows: 1 sans-serif 2 monospaced bold 3 monospaced 4 serif 5 monospaced italic 6 serif bold 7 sans-serif bold 8 sans-serif italic 9 serif bold italic 10 serif italic 11 sans-serif bold italic 12 monospaced bold italic |
|
|
fontSize -- Font size (in pixels) for navigation controls. Note: Unless the font property is specified, fontSize is ignored. bgGradientFlag -- Select gradient fill or solid fill for tabs or accordion control. Default value is true. Set to false for solid fill. |
rtnav-accordion |
Properties for this class are applied to the accordion navigation controls. |
buttonWidth -- Width (in pixels) of all buttons in the accordion. Default is 160. spacing -- Vertical space (in pixels) between buttons. Default is 5. indent -- Left indent (in pixels) of leaf buttons in the accordion. Default is 10. |
Navigation Tree Definition File
The content of rtvAccordionPanel or rtvTreePanel is determined by an XML file specified as the value for the navdata attribute.
Note: rtvAccordionPanel only supports two levels of nodes, not counting the root node. Therefore, in the following example, the node labeled Displays would not be visible.
The navdata file must start with the following:
<?xml version="1.0" ?>
The navdata file must end with the following:
</navtree>
For example:
<?xml version="1.0" ?>
<navtree version="1.0">
<node label="Displays">
<node label="Charts" display="chart_overview.rtv">
<node label="Chart One" display="chart1.rtv" subs="$sub1:123"/>
<node label="Chart Two" display="chart2.rtv"/>
</node>
<node label="Reports" display="report_overview.rtv">
<node label="Report 1" display="rep1.rtv"/>
<node label="Report 2" display="rep2.rtv"/>
</node>
</node>
</navtree>
The following tags are supported:
Tag |
Description |
Attrributes |
|
|
|
Name |
Description |
node |
Add a node to the navigation tree. |
display |
Name of the display (.rtv) file. |
|
|
label |
Label for this node in the navigation tree. |
|
|
subs |
Substitutions to apply to the display. Substitutions are optional and must use the following syntax: $subname:subvalue $subname2:subvalue2 If a substitution value contains a single quote, it must be escaped using a / : $filter:Plant=/'Dallas/' If a substitution value contains a space, it must be enclosed in single quotes. Do not escape these single quotes: $subname:subvalue $subname2:'sub value 2' A substitution string cannot contain the following: : | . tab space , ; = < > ' " & / \ { } [ ] ( ) |
The content of tabs in rtvTabbedDisplayPanel are determined by an XML file specified as the value for the tabs attribute.
The tabs file must start with the following:
<?xml version="1.0" ?>
The tabs file must end with the following:
</navtree>
For example:
<?xml version="1.0" ?>
<navtree>
<node label="Bar Chart" display="disp1.rtv"/>
<node label="History Graph" display="disp2.rtv" subs="$v1:xyz"/>
</navtree>
The following tags are supported:
Tag |
Description |
Attributes |
|
|
|
Name |
Description |
node |
Add a node to the navigation tree. |
display |
Name of the display (.rtv) file. |
|
|
label |
Label for this node in the navigation tree. |
|
|
subs |
Substitutions to apply to the display. Substitutions are optional and must use the following syntax: $subname:subvalue $subname2:subvalue2 If a substitution value contains a single quote, it must be escaped using a / : $filter:Plant=/'Dallas/' If a substitution value contains a space, it must be enclosed in single quotes. Do not escape these single quotes: $subname:subvalue $subname2:'sub value 2' A substitution string cannot contain the following: : | . tab space , ; = < > ' " & / \ { } [ ] ( ) |
Viewing Multiple Display Panels
At startup, the Display Viewer Applet reads the panel configuration from the directory where it is hosted to populate panels with the specified displays. The display specified in your rtv_filename applet parameter will not be loaded.
At startup, the Display Viewer Application reads the panel configuration from the directory where it is started to populate panels with the specified displays. If the panel configuration file is not found in the current directory, the Display Viewer will search under lib in your installation directory. When viewing multiple display panels in the Display Viewer, you cannot open displays using the command line or the File>Open dialog.
At startup, the Display Server reads the panel configuration from the directory where it is started to populate panels with the specified displays. If the panel configuration file is not found in the current directory, the Display Server will search under lib in your installation directory. See the “Display Server” section for more details on viewing multiple display panels.