Recently had to build a component to do some scheduling… so first started to browse for some sample and options I had and found three options: First pay for the iLog Elixir components which has a pretty good scheduling component, but paying for that was not an option to us.
Then I found the Doug’s post about the gantt chart component and flexgeek post (with doug’s same approach). this seemed a good option and actually started to develop it on top of flexgeek’s component, but as I test it found a leak that didn’t allow the grid’s columns to get GC’d and when a drill down/up was made all the columns where removed and added (not really)… also I wasn’t able to show two month in a day view for example.
So, I went for the Third option… the so feared and undocumented scheduling library (now in flexlib, previously in adobe’s lab). Surprisingly I thing it was the best option, don’t know why nobody tried before, maybe the lack of samples… just had to made some modifications to the lib to add some events like click and drag over the items and some timeline modifications so it’ll be like the iLog’s component.
I think that there is a couple of modifications needed in the component and thats it to use the hierarchical classes in flex (my approach wasn’t the best but for time problems it seemed the quick and lazy way), and adding styles and colors.
I haven’t been able to finish it due to a change of priorities in the company but here it is… (viewsource is enabled)
and here is the flexlib source with my modifications (download), I have to separate more my classes from the originals
I’ll be posting more on the modifications I made to the libs
Any feedback will be appreciated
Recently had to build a component to do some scheduling… so first started to browse for some sample and options I had and found three options: First pay for the iLog Elixir components which has a pretty good scheduling component, but paying for that was not an option to us.
Then I found the Doug’s post about the gantt chart component and flexgeek post (with doug’s same approach). this seemed a good option and actually started to develop it on top of flexgeek’s component, but as I test it found a leak that didn’t allow the grid’s columns to get GC’d and when a drill down/up was made all the columns where removed and added (not really)… also I wasn’t able to show two month in a day view for example.
So, I went for the Third option… the so feared and undocumented scheduling library (now in flexlib, previously in adobe’s lab). Surprisingly I thing it was the best option, don’t know why nobody tried before, maybe the lack of samples… just had to made some modifications to the lib to add some events like click and drag over the items and some timeline modifications so it’ll be like the iLog’s component.
I think that there is a couple of modifications needed in the component and thats it to use the hierarchical classes in flex (my approach wasn’t the best but for time problems it seemed the quick and lazy way), and adding styles and colors.
I haven’t been able to finish it due to a change of priorities in the company but here it is… (viewsource is enabled)
and here is the flexlib source with my modifications (download), I have to separate more my classes from the originals
I’ll be posting more on the modifications I made to the libs
Any feedback will be appreciated

Thanks for the wonderful job done, how can we have a schedule entry for root element as well , I tried following but it did not work:
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
var entries:ArrayCollection = new ArrayCollection();
var row:ArrayCollection = new ArrayCollection();
for each (var order:String in orderList){
var orderXML:XML = new XML(orderXMLMap.getValue(order)+"</order>")
row = new ArrayCollection();
var entry : ColoredScheduleEntry= new ColoredScheduleEntry();
entry.startDate = DateUtil.clearTime( DateField.stringToDate("10/10/2011","DD/MM/YYYY"));
entry.endDate = DateUtil.clearTime(DateField.stringToDate("21/10/2011","DD/MM/YYYY"));
entry.backgroundColor = 0x273c0b;
entry.label = orderXML.@name;
row.addItem(entry);
var orderGroup:GroupedScheduleEntry = new GroupedScheduleEntry(orderXML.@name,row);
var orderItemArray:Array = orderItemsMap.getValue(order) as Array;
if (orderItemArray){
var tmpArray:Array = new Array();
for each (var itemName:String in orderItemArray) {
row = new ArrayCollection();
var oItemXML:XML = new XML(orderItemXMLMap.getValue(itemName)+"/>");
var sDate:String = oItemXML.@sDate;
var eDate:String =oItemXML.@rfsDate;
if (sDate==null || sDate.length==0){
sDate= dFormat.format(dateAdd("day",-10,DateField.stringToDate(eDate,"DD/MM/YYYY"))).toString();
}
entry = new ColoredScheduleEntry();
entry.startDate = DateUtil.clearTime( DateField.stringToDate("15/10/2011","DD/MM/YYYY"));
entry.endDate = DateUtil.clearTime(DateField.stringToDate("19/10/2011","DD/MM/YYYY"));
entry.backgroundColor = 0xFEDbbb;
entry.label = oItemXML.@name;
row.addItem(entry);
var orderItem:GroupedScheduleEntry = new GroupedScheduleEntry(oItemXML.@name,row);
tmpArray.push(orderItem);
}
orderGroup.children = tmpArray;
}
entries.addItem(orderGroup);
}
dataprovider = entries;
}
Thanks
Hi Rehan,
It should’ve worked… what happened when you ran that code?
Man.. you are too good. This is exactly what I was searching for and you have changed the flexlib code quite well. Well done!!!… REally appreciated…
Thanks bro