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); }
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); }
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); }