Skip to content

Commit 92772dc

Browse files
authored
Revert "fixes microsoft#199441 (microsoft#199591)" This reverts commit 0dd6491.
1 parent 168df5b commit 92772dc

File tree

2 files changed

+5
-61
lines changed

2 files changed

+5
-61
lines changed

src/vs/base/browser/ui/tree/asyncDataTree.ts

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -954,7 +954,6 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
954954

955955
asyncDataTreeNode.element = element;
956956
asyncDataTreeNode.hasChildren = hasChildren;
957-
asyncDataTreeNode.collapsedByDefault = this.collapseByDefault?.(element);
958957

959958
if (recursive) {
960959
if (result.collapsed) {
@@ -964,7 +963,8 @@ export class AsyncDataTree<TInput, T, TFilterData = void> implements IDisposable
964963
} else {
965964
childrenToRefresh.push(asyncDataTreeNode);
966965
}
967-
} else if (hasChildren && !asyncDataTreeNode.collapsedByDefault) {
966+
} else if (hasChildren && this.collapseByDefault && !this.collapseByDefault(element)) {
967+
asyncDataTreeNode.collapsedByDefault = false;
968968
childrenToRefresh.push(asyncDataTreeNode);
969969
}
970970

src/vs/base/test/browser/ui/tree/asyncDataTree.test.ts

Lines changed: 3 additions & 59 deletions
Original file line numberDiff line numberDiff line change
@@ -5,10 +5,8 @@
55

66
import * as assert from 'assert';
77
import { IIdentityProvider, IListVirtualDelegate } from 'vs/base/browser/ui/list/list';
8-
import { AsyncDataTree, CompressibleAsyncDataTree, ITreeCompressionDelegate } from 'vs/base/browser/ui/tree/asyncDataTree';
9-
import { ICompressedTreeNode } from 'vs/base/browser/ui/tree/compressedObjectTreeModel';
10-
import { ICompressibleTreeRenderer } from 'vs/base/browser/ui/tree/objectTree';
11-
import { IAsyncDataSource, ITreeNode } from 'vs/base/browser/ui/tree/tree';
8+
import { AsyncDataTree } from 'vs/base/browser/ui/tree/asyncDataTree';
9+
import { IAsyncDataSource, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree';
1210
import { timeout } from 'vs/base/common/async';
1311
import { Iterable } from 'vs/base/common/iterator';
1412
import { ensureNoDisposablesAreLeakedInTestSuite } from 'vs/base/test/common/utils';
@@ -39,7 +37,7 @@ function find(element: Element, id: string): Element | undefined {
3937
return undefined;
4038
}
4139

42-
class Renderer implements ICompressibleTreeRenderer<Element, void, HTMLElement> {
40+
class Renderer implements ITreeRenderer<Element, void, HTMLElement> {
4341
readonly templateId = 'default';
4442
renderTemplate(container: HTMLElement): HTMLElement {
4543
return container;
@@ -50,15 +48,6 @@ class Renderer implements ICompressibleTreeRenderer<Element, void, HTMLElement>
5048
disposeTemplate(templateData: HTMLElement): void {
5149
// noop
5250
}
53-
renderCompressedElements(node: ITreeNode<ICompressedTreeNode<Element>, void>, index: number, templateData: HTMLElement, height: number | undefined): void {
54-
const result: string[] = [];
55-
56-
for (const element of node.element.elements) {
57-
result.push(element.id + (element.suffix || ''));
58-
}
59-
60-
templateData.textContent = result.join('/');
61-
}
6251
}
6352

6453
class IdentityProvider implements IIdentityProvider<Element> {
@@ -506,49 +495,4 @@ suite('AsyncDataTree', function () {
506495
assert(tree.isCollapsible(a), 'a is still collapsible');
507496
assert(!tree.isCollapsed(a), 'a is expanded');
508497
});
509-
510-
test('issue #199441', async () => {
511-
const container = document.createElement('div');
512-
513-
const dataSource = new class implements IAsyncDataSource<Element, Element> {
514-
hasChildren(element: Element): boolean {
515-
return !!element.children && element.children.length > 0;
516-
}
517-
async getChildren(element: Element) {
518-
return element.children ?? Iterable.empty();
519-
}
520-
};
521-
522-
const compressionDelegate = new class implements ITreeCompressionDelegate<Element> {
523-
isIncompressible(element: Element): boolean {
524-
return !dataSource.hasChildren(element);
525-
}
526-
};
527-
528-
const model = new Model({
529-
id: 'root',
530-
children: [{
531-
id: 'a', children: [{
532-
id: 'b',
533-
children: [{ id: 'b.txt' }]
534-
}]
535-
}]
536-
});
537-
538-
const collapseByDefault = (element: Element) => false;
539-
540-
const tree = store.add(new CompressibleAsyncDataTree<Element, Element>('test', container, new VirtualDelegate(), compressionDelegate, [new Renderer()], dataSource, { identityProvider: new IdentityProvider(), collapseByDefault }));
541-
tree.layout(200);
542-
543-
await tree.setInput(model.root);
544-
assert.deepStrictEqual(Array.from(container.querySelectorAll('.monaco-list-row')).map(e => e.textContent), ['a/b', 'b.txt']);
545-
546-
model.get('a').children!.push({
547-
id: 'c',
548-
children: [{ id: 'c.txt' }]
549-
});
550-
551-
await tree.updateChildren(model.root, true);
552-
assert.deepStrictEqual(Array.from(container.querySelectorAll('.monaco-list-row')).map(e => e.textContent), ['a', 'b', 'b.txt', 'c', 'c.txt']);
553-
});
554498
});

0 commit comments

Comments
 (0)