33.25. <g:timeDataItem>

g:timeDataItem标签的作用在于获取TimeSeries中的var遍历而得到的每一行的值,并在图表上将这个值表现出来。与DataItem不同,TimeDataItem的X轴坐标需由time属性指定。

33.25.1. 构件信息

表 33.68. 构件信息

Component Typeorg.operamasks.faces.graph.TimeDataItem
Component Familyorg.operamasks.faces.graph.DataItem
Component Classorg.operamasks.faces.component.graph.UITimeDataItem
Tag Classorg.operamasks.faces.webapp.graph.TimeDataItemTag

继承体系

+java.lang.Object

++javax.faces.component.UIComponent

+++javax.faces.component.UIComponentBase

++++org.operamasks.faces.component.graph.UIDataItem

+++++org.operamasks.faces.component.graph.UITimeDataItem

33.25.2. 属性

表 33.69. 属性

binding 定义类 javax.faces.component.UIComponentBase
类型 javax.el.ValueExpression(javax.faces.component.UIComponent)
是否必须 延时求值
一个值表达式,用于把该组件链接到一个ManagedBean的某个属性。
color 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定构件描绘图形的颜色
drawItemLabel 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Boolean)
是否必须 延时求值
指定是否显示数据值,默认值是false
drawLines 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定是否描绘数据间的连线,默认值时true,此属性只会在构件包含在LineChart或CurveChart构件里才有效
drawMarkers 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定构件是否显示数据点标记,默认值时false,此属性只会在构件包含在LineChart或CurveChart构件里才有效
drawOutline 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定是否显示图例的图标边框,默认值是true
fillMarkers 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定构件显示数据点标记时,标记是否被填充,默认值是true
id 定义类 javax.faces.component.UIComponentBase
类型 java.lang.String
是否必须 延时求值
这个组件的组件标识符。这个值在最近的命名容器类型的父组件范围内,必须是唯一的。
itemLabelColor 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定数据值的颜色
itemLabelFont 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定数据值的字体
legend 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.String)
是否必须 延时求值
指定图例名称
lineStyle 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(org.operamasks.faces.component.graph.LineStyleType)
是否必须 延时求值
指定数据间连线的样式
lineWidth 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Float)
是否必须 延时求值
指定数据间连线的宽度,此属性只会在构件包含在LineChart或CurveChart构件里才有效
markerFillColor 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定填充数据点标记的颜色
outlineColor 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(java.lang.Object)
是否必须 延时求值
指定图例的图标边框颜色
rendered 定义类 javax.faces.component.UIComponentBase
类型 boolean(boolean)
是否必须 延时求值
一个标志,指出该组件是否要在任何随后的form提交过程中被渲染或处理。 这个属性的缺省值是true。
showLegend 定义类 org.operamasks.faces.component.graph.UIDataItem
类型 javax.el.ValueExpression(boolean)
是否必须 延时求值
指定否显示图例,默认值是false
time 定义类 org.operamasks.faces.component.graph.UITimeDataItem
类型 javax.el.ValueExpression(java.util.Date)
是否必须 延时求值
指定数据所对应X轴时间坐标

33.25.3. 构件API

33.25.3.1. LineStyleType(枚举类型)

表 33.70. 枚举成员

名称 说明
Solid实线
Dot点线
Dash虚线
DashDot点-虚线
DashDotDot点-点-虚线

33.25.4. 示例

以下的例子介绍了g:timeDataItem标签常用方法,在创建jsp页面之前,需要创建为数据表提供数据的托管Bean:

@ManagedBean(scope=ManagedBeanScope.SESSION)
public class TimeSeriesData extends ArrayList<TimeDataItem>
{
    public TimeSeriesData() {
        randomize();
    }

    public void randomize() {
        clear();

        GregorianCalendar cal = new GregorianCalendar(2006, 0, 1);
        double value = 100.0;
        for (int i = 0; i < 365; i++) {
            value = (value + Math.random()*10) - 5;
            add(new TimeDataItem(cal.getTime(), value));
            cal.add(Calendar.DATE, 1);
        }
    }
}

以下是jsp页面中关于TimeDataItem的代码,这里使用折线图绘制数据,共显示20条数据,每条数据都加上数据点标记:

<g:lineChart title="Time Series Line Chart Demo" xAxisLabel="Time" yAxisLabel="Value" showLegend="true"> 
  <g:timeSeries value="#{TimeSeriesData}" var="ts" rows="20"> 
    <g:timeDataItem legend="Random 1" time="#{ts.time}" value="#{ts.value}" drawMarkers="true" /> 
  </g:timeSeries> 
</g:lineChart>