private TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, PackageImportTreeView.PackageImportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                TreeViewItem result;

                if (folderPath == "")
                {
                    result = this.m_RootItem;
                }
                else
                {
                    int          hashCode     = folderPath.GetHashCode();
                    TreeViewItem treeViewItem = TreeViewUtility.FindItem(hashCode, this.m_RootItem);
                    if (treeViewItem != null)
                    {
                        result = treeViewItem;
                    }
                    else
                    {
                        string[] array = folderPath.Split(new char[]
                        {
                            '/'
                        });
                        string       text          = "";
                        TreeViewItem treeViewItem2 = this.m_RootItem;
                        int          num           = -1;
                        for (int i = 0; i < array.Length; i++)
                        {
                            string text2 = array[i];
                            if (text != "")
                            {
                                text += '/';
                            }
                            text += text2;
                            if (i != 0 || !(text == "Assets"))
                            {
                                num++;
                                hashCode = text.GetHashCode();
                                PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem;
                                if (treeViewFolders.TryGetValue(text, out packageImportTreeViewItem))
                                {
                                    treeViewItem2 = packageImportTreeViewItem;
                                }
                                else
                                {
                                    PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem2 = new PackageImportTreeView.PackageImportTreeViewItem(null, hashCode, num, treeViewItem2, text2);
                                    treeViewItem2.AddChild(packageImportTreeViewItem2);
                                    treeViewItem2 = packageImportTreeViewItem2;
                                    if (initExpandedState)
                                    {
                                        this.m_TreeView.state.expandedIDs.Add(hashCode);
                                    }
                                    treeViewFolders[text] = packageImportTreeViewItem2;
                                }
                            }
                        }
                        result = treeViewItem2;
                    }
                }
                return(result);
            }
 public void CullNonExistingItemsFromSelection()
 {
     for (int i = state.selectedIDs.Count - 1; i >= 0; i--)
     {
         if (TreeViewUtility.FindItem(state.selectedIDs[i], rootItem) == null)
         {
             state.selectedIDs.RemoveAt(i);
         }
     }
 }
            private TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, PackageExportTreeView.PackageExportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                if (folderPath == "")
                {
                    return(base.m_RootItem);
                }
                TreeViewItem item2 = TreeViewUtility.FindItem(folderPath.GetHashCode(), base.m_RootItem);

                if (item2 != null)
                {
                    return(item2);
                }
                char[]       separator = new char[] { '/' };
                string[]     strArray  = folderPath.Split(separator);
                string       key       = "";
                TreeViewItem rootItem  = base.m_RootItem;
                int          depth     = -1;

                for (int i = 0; i < strArray.Length; i++)
                {
                    string displayName = strArray[i];
                    if (key != "")
                    {
                        key = key + '/';
                    }
                    key = key + displayName;
                    if ((i != 0) || (key != "Assets"))
                    {
                        PackageExportTreeView.PackageExportTreeViewItem item4;
                        depth++;
                        int hashCode = key.GetHashCode();
                        if (treeViewFolders.TryGetValue(key, out item4))
                        {
                            rootItem = item4;
                        }
                        else
                        {
                            PackageExportTreeView.PackageExportTreeViewItem child = new PackageExportTreeView.PackageExportTreeViewItem(null, hashCode, depth, rootItem, displayName);
                            rootItem.AddChild(child);
                            rootItem = child;
                            if (initExpandedState)
                            {
                                base.m_TreeView.state.expandedIDs.Add(hashCode);
                            }
                            treeViewFolders[key] = child;
                        }
                    }
                }
                return(rootItem);
            }
