Chart构件是一个灵活的图形构件,根据chartType所指定的值,可以绘制Area、Bar等多种不同类型的图形,使用者可以在数种图形中变换而不必改动标签。
表 33.11. 构件信息
| Component Type | org.operamasks.faces.graph.Chart |
| Component Family | org.operamasks.faces.graph.Chart |
| Component Class | org.operamasks.faces.component.graph.UIChart |
| Renderer Class(HTML_BASIC) | org.operamasks.faces.render.graph.ChartRenderer |
| Tag Class | org.operamasks.faces.webapp.graph.ChartTag |
+java.lang.Object
++javax.faces.component.UIComponent
+++javax.faces.component.UIComponentBase
++++org.operamasks.faces.component.graph.UIChart
表 33.12. 属性
| backgroundAlpha | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Float) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表背景的透明度,属性值是一个0到1之间的小数 | ||||
| backgroundColor | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定图片背景色 | ||||
| backgroundImage | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定生成图片时用于填充背景的图片URL | ||||
| backgroundImageAlpha | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Float) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定背景图的透明度,属性值是一个0到1之间的小数 | ||||
| backgroundImagePosition | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(org.operamasks.faces.component.graph.PositionType) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定背景图的位置,属性值必须是org.operamasks.faces.component.graph.PositionType类型的枚举值 | ||||
| binding | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | javax.el.ValueExpression(javax.faces.component.UIComponent) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。 | ||||
| bottomMargin | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Double) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表与图片下边框之间的距离 | ||||
| chartType | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(org.operamasks.faces.component.graph.ChartType) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定图形的类型,属性值必须是org.operamasks.faces.component.graph.ChartType的枚举值 | ||||
| colorPalette | 定义类 | |||
| 类型 | javax.el.ValueExpression(java.awt.Paint[]) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定一个实现了Paint接口的数组,而Paint接口定义Graphics2D是如何生成颜色样式的 | ||||
| drawItemLabel | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定是否显示数据值,默认值是false | ||||
| drawOutline | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定是否显示图例的图标边框,默认值是true | ||||
| effect3D | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表是否以3D效果显示 | ||||
| foregroundAlpha | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Float) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表前景的透明度,属性值是一个0到1之间的小数 | ||||
| height | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(int) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定生成图片的高度,默认值是370 | ||||
| id | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。 | ||||
| init | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | java.lang.String | |||
| 是否必须 | 否 | 延时求值 | 否 | |
| 指定一个方法,在图片初始化的时候调用 | ||||
| itemLabelColor | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据值的颜色 | ||||
| itemLabelFont | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据值的字体 | ||||
| leftMargin | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Double) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表与图片左边框之间的距离 | ||||
| orientation | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(org.operamasks.faces.component.graph.OrientationType) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表区图形显示的方向。属性值必须是:Horizontal或Vertical | ||||
| outlineColor | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定图例的图标边框颜色 | ||||
| plotColor | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表的背景色 | ||||
| plotImage | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Object) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表的背景图片URL | ||||
| plotImageAlpha | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Float) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表背景图片的透明度,属性值是一个0到1之间的小数 | ||||
| plotImagePosition | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(org.operamasks.faces.component.graph.PositionType) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表背景图片的位置,属性值必须是org.operamasks.faces.component.graph.PositionType类型的枚举值 | ||||
| rendered | 定义类 | javax.faces.component.UIComponentBase | ||
| 类型 | boolean(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。 | ||||
| rightMargin | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Double) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表与图片右边框之间的距离 | ||||
| showItemTips | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定当鼠标悬停在数据表的区域时,是否显示与鼠标停留位置X轴对应的数据值 | ||||
| showLegend | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(boolean) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定图片是否显示图例,默认值是false | ||||
| style | 定义类 | |||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 构件渲染时应用到构件的CSS风格,对应于元素的style属性 | ||||
| styleClass | 定义类 | |||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 空格分隔的CSS风格类名列表,渲染时作为元素的"class"属性 | ||||
| title | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表的标题 | ||||
| topMargin | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.Double) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定数据表与图片上边框之间的距离 | ||||
| width | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(int) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定生成图片的宽度,默认值是600 | ||||
| xAxisLabel | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定X轴标签的内容 | ||||
| yAxisLabel | 定义类 | org.operamasks.faces.component.graph.UIChart | ||
| 类型 | javax.el.ValueExpression(java.lang.String) | |||
| 是否必须 | 否 | 延时求值 | 是 | |
| 指定Y轴标签的内容 | ||||
以下的例子介绍了g:chart标签常用方法,在创建jsp页面之前,需要创建为数据表提供数据的托管Bean:
@ManagedBean(scope=ManagedBeanScope.SESSION)
public class CategoryData extends ArrayDataModel {
public CategoryData() {
this(20);
}
public CategoryData(int numRows) {
super(createData(numRows));
}
public void randomize() {
setWrappedData(createData(20));
}
private static CategoryDataItem[] createData(int numRows) {
Random r = new Random();
CategoryDataItem[] data = new CategoryDataItem[numRows];
for (int i = 0; i < numRows; i++) {
data[i] = new CategoryDataItem("Category " + (i+1), r.nextInt(10)+1, r.nextInt(10)+1, r.nextInt(10)+1);
}
return data;
}
}然后创建jsp页面,在这个页面定义了两个Chart构件,其中一个是面积图,另一个是条形图。下面是涉及g:chart标签的代码:
<!-- Area Chart -->
<g:chart title="Chart-Area Demo" xAxisLabel="Category"
yAxisLabel="Value" showLegend="true" foregroundAlpha="0.5"
chartType="Area">
<g:dataSeries value="#{CategoryData}" var="x" rows="8">
<g:dataLabel value="#{x.label}" />
<g:dataItem legend="First" value="#{x.first}" />
<g:dataItem legend="Second" value="#{x.second}" />
<g:dataItem legend="Third" value="#{x.third}" />
</g:dataSeries>
</g:chart>
<!-- Bar Chart -->
<g:chart title="Chart-Bar Demo" xAxisLabel="Category"
yAxisLabel="Value" showLegend="true" foregroundAlpha="0.5"
chartType="Bar">
<g:dataSeries value="#{CategoryData}" var="x" rows="8">
<g:dataLabel value="#{x.label}" />
<g:dataItem legend="First" value="#{x.first}" />
......
</g:dataSeries>
</g:chart>运行效果如下:
