1. task chart 需要两个data provider:
1) task data provider包含任务数据, 可以是一级的或者多级的或者分组的数据, 使用TaskChart的taskDataProvider属性来设置, task chart的数据表格完全使用AdvancedDataGrid所提供的功能
2) constraint data provider包含约束数据, 是一组同级别的数据, 使用TaskChart的constraintDataProvider属性来设置
除了设置TaskChart的taskDataProvider和constraintDataProvider, 还需要:
1) 指定每一列所对应的task数据项
2) 指定在gantt图中所对应的task数据项
3) 指定在gantt图中constraint数据之间的约束关系
2. constraint data provider必须是list-based的, 可以是
1) XML
包含xml文本的字符串;
E4X格式的XML数据: <mx:XML> 或者 <mx:XMLList>
XML或者XMLList对象
2) IList 或者 ICollectionView
任何实现了IList 或者 ICollectionView的类的对象(例如: ArrayCollection 或者 XMLListCollection )
3) 其他对象
一个包含数据项的数组, 或者一个对象
当设置了TaskChart的constraintDataProvider属性之后, 会按照以下规则来使用:
1) XML 和 XMLList, 被包装成一个XMLListCollection对象
2) IList 和 ICollectionView, 直接使用
3) Array, 被包装成一个ArrayCollection对象
4) SctionScript 对象或者其他数据类型, 被包装成
例如, 当设置constraintDataProvider属性为一个Array对象时, 如果再去读取constraintDataProvider属性, 返回的将是一个ArrayCollection对象
3. 指定每一列所对应的task数据项
例: data provider的数据为:
id: "T1",
name: "Task #1",
startTime: "1/14/2008 8:0:0",
endTime: "1/28/2008 17:0:0"
指定数据项为:
<ilog:dataGrid>
<ilog:GanttDataGrid>
<ilog:columns>
<mx:AdvancedDataGridColumn dataField="name" headerText="Name"/>
<mx:AdvancedDataGridColumn dataField="id" headerText="ID"/>
<mx:AdvancedDataGridColumn dataField="startTime" headerText="Start"/>
<mx:AdvancedDataGridColumn dataField="endTime" headerText="End"/>
</ilog:columns>
</ilog:GanttDataGrid>
</ilog:dataGrid>
4. 指定task数据项所对应的标签
taskEndTimeField endTime or @endTime task的结束时间
taskIsMilestoneField milestone or @milestone 是否是milestone task
taskIsSummaryField summary or @summary 是否是summary task
taskLabelField name or @name task的名称
taskStartTimeField startTime or @startTime task的开始时间
1) taskEndTimeField和taskStartTimeField必须是一个时间对象或者是一个可以直接用来创建时间对象的字符串
2) taskIsMilestoneField和taskIsSummaryField必须是Boolea对象或者是 "true" 或 "false" 当中的任意一个字符串, 包含子task的任务会被默认的认为是summary task
5. 指定解析task数据项的方法(函数)
如果需要第二种方法来解析task数据, 可以使用taskEndTimeFunction, taskLabelFunction, taskStartTimeFunction, taskIsMilestoneFunction and taskIsSummaryFunction这些属性来获得end time, label, start time, milestone flag, and summar
例:
<?xml version="1.0"?>
<mx:Application xmlns:mx="http://www.adobe.com/2006/mxml" xmlns:ilog="http://www.ilog.com/2007/ilog/flex">
<mx:Script>
<![CDATA[
import mx.collections.HierarchicalData;
[Bindable]
public var tasks:HierarchicalData = new HierarchicalData([
{ id: "T1", name: "Task #1", startTime: "1/14/2008 8:0:0", endTime: "1/28/2008 17:0:0" },
{ id: "T2", name: "Milestone #1", milestone: "true", startTime: "1/29/2008 8:0:0", endTime: "1/29/2008 08:0:0" }
]);
public function parseDate(value:String):Date {
return new Date(value);
}
public function startTimeFunction(item:Object):Date {
return parseDate(item.startTime);
}
public function endTimeFunction(item:Object):Date {
return parseDate(item.endTime);
}
public function isMilestoneFunction(item:Object):Boolean {
return new Boolean(item["milestone"]);
}
]]>
</mx:Script>
<ilog:TaskChart
width="100%" height="100%"
taskDataProvider="{tasks}"
taskStartTimeFunction="{startTimeFunction}"
taskEndTimeFunction="{endTimeFunction}"
taskIsMilestoneFunction="{isMilestoneFunction}">
</ilog:TaskChart>
</mx:Application>
6. 指定constraint数据
1) 指定constraint数据所对应的标签
constraintKindField kind or @kind 指定constraint的种类, 可选的值有startToStart, startToEnd, endToStart, endToEnd
2) 可以使用constraintKindFunction属性来从constraint数据当中或组kind的值
3) 指定tasks和constraints之间的关系
(1) TaskChart按照以下的规则来创建tasks和constraints之间的关系
一个task可以是0个或多个constraint的source或者destination
一个constraint包含一个source task和一个destination task
(2)
taskIdField id or @id task data provider的内部唯一标示符, task的field
constraintFromIdField fromId or @fromId constraint的source task的id, constraint的field
constraintToIdField toId or @toId constraint的destination task的id, constraint的field
如果在外面改变了tasks和constraints之间的关系, 需要调用ICollectionView.itemUpdated()方法来告诉data provider数据已经改变了
(3) TaskChart提供了以下方法
getFromTask(constraint:Object):Object — 返回constraint的source task
getToTask(constraint:Object):Object — 返回constraint的destination task
getFromConstraints(task:Object):Array — 返回source为参数task的constraint数组
getToConstraints(task:Object):Array — 返回destination为参数task的constraint数组
1208

被折叠的 条评论
为什么被折叠?



