Multiple
Display Panels
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 Display Server
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.
PANELS.ini
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. |
Attributes |
Name |
Description |
dividers |
If true, then a draggable divider is drawn between
each child panel. Default is false. |
title |
Set the title
of the main window. |
Tag |
Description |
rtvDisplayPanel |
Create a panel containing the specified display. |
Attributes |
Name |
Description |
display |
The name of the display (.rtv) file
to load into the panel. |
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. |
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. |
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.
NOTE: 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. |
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. |
Example 1
This example of PANELS.ini uses the new tags to
create a title panel at the top, an accordion panel on the left, and a main
display panel in the center, with draggable dividers between all the 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" display="title.rtv"/>
<rtvAccordionPanel
region="west" width="200" navdata="navtree.xml"/>
<rtvDisplayPanel
region="center" name="main_panel" display="chart_main.rtv"/>
</rtvLayout>
</panels>
Example 2
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.
Style Sheets
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 Building
Displays>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 |
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). |
fgColor |
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 |
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). |
fgColor |
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 |
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). |
fgColor |
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 |
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). |
fgColor |
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. |
Viewing
Multiple Display Panels
Display Viewer Applet
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.
Display Viewer Application
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.
Display Server
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.
|