|
3 | 3 | * Licensed under the MIT License. See License.txt in the project root for license information. |
4 | 4 | *--------------------------------------------------------------------------------------------*/ |
5 | 5 |
|
6 | | -import { ISpliceable } from 'vs/base/common/sequence'; |
7 | 6 | import { Iterable } from 'vs/base/common/iterator'; |
8 | 7 | import { Event } from 'vs/base/common/event'; |
9 | 8 | import { ITreeModel, ITreeNode, ITreeElement, ICollapseStateChangeEvent, ITreeModelSpliceEvent, TreeError, TreeFilterResult, TreeVisibility, WeakMapper } from 'vs/base/browser/ui/tree/tree'; |
10 | 9 | import { IObjectTreeModelOptions, ObjectTreeModel, IObjectTreeModel } from 'vs/base/browser/ui/tree/objectTreeModel'; |
| 10 | +import { IList } from 'vs/base/browser/ui/tree/indexTreeModel'; |
11 | 11 |
|
12 | 12 | // Exported only for test reasons, do not use directly |
13 | 13 | export interface ICompressedTreeElement<T> extends ITreeElement<T> { |
@@ -126,7 +126,7 @@ export class CompressedObjectTreeModel<T extends NonNullable<any>, TFilterData e |
126 | 126 |
|
127 | 127 | constructor( |
128 | 128 | private user: string, |
129 | | - list: ISpliceable<ITreeNode<ICompressedTreeNode<T>, TFilterData>>, |
| 129 | + list: IList<ITreeNode<ICompressedTreeNode<T>, TFilterData>>, |
130 | 130 | options: ICompressedObjectTreeModelOptions<T, TFilterData> = {} |
131 | 131 | ) { |
132 | 132 | this.model = new ObjectTreeModel(user, list, options); |
@@ -340,10 +340,13 @@ class CompressedTreeNodeWrapper<T, TFilterData> implements ITreeNode<T | null, T |
340 | 340 | ) { } |
341 | 341 | } |
342 | 342 |
|
343 | | -function mapList<T, TFilterData>(nodeMapper: CompressedNodeWeakMapper<T, TFilterData>, list: ISpliceable<ITreeNode<T, TFilterData>>): ISpliceable<ITreeNode<ICompressedTreeNode<T>, TFilterData>> { |
| 343 | +function mapList<T, TFilterData>(nodeMapper: CompressedNodeWeakMapper<T, TFilterData>, list: IList<ITreeNode<T, TFilterData>>): IList<ITreeNode<ICompressedTreeNode<T>, TFilterData>> { |
344 | 344 | return { |
345 | 345 | splice(start: number, deleteCount: number, toInsert: ITreeNode<ICompressedTreeNode<T>, TFilterData>[]): void { |
346 | 346 | list.splice(start, deleteCount, toInsert.map(node => nodeMapper.map(node)) as ITreeNode<T, TFilterData>[]); |
| 347 | + }, |
| 348 | + updateElementHeight(index: number, height: number): void { |
| 349 | + list.updateElementHeight(index, height); |
347 | 350 | } |
348 | 351 | }; |
349 | 352 | } |
@@ -402,7 +405,7 @@ export class CompressibleObjectTreeModel<T extends NonNullable<any>, TFilterData |
402 | 405 |
|
403 | 406 | constructor( |
404 | 407 | user: string, |
405 | | - list: ISpliceable<ITreeNode<T, TFilterData>>, |
| 408 | + list: IList<ITreeNode<T, TFilterData>>, |
406 | 409 | options: ICompressibleObjectTreeModelOptions<T, TFilterData> = {} |
407 | 410 | ) { |
408 | 411 | this.elementMapper = options.elementMapper || DefaultElementMapper; |
|
0 commit comments