diff --git a/src/sql/workbench/api/common/extHostModelViewTree.ts b/src/sql/workbench/api/common/extHostModelViewTree.ts index 97895b7b24..da43d27927 100644 --- a/src/sql/workbench/api/common/extHostModelViewTree.ts +++ b/src/sql/workbench/api/common/extHostModelViewTree.ts @@ -158,21 +158,6 @@ export class ExtHostTreeView extends vsTreeExt.ExtHostTreeView { .then(() => Object.keys(itemsToRefresh).length ? this.modelViewProxy.$refreshDataProvider(this.handle, this.componentId, itemsToRefresh) : null); } - protected refreshNode(treeItemHandle: vsTreeExt.TreeItemHandle): Promise { - const extElement = this.getExtensionElement(treeItemHandle); - const existing = this.nodes.get(extElement); - //this.clearChildren(extElement); // clear children cache - return Promise.resolve(this.componentDataProvider.getTreeItem(extElement)) - .then(extTreeItem => { - if (extTreeItem) { - const newNode = this.createTreeNode(extElement, extTreeItem, existing.parent); - this.updateNodeCache(extElement, newNode, existing, existing.parent); - return newNode; - } - return null; - }); - } - protected createTreeNode(element: T, extensionTreeItem: azdata.TreeComponentItem, parent?: vsTreeExt.TreeNode | vsTreeExt.Root): vsTreeExt.TreeNode { let node = super.createTreeNode(element, extensionTreeItem, parent); if (node.item) { diff --git a/src/vs/workbench/api/common/extHostTreeViews.ts b/src/vs/workbench/api/common/extHostTreeViews.ts index 71d9684c44..76ea2283c2 100644 --- a/src/vs/workbench/api/common/extHostTreeViews.ts +++ b/src/vs/workbench/api/common/extHostTreeViews.ts @@ -502,12 +502,12 @@ export class ExtHostTreeView extends Disposable { // {{SQL CARBON EDIT}} protected getHandlesToRefresh(elements: T[]): TreeItemHandle[] { const elementsToUpdate = new Set(); - for (const element of elements) { - const elementNode = this.nodes.get(element); + const elementNodes = elements.map(element => this.nodes.get(element)); + for (const elementNode of elementNodes) { if (elementNode && !elementsToUpdate.has(elementNode.item.handle)) { - // check if an ancestor of extElement is already in the elements to update list + // check if an ancestor of extElement is already in the elements list let currentNode: TreeNode | undefined = elementNode; - while (currentNode && currentNode.parent && !elementsToUpdate.has(currentNode.parent.item.handle)) { + while (currentNode && currentNode.parent && elementNodes.findIndex(node => currentNode && currentNode.parent && node && node.item.handle === currentNode.parent.item.handle) === -1) { const parentElement: T | undefined = this.elements.get(currentNode.parent.item.handle); currentNode = parentElement ? this.nodes.get(parentElement) : undefined; }