From 04bd1cb2550ed9890b834af29a3514964903ade9 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 28 Nov 2018 16:03:41 +0100 Subject: [PATCH] tree: :lipstick: move types around --- src/vs/base/browser/ui/tree/abstractTree.ts | 20 +----------------- src/vs/base/browser/ui/tree/asyncDataTree.ts | 4 ++-- src/vs/base/browser/ui/tree/indexTree.ts | 4 ++-- src/vs/base/browser/ui/tree/indexTreeModel.ts | 8 +++++-- src/vs/base/browser/ui/tree/objectTree.ts | 4 ++-- .../base/browser/ui/tree/objectTreeModel.ts | 6 +++--- src/vs/base/browser/ui/tree/tree.ts | 21 +++++++++++++++++-- src/vs/platform/list/browser/listService.ts | 3 +-- .../markers/electron-browser/markersPanel.ts | 3 +-- 9 files changed, 37 insertions(+), 36 deletions(-) diff --git a/src/vs/base/browser/ui/tree/abstractTree.ts b/src/vs/base/browser/ui/tree/abstractTree.ts index 9cdde9f2631..4a89819e322 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 5ffdc63bf7b..9098a24e167 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 02e9b4492bb..42b4a030fef 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 57c8430c4d8..413ceae1bab 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 0a8d0c6142c..b45f128893b 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 db1ecf451ce..50130e3cfcf 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 4b4a50df0d9..c59dc69e299 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 8fc73944ffe..c61bb809bbd 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 2be484dbca8..6c950152f3d 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'; -- GitLab