Esempio n. 4
0
            private TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, PackageExportTreeView.PackageExportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                if (folderPath == string.Empty)
                {
                    return(this.m_RootItem);
                }
                TreeViewItem treeViewItem = TreeViewUtility.FindItem(folderPath.GetHashCode(), this.m_RootItem);

                if (treeViewItem != null)
                {
                    return(treeViewItem);
                }
                string[]     strArray = folderPath.Split('/');
                string       empty    = string.Empty;
                TreeViewItem parent   = this.m_RootItem;
                int          depth    = -1;

                for (int index = 0; index < strArray.Length; ++index)
                {
                    string displayName = strArray[index];
                    if (empty != string.Empty)
                    {
                        empty += (string)(object)'/';
                    }
                    empty += displayName;
                    if (index != 0 || !(empty == "Assets"))
                    {
                        ++depth;
                        int hashCode = empty.GetHashCode();
                        PackageExportTreeView.PackageExportTreeViewItem exportTreeViewItem1;
                        if (treeViewFolders.TryGetValue(empty, out exportTreeViewItem1))
                        {
                            parent = (TreeViewItem)exportTreeViewItem1;
                        }
                        else
                        {
                            PackageExportTreeView.PackageExportTreeViewItem exportTreeViewItem2 = new PackageExportTreeView.PackageExportTreeViewItem((ExportPackageItem)null, hashCode, depth, parent, displayName);
                            parent.AddChild((TreeViewItem)exportTreeViewItem2);
                            parent = (TreeViewItem)exportTreeViewItem2;
                            if (initExpandedState)
                            {
                                this.m_TreeView.state.expandedIDs.Add(hashCode);
                            }
                            treeViewFolders[empty] = exportTreeViewItem2;
                        }
                    }
                }
                return(parent);
            }
        public void CullNonExistingItemsFromSelection()
        {
            for (int i = state.selectedIDs.Count - 1; i >= 0; i--)
            {
                if (TreeViewUtility.FindItem(state.selectedIDs[i], rootItem) == null)
                {
                    state.selectedIDs.RemoveAt(i);
                }
            }

            if (state.selectedIDs.Count != 1 && PopupWindowWithoutFocus.IsVisible())
            {
                PopupWindowWithoutFocus.Hide();
            }
        }
            TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, PackageImportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                //We're in the root folder, so just return the root item as the parent.
                if (folderPath == "")
                {
                    return(m_RootItem);
                }

                // Does folder path exist?
                int          id   = folderPath.GetHashCode();
                TreeViewItem item = TreeViewUtility.FindItem(id, m_RootItem);

                if (item != null)
                {
                    return(item);
                }

                // Add folders as needed
                string[]     splitPath   = folderPath.Split('/');
                string       currentPath = "";
                TreeViewItem currentItem = m_RootItem;
                int          folderDepth = -1; // Will be incremented to the right depth in the loop.

                for (int depth = 0; depth < splitPath.Length; ++depth)
                {
                    string folder = splitPath[depth];
                    if (currentPath != "")
                    {
                        currentPath += '/';
                    }

                    currentPath += folder;

                    // Dont create a 'Assets' folder (we already have that as a hidden root)
                    if (depth == 0 && currentPath == "Assets")
                    {
                        continue;
                    }

                    // Only increment the folder depth if we are past the root "Assets" folder.
                    ++folderDepth;

                    id = currentPath.GetHashCode();

                    PackageImportTreeViewItem foundItem;
                    if (treeViewFolders.TryGetValue(currentPath, out foundItem))
                    {
                        currentItem = foundItem;
                    }
                    else
                    {
                        // If we do not have a tree view item for this folder we create one
                        var folderItem = new PackageImportTreeViewItem(null, id, folderDepth, currentItem, folder);

                        // Add to children array of the parent
                        currentItem.AddChild(folderItem);
                        currentItem = folderItem;

                        // Auto expand all folder items
                        if (initExpandedState)
                        {
                            m_TreeView.state.expandedIDs.Add(id);
                        }

                        // For faster finding of folders
                        treeViewFolders[currentPath] = folderItem;
                    }
                }

                return(currentItem);
            }
            private TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, AssetsItem> packageFolders, Dictionary <string, PackageImportTreeView.PackageImportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                int          hashCode     = folderPath.GetHashCode();
                TreeViewItem treeViewItem = TreeViewUtility.FindItem(hashCode, this.m_RootItem);

                if (treeViewItem != null)
                {
                    return(treeViewItem);
                }
                string[] array = folderPath.Split(new char[]
                {
                    '/'
                });
                string       text          = string.Empty;
                TreeViewItem treeViewItem2 = this.m_RootItem;

                for (int i = 0; i < array.Length; i++)
                {
                    string text2 = array[i];
                    if (text != string.Empty)
                    {
                        text += '/';
                    }
                    text += text2;
                    if (!(text == "Assets"))
                    {
                        hashCode = text.GetHashCode();
                        PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem;
                        if (treeViewFolders.TryGetValue(text, out packageImportTreeViewItem))
                        {
                            treeViewItem2 = packageImportTreeViewItem;
                        }
                        else
                        {
                            PackageImportTreeView.PackageImportTreeViewItem packageImportTreeViewItem2 = new PackageImportTreeView.PackageImportTreeViewItem(hashCode, i, treeViewItem2, text2);
                            packageImportTreeViewItem2.isFolder = true;
                            AssetsItem item;
                            if (packageFolders.TryGetValue(text, out item))
                            {
                                packageImportTreeViewItem2.item = item;
                            }
                            if (packageImportTreeViewItem2.item == null)
                            {
                                packageImportTreeViewItem2.item = new AssetsItem
                                {
                                    assetIsDir        = 1,
                                    pathName          = text,
                                    exportedAssetPath = text,
                                    enabled           = (this.m_EnabledFolders != null) ? ((!this.m_EnabledFolders.Contains(text)) ? 0 : 1) : 1,
                                    guid        = AssetDatabase.AssetPathToGUID(text),
                                    previewPath = string.Empty
                                };
                                packageImportTreeViewItem2.item.exists = ((!string.IsNullOrEmpty(packageImportTreeViewItem2.item.guid)) ? 1 : 0);
                            }
                            treeViewItem2.AddChild(packageImportTreeViewItem2);
                            treeViewItem2 = packageImportTreeViewItem2;
                            if (initExpandedState)
                            {
                                this.m_TreeView.state.expandedIDs.Add(hashCode);
                            }
                            treeViewFolders[text] = packageImportTreeViewItem2;
                        }
                    }
                }
                return(treeViewItem2);
            }
