private static List <ScheduleTableStyleHeaderNode> CreateChildNodes(List <ColumnHeaderNode> childNodes, ScheduleTableStyleHeaderTree tree, PropertySetDefinition psd, ScheduleTableStyle style) { Database db = ScheduleSample.GetDatabase(); List <ScheduleTableStyleHeaderNode> nodesCreated = new List <ScheduleTableStyleHeaderNode>(); foreach (ColumnHeaderNode childNode in childNodes) { if (childNode.IsColumn) { PropertyClassData data = childNode.ColumnData; ScheduleTableStyleColumn column = CreateColumn(data, psd, style); style.Columns.Add(column); nodesCreated.Add(column); } else if (childNode.IsHeader) { string headerName = childNode.NodeData as string; List <ScheduleTableStyleHeaderNode> myChildren = CreateChildNodes(childNode.Children, tree, psd, style); ScheduleTableStyleHeaderNode header = tree.InsertNode(headerName, tree.Root.Children.Count, tree.Root, myChildren.ToArray()); nodesCreated.Add(header); } else { throw new ArgumentException("Cannot resolve node type properly when creating schedule table style."); } } return(nodesCreated); }
private static ScheduleTableStyleColumn CreateColumn(PropertyClassData nodeData, PropertySetDefinition psd, ScheduleTableStyle style) { Database db = ScheduleSample.GetDatabase(); ScheduleTableStyleColumn column = new ScheduleTableStyleColumn(); column.SetToStandard(db); column.SubSetDatabaseDefaults(db); column.PropertySetDefinitionId = psd.Id; column.ColumnType = ScheduleTableStyleColumnType.Normal; column.Heading = nodeData.DisplayName; column.PropertyId = psd.Definitions.IndexOf(nodeData.PropertyName); return(column); }