Exemple #1
0
        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);
        }
Exemple #2
0
        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;
            }
        }