public override void FetchData() { this.m_RootItem = new TreeViewItem(this.m_RootInstanceID, 0, (TreeViewItem) null, AssetsTreeViewDataSource.CreateDisplayName(this.m_RootInstanceID)); if (!this.showRootNode) this.SetExpanded(this.m_RootItem, true); IHierarchyProperty hierarchyProperty = (IHierarchyProperty) new HierarchyProperty(HierarchyType.Assets); hierarchyProperty.Reset(); if (!hierarchyProperty.Find(this.m_RootInstanceID, (int[]) null)) Debug.LogError((object) ("Root Asset with id " + (object) this.m_RootInstanceID + " not found!!")); int minDepth = hierarchyProperty.depth + (!this.showRootNode ? 1 : 0); int[] array = this.expandedIDs.ToArray(); Texture2D texture = EditorGUIUtility.FindTexture(EditorResourcesUtility.emptyFolderIconName); this.m_VisibleRows = new List<TreeViewItem>(); while (hierarchyProperty.NextWithDepthCheck(array, minDepth)) { if (!this.foldersOnly || hierarchyProperty.isFolder) { int depth = hierarchyProperty.depth - minDepth; TreeViewItem treeViewItem = !hierarchyProperty.isFolder ? (TreeViewItem) new AssetsTreeViewDataSource.NonFolderTreeItem(hierarchyProperty.instanceID, depth, (TreeViewItem) null, hierarchyProperty.name) : (TreeViewItem) new AssetsTreeViewDataSource.FolderTreeItem(hierarchyProperty.instanceID, depth, (TreeViewItem) null, hierarchyProperty.name); treeViewItem.icon = !hierarchyProperty.isFolder || hierarchyProperty.hasChildren ? hierarchyProperty.icon : texture; if (hierarchyProperty.hasChildren) treeViewItem.AddChild((TreeViewItem) null); this.m_VisibleRows.Add(treeViewItem); } } TreeViewUtility.SetChildParentReferences(this.m_VisibleRows, this.m_RootItem); if (this.foldersFirst) { AssetsTreeViewDataSource.FoldersFirstRecursive(this.m_RootItem); this.m_VisibleRows.Clear(); this.GetVisibleItemsRecursive(this.m_RootItem, this.m_VisibleRows); } this.m_NeedRefreshVisibleFolders = false; this.m_TreeView.SetSelection(Selection.instanceIDs, false); }
private void ReadAssetDatabase(TreeViewItem parent, int baseDepth) { IHierarchyProperty hierarchyProperty = (IHierarchyProperty) new HierarchyProperty(HierarchyType.Assets); hierarchyProperty.Reset(); Texture2D texture1 = EditorGUIUtility.FindTexture(EditorResourcesUtility.folderIconName); Texture2D texture2 = EditorGUIUtility.FindTexture(EditorResourcesUtility.emptyFolderIconName); List <TreeViewItem> visibleItems = new List <TreeViewItem>(); while (hierarchyProperty.Next((int[])null)) { if (hierarchyProperty.isFolder) { visibleItems.Add(new TreeViewItem(hierarchyProperty.instanceID, baseDepth + hierarchyProperty.depth, (TreeViewItem)null, hierarchyProperty.name) { icon = !hierarchyProperty.hasChildren ? texture2 : texture1 }); } } TreeViewUtility.SetChildParentReferences(visibleItems, parent); }