Пример #1
0
        public override void FetchData()
        {
            int depth = 0;

            this.m_RootItem = new TreeViewItem(this.m_RootInstanceID, depth, null, AssetsTreeViewDataSource.CreateDisplayName(this.m_RootInstanceID));
            if (!base.showRootNode)
            {
                this.SetExpanded(this.m_RootItem, true);
            }
            IHierarchyProperty hierarchyProperty = new HierarchyProperty(HierarchyType.Assets);

            hierarchyProperty.Reset();
            if (!hierarchyProperty.Find(this.m_RootInstanceID, null))
            {
                Debug.LogError("Root Asset with id " + this.m_RootInstanceID + " not found!!");
            }
            int num = hierarchyProperty.depth + ((!base.showRootNode) ? 1 : 0);

            int[]     expanded = base.expandedIDs.ToArray();
            Texture2D icon     = EditorGUIUtility.FindTexture(EditorResourcesUtility.emptyFolderIconName);

            this.m_VisibleRows = new List <TreeViewItem>();
            while (hierarchyProperty.NextWithDepthCheck(expanded, num))
            {
                if (!this.foldersOnly || hierarchyProperty.isFolder)
                {
                    depth = hierarchyProperty.depth - num;
                    TreeViewItem treeViewItem;
                    if (hierarchyProperty.isFolder)
                    {
                        treeViewItem = new AssetsTreeViewDataSource.FolderTreeItem(hierarchyProperty.instanceID, depth, null, hierarchyProperty.name);
                    }
                    else
                    {
                        treeViewItem = new AssetsTreeViewDataSource.NonFolderTreeItem(hierarchyProperty.instanceID, depth, null, hierarchyProperty.name);
                    }
                    if (hierarchyProperty.isFolder && !hierarchyProperty.hasChildren)
                    {
                        treeViewItem.icon = icon;
                    }
                    else
                    {
                        treeViewItem.icon = hierarchyProperty.icon;
                    }
                    if (hierarchyProperty.hasChildren)
                    {
                        treeViewItem.AddChild(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();
                base.GetVisibleItemsRecursive(this.m_RootItem, this.m_VisibleRows);
            }
            this.m_NeedRefreshVisibleFolders = false;
            bool revealSelectionAndFrameLastSelected = false;

            this.m_TreeView.SetSelection(Selection.instanceIDs, revealSelectionAndFrameLastSelected);
        }
Пример #2
0
 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);
 }