Oracle® Fusion Middleware Web User Interface Developer's Guide for Oracle Application Development Framework 11g Release 1 (11.1.1) Part Number B31973-03 |
|
|
View PDF |
This chapter describes how to use a databound ADF gauge component to display data, and the options for gauge customization.
This chapter includes the following sections:
For information about the data binding of gauges, see the "Creating Databound ADF Gauges" section in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.
Gauges identify problems in data. A gauge usually plots one data point with indication of whether that point falls in an acceptable or unacceptable range. Frequently, you display multiple gauges in a single gauge set. The gauges in a set usually appear in a grid-like format with a configurable layout.
A Component Gallery displays available gauge categories, types, and descriptions to provide visual assistance when creating gauges and using a quick-start layout. Figure 25-1 shows the Component Gallery for gauges.
When a gauge component is inserted into a JSF page using the Component Gallery, a set of child tags that support customization of the gauge is automatically inserted. Example 25-1 shows the code inserted in the JSF page for a dial gauge with the quick-start layout selected in the Component Gallery in Figure 25-1.
Example 25-1 Gauge Sample Code
<dvt:gauge id="gauge2" value="#{bindings.Gaugedemo1View1.gaugeModel}" gaugeType="DIAL" imageFormat="FLASH"> <dvt:gaugeBackground> <dvt:specialEffects fillType="FT_GRADIENT"> <dvt:gradientStopStyle/> </dvt:specialEffects> </dvt:gaugeBackground> <dvt:gaugeFrame/> <dvt:indicator/> <dvt:indicatorBase/> <dvt:gaugePlotArea/> <dvt:tickLabel/> <dvt:tickMark/> <dvt:topLabel/> <dvt:bottomLabel/> <dvt:metricLabel position="LP_WITH_BOTTOM_LABEL"/> <dvt:thresholdSet> <dvt:threshold fillColor="#d62800"/> <dvt:threshold fillColor="#00ff00"/> </dvt:thresholdSet> </dvt:gauge>
The following types of gauges are supported by the gauge component:
Dial: Indicates its metric along a 220 degree arc. This is the default gauge type. Figure 25-2 shows a dial gauge indicating a Plasma HD TV stock level within an acceptable range.
Status Meter: Indicates the progress of a task or the level of some measurement along a rectangular bar. An inner rectangle shows the current level of a measurement against the ranges marked on an outer rectangle. Figure 25-3 shows the Plasma HD TV stock level using a status meter gauge.
Status Meter (vertical): Indicates the progress of a task or the level of some measurement along a vertical rectangular bar. Figure 25-4 shows the Plasma HD TV stock level using a vertical status meter gauge.
LED (light-emitting diode): Depicts graphically a measurement, such as key performance indicator (KPI). Several styles of graphics are available for LED gauges such as arrows that indicate good (up arrow), fair (left- or right-pointing arrow), or poor (down arrow). Figure 25-5 shows the Plasma HD TV stock level using a LED bulb indicator and Figure 25-6 shows the same stock level using a LED arrow.
Gauge terms identify the many aspects of a gauge and gauge set that you can customize. The gauge component includes approximately 20 child tags that provide options for this customization.
The following list groups the various parts of a gauge that can be configured:
Overall gauge customization: Each item in this group is represented by a gauge child tag:
Gauge Background: Controls border color and fill color for the background of a gauge.
Gauge Set Background: Controls border color and fill color for the background of a gauge set.
Gauge Frame: Refers to the frame behind the dial gauge.
Plot Area: Represents the area inside the gauge itself.
Indicator: Points to the value that is plotted in a dial gauge. It is typically in the form of a line or an arrow.
Indicator Bar: The inner rectangle in a status meter gauge.
Indicator Base: The circular base of a line or needle style indicator in a dial gauge.
Threshold Set: Specifies the threshold sections for the metrics of a gauge. You can create an infinite number of thresholds for a gauge.
Data values: These include the metric (which is the actual value that the gauge is plotting), minimum value, maximum value, and threshold values. Section 25.2, "Understanding Data Requirements for Gauges" describes these values.
Labels: The gauge supports the following elements with a separate child tag for each item:
Bottom Label: Refers to an optional label that appears below the gauge and is surrounded by the lower label frame.
Lower Label Frame: Controls the colors for the background and border of the frame that contains the bottom label. The metric label can also appear inside the lower label frame, to the right of the bottom label.
Metric Label: Shows the value of the metric that the gauge is plotting in text.
Tick Labels: Displays text that is displayed to identify tick marks on a gauge.
Tick Marks: Refers to the markings along the value axis of the gauge. These can identify regular intervals, from minimum value to maximum value, and can also indicate threshold values.
Top Label: Refers to the label that appears at the top of a gauge. By default a title separator is used with a label above the gauge.
Upper Label Frame: Refers to the background and border of the frame that encloses the top label. You can specify border color and fill color for this frame. Turn off the default title separator when using this frame.
Legend: The gauge supports the gauge legend area, text, and title elements with a separate child tag for each item.
Shape Attributes Set: The gauge supports interactivity properties for its child elements. For example, the alt
text of a gauge plot area can be displayed as a tooltip when the mouse hovers over that element.
You can provide the following kinds of data values for a gauge:
Metric: The value that the gauge is to plot. This value can be specified as static data in the Gauge Data attributes category in the Property Inspector. It can also be specified through data controls or through the tabularData
attribute of the dvt:gauge
tag. This is the only required data for a gauge. The number of metric values supplied affects whether a single gauge is displayed or a series of gauges are displayed in a gauge set.
Minimum and maximum: Optional values that identify the lowest and highest points on the gauge value axis. These values can be provided as dynamic data from a data collection. They can also be specified as static data in the Gauge Data attributes category in the Property Inspector for the dvt:gauge
tag. For more information, see Section 25.4.4, "Adding Thresholds to Gauges".
Threshold: Optional values that can be provided as dynamic data from a data collection to identify ranges of acceptability on the value axis of the gauge. You can also specify these values as static data using gauge threshold tags in the Property Inspector. For more information, see Section 25.4.4, "Adding Thresholds to Gauges".
The only required data element is the metric value. All other data values are optional.
You can use any of the following ways to supply data to a gauge component:
ADF Data Controls: You declaratively create a databound gauge by dragging and dropping a data collection from the ADF Data Controls panel. Figure 25-7 shows the Create Gauge dialog where you configure the metric value, and optionally the minimum and maximum and threshold values for a gauge you are creating.
For more information, see the “Creating Databound ADF Gauges" section in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.
Tabular data: You can provide CSV (comma separated value) data to a gauge through the tabularData
attribute of the dvt:gauge
tag.
The process of creating a gauge from tabular data includes the following steps:
Storing the data in a method in the gauge's managed bean.
Creating a gauge that uses the data stored in the managed bean.
The tabularData
attribute of a gauge component lets you specify a list of metric values that the gauge uses to create a grid and to populate itself. You can provide only the metric value through the tabularData
attribute. Therefore, you must specify any desired thresholds and minimum or maximum values through the Property Inspector.
A gauge component displays rows and columns of gauges. The text that you specify as column labels appears in the top label of the gauges. The text that you specify as row labels appears in the bottom label of the gauges.
The list that contains the tabular data consists of a three-member Object
array for each data value to be passed to the gauge. The members of each array must be organized as follows:
The first member (index 0) is the column label, in the grid, of the data value. This is generally a String
.
The second member (index 1) is the row label, in the grid, of the data value. This is generally a String
.
The third member (index 2) is the data value, which is usually Double
.
Figure 25-8 has five columns: Quota, Sales, Margin, Costs, and Units. The example has three rows: London, Paris, and New York. This data produces a gauge set with five gauges in each row and lets you compare values such as sales across the three cities.
Example 25-2 shows code that creates the list of tabular data required for the gauge that compares annual results for three cities.
Example 25-2 Code to Create a List of Tabular Data for a Gauge
public List getGaugeData() { ArrayList list = new ArrayList(); String[] rowLabels = new String[] {"London", "Paris", "New York"}; String[] colLabels = new String[] {"Quota", "Sales", "Margin", "Costs", "Units"}; double [] [] values = new double[][]{ {60, 90, 135}, {50, -100, -150}, {130, 140, 150}, {70, 80, -130}, {110, 120, 130} }; for (int c = 0; c < colLabels.length; c++) { for (int r = 0; r < rowLabels.length; r++) { list.add (new Object [] {colLabels[c], rowLabels[r], new Double (values [c][r])}); } } return list; }
Use the tabularData
attribute of the gauge tag to reference the tabular data that is stored in a managed bean.
To create a gauge that uses tabular data from a managed bean:
From the Component Palette, drag the dvt:gauge
tag to a page.
In the Component Gallery, select the category, type, and quick-start layout style for the gauge that you are creating.
In the Gauge Data category of the Property Inspector, click the tabularData
attribute dropdown icon and select Expression Builder.
In the Expression Builder dialog, use the search box to locate the managed bean.
Expand the managed bean node and select the method that creates the list of tabular data.
Click OK. The Expression is created.
If the name of the managed bean is sampleGauge
and the name of the method that creates the list of tabular data is getGaugeData
, the Expression Builder generates the code #{sampleGauge.gaugeData}
as the value for the tabularData
attribute of the dvt:gauge
tag.
When you create a gauge tag that is powered by data obtained from a list referenced in the tabularData
attribute, the following results occur:
A gauge is generated with a setting in its tabularData
attribute. The settings for all other attributes for this gauge are provided by default.
You have the option of changing the setting of the gaugeType
attribute in the Property Inspector to DIAL
, LED
, STATUSMETER
, or VERTICALSTATUSMETER
.
You can customize gauge components to:
Change the gauge type.
Specify the layout of gauges in a gauge set.
Change a gauge size and style.
Add thresholds.
Format numbers and text.
Specify an N-degree dial gauge.
Customize gauge labels.
Customize indicators and tick marks.
You can change the type of a gauge using the gaugeType
attribute of the dvt:gauge
tag. The acceptable values are DIAL
, LED
, STATUSMETER
, or VERTICALSTATUSMETER
. The gauge type is reflected in the visual editor default gauge.
A single gauge can display one row of data bound to a gauge component. A gauge set displays a gauge for each row in multiple rows of data in a data collection.
You can specify the location of gauges within a gauge set by specifying values for attributes in the dvt:gauge
tag.
To specify the layout of gauges in a gauge set:
In the Structure window, right-click the dvt:gauge node and select Go to Properties.
In the Property Inspector, select the Common attributes category.
To determine the number of columns of gauges that will appear in a gauge set, specify a value for the gaugeSetColumnCount
attribute.
A setting of zero causes all gauges to appear in a single row. Any positive integer determines the exact number of columns in which the gauges are displayed. A setting of -1 causes the number of columns to be determined automatically from the data source.
To determine the placement of gauges in columns, specify a value for the gaugeSetDirection
attribute.
If you select GSD_ACROSS, then the default layout of the gauges is used and the gauges appear from left to right, then top to bottom. If you select GSD_DOWN, the layout of the gauges is from top to bottom, then left to right
To control the alignment of gauges within a gauge set, specify a value for the gaugeSetAlignment
attribute.
This attribute defaults to the setting GSA_NONE, which divides the available space equally among the gauges in the gauge set. Other options use the available space and optimal gauge size to allow for alignment towards the left or right and the top or bottom within the gauge set. You can also select GSA_CENTER to center the gauges within the gauge set.
You can customize the width and height of a gauge and you can allow for dynamic resizing of a gauge based on changes to the size of its container. You can also control the style sheet used by a gauge. These two aspects of a gauge are interrelated in that they share the use of the gauge inlineStyle
attribute.
You can specify the initial size of a gauge by setting values for attributes of the dvt:gauge
tag. If you do not also provide for dynamic resizing of the gauge, then the initial size becomes the only display size for the gauge.
To specify the size of a gauge at its initial display:
In the Structure window, right-click the dvt:gauge node and select Go to Properties.
In the Style attributes category of the Property Inspector, enter a value for the InlineStyle
attribute of the dvt:gauge
tag. For example:
inlineStyle="width:200px;height:200px"
You must enter values in each of two attributes of the dvt:gauge
tag to allow for a gauge to resize when its container in a JSF page changes in size. The values that you specify for this capability also are useful for creating a gauge component that fills an area across different browser window sizes.
To allow dynamic resizing of a gauge:
In the Structure window, right-click the dvt:gauge
node and select Go to Properties.
In the Behavior attributes category of the Property Inspector for the DynamicResize
attribute, select the value DYNAMIC_SIZE.
In the Style attributes category of the Property Inspector, for the InlineStyle
attribute, enter a fixed number of pixels or a relative percent for both width and height.
For example, to create a gauge that fills its container's width and has a height of 200 pixels, use the following setting for the inlineStyle
attribute: "width:100%;height:200px;"
.
You have the option of specifying a custom style class for use with a gauge. However, you must specify width and height in the inlineStyle
attribute.
To specify a custom style class for a gauge:
In the Structure window, right-click the dvt:gauge
node and select Go to Properties.
In the Style attributes category of the Property Inspector, for the StyleClass
attribute, select Edit from the Property menu choices, and select the CSS style class to use for this gauge.
In the InlineStyle
attribute, enter a fixed number of pixels or a relative percent for both width and height.
For example, to create a gauge that fills its container's width and has a height of 200 pixels, use the following setting for the inlineStyle
attribute: "width:100%;height:200px;"
.
Thresholds are data values in a gauge that highlight a particular range of values. Thresholds must be values between the minimum and the maximum value for a gauge. The range identified by a threshold is filled with a color that is different from the color of other ranges.
The data collection for a gauge can provide dynamic values for thresholds when the gauge is databound. After the gauge is created, you can also insert a dvt:thresholdSet
tag and individual dvt:threshold
tags to create static thresholds. If threshold values are supplied in both the data collection and in threshold tags, then the gauge honors the values in the threshold tags.
You can create an indefinite number of thresholds in a gauge. Each threshold is represented by a single dvt:threshold
tag. One dvt:thresholdSet
tag must wrap all the threshold tags,
To add static thresholds to a gauge:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Threshold Set.
You do not need to specify values for attributes on the dvt:thresholdSet
tag.
Right-click the dvt:thresholdSet
node and select Insert inside dvt:thresholdSet then threshold.
In the Property Inspector, enter values for the attributes that you want to customize for this threshold.
You have the option of entering a specific fill color and border color for the section of the gauge related to the threshold. You can also identify the maximum value for the threshold and any text that you want to display in the legend to identify the threshold.
Note:
For the final threshold, the maximum value of the gauge is used as the threshold maximum value regardless of any entry you make in the threshold tag for the final threshold.Repeat Step 2 and Step 3 to create each threshold in the gauge from the lowest minimum value to the highest maximum value.
For gauges, the dvt:metricLabel
, dvt:tickLabel
, and dvt:legendText
tags may require numeric formatting.
The metric label tag has a numberType
attribute that lets you specify whether you want to display the value itself or a percentage that the value represents. In some cases, this might be sufficient numeric formatting.
You can also use the dvt:numberFormat
tag to specify formatting for numeric values in the metric label. For example, the dvt:numberFormat
tag lets you format data values as currency or display positive or negative signs.
You can specify number formatting directly in the dvt:numberFormat
tag, or you can use the af:convertNumber
tag as a child tag of dvt:numberFormat
.
To format numbers in a gauge metric label:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then metricLabel.
If you want to display the metric value as a percentage rather than as a value, then set the NumberType
attribute of the dvt:metricLabel
tag to NT_PERCENT.
If you want to specify additional formatting for the number in the metric label, then do the following:
Right-click the metricLabel node and select Insert inside dvt:metricLabel. then numberFormat.
In the Property Inspector, specify values in the attributes of the numberFormat
tag to produce additional formatting.
Note:
The procedure for formatting numbers in gauge tick labels is similar to that of formatting numbers in the metric label except that you insert thedvt:tickLabel
tag as a child of the gauge.Example 25-3 shows the XML code that is generated when you add a metric label and number formatting to a gauge.
You can format text in any of the following tags that represent subcomponents of a gauge:
dvt:bottomLabel
dvt:gaugeMetricLabel
dvt:gaugeLegendText
dvt:gaugeLegendTitle
dvt:tickLabel
dvt:topLabel
You can use a dvt:gaugeFont
child tag to a dvt:metricLabel
tag to specify gauge metric label font size, color, and if the text should be bold or italic.
To format text in a gauge metric label:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then metricLabel.
Right-click the metricLabel node and select Insert inside dvt:metricLabel, then Font.
In the Property Inspector, specify values in the attributes of the dvt:gaugeFont
tag to produce the desired formatting.
Note:
The procedure for formatting text in other gauge labels and titles is similar to that of formatting text in the metric label except that you insert the appropriate child tag that represents the gauge label or title.Example 25-4 shows the code that is generated when you format text in a gauge metric label using the gaugeFont
tag.
You can specify a gauge that sweeps through angles other than the standard 220-degree arc in a dial gauge. Set the angleExtent
attribute to specify the range of degrees in the gauge.
For example, to create a 270 degree dial gauge, set the angleExtent
attribute as follows: <dvt:gauge angleExtent="270"/>
.
You can control the positioning of gauge labels. You can also control the colors and borders of the gauge label frames.
You can specify whether you want labels to appear outside or inside a gauge by using the position
attribute of the appropriate label tag. The following label tags are available as child tags of dvt:gauge
: dvt:bottomLabel
, dvt:metricLabel
, and dvt:topLabel
.
To specify the position of the bottom label:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Bottom Label.
In the Property Inspector, for the position
attribute, select the desired location of the label.
In the text
attribute, enter the text that you want the label to display.
Use a similar procedure to position the other gauge labels except that you insert the appropriate label tag as a child of the gauge.
You can control the fill color and border color of the frames for the top label and the bottom label. The following gauge child tags serve as frames for these labels: dvt:upperLabelFrame
and dvt:lowerLabelFrame
.
To customize the color and border of the upper label frame:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Upper Label Frame.
In the Property Inspector, select the desired colors for the borderColor
attribute and the fillColor
attribute.
Use a similar procedure to customize the color and border of the bottom label frame except that you insert the dvt:bottomLabel
tag as a child of the gauge
There are a variety of options available for customizing the indicators of gauges and the location and labeling of tick marks.
The following gauge child tags are available to customize the indicator of a gauge:
dvt:indicator
: Specifies the visual properties of the dial gauge indicator needle or the status meter bar. Includes the following attributes:
borderColor
: Specifies the color of the border of the indicator
fillColor
: Specifies the color of the fill for the indicator.
type
: Identifies the kind of indicator: a line indicator, a fill indicator, or a needle indicator.
useThresholdFillColor
: Determines if the color of the threshold area in which the indicator falls should override the specified color of the indicator.
dvt:indicatorBar
: Contains the fill properties of the inner rectangle (bar) of a status meter gauge.
dvt:indicatorBase
: Contains the fill properties of the circular base of a line and needle style indicator of a dial gauge.
To customize the appearance of gauge indicators:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Indicator.
In the Property Inspector, specify values for the desired attributes.
If you want to customize the fill attributes of the inner bar on a status meter gauge, then in the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Indicator Bar.
In the Property Inspector, specify values for the desired attributes.
If you want to customize the circular base of a line style indicator on a dial gauge, then in the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Indicator Base.
In the Property Inspector, specify values for the desired attributes.
To customize tick marks and tick labels for a gauge, the following gauge child tags are available:
dvt:tickMark
: Specifies the location of tick marks, the number, and the color of tick marks.
dvt:tickLabel
: Identifies which tick marks will have labels, the location of the labels (interior or exterior of the gauge), and the format for numbers displayed in the tick labels.
To customize the tick marks and tick labels of a gauge:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Tick Mark.
In the Property Inspector, specify values for the desired attributes.
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Tick Label.
In the Property Inspector, specify values for the desired attributes.
By default, the dial gauge displays interior tick labels to provide a cleaner look when the gauge is contained entirely within the gauge frame. Because the tick labels lie within the plot area, the length of the tick labels must be limited to fit in this space. You can customize your gauge to use exterior labels.
To create interior tick labels on a gauge:
In the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, and then Tick Mark.
In the Property Inspector, select TLP_POSITION for the Position
attribute.
These gauge features are used less frequently than the common gauge features. These special features include applying gradient effects to parts of a gauge, animating gauges, and taking advantage of the gauge support for active data.
A gradient is a special effect in which an object changes color gradually. Each color in a gradient is represented by a stop. The first stop is stop 0, the second is stop 1, and so on. You must specify the number of stops in the special effects for a subcomponent of a gauge that supports special effects.
You can define gradient special effects for the following subcomponents of a gauge:
Gauge background: Uses the dvt:gaugeBackground
tag.
Gauge set background: Uses the dvt:gaugeSetBackground
tag.
Gauge plot area: Uses the dvt:gaugePlotArea
tag.
Gauge frame: Uses the dvt:gaugeFrame
tag.
Gauge legend area: Uses the dvt:gaugeLegendArea
tag.
Lower label frame: Uses the dvt:lowerLabelFrame
tag.
Upper label frame: Uses the dvt:upperLabelFrame
tag.
Indicator: Uses the dvt:indicator
tag.
Indicator bar: Uses the dvt:indicatorBar
tag.
Indicator base: Uses the dvt:indicatorBase
tag.
Threshold: Uses the dvt:threshold
tag.
The approach that you use to define gradient special effects is identical for each part of the gauge that supports these effects.
For each subcomponent of a gauge to which you want to add special effects, you must insert a dvt:specialEffects
tag as a child tag of the subcomponent. For example, if you want to add a gradient to the background of a gauge, then you would create one dvt:specialEffects
tag that is a child of the dvt:background
tag. You must also set the dvt:specialEffects
tag fillType
property to FT_FGRADIENT
.
Then, optionally if you want to control the rate of change for the fill color of the subcomponent, you would add as many dvt:gradientStopStyle
tags as you need to control the color and rate of change for the fill color of the component. These dvt:gradientStopStyle
tags then must be entered as child tags of the single dvt:specialEffects
tag.
To add a gradient special effect to the background of a gauge:
If you have not inserted a dvt:gaugeBackground
tag as a child of the gauge, then, in the Structure window, right-click the gauge node and select Insert inside dvt:gauge, then ADF Data Visualization, then Gauge Background.
In the Structure window, right-click the gauge background node then select Insert inside dvt:gaugeBackground, then Special Effects.
Use the Property Inspector to enter values for the attributes of the dvt:specialEffects
tag:
For fillType
attribute, select FT_GRADIENT
.
For gradientDirection
attribute, select the direction of change that you want to use for the gradient fill.
For the numStops
attribute, enter the number of stops to use for the gradient.
Optionally, in the Structure window, right-click the special effects node and select Insert within dvt:specialEffects, then dvt:gradientStopStyle if you want to control the color and rate of change for each gradient stop.
Use the Property Inspector to enter values for the attributes of the dvt:gradientStopStyle
tag:
For the stopIndex
attribute, enter a zero-based integer as an index within the dvt:gradientStopStyle
tags that are included within the dvt:specialEffects
tag.
For the gradientStopColor
attribute, enter the color that you want to use at this specific point along the gradient.
For the gradientStopPosition
attribute, enter the proportional distance along a gradient for the identified stop color. The gradient is scaled from 0 to 100. If 0 or 100 is not specified, default positions are used for those points.
Repeat Step 3 and Step 4 for each gradient stop that you want to specify.
Example 25-5 shows the XML code that is generated when you add a gradient fill to the background of a gauge and specify two stops.
Example 25-5 XML Code Generated for Adding a Gradient to the Background of a Gauge
<dvt:gauge > <dvt:gaugeBackground borderColor="#848284"> <dvt:specialEffects fillType="FT_GRADIENT" gradientDirection="GD_RADIAL"> <dvt:gradientStopStyle stopIndex="0" gradientStopPosition="60" gradientStopColor="FFFFCC"/> <dvt:gradientStopStyle stopIndex="1" gradientStopPosition="90" gradientStopColor="FFFF99"/> </dvt:specialEffects> </dvt:gaugeBackground> </dvt:gauge>
You can animate gauges (not gauge sets) to show changes in data, for example, a dial gauge indicator can change color when a data value increases or decreases. Figure 25-9 shows a dial gauge with the dial indicator animated to display the data change at each threshold level.
The attributes for setting animation effects on gauges include:
animationOnDisplay
: Use to specify the type of initial rendering effect to apply. Valid values are:
NONE
(default): Do not show any initial rendering effect.
AUTO
: Apply an initial rendering effect automatically chosen based on graph or gauge type.
animationOnDataChange
: Use to specify the type of data change animation to apply. Valid values are:
NONE
: Apply no data change animation effects.
AUTO
(default): Apply Active Data Service (ADS) data change animation events. For more information about ADS see Section 25.5.3.
ON:
Apply partial page refresh (PPR) data change animation events.
animationUpColor
: Use to specify the RGB hexadecimal color used to indicate that a data value has increased.
animationDownColor
: Use to specify the RGB hexadecimal color used to indicate that a data value has decreased.
Animation effects using Active Data Service (ADS) can be added to dial and status meter gauge types. ADS allows you to bind ADF Faces components to an active data source using the ADF model layer. To allow this, you must configure the components and the bindings so that the components can display the data as it is updated in the data source.
In order to use the Active Data Service, you must have a data source that publishes events when data is changed, and you must create business services that react to those events and the associated data controls to represent those services. For more information about ADS and configuring your application, see the "Using the Active Data Service" chapter in the Oracle Fusion Middleware Fusion Developer's Guide for Oracle Application Development Framework.
You configure a databound gauge to display active data by setting a value on the binding element in the corresponding page definition file.
To configure a gauge to display active data:
In the Structure window, select the graph node.
In the Property Inspector, enter a unique value in the ID field.
If you do not select an identifier, one will be entered for you.
Open the page's associated page definition file.
In the Structure window for the page definition file, select the node that represents the attribute binding for the component. In the Property Inspector, select Push for the ChangeEventPolicy
attribute.
After configuring the gauge component to display active data, set animation effects using the attributes defined in Section 25.5.2.
You can directly specify the graphics for a gauge to create custom gauge shapes. The customShapesPath
attribute is set to point to the vector graphics file that is processed into graphics used for output. JDeveloper also provides a set of custom shape styles accessible by using the customShapesPath
attribute.
Due to the requirements for rotating and resizing a gauge's components, such as the plot area or tick marks, a vector graphics file is required when creating a custom shapes graphic file. Scalable Vector Graphics (SVG) is the supported file format for creating custom shapes for gauges.
After designing the gauge and exporting to an SVG file, additional information is added to identify, scale, and position the gauge shapes and components, and to specify other metadata used in processing.
In the SVG file, gauge components are identified using an ID. For example, an SVG file with <polygon id="indicator"/>
would be interpreted as using a polygon shape for the indicator
component. To specify multiple shapes to create the desired visual for a component, the ID can be modified as in id="indicator_0"
, id="indicator_1"
, and id="indicator_2"
.
Table 25-1 shows the gauge components IDs and their descriptions.
Table 25-1 Gauge Component IDs for Custom Shapes
ID | Description |
---|---|
|
Points to the value represented by the gauge. If not specified, the gauge will use the indicator specified in the application. For the dial gauge, the For the status meter gauge, the indicator should be specified with its full extent, and the gauge will be cropped to point to the metric value. |
|
For a dial gauge, refers to the object that appears at the base of the |
|
Refers to the optional component that adds visual distinction to the |
|
Refers to the frame that contains the |
|
For the dial gauge, refers to the circular area within which the indicator moves. For the status meter gauge, refers to the area that contains the indicator. For the LED gauge, refers to the area that contains any graphics that will not be filled with the LED fill color. When a |
|
Used to define increments on the gauge. When a set of tick marks is specified with no |
|
Refers to the frame that contains the |
Table 25-2 shows the metadata IDs and descriptions used for internal calculations, not rendered in the gauge.
Table 25-2 Metadata IDs for Custom Shapes
ID | Description |
---|---|
|
Specifies the box containing the minimum and maximum extent of the indicator bar. If not specified, the bounding box is taken to be the entire indicator as specified in the input file. |
|
Specifies the center of rotation for the indicator that rotates around in a dial gauge. The center of the shape with this ID is considered to be the indicator center. If not specified, it is assumed to be the center of the bottom edge of the plot area for a 180-degree dial gauge, and the center of the plot area for an N-degree dial gauge. |
|
Specifies the area of the LED gauge that should be filled with the appropriate threshold color. If not specified, then the entire |
|
For complex |
|
Specified the bounding box for the |
|
Defines the area that will be filled with the threshold colors. For a dial gauge, specifies the For a status meter gauge, specifies the |
|
Defines the path in which to draw tick marks. This is necessary for the gauge to calculate where tick marks should be drawn on a custom plot area, and the gauge will be unable to change the |
|
For complex |
Example 25-6 shows a sample SVG file used to specify custom shapes for the components of a gauge.
Example 25-6 Sample SVG File Used for Gauge Custom Shapes
<?xml version="1.0" encoding="UTF-8" standalone="no"?> <svg xmlns:svg="http://www.w3.org/2000/svg" xmlns="http://www.w3.org/2000/svg" version="1.0"> <rect width="264.72726" height="179.18887" rx="8.2879562" ry="10.368411" x="152.76225" y="202.13995" style="fill:#c83737;fill-opacity:1;stroke:none" id="gaugeFrame"/> <rect width="263.09058" height="42.581127" rx="3.0565372" ry="3.414634" x="155.11697" y="392.35468" fill="#c83737" id="lowerLabelFrame" /> <rect width="241.79999" height="120.13961" x="164.2415" y="215.94714" style="fill:#ffeeaa" id="plotAreaBounds"/> <rect width="74.516975" height="44.101883" rx="2.6630435" ry="3.5365853" x="247.883" y="325.4415" style="fill:#ffd5d5;fill-opacity:1;stroke:none" id="indicatorBase"/> <rect width="6.0830183" height="98.849045" rx="2.6630435" ry="2.2987804" x="282.86035" y="237.23772" style="fill:#00aa00;fill-opacity:1;stroke:none" id="indicator"/> </svg>
After creating the SVG file to be used to specify the custom shapes for your gauge, set the customShapesPath
attribute to point to the file.
To specify a custom shapes file:
In the Structure window, right-click the dvt:gauge node and select Go to Properties.
In the Appearance attributes category of the Property Inspector, for the CustomShapesPath
attribute, enter the path to the custom shapes file. For example, customShapesPath="/path/customShapesFile.svg"
.
The custom shapes available to you support the following SVG features:
Transformations
Paths
Basic shapes
Fill and stroke painting
Linear and radial gradients
SVG features that are not supported by custom shapes in JDeveloper include:
Unit Identifiers: All coordinates and lengths should be specified without the unit identifiers, and are assumed to be in pixels. The parser does not support unit identifiers, because the size of certain units can vary based on the display used. For example, an inch may correspond to different numbers of pixels on different displays. The only exceptions to this are gradient coordinates, which can be specified as percentages.
Text: All text on the gauge is considered data, and should be specified through the tags or data binding.
Specifying Paint: The supported options are none
, 6-digit hexadecimal, and a <uri>
reference to a gradient.
Fill Properties: The fill-rule
attribute is not supported.
Stroke Properties: The stroke-linecap
, stroke-linejoin
, stroke-miterlimit
, stroke-disarray
, and stroke-opacity
attributes are not supported.
Linear Gradients and Radial Gradients: The gradientUnits
, gradientTransform
, spreadMethod
, and xlink:href
are not supported. Additionally, the r
, fx
, and fy
attributes on the radial gradient are not supported.
Elliptical Arc Out-of-Range Parameters: If rx
, ry
, and x-axis-rot
are too small such that there is no solution, the ellipse should be scaled uniformly until there is exactly one solution. The SVG parser will not support this.
General Error Conditions: The SVG input is expected to be well formed and without errors. The SVG parser will not perform any error checking or error recovery for incorrectly formed files, and it will stop parsing when it encounters an error in the file.
In addition to the ability to specify custom shapes for gauges, there are a set of prebuilt custom shapes styles for use with the gauge components. The available styles are:
Beveled circle
Full circle
Rounded rectangle
Figure 25-10 shows a dial gauge displayed with each of the custom shapes styles applied.
To apply a custom shapes style to a gauge:
In the Structure window, right-click the dvt:gauge node and select Go to Properties.
In the Appearance attributes category of the Property Inspector, select the custom shapes style from the CustomShapesPath
attribute dropdown list.