public static IEnumerable <FilterableTreeViewItem> TreeViewFolderChildren(this IADOTabularObjectReference objRef, ADOTabularTable table, IGlobalOptions options, IEventAggregator eventAggregator, IMetadataPane metadataPane) { var lst = new List <FilterableTreeViewItem>(); var folder = objRef as IADOTabularFolderReference; if (folder != null) { foreach (var folderItem in folder.FolderItems) { GetChildrenDelegate getChildren = null; if (folderItem is IADOTabularFolderReference) { getChildren = ((IADOTabularObjectReference)folderItem).TreeViewFolderChildren; } lst.Add(new TreeViewColumn(folderItem, getChildren, table, options, eventAggregator, metadataPane)); } } else { var col = table.Columns.GetByPropertyRef(objRef.InternalReference); lst.Add(new TreeViewColumn(col, null, options, eventAggregator, metadataPane)); } return(lst); }
public static IEnumerable <FilterableTreeViewItem> TreeViewFolderChildren(this IADOTabularObjectReference objRef, IADOTabularObject table, IGlobalOptions options, IEventAggregator eventAggregator, IMetadataPane metadataPane) { var lst = new List <FilterableTreeViewItem>(); var folder = objRef as IADOTabularFolderReference; if (folder != null) { foreach (var folderItem in folder.FolderItems) { GetChildrenDelegate getChildren = null; if (folderItem is IADOTabularFolderReference fi) { // if the current item is a sub-folder look for it's children getChildren = fi.TreeViewFolderChildren; } else { var col = (table as ADOTabularTable).Columns.GetByPropertyRef(folderItem.InternalReference); switch (col) { // if this item is a KPI get it's child components case ADOTabularKpi k: getChildren = k.TreeViewColumnChildren; break; // if this item is a hierarchy get it's child levels case ADOTabularHierarchy h: getChildren = h.TreeViewColumnChildren; break; default: getChildren = null; break; } ; } lst.Add(new TreeViewColumn(folderItem, getChildren, (table as ADOTabularTable), options, eventAggregator, metadataPane)); } } else { var col = (table as ADOTabularTable).Columns.GetByPropertyRef(objRef.InternalReference); lst.Add(new TreeViewColumn(col, null, options, eventAggregator, metadataPane)); } return(lst); }
public TreeViewColumn(IADOTabularObjectReference reference, GetChildrenDelegate getChildren, ADOTabularTable table, IGlobalOptions options, IEventAggregator eventAggregator, IMetadataPane metadataPane) : base(table, getChildren, options, eventAggregator, metadataPane) { Options = options; IADOTabularFolderReference folder = reference as IADOTabularFolderReference; if (folder == null) { Column = table.Columns.GetByPropertyRef(reference.InternalReference); MetadataImage = Column.GetMetadataImage(); } else { _caption = reference.Name; MetadataImage = MetadataImages.Folder; } }