Revert to previous behavior for tree data providers getChildren (#11308)

* Revert to previous behavior for tree data providers without resolve support

* Add another sql carbon edit
This commit is contained in:
Charles Gagnon
2020-07-13 09:48:28 -07:00
committed by GitHub
parent 32c3a13f7b
commit 1e62030581

View File

@@ -219,16 +219,23 @@ export class TreeViewDataProvider implements ITreeViewDataProvider {
return this.itemsMap.size === 0;
}
protected async postGetChildren(elements: ITreeItem[]): Promise<ResolvableTreeItem[]> { // {{SQL CARBON EDIT}} For use by Component Tree View
const result: ResolvableTreeItem[] = [];
protected async postGetChildren(elements: ITreeItem[]): Promise<ITreeItem[]> { // {{SQL CARBON EDIT}} For use by Component Tree View
const result: ITreeItem[] = []; //{{SQL CARBON EDIT}}
const hasResolve = await this.hasResolve;
if (elements) {
for (const element of elements) {
const resolvable = new ResolvableTreeItem(element, hasResolve ? () => {
return this._proxy.$resolve(this.treeViewId, element.handle);
} : undefined);
this.itemsMap.set(element.handle, resolvable);
result.push(resolvable);
// {{SQL CARBON EDIT}} We rely on custom properties on the tree items in a number of places so creating a new item here was
// {{SQL CARBON EDIT}} clearing those. Revert to old behavior if the provider doesn't support a resolve (our normal case)
if (hasResolve) {
const resolvable = new ResolvableTreeItem(element, hasResolve ? () => {
return this._proxy.$resolve(this.treeViewId, element.handle);
} : undefined);
this.itemsMap.set(element.handle, resolvable);
result.push(resolvable);
} else {
this.itemsMap.set(element.handle, element);
result.push(element);
}
}
}
return result;