Esempio n. 8
0
 public virtual TreeViewItem FindItem(int id)
 {
     return(TreeViewUtility.FindItem(id, this.m_RootItem));
 }
            private TreeViewItem EnsureFolderPath(string folderPath, Dictionary <string, AssetsItem> packageFolders, Dictionary <string, PackageImportTreeView.PackageImportTreeViewItem> treeViewFolders, bool initExpandedState)
            {
                TreeViewItem item = TreeViewUtility.FindItem(folderPath.GetHashCode(), base.m_RootItem);

                if (item != null)
                {
                    return(item);
                }
                char[]       separator = new char[] { '/' };
                string[]     strArray  = folderPath.Split(separator);
                string       key       = string.Empty;
                TreeViewItem rootItem  = base.m_RootItem;

                for (int i = 0; i < strArray.Length; i++)
                {
                    string displayName = strArray[i];
                    if (key != string.Empty)
                    {
                        key = key + '/';
                    }
                    key = key + displayName;
                    if (key != "Assets")
                    {
                        PackageImportTreeView.PackageImportTreeViewItem item3;
                        int hashCode = key.GetHashCode();
                        if (treeViewFolders.TryGetValue(key, out item3))
                        {
                            rootItem = item3;
                        }
                        else
                        {
                            AssetsItem item5;
                            int        depth = i - 1;
                            PackageImportTreeView.PackageImportTreeViewItem child = new PackageImportTreeView.PackageImportTreeViewItem(hashCode, depth, rootItem, displayName)
                            {
                                isFolder = true
                            };
                            if (packageFolders.TryGetValue(key, out item5))
                            {
                                child.item = item5;
                            }
                            if (child.item == null)
                            {
                                AssetsItem item6 = new AssetsItem {
                                    assetIsDir        = 1,
                                    pathName          = key,
                                    exportedAssetPath = key,
                                    enabled           = (this.m_EnabledFolders != null) ? (!this.m_EnabledFolders.Contains(key) ? 0 : 1) : 1,
                                    guid        = AssetDatabase.AssetPathToGUID(key),
                                    previewPath = string.Empty
                                };
                                child.item        = item6;
                                child.item.exists = !string.IsNullOrEmpty(child.item.guid) ? 1 : 0;
                            }
                            rootItem.AddChild(child);
                            rootItem = child;
                            if (initExpandedState)
                            {
                                base.m_TreeView.state.expandedIDs.Add(hashCode);
                            }
                            treeViewFolders[key] = child;
                        }
                    }
                }
                return(rootItem);
            }