Skip to content

Commit 7f673ae

Browse files
committed
remove event emitter from button
1 parent 8f812cd commit 7f673ae

3 files changed

Lines changed: 12 additions & 10 deletions

File tree

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

Lines changed: 7 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -6,13 +6,13 @@
66
'use strict';
77

88
import 'vs/css!./button';
9-
import { EventEmitter } from 'vs/base/common/eventEmitter';
109
import DOM = require('vs/base/browser/dom');
1110
import { Builder, $ } from 'vs/base/browser/builder';
1211
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
1312
import { KeyCode } from 'vs/base/common/keyCodes';
1413
import { Color } from 'vs/base/common/color';
1514
import { mixin } from 'vs/base/common/objects';
15+
import Event, { Emitter } from 'vs/base/common/event';
1616

1717
export interface IButtonOptions extends IButtonStyles {
1818
}
@@ -30,7 +30,7 @@ const defaultOptions: IButtonStyles = {
3030
buttonForeground: Color.white
3131
};
3232

33-
export class Button extends EventEmitter {
33+
export class Button {
3434

3535
private $el: Builder;
3636
private options: IButtonOptions;
@@ -40,11 +40,12 @@ export class Button extends EventEmitter {
4040
private buttonForeground: Color;
4141
private buttonBorder: Color;
4242

43+
private _onDidClick = new Emitter<any>();
44+
readonly onDidClick: Event<any> = this._onDidClick.event;
45+
4346
constructor(container: Builder, options?: IButtonOptions);
4447
constructor(container: HTMLElement, options?: IButtonOptions);
4548
constructor(container: any, options?: IButtonOptions) {
46-
super();
47-
4849
this.options = options || Object.create(null);
4950
mixin(this.options, defaultOptions, false);
5051

@@ -64,14 +65,14 @@ export class Button extends EventEmitter {
6465
return;
6566
}
6667

67-
this.emit(DOM.EventType.CLICK, e);
68+
this._onDidClick.fire(e);
6869
});
6970

7071
this.$el.on(DOM.EventType.KEY_DOWN, (e) => {
7172
let event = new StandardKeyboardEvent(e as KeyboardEvent);
7273
let eventHandled = false;
7374
if (this.enabled && event.equals(KeyCode.Enter) || event.equals(KeyCode.Space)) {
74-
this.emit(DOM.EventType.CLICK, e);
75+
this._onDidClick.fire(e);
7576
eventHandled = true;
7677
} else if (event.equals(KeyCode.Escape)) {
7778
this.$el.domBlur();
@@ -165,7 +166,5 @@ export class Button extends EventEmitter {
165166
this.$el.dispose();
166167
this.$el = null;
167168
}
168-
169-
super.dispose();
170169
}
171170
}

src/vs/workbench/parts/files/browser/views/emptyView.ts

Lines changed: 3 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -56,7 +56,9 @@ export class EmptyView extends ViewsViewletPanel {
5656

5757
this.button = new Button(section);
5858
attachButtonStyler(this.button, this.themeService);
59-
this.button.addListener('click', () => {
59+
60+
// TODO@isidor: need to dispose this listener
61+
this.button.onDidClick(() => {
6062
const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : env.isMacintosh ? OpenFileFolderAction : OpenFolderAction;
6163
const action = this.instantiationService.createInstance<string, string, IAction>(actionClass, actionClass.ID, actionClass.LABEL);
6264
this.actionRunner.run(action).done(() => {

src/vs/workbench/parts/search/browser/searchWidget.ts

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -213,7 +213,8 @@ export class SearchWidget extends Widget {
213213
buttonHoverBackground: SIDE_BAR_BACKGROUND
214214
});
215215
this.toggleReplaceButton.icon = 'toggle-replace-button collapse';
216-
this.toggleReplaceButton.addListener('click', () => this.onToggleReplaceButton());
216+
// TODO@joh need to dispose this listener eventually
217+
this.toggleReplaceButton.onDidClick(() => this.onToggleReplaceButton());
217218
this.toggleReplaceButton.getElement().title = nls.localize('search.replace.toggle.button.title', "Toggle Replace");
218219
}
219220

0 commit comments

Comments
 (0)