Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Adopt new tree in Problems panel #59976

Merged
merged 37 commits into from
Oct 12, 2018
Merged
Show file tree
Hide file tree
Changes from all commits
Commits
Show all changes
37 commits
Select commit Hold shift + click to select a range
573574c
markers: move fixes gathering outside the model
joaomoreno Oct 4, 2018
18c2ed8
markers: wip remove filtering from model
joaomoreno Oct 4, 2018
70ee13e
markers: wip reduce marker model
joaomoreno Oct 4, 2018
7843e40
:lipstick:
joaomoreno Oct 8, 2018
2570a18
wip: problems tree
joaomoreno Oct 8, 2018
fd4091b
problems: first render success!
joaomoreno Oct 8, 2018
9cb4d4b
problems: proper rendering
joaomoreno Oct 8, 2018
b4681da
wip: WorkbenchObjectTree
joaomoreno Oct 8, 2018
07b01bf
adopt WorkbenchObjectTree in markers panel
joaomoreno Oct 8, 2018
d8b7926
fix list.focusFirst
joaomoreno Oct 8, 2018
7d6c474
Merge branch 'master' into joao/markers-tree
joaomoreno Oct 9, 2018
ed604d1
hook in filter to problems tree
joaomoreno Oct 9, 2018
43f42a4
markers: fix styles
joaomoreno Oct 9, 2018
e9809b3
fix markers filter
joaomoreno Oct 9, 2018
0da6073
markers: filter with highlights
joaomoreno Oct 9, 2018
b2bee0c
:lipstick:
joaomoreno Oct 9, 2018
f477b54
remove todo
joaomoreno Oct 9, 2018
d4faab6
add ITreeNode.visible
joaomoreno Oct 9, 2018
5f69bcb
revealedCount -> renderNodeCount
joaomoreno Oct 9, 2018
e6d219a
markers tree: filter count
joaomoreno Oct 9, 2018
3a88cef
remove unused code
joaomoreno Oct 10, 2018
3aba976
remove IListOpenEvent
joaomoreno Oct 11, 2018
52bb5ae
cleanup
joaomoreno Oct 11, 2018
afe1324
expose browser event in list widget events
joaomoreno Oct 11, 2018
4728d11
markers panel: finally mouse and keyboard navigation
joaomoreno Oct 11, 2018
b885360
markers panel: bring back context keys
joaomoreno Oct 11, 2018
9b1013a
markers context menus
joaomoreno Oct 11, 2018
90cedfc
markers panel: collapse all
joaomoreno Oct 11, 2018
f593797
markers: cleanup
joaomoreno Oct 11, 2018
87e290d
markers cleanup
joaomoreno Oct 11, 2018
99f78e8
markers: filter stats
joaomoreno Oct 11, 2018
20ce983
markers: messages
joaomoreno Oct 11, 2018
b368ea7
list: renames
joaomoreno Oct 12, 2018
4c781f0
markers: tree element
joaomoreno Oct 12, 2018
19f030b
markers panel should focus input when typing
joaomoreno Oct 12, 2018
9ef5f08
remember to clear cache
joaomoreno Oct 12, 2018
ee0a369
Merge remote-tracking branch 'origin/master' into joao/markers-tree
joaomoreno Oct 12, 2018
File filter

Filter by extension

Filter by extension

Conversations
Failed to load comments.
Loading
Jump to
Jump to file
Failed to load files.
Loading
Diff view
Diff view
17 changes: 6 additions & 11 deletions src/vs/base/browser/ui/list/list.ts
Original file line number Diff line number Diff line change
Expand Up @@ -5,29 +5,23 @@

import { GestureEvent } from 'vs/base/browser/touch';

