Skip to content

Commit 94f5a49

Browse files
committed
simplify DataTree getChildren
1 parent 86c490a commit 94f5a49

File tree

1 file changed

+7
-11
lines changed

1 file changed

+7
-11
lines changed

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

Lines changed: 7 additions & 11 deletions
Original file line numberDiff line numberDiff line change
@@ -11,15 +11,9 @@ import { IDisposable, dispose } from 'vs/base/common/lifecycle';
1111
import { Emitter, Event, mapEvent } from 'vs/base/common/event';
1212
import { timeout } from 'vs/base/common/async';
1313

14-
export interface IDataTreeElement<T> {
15-
readonly element: T;
16-
readonly collapsible?: boolean;
17-
readonly collapsed?: boolean;
18-
}
19-
2014
export interface IDataSource<T extends NonNullable<any>> {
2115
hasChildren(element: T | null): boolean;
22-
getChildren(element: T | null): Thenable<IDataTreeElement<T>[]>;
16+
getChildren(element: T | null): Thenable<T[]>;
2317
}
2418

2519
enum DataTreeNodeState {
@@ -193,15 +187,17 @@ export class DataTree<T extends NonNullable<any>, TFilterData = void> implements
193187
node.state = DataTreeNodeState.Loaded;
194188
this._onDidChangeNodeState.fire(node);
195189

196-
const createTreeElement = (el: IDataTreeElement<T>): ITreeElement<IDataTreeNode<T>> => {
190+
const createTreeElement = (element: T): ITreeElement<IDataTreeNode<T>> => {
191+
const collapsible = this.dataSource.hasChildren(element);
192+
197193
return {
198194
element: {
199-
element: el.element,
195+
element: element,
200196
state: DataTreeNodeState.Uninitialized,
201197
parent: node
202198
},
203-
collapsible: el.collapsible,
204-
collapsed: typeof el.collapsed === 'boolean' ? el.collapsed : true
199+
collapsible,
200+
collapsed: true
205201
};
206202
};
207203

0 commit comments

Comments
 (0)