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; } }
private void ProcessDisplayFolder(XmlReader rdr, ADOTabularTable table, IADOTabularFolderReference parent) { var folderReference = ""; string folderCaption = null; string objRef = ""; while (!(rdr.NodeType == XmlNodeType.EndElement && rdr.LocalName == "DisplayFolder")) { if (rdr.NodeType == XmlNodeType.Element && rdr.LocalName == "DisplayFolder") { while (rdr.MoveToNextAttribute()) { switch (rdr.LocalName) { case "Name": folderReference = rdr.Value; break; case "Caption": folderCaption = rdr.Value; break; } } // create folder and add to parent's folders IADOTabularFolderReference folder = new ADOTabularDisplayFolder(folderCaption, folderReference); parent.FolderItems.Add(folder); rdr.ReadToNextElement(); // recurse down to child items ProcessDisplayFolder(rdr, table, folder); rdr.Read(); //rdr.ReadToNextElement(); // read the end element } // Reset DisplayFolder local variables folderCaption = null; folderReference = String.Empty; if ((rdr.NodeType == XmlNodeType.Element) && (rdr.LocalName == "PropertyRef" || rdr.LocalName == "HierarchyRef" )) { while (rdr.MoveToNextAttribute()) { switch (rdr.LocalName) { case "Name": objRef = rdr.Value; break; } } // create reference object IADOTabularObjectReference reference = new ADOTabularObjectReference("", objRef); parent.FolderItems.Add(reference); var column = table.Columns.GetByPropertyRef(objRef); if (column != null) { column.IsInDisplayFolder = true; } objRef = ""; rdr.Read(); } if ((rdr.LocalName != "DisplayFolder" && rdr.LocalName != "PropertyRef" && rdr.LocalName != "DisplaFolders")) { if (rdr.NodeType != XmlNodeType.Element && rdr.NodeType != XmlNodeType.EndElement) { rdr.ReadToNextElement(); } //else // rdr.Read(); } if (rdr.NodeType == XmlNodeType.EndElement && rdr.LocalName == "DisplayFolders") { rdr.Read(); break; } //rdr.Read(); } }