コード例 #1
0
ファイル: ControlExtensions.cs プロジェクト: Beefr/xenko-wd
        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);
        }
コード例 #2
0
        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);
        }
コード例 #3
0
        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);
        }
コード例 #4
0
        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);
            }
        }
コード例 #5
0
ファイル: ControlExtensions.cs プロジェクト: Beefr/xenko-wd
        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);
        }
コード例 #6
0
        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);
        }