public static void ExpandSessionObjects([NotNull] this TreeView treeView, List <SessionObjectViewModel> sessionObjects) { treeView.Dispatcher.BeginInvoke(new Action(() => { try { var shouldStop = true; foreach (var sessionObject in sessionObjects.ToList()) { var item = treeView.GetTreeViewItemFor(sessionObject); if (item == null) { continue; } item.IsExpanded = true; sessionObjects.Remove(sessionObject); shouldStop = false; } if (!shouldStop && sessionObjects.Count > 0) { ExpandSessionObjects(treeView, sessionObjects); } } catch (Exception e) { e.Ignore(); } }), DispatcherPriority.ApplicationIdle); }
private static void ExpandDirectories([NotNull] TreeView treeView, DirectoryBaseViewModel directory) { treeView.Dispatcher.BeginInvoke(new Action(() => { var item = treeView.GetTreeViewItemFor(directory); if (item == null) { return; } item.IsExpanded = true; foreach (var subDirectory in directory.SubDirectories) { ExpandDirectories(treeView, subDirectory); } }), DispatcherPriority.ApplicationIdle); }
private static void ExpandPackageCategory([NotNull] TreeView treeView, PackageCategoryViewModel category, bool assetsOnly) { treeView.Dispatcher.BeginInvoke(new Action(() => { var item = treeView.GetTreeViewItemFor(category); if (item == null) { return; } item.IsExpanded = true; foreach (var package in category.Content) { ExpandPackage(treeView, package, assetsOnly); } }), DispatcherPriority.ApplicationIdle); }
private static void ExpandViewModel([NotNull] TreeView treeView, ViewModelBase viewModel) { var directory = viewModel as DirectoryBaseViewModel; if (directory != null) { ExpandDirectories(treeView, directory); } else { treeView.Dispatcher.BeginInvoke(new Action(() => { var item = treeView.GetTreeViewItemFor(viewModel); if (item == null) { return; } item.IsExpanded = true; }), DispatcherPriority.ApplicationIdle); } }
public static string GetSessionObjectPath([NotNull] this TreeView treeView, SessionObjectViewModel sessionObject) { var item = treeView.GetTreeViewItemFor(sessionObject); if (item == null) { return(null); } var path = ""; while (item != null) { sessionObject = item.DataContext as SessionObjectViewModel; if (sessionObject == null) { return(null); } path = sessionObject.Name + '/' + path; item = item.ParentTreeViewItem; } return(path); }
private static void ExpandPackage([NotNull] TreeView treeView, PackageViewModel package, bool assetsOnly) { treeView.Dispatcher.BeginInvoke(new Action(() => { var item = treeView.GetTreeViewItemFor(package); if (item == null) { return; } item.IsExpanded = true; if (assetsOnly) { ExpandDirectories(treeView, package.AssetMountPoint); } else { foreach (var content in package.Content) { ExpandViewModel(treeView, content); } } }), DispatcherPriority.ApplicationIdle); }