Hi
I have a huge problem.
I am making a type of a ganttChart and im trying to do it like this.
I get an Array from server containind calendar data.
then i get a array from server containing info about projects.
then I create an Advanced datagrid and compare the two arrays and if there
is a mach in day.id and project .id I want to ad an UIComponent in that
cell.
is this possible?
here is the function for creating the grid
& the itemRenderClass
private function createGrid():void{
gridArray = modelLocator.currentArray;
var projectGroup:Array = new Array();
var weekGroups:Array = new Array();
var weekGroup:TrafficGridColumnGroup;
var projectsGroup:TrafficGridColumnGroup
var projectColumn:TrafficGridColumn;
projectsGroup = new TrafficGridColumnGroup();
projectsGroup.editable = true;
projectsGroup.headerText = ("Username: ");
projectsGroup.minWidth = 140;
projectColumn = new TrafficGridColumn();
projectColumn.headerText = "Projects";
projectColumn.dataField = "name";
projectColumn.width = 140;
projectColumn.editable = true;
projectsGroup.children.push(projectColumn);
weekGroups.push(projectsGroup);
for each (var week:Array in gridArray){
weekGroup = new TrafficGridColumnGroup();
weekGroup.headerText = ("Uke: "+week[0].week);
weekGroup.editable = true;
weekGroup.minWidth = 50;
weekGroup.children = [];
weekGroups.push(weekGroup);
for(var i:uint = 0 ; i < week.length; i+=2){
dayName = getShortVersionOfDayname(week[i].dayname);
if(dayName != "Lør" && dayName != "Søn"){
dayColumn = new TrafficGridColumn();
var
dayDescription:AdvancedDataGridRendererDescription = new
AdvancedDataGridRendererDescription();
dayDescription.rowSpan = 1;
dayColumn.editable = true;
dayColumn.itemEditor = new ClassFactory(TextInput);
dayColumn.headerText = dayName;
dayColumn.minWidth = 35;
dayColumn.id = week[i].id;
//dayColumn.labelFunction = displayPersonInfo ;
dayColumn.itemRenderer = new
ClassFactory(ProjectRender);
dayColumn.styleFunction = myStyleFunction;
dayColumn.labelFunction = dayColumn.setLabel;
weekGroup.children.push(dayColumn);
}
}
}
trafficGrid.groupedColumns = weekGroups;
}
----------------------------------------------------------------------------
package traffic.view.main.time.renderer
{
import mx.controls.AdvancedDataGrid;
import mx.controls.Label;
import mx.controls.advancedDataGridClasses.AdvancedDataGridListData;
import mx.core.UIComponent;
import traffic.model.ViewModelLocator;
[Style(name="backgroundColor", type="uint", format="Color",
inherit="no")]
public class ProjectRender extends Label {
private var modelLocator:ViewModelLocator =
ViewModelLocator.getInstance();
private var grid1:AdvancedDataGrid;
public var bgComp:UIComponent;
public function ProjectRender() {
super();
this.bgComp = new UIComponent();
}
override protected function updateDisplayList(unscaledWidth:Number,
unscaledHeight:Number):void {
super.updateDisplayList(unscaledWidth, unscaledHeight);
grid1 =
AdvancedDataGrid(AdvancedDataGridListData(listData).owner);
}
override protected function createChildren():void{
super.createChildren();
bgComp.graphics.beginFill(0x0000FF, .1);
bgComp.graphics.drawRect(0, 0, 40, 5);
bgComp.graphics.endFill();
bgComp.visible = true;
addChild(bgComp);
}
public function setObjVisible(visible:Boolean):Boolean {
return visible;
}
}
}