diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts index 9cdde9f2631f8a7078be709955de15a8d8418af1..4a89819e322433f0d32cec5190b6f4d491906ff6 100644 --- a/src/vs/base/browser/ui/tree/abstractTree.ts +++ b/src/vs/base/browser/ui/tree/abstractTree.ts @@ -11,7 +11,7 @@ import { append, $, toggleClass } from 'vs/base/browser/dom'; import { Event, Relay, chain, mapEvent } from 'vs/base/common/event'; import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent'; import { KeyCode } from 'vs/base/common/keyCodes'; -import { ITreeModel, ITreeNode, ITreeRenderer, ITreeModelOptions } from 'vs/base/browser/ui/tree/tree'; +import { ITreeModel, ITreeNode, ITreeRenderer, ITreeEvent, ITreeMouseEvent, ITreeContextMenuEvent, ITreeOptions } from 'vs/base/browser/ui/tree/tree'; import { ISpliceable } from 'vs/base/common/sequence'; export function createComposedTreeListOptions(options?: IListOptions): IListOptions | undefined { @@ -174,24 +174,6 @@ function isInputElement(e: HTMLElement): boolean { return e.tagName === 'INPUT' || e.tagName === 'TEXTAREA'; } -export interface ITreeOptions extends IListOptions, ITreeModelOptions { } - -export interface ITreeEvent { - elements: T[]; - browserEvent?: UIEvent; -} - -export interface ITreeMouseEvent { - browserEvent: MouseEvent; - element: T | null; -} - -export interface ITreeContextMenuEvent { - browserEvent: UIEvent; - element: T | null; - anchor: HTMLElement | { x: number; y: number; } | undefined; -} - function asTreeEvent(event: IListEvent>): ITreeEvent { return { elements: event.elements.map(node => node.element), diff --git a/src/vs/base/browser/ui/tree/asyncDataTree.ts b/src/vs/base/browser/ui/tree/asyncDataTree.ts index 5ffdc63bf7bbc7d909377caaa019af99efdd043d..9098a24e167b48998961c5b25e89437c382f0da4 100644 --- a/src/vs/base/browser/ui/tree/asyncDataTree.ts +++ b/src/vs/base/browser/ui/tree/asyncDataTree.ts @@ -3,10 +3,10 @@ * Licensed under the MIT License. See License.txt in the project root for license information. *--------------------------------------------------------------------------------------------*/ -import { ITreeOptions, ComposedTreeDelegate, createComposedTreeListOptions, ITreeEvent, ITreeContextMenuEvent, ITreeMouseEvent } from 'vs/base/browser/ui/tree/abstractTree'; +import { ComposedTreeDelegate, createComposedTreeListOptions } from 'vs/base/browser/ui/tree/abstractTree'; import { ObjectTree } from 'vs/base/browser/ui/tree/objectTree'; import { IListVirtualDelegate } from 'vs/base/browser/ui/list/list'; -import { ITreeElement, ITreeNode, ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; +import { ITreeElement, ITreeNode, ITreeRenderer, ITreeEvent, ITreeMouseEvent, ITreeContextMenuEvent, ITreeOptions } from 'vs/base/browser/ui/tree/tree'; import { IDisposable, dispose } from 'vs/base/common/lifecycle'; import { Emitter, Event, mapEvent } from 'vs/base/common/event'; import { timeout, always } from 'vs/base/common/async'; diff --git a/src/vs/base/browser/ui/tree/indexTree.ts b/src/vs/base/browser/ui/tree/indexTree.ts index 02e9b4492bbde38433e79235bdf493439324051f..42b4a030feff42dc5620d8898cf73ed74be17f8d 100644 --- a/src/vs/base/browser/ui/tree/indexTree.ts +++ b/src/vs/base/browser/ui/tree/indexTree.ts @@ -5,10 +5,10 @@ import 'vs/css!./media/tree'; import { Iterator, ISequence } from 'vs/base/common/iterator'; -import { AbstractTree, ITreeOptions } from 'vs/base/browser/ui/tree/abstractTree'; +import { AbstractTree } from 'vs/base/browser/ui/tree/abstractTree'; import { ISpliceable } from 'vs/base/common/sequence'; import { IndexTreeModel } from 'vs/base/browser/ui/tree/indexTreeModel'; -import { ITreeElement, ITreeModel, ITreeNode } from 'vs/base/browser/ui/tree/tree'; +import { ITreeElement, ITreeModel, ITreeNode, ITreeOptions } from 'vs/base/browser/ui/tree/tree'; export class IndexTree extends AbstractTree { diff --git a/src/vs/base/browser/ui/tree/indexTreeModel.ts b/src/vs/base/browser/ui/tree/indexTreeModel.ts index 57c8430c4d83f32d81a4bb9b12454dbcad9a9a9b..413ceae1bab0ed36cee9e7290213ee1ecd9fff5e 100644 --- a/src/vs/base/browser/ui/tree/indexTreeModel.ts +++ b/src/vs/base/browser/ui/tree/indexTreeModel.ts @@ -7,7 +7,7 @@ import { ISpliceable } from 'vs/base/common/sequence'; import { Iterator, ISequence } from 'vs/base/common/iterator'; import { Emitter, Event, EventBufferer } from 'vs/base/common/event'; import { tail2 } from 'vs/base/common/arrays'; -import { ITreeFilterDataResult, TreeVisibility, ITreeFilter, ITreeModel, ITreeNode, ITreeElement, ITreeModelOptions } from 'vs/base/browser/ui/tree/tree'; +import { ITreeFilterDataResult, TreeVisibility, ITreeFilter, ITreeModel, ITreeNode, ITreeElement } from 'vs/base/browser/ui/tree/tree'; interface IMutableTreeNode extends ITreeNode { readonly parent: IMutableTreeNode | undefined; @@ -38,6 +38,10 @@ function getVisibleState(visibility: boolean | TreeVisibility): TreeVisibility { } } +export interface IIndexTreeModelOptions { + filter?: ITreeFilter; +} + export class IndexTreeModel implements ITreeModel { private root: IMutableTreeNode = { @@ -62,7 +66,7 @@ export class IndexTreeModel implements ITreeModel; - constructor(private list: ISpliceable>, options: ITreeModelOptions = {}) { + constructor(private list: ISpliceable>, options: IIndexTreeModelOptions = {}) { this.filter = options.filter; } diff --git a/src/vs/base/browser/ui/tree/objectTree.ts b/src/vs/base/browser/ui/tree/objectTree.ts index 0a8d0c6142cc7900e948fb3ec7d4415aefea803e..b45f128893bb13d2e50e4aa1f4a7898611926f44 100644 --- a/src/vs/base/browser/ui/tree/objectTree.ts +++ b/src/vs/base/browser/ui/tree/objectTree.ts @@ -4,9 +4,9 @@ *--------------------------------------------------------------------------------------------*/ import { Iterator, ISequence } from 'vs/base/common/iterator'; -import { AbstractTree, ITreeOptions } from 'vs/base/browser/ui/tree/abstractTree'; +import { AbstractTree } from 'vs/base/browser/ui/tree/abstractTree'; import { ISpliceable } from 'vs/base/common/sequence'; -import { ITreeNode, ITreeModel, ITreeElement } from 'vs/base/browser/ui/tree/tree'; +import { ITreeNode, ITreeModel, ITreeElement, ITreeOptions } from 'vs/base/browser/ui/tree/tree'; import { ObjectTreeModel } from 'vs/base/browser/ui/tree/objectTreeModel'; export class ObjectTree, TFilterData = void> extends AbstractTree { diff --git a/src/vs/base/browser/ui/tree/objectTreeModel.ts b/src/vs/base/browser/ui/tree/objectTreeModel.ts index db1ecf451ce5041b7c322950d2804741f7bbf868..50130e3cfcfdde25e47f4bf92c30bffff6d8a6d4 100644 --- a/src/vs/base/browser/ui/tree/objectTreeModel.ts +++ b/src/vs/base/browser/ui/tree/objectTreeModel.ts @@ -5,9 +5,9 @@ import { ISpliceable } from 'vs/base/common/sequence'; import { Iterator, ISequence } from 'vs/base/common/iterator'; -import { IndexTreeModel } from 'vs/base/browser/ui/tree/indexTreeModel'; +import { IndexTreeModel, IIndexTreeModelOptions } from 'vs/base/browser/ui/tree/indexTreeModel'; import { Event } from 'vs/base/common/event'; -import { ITreeModel, ITreeNode, ITreeElement, ITreeModelOptions } from 'vs/base/browser/ui/tree/tree'; +import { ITreeModel, ITreeNode, ITreeElement } from 'vs/base/browser/ui/tree/tree'; export class ObjectTreeModel, TFilterData = void> implements ITreeModel { @@ -19,7 +19,7 @@ export class ObjectTreeModel, TFilterData = void> imp get size(): number { return this.nodes.size; } - constructor(list: ISpliceable>, options: ITreeModelOptions = {}) { + constructor(list: ISpliceable>, options: IIndexTreeModelOptions = {}) { this.model = new IndexTreeModel(list, options); this.onDidChangeCollapseState = this.model.onDidChangeCollapseState; this.onDidChangeRenderNodeCount = this.model.onDidChangeRenderNodeCount; diff --git a/src/vs/base/browser/ui/tree/tree.ts b/src/vs/base/browser/ui/tree/tree.ts index 4b4a50df0d9a33b0f8ba6d5c79857f9b68f0028d..c59dc69e299c267ac32fdb33be19041fa90bdd09 100644 --- a/src/vs/base/browser/ui/tree/tree.ts +++ b/src/vs/base/browser/ui/tree/tree.ts @@ -6,6 +6,7 @@ import { Event } from 'vs/base/common/event'; import { Iterator } from 'vs/base/common/iterator'; import { IListRenderer } from 'vs/base/browser/ui/list/list'; +import { IListOptions } from 'vs/base/browser/ui/list/listWidget'; export const enum TreeVisibility { @@ -111,6 +112,22 @@ export interface ITreeRenderer extends IListRende onDidChangeTwistieState?: Event; } -export interface ITreeModelOptions { +export interface ITreeOptions extends IListOptions { filter?: ITreeFilter; -} \ No newline at end of file +} + +export interface ITreeEvent { + elements: T[]; + browserEvent?: UIEvent; +} + +export interface ITreeMouseEvent { + browserEvent: MouseEvent; + element: T | null; +} + +export interface ITreeContextMenuEvent { + browserEvent: UIEvent; + element: T | null; + anchor: HTMLElement | { x: number; y: number; } | undefined; +} diff --git a/src/vs/platform/list/browser/listService.ts b/src/vs/platform/list/browser/listService.ts index 8fc73944ffe183ca83dbe113fe6e3416daeb8e56..c61bb809bbd5344f14fd24ee3981a0c27c59ca38 100644 --- a/src/vs/platform/list/browser/listService.ts +++ b/src/vs/platform/list/browser/listService.ts @@ -33,8 +33,7 @@ import { attachInputBoxStyler, attachListStyler, computeStyles, defaultListStyle import { IThemeService } from 'vs/platform/theme/common/themeService'; import { InputFocusedContextKey } from 'vs/platform/workbench/common/contextkeys'; import { ObjectTree } from 'vs/base/browser/ui/tree/objectTree'; -import { ITreeOptions as ITreeOptions2, ITreeEvent } from 'vs/base/browser/ui/tree/abstractTree'; -import { ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; +import { ITreeOptions as ITreeOptions2, ITreeEvent, ITreeRenderer } from 'vs/base/browser/ui/tree/tree'; import { AsyncDataTree, IDataSource } from 'vs/base/browser/ui/tree/asyncDataTree'; export type ListWidget = List | PagedList | ITree | ObjectTree | AsyncDataTree; diff --git a/src/vs/workbench/parts/markers/electron-browser/markersPanel.ts b/src/vs/workbench/parts/markers/electron-browser/markersPanel.ts index 2be484dbca8d535e04d833572abc0a25f494e228..6c950152f3dd2d243257ee67d3bd17c548c577bb 100644 --- a/src/vs/workbench/parts/markers/electron-browser/markersPanel.ts +++ b/src/vs/workbench/parts/markers/electron-browser/markersPanel.ts @@ -25,7 +25,7 @@ import { IStorageService, StorageScope } from 'vs/platform/storage/common/storag import { localize } from 'vs/nls'; import { IContextKey, IContextKeyService } from 'vs/platform/contextkey/common/contextkey'; import { Iterator } from 'vs/base/common/iterator'; -import { ITreeElement, ITreeNode } from 'vs/base/browser/ui/tree/tree'; +import { ITreeElement, ITreeNode, ITreeContextMenuEvent } from 'vs/base/browser/ui/tree/tree'; import { debounceEvent, Relay, Event, Emitter } from 'vs/base/common/event'; import { WorkbenchObjectTree, TreeResourceNavigator2 } from 'vs/platform/list/browser/listService'; import { FilterOptions } from 'vs/workbench/parts/markers/electron-browser/markersFilterOptions'; @@ -33,7 +33,6 @@ import { IExpression, getEmptyExpression } from 'vs/base/common/glob'; import { mixin, deepClone } from 'vs/base/common/objects'; import { IWorkspaceFolder, IWorkspaceContextService } from 'vs/platform/workspace/common/workspace'; import { isAbsolute, join } from 'vs/base/common/paths'; -import { ITreeContextMenuEvent } from 'vs/base/browser/ui/tree/abstractTree'; import { FilterData, FileResourceMarkersRenderer, Filter, VirtualDelegate, ResourceMarkersRenderer, MarkerRenderer, RelatedInformationRenderer, TreeElement, MarkersTreeAccessibilityProvider } from 'vs/workbench/parts/markers/electron-browser/markersTreeViewer'; import { IContextMenuService } from 'vs/platform/contextview/browser/contextView'; import { Separator, ActionItem } from 'vs/base/browser/ui/actionbar/actionbar';