Example #1
0
        private async Task RefreshTreeAsync()
        {
            var current = Cursor.Current;

            Cursor.Current = Cursors.WaitCursor;

            treeView.Nodes.Clear();

            var root = new ResourceItem
            {
                DisplayName = _config.RootFolder,
                FullPath    = OnlinePathBuilder.ConvertPathToFullUri(_config.StorageUri, _config.RootFolder)
            };

            var result = await _client.FetchChildResourcesAsync(root, _cancelToken, 0);

            if (result != ResourceLoadStatus.Ok)
            {
                return;
            }

            var rootNode = new TreeNode
            {
                Text = _config.RootFolder,
                Tag  = null
            };

            PopulateTree(ref rootNode, root.Items);

            treeView.Nodes.Add(rootNode);
            rootNode.Expand();
            Cursor.Current = current;
        }
Example #2
0
        protected async Task LazyLoad(TreeNode <ResourceItem> treeNode)
        {
            if (treeNode.ChildNodes != null)
            {
                return;
            }

            Status = ResourceLoadStatus.Unknown;
            Status = await _client.FetchChildResourcesAsync(treeNode.Item, CancellationToken.None, treeNode.Item.Level, treeNode.Item.Level);

            if (Status == ResourceLoadStatus.Ok)
            {
                treeNode.ChildNodes = treeNode.Item.Items
                                      .Where(resourceItem => resourceItem.IsCollection)
                                      .Select(resourceItem => new TreeNode <ResourceItem>
                {
                    Item = resourceItem
                }).ToList();
            }
        }