export interface IVirtualDelegate<T> {
export interface IListVirtualDelegate<T> {
getHeight(element: T): number;
getTemplateId(element: T): string;
}

// TODO@joao rename to IListRenderer
export interface IRenderer<TElement, TTemplateData> {
export interface IListRenderer<T, TTemplateData> {
templateId: string;
renderTemplate(container: HTMLElement): TTemplateData;
renderElement(element: TElement, index: number, templateData: TTemplateData): void;
disposeElement(element: TElement, index: number, templateData: TTemplateData): void;
renderElement(element: T, index: number, templateData: TTemplateData): void;
disposeElement(element: T, index: number, templateData: TTemplateData): void;
disposeTemplate(templateData: TTemplateData): void;
}

export interface IListOpenEvent<T> {
elements: T[];
indexes: number[];
browserEvent?: UIEvent;
}

export interface IListEvent<T> {
elements: T[];
indexes: number[];
browserEvent?: UIEvent;
}

export interface IListMouseEvent<T> {
Expand All @@ -49,6 +43,7 @@ export interface IListGestureEvent<T> {
}

export interface IListContextMenuEvent<T> {
browserEvent: UIEvent;
element: T;
index: number;
anchor: HTMLElement | { x: number; y: number; };
Expand Down
20 changes: 6 additions & 14 deletions src/vs/base/browser/ui/list/listPaging.ts
Original file line number Diff line number Diff line change
Expand Up @@ -6,13 +6,13 @@
import 'vs/css!./list';
import { IDisposable } from 'vs/base/common/lifecycle';
import { range } from 'vs/base/common/arrays';
import { IVirtualDelegate, IRenderer, IListEvent, IListOpenEvent, IListContextMenuEvent } from './list';
import { IListVirtualDelegate, IListRenderer, IListEvent, IListContextMenuEvent } from './list';
import { List, IListStyles, IListOptions } from './listWidget';
import { IPagedModel } from 'vs/base/common/paging';
import { Event, mapEvent } from 'vs/base/common/event';
import { CancellationTokenSource } from 'vs/base/common/cancellation';

export interface IPagedRenderer<TElement, TTemplateData> extends IRenderer<TElement, TTemplateData> {
export interface IPagedRenderer<TElement, TTemplateData> extends IListRenderer<TElement, TTemplateData> {
renderPlaceholder(index: number, templateData: TTemplateData): void;
}

Expand All @@ -21,7 +21,7 @@ export interface ITemplateData<T> {
disposable: IDisposable;
}

class PagedRenderer<TElement, TTemplateData> implements IRenderer<number, ITemplateData<TTemplateData>> {
class PagedRenderer<TElement, TTemplateData> implements IListRenderer<number, ITemplateData<TTemplateData>> {

get templateId(): string { return this.renderer.templateId; }

Expand Down Expand Up @@ -71,7 +71,7 @@ export class PagedList<T> implements IDisposable {

constructor(
container: HTMLElement,
virtualDelegate: IVirtualDelegate<number>,
virtualDelegate: IListVirtualDelegate<number>,
renderers: IPagedRenderer<T, any>[],
options: IListOptions<any> = {}
) {
Expand Down Expand Up @@ -111,7 +111,7 @@ export class PagedList<T> implements IDisposable {
return mapEvent(this.list.onFocusChange, ({ elements, indexes }) => ({ elements: elements.map(e => this._model.get(e)), indexes }));
}

get onOpen(): Event<IListOpenEvent<T>> {
get onOpen(): Event<IListEvent<T>> {
return mapEvent(this.list.onOpen, ({ elements, indexes, browserEvent }) => ({ elements: elements.map(e => this._model.get(e)), indexes, browserEvent }));
}

Expand All @@ -124,7 +124,7 @@ export class PagedList<T> implements IDisposable {
}

get onContextMenu(): Event<IListContextMenuEvent<T>> {
return mapEvent(this.list.onContextMenu, ({ element, index, anchor }) => ({ element: this._model.get(element), index, anchor }));
return mapEvent(this.list.onContextMenu, ({ element, index, anchor, browserEvent }) => ({ element: this._model.get(element), index, anchor, browserEvent }));
}

get model(): IPagedModel<T> {
Expand Down Expand Up @@ -164,14 +164,6 @@ export class PagedList<T> implements IDisposable {
this.list.focusPrevious(n, loop);
}

selectNext(n?: number, loop?: boolean): void {
this.list.selectNext(n, loop);
}

selectPrevious(n?: number, loop?: boolean): void {
this.list.selectPrevious(n, loop);
}

focusNextPage(): void {
this.list.focusNextPage();
}
Expand Down
8 changes: 4 additions & 4 deletions src/vs/base/browser/ui/list/listView.ts
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@ import { domEvent } from 'vs/base/browser/event';
import { ScrollableElement } from 'vs/base/browser/ui/scrollbar/scrollableElement';
import { ScrollEvent, ScrollbarVisibility } from 'vs/base/common/scrollable';
import { RangeMap, shift } from './rangeMap';
import { IVirtualDelegate, IRenderer, IListMouseEvent, IListTouchEvent, IListGestureEvent } from './list';
import { IListVirtualDelegate, IListRenderer, IListMouseEvent, IListTouchEvent, IListGestureEvent } from './list';
import { RowCache, IRow } from './rowCache';
import { isWindows } from 'vs/base/common/platform';
import * as browser from 'vs/base/browser/browser';
Expand Down Expand Up @@ -60,7 +60,7 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {
private itemId: number;
private rangeMap: RangeMap;
private cache: RowCache<T>;
private renderers = new Map<string, IRenderer<T, any>>();
private renderers = new Map<string, IListRenderer<T, any>>();
private lastRenderTop: number;
private lastRenderHeight: number;
private _domNode: HTMLElement;
Expand All @@ -78,8 +78,8 @@ export class ListView<T> implements ISpliceable<T>, IDisposable {

constructor(
container: HTMLElement,
private virtualDelegate: IVirtualDelegate<T>,
renderers: IRenderer<T, any>[],
private virtualDelegate: IListVirtualDelegate<T>,
renderers: IListRenderer<T, any>[],
options: IListViewOptions = DefaultOptions
) {
this.items = [];
Expand Down
Loading