From 64abf86ad7bf0ef30f76eb23a177e5620fbd08b0 Mon Sep 17 00:00:00 2001 From: Joao Moreno Date: Wed, 24 Feb 2016 11:02:07 +0100 Subject: [PATCH] EventDelayer -> EventBufferer --- src/vs/base/browser/ui/list/listWidget.ts | 16 ++++++++-------- src/vs/base/common/event.ts | 6 +++--- 2 files changed, 11 insertions(+), 11 deletions(-) diff --git a/src/vs/base/browser/ui/list/listWidget.ts b/src/vs/base/browser/ui/list/listWidget.ts index d7f0a3e2e5a..a85487020b0 100644 --- a/src/vs/base/browser/ui/list/listWidget.ts +++ b/src/vs/base/browser/ui/list/listWidget.ts @@ -7,7 +7,7 @@ import 'vs/css!./list'; import { IDisposable, dispose, disposeAll } from 'vs/base/common/lifecycle'; import { isNumber } from 'vs/base/common/types'; import * as DOM from 'vs/base/browser/dom'; -import Event, { Emitter, mapEvent, EventDelayer } from 'vs/base/common/event'; +import Event, { Emitter, mapEvent, EventBufferer } from 'vs/base/common/event'; import { IDelegate, IRenderer, IListMouseEvent, IFocusChangeEvent, ISelectionChangeEvent } from './list'; import { ListView } from './listView'; @@ -128,16 +128,16 @@ export class List implements IDisposable { private focus: Trait; private selection: Trait; - private eventDelayer: EventDelayer; + private eventBufferer: EventBufferer; private view: ListView; private controller: Controller; get onFocusChange(): Event> { - return this.eventDelayer.delay(mapEvent(this.focus.onChange, e => this.toListEvent(e))); + return this.eventBufferer.wrapEvent(mapEvent(this.focus.onChange, e => this.toListEvent(e))); } get onSelectionChange(): Event> { - return this.eventDelayer.delay(mapEvent(this.selection.onChange, e => this.toListEvent(e))); + return this.eventBufferer.wrapEvent(mapEvent(this.selection.onChange, e => this.toListEvent(e))); } constructor( @@ -147,7 +147,7 @@ export class List implements IDisposable { ) { this.focus = new Trait('focused'); this.selection = new Trait('selected'); - this.eventDelayer = new EventDelayer(); + this.eventBufferer = new EventBufferer(); renderers = renderers.map(r => { r = this.focus.wrapRenderer(r); @@ -160,7 +160,7 @@ export class List implements IDisposable { } splice(start: number, deleteCount: number, ...elements: T[]): void { - this.eventDelayer.wrap(() => { + this.eventBufferer.bufferEvents(() => { this.focus.splice(start, deleteCount, elements.length); this.selection.splice(start, deleteCount, elements.length); this.view.splice(start, deleteCount, ...elements); @@ -180,7 +180,7 @@ export class List implements IDisposable { } setSelection(...indexes: number[]): void { - this.eventDelayer.wrap(() => { + this.eventBufferer.bufferEvents(() => { indexes = indexes.concat(this.selection.set(...indexes)); indexes.forEach(i => this.view.splice(i, 1, this.view.element(i))); }); @@ -204,7 +204,7 @@ export class List implements IDisposable { } setFocus(...indexes: number[]): void { - this.eventDelayer.wrap(() => { + this.eventBufferer.bufferEvents(() => { indexes = indexes.concat(this.focus.set(...indexes)); indexes.forEach(i => this.view.splice(i, 1, this.view.element(i))); }); diff --git a/src/vs/base/common/event.ts b/src/vs/base/common/event.ts index fcd57c72662..1fd2fa583bc 100644 --- a/src/vs/base/common/event.ts +++ b/src/vs/base/common/event.ts @@ -181,12 +181,12 @@ enum EventDelayerState { * // event will only be fired at this point * ``` */ -export class EventDelayer { +export class EventBufferer { private state = EventDelayerState.Idle; private buffer: Function[] = []; - delay(event: Event): Event { + wrapEvent(event: Event): Event { return (listener, thisArgs?, disposables?) => { return event(i => { if (this.state === EventDelayerState.Idle) { @@ -198,7 +198,7 @@ export class EventDelayer { }; } - wrap(fn: () => void): void { + bufferEvents(fn: () => void): void { this.state = EventDelayerState.Running; fn(); this.buffer.forEach(flush => flush());