/*--------------------------------------------------------------------------------------------- * Copyright (c) Microsoft Corporation. All rights reserved. * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ import { AbstractTree, IAbstractTreeOptions, } from '../../../../../vs/base/browser/ui/tree/abstractTree'; import { ITreeNode, ITreeModel, ITreeRenderer, IDataSource, } from '../../../../../vs/base/browser/ui/tree/tree'; import { ObjectTreeModel } from '../../../../../vs/base/browser/ui/tree/objectTreeModel'; import { IListVirtualDelegate, IIdentityProvider, } from '../../../../../vs/base/browser/ui/list/list'; import { IList } from '../../../../../vs/base/browser/ui/tree/indexTreeModel'; export interface IDataTreeOptions extends IAbstractTreeOptions {} export class DataTree extends AbstractTree< T | null, TFilterData, T | null > { protected override model!: ObjectTreeModel; private identityProvider: IIdentityProvider | undefined; constructor( private user: string, container: HTMLElement, delegate: IListVirtualDelegate, renderers: ITreeRenderer[], private dataSource: IDataSource, options: IDataTreeOptions = {} ) { super( user, container, delegate, renderers, options as IDataTreeOptions ); this.identityProvider = options.identityProvider; } protected createModel( user: string, view: IList>, options: IDataTreeOptions ): ITreeModel { return new ObjectTreeModel(user, view, options); } }