Skip to content

Commit c63203b

Browse files
committed
Adopt IEventEmitter.addListener2
1 parent b9b39fd commit c63203b

74 files changed

Lines changed: 404 additions & 555 deletions

File tree

Some content is hidden

Large Commits have some content hidden by default. Use the searchbox below for content that may be hidden.

src/vs/base/browser/ui/actionbar/actionbar.ts

Lines changed: 5 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -33,7 +33,7 @@ export interface IActionItem extends IEventEmitter {
3333
export class BaseActionItem extends EventEmitter implements IActionItem {
3434

3535
public builder: Builder;
36-
public _callOnDispose: Function[];
36+
public _callOnDispose: lifecycle.IDisposable[];
3737
public _context: any;
3838
public _action: IAction;
3939

@@ -48,7 +48,7 @@ export class BaseActionItem extends EventEmitter implements IActionItem {
4848
this._action = action;
4949

5050
if (action instanceof Action) {
51-
let l = (<Action>action).addBulkListener((events: IEmitterEvent[]) => {
51+
let l = (<Action>action).addBulkListener2((events: IEmitterEvent[]) => {
5252

5353
if (!this.builder) {
5454
// we have not been rendered yet, so there
@@ -187,7 +187,7 @@ export class BaseActionItem extends EventEmitter implements IActionItem {
187187
this.gesture = null;
188188
}
189189

190-
lifecycle.cAll(this._callOnDispose);
190+
this._callOnDispose = lifecycle.dispose(this._callOnDispose);
191191
}
192192
}
193193

@@ -333,13 +333,13 @@ export class ProgressItem extends BaseActionItem {
333333
error.textContent = '!';
334334
$(error).addClass('tag', 'error');
335335

336-
this.callOnDispose.push(this.addListener(CommonEventType.BEFORE_RUN, () => {
336+
this.callOnDispose.push(this.addListener2(CommonEventType.BEFORE_RUN, () => {
337337
$(progress).addClass('active');
338338
$(done).removeClass('active');
339339
$(error).removeClass('active');
340340
}));
341341

342-
this.callOnDispose.push(this.addListener(CommonEventType.RUN, (result) => {
342+
this.callOnDispose.push(this.addListener2(CommonEventType.RUN, (result) => {
343343
$(progress).removeClass('active');
344344
if (result.error) {
345345
$(done).removeClass('active');
@@ -358,7 +358,6 @@ export class ProgressItem extends BaseActionItem {
358358
}
359359

360360
public dispose(): void {
361-
lifecycle.cAll(this.callOnDispose);
362361
super.dispose();
363362
}
364363
}

src/vs/base/common/actions.ts

Lines changed: 1 addition & 69 deletions
Original file line numberDiff line numberDiff line change
@@ -5,7 +5,7 @@
55
'use strict';
66

77
import {TPromise} from 'vs/base/common/winjs.base';
8-
import { IEventEmitter, EventEmitter, ListenerCallback, IBulkListenerCallback, ListenerUnbind } from 'vs/base/common/eventEmitter';
8+
import { IEventEmitter, EventEmitter } from 'vs/base/common/eventEmitter';
99
import {IDisposable} from 'vs/base/common/lifecycle';
1010
import * as Events from 'vs/base/common/events';
1111

@@ -199,74 +199,6 @@ export class Action extends EventEmitter implements IAction {
199199
}
200200
}
201201

202-
class ProxyAction extends Action implements IEventEmitter {
203-
204-
constructor(private delegate: Action, private runHandler: (e: any) => void) {
205-
super(delegate.id, delegate.label, delegate.class, delegate.enabled, null);
206-
}
207-
208-
public get id(): string {
209-
return this.delegate.id;
210-
}
211-
212-
public get label(): string {
213-
return this.delegate.label;
214-
}
215-
216-
public set label(value: string) {
217-
this.delegate.label = value;
218-
}
219-
220-
public get class(): string {
221-
return this.delegate.class;
222-
}
223-
224-
public set class(value: string) {
225-
this.delegate.class = value;
226-
}
227-
228-
public get enabled(): boolean {
229-
return this.delegate.enabled;
230-
}
231-
232-
public set enabled(value: boolean) {
233-
this.delegate.enabled = value;
234-
}
235-
236-
public get checked(): boolean {
237-
return this.delegate.checked;
238-
}
239-
240-
public set checked(value: boolean) {
241-
this.delegate.checked = value;
242-
}
243-
244-
public run(event?: any): TPromise<any> {
245-
this.runHandler(event);
246-
return this.delegate.run(event);
247-
}
248-
249-
public addListener(eventType: string, listener: ListenerCallback): ListenerUnbind {
250-
return this.delegate.addListener(eventType, listener);
251-
}
252-
253-
public addBulkListener(listener: IBulkListenerCallback): ListenerUnbind {
254-
return this.delegate.addBulkListener(listener);
255-
}
256-
257-
public addEmitter(eventEmitter: IEventEmitter, emitterType?: string): ListenerUnbind {
258-
return this.delegate.addEmitter(eventEmitter, emitterType);
259-
}
260-
261-
public addEmitterTypeListener(eventType: string, emitterType: string, listener: ListenerCallback): ListenerUnbind {
262-
return this.delegate.addEmitterTypeListener(eventType, emitterType, listener);
263-
}
264-
265-
public emit(eventType: string, data?: any): void {
266-
this.delegate.emit(eventType, data);
267-
}
268-
}
269-
270202
export interface IRunEvent {
271203
action: IAction;
272204
result?: any;

src/vs/base/common/eventEmitter.ts

Lines changed: 1 addition & 15 deletions
Original file line numberDiff line numberDiff line change
@@ -50,7 +50,6 @@ export interface ListenerUnbind {
5050
}
5151

5252
export interface IEventEmitter extends IDisposable {
53-
addListener(eventType:string, listener:ListenerCallback):ListenerUnbind;
5453
addListener2(eventType:string, listener:ListenerCallback):IDisposable;
5554
addOneTimeListener(eventType:string, listener:ListenerCallback):ListenerUnbind;
5655

@@ -60,7 +59,6 @@ export interface IEventEmitter extends IDisposable {
6059
addEmitter(eventEmitter:IEventEmitter, emitterType?:string):ListenerUnbind;
6160
addEmitter2(eventEmitter:IEventEmitter, emitterType?:string):IDisposable;
6261

63-
addEmitterTypeListener(eventType:string, emitterType:string, listener:ListenerCallback):ListenerUnbind;
6462
emit(eventType:string, data?:any):void;
6563
}
6664

@@ -99,7 +97,7 @@ export class EventEmitter implements IEventEmitter {
9997
this._allowedEventTypes = null;
10098
}
10199

102-
public addListener(eventType:string, listener:ListenerCallback):ListenerUnbind {
100+
private addListener(eventType:string, listener:ListenerCallback):ListenerUnbind {
103101
if (eventType === '*') {
104102
throw new Error('Use addBulkListener(listener) to register your listener!');
105103
}
@@ -199,18 +197,6 @@ export class EventEmitter implements IEventEmitter {
199197
};
200198
}
201199

202-
public addEmitterTypeListener(eventType:string, emitterType:string, listener:ListenerCallback):ListenerUnbind {
203-
if (emitterType) {
204-
if (eventType === '*') {
205-
throw new Error('Bulk listeners cannot specify an emitter type');
206-
}
207-
208-
return this.addListener(eventType + '/' + emitterType, listener);
209-
} else {
210-
return this.addListener(eventType, listener);
211-
}
212-
}
213-
214200
private _removeListener(eventType:string, listener:ListenerCallback): void {
215201
if (this._listeners.hasOwnProperty(eventType)) {
216202
var listeners = this._listeners[eventType];

src/vs/base/parts/quickopen/browser/quickOpenWidget.ts

Lines changed: 4 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -80,7 +80,7 @@ export class QuickOpenWidget implements IModelProvider {
8080
private visible: boolean;
8181
private isLoosingFocus: boolean;
8282
private callbacks: IQuickOpenCallbacks;
83-
private toUnbind: { (): void; }[];
83+
private toUnbind: IDisposable[];
8484
private currentInputToken: string;
8585
private quickNavigateConfiguration: IQuickNavigateConfiguration;
8686
private container: HTMLElement;
@@ -198,11 +198,11 @@ export class QuickOpenWidget implements IModelProvider {
198198
this.treeElement = this.tree.getHTMLElement();
199199

200200
// Handle Focus and Selection event
201-
this.toUnbind.push(this.tree.addListener(EventType.FOCUS, (event: IFocusEvent) => {
201+
this.toUnbind.push(this.tree.addListener2(EventType.FOCUS, (event: IFocusEvent) => {
202202
this.elementFocused(event.focus, event);
203203
}));
204204

205-
this.toUnbind.push(this.tree.addListener(EventType.SELECTION, (event: ISelectionEvent) => {
205+
this.toUnbind.push(this.tree.addListener2(EventType.SELECTION, (event: ISelectionEvent) => {
206206
if (event.selection && event.selection.length > 0) {
207207
this.elementSelected(event.selection[0], event);
208208
}
@@ -835,9 +835,7 @@ export class QuickOpenWidget implements IModelProvider {
835835
}
836836

837837
public dispose(): void {
838-
while (this.toUnbind.length) {
839-
this.toUnbind.pop()();
840-
}
838+
this.toUnbind = dispose(this.toUnbind);
841839

842840
this.progressBar.dispose();
843841
this.inputBox.dispose();

src/vs/base/parts/tree/test/browser/treeModel.test.ts

Lines changed: 16 additions & 16 deletions
Original file line numberDiff line numberDiff line change
@@ -1302,23 +1302,23 @@ suite('TreeModel - Dynamic data model', () => {
13021302
model.collapse('father');
13031303

13041304
var times = 0;
1305-
var listener = dataModel.addListener('getChildren', (element) => {
1305+
var listener = dataModel.addListener2('getChildren', (element) => {
13061306
times++;
13071307
assert.equal(element, 'grandfather');
13081308
});
13091309

13101310
model.refresh('grandfather').done(() => {
13111311
assert.equal(times, 1);
1312-
listener();
1312+
listener.dispose();
13131313

1314-
listener = dataModel.addListener('getChildren', (element) => {
1314+
listener = dataModel.addListener2('getChildren', (element) => {
13151315
times++;
13161316
assert.equal(element, 'father');
13171317
});
13181318

13191319
model.expand('father').done(() => {
13201320
assert.equal(times, 2);
1321-
listener();
1321+
listener.dispose();
13221322
done();
13231323
});
13241324
});
@@ -1351,8 +1351,8 @@ suite('TreeModel - Dynamic data model', () => {
13511351

13521352
var getTimes = 0;
13531353
var gotTimes = 0;
1354-
var getListener = dataModel.addListener('getChildren', (element) => { getTimes++; });
1355-
var gotListener = dataModel.addListener('gotChildren', (element) => { gotTimes++; });
1354+
var getListener = dataModel.addListener2('getChildren', (element) => { getTimes++; });
1355+
var gotListener = dataModel.addListener2('gotChildren', (element) => { gotTimes++; });
13561356

13571357
var p1 = model.refresh('father');
13581358
assert.equal(getTimes, 1);
@@ -1373,8 +1373,8 @@ suite('TreeModel - Dynamic data model', () => {
13731373
assert.equal(nav.next().id, 'sister');
13741374
assert.equal(nav.next() && false, null);
13751375

1376-
getListener();
1377-
gotListener();
1376+
getListener.dispose();
1377+
gotListener.dispose();
13781378
done();
13791379
});
13801380
});
@@ -1399,10 +1399,10 @@ suite('TreeModel - Dynamic data model', () => {
13991399
counter.listen(model, 'item:refresh', (e) => { refreshTimes++; });
14001400

14011401
var getTimes = 0;
1402-
var getListener = dataModel.addListener('getChildren', (element) => { getTimes++; });
1402+
var getListener = dataModel.addListener2('getChildren', (element) => { getTimes++; });
14031403

14041404
var gotTimes = 0;
1405-
var gotListener = dataModel.addListener('gotChildren', (element) => { gotTimes++; });
1405+
var gotListener = dataModel.addListener2('gotChildren', (element) => { gotTimes++; });
14061406

14071407
var p1, p2;
14081408

@@ -1455,8 +1455,8 @@ suite('TreeModel - Dynamic data model', () => {
14551455
assert.equal(nav.next().id, 'son');
14561456
assert.equal(nav.next() && false, null);
14571457

1458-
getListener();
1459-
gotListener();
1458+
getListener.dispose();
1459+
gotListener.dispose();
14601460
done();
14611461
});
14621462
});
@@ -1479,8 +1479,8 @@ suite('TreeModel - Dynamic data model', () => {
14791479

14801480
var getTimes = 0;
14811481
var gotTimes = 0;
1482-
var getListener = dataModel.addListener('getChildren', (element) => { getTimes++; });
1483-
var gotListener = dataModel.addListener('gotChildren', (element) => { gotTimes++; });
1482+
var getListener = dataModel.addListener2('getChildren', (element) => { getTimes++; });
1483+
var gotListener = dataModel.addListener2('gotChildren', (element) => { gotTimes++; });
14841484

14851485
var p1, p2;
14861486

@@ -1521,8 +1521,8 @@ suite('TreeModel - Dynamic data model', () => {
15211521
assert.equal(nav.next().id, 'son');
15221522
assert.equal(nav.next() && false, null);
15231523

1524-
getListener();
1525-
gotListener();
1524+
getListener.dispose();
1525+
gotListener.dispose();
15261526
done();
15271527
});
15281528
});

0 commit comments

Comments
 (0)