mirror of
https://github.com/Microsoft/vscode
synced 2024-09-19 18:48:00 +00:00
remove event emitter from button
This commit is contained in:
parent
8f812cd9b2
commit
7f673ae5fd
|
@ -6,13 +6,13 @@
|
|||
'use strict';
|
||||
|
||||
import 'vs/css!./button';
|
||||
import { EventEmitter } from 'vs/base/common/eventEmitter';
|
||||
import DOM = require('vs/base/browser/dom');
|
||||
import { Builder, $ } from 'vs/base/browser/builder';
|
||||
import { StandardKeyboardEvent } from 'vs/base/browser/keyboardEvent';
|
||||
import { KeyCode } from 'vs/base/common/keyCodes';
|
||||
import { Color } from 'vs/base/common/color';
|
||||
import { mixin } from 'vs/base/common/objects';
|
||||
import Event, { Emitter } from 'vs/base/common/event';
|
||||
|
||||
export interface IButtonOptions extends IButtonStyles {
|
||||
}
|
||||
|
@ -30,7 +30,7 @@ const defaultOptions: IButtonStyles = {
|
|||
buttonForeground: Color.white
|
||||
};
|
||||
|
||||
export class Button extends EventEmitter {
|
||||
export class Button {
|
||||
|
||||
private $el: Builder;
|
||||
private options: IButtonOptions;
|
||||
|
@ -40,11 +40,12 @@ export class Button extends EventEmitter {
|
|||
private buttonForeground: Color;
|
||||
private buttonBorder: Color;
|
||||
|
||||
private _onDidClick = new Emitter<any>();
|
||||
readonly onDidClick: Event<any> = this._onDidClick.event;
|
||||
|
||||
constructor(container: Builder, options?: IButtonOptions);
|
||||
constructor(container: HTMLElement, options?: IButtonOptions);
|
||||
constructor(container: any, options?: IButtonOptions) {
|
||||
super();
|
||||
|
||||
this.options = options || Object.create(null);
|
||||
mixin(this.options, defaultOptions, false);
|
||||
|
||||
|
@ -64,14 +65,14 @@ export class Button extends EventEmitter {
|
|||
return;
|
||||
}
|
||||
|
||||
this.emit(DOM.EventType.CLICK, e);
|
||||
this._onDidClick.fire(e);
|
||||
});
|
||||
|
||||
this.$el.on(DOM.EventType.KEY_DOWN, (e) => {
|
||||
let event = new StandardKeyboardEvent(e as KeyboardEvent);
|
||||
let eventHandled = false;
|
||||
if (this.enabled && event.equals(KeyCode.Enter) || event.equals(KeyCode.Space)) {
|
||||
this.emit(DOM.EventType.CLICK, e);
|
||||
this._onDidClick.fire(e);
|
||||
eventHandled = true;
|
||||
} else if (event.equals(KeyCode.Escape)) {
|
||||
this.$el.domBlur();
|
||||
|
@ -165,7 +166,5 @@ export class Button extends EventEmitter {
|
|||
this.$el.dispose();
|
||||
this.$el = null;
|
||||
}
|
||||
|
||||
super.dispose();
|
||||
}
|
||||
}
|
|
@ -56,7 +56,9 @@ export class EmptyView extends ViewsViewletPanel {
|
|||
|
||||
this.button = new Button(section);
|
||||
attachButtonStyler(this.button, this.themeService);
|
||||
this.button.addListener('click', () => {
|
||||
|
||||
// TODO@isidor: need to dispose this listener
|
||||
this.button.onDidClick(() => {
|
||||
const actionClass = this.contextService.getWorkbenchState() === WorkbenchState.WORKSPACE ? AddRootFolderAction : env.isMacintosh ? OpenFileFolderAction : OpenFolderAction;
|
||||
const action = this.instantiationService.createInstance<string, string, IAction>(actionClass, actionClass.ID, actionClass.LABEL);
|
||||
this.actionRunner.run(action).done(() => {
|
||||
|
|
|
@ -213,7 +213,8 @@ export class SearchWidget extends Widget {
|
|||
buttonHoverBackground: SIDE_BAR_BACKGROUND
|
||||
});
|
||||
this.toggleReplaceButton.icon = 'toggle-replace-button collapse';
|
||||
this.toggleReplaceButton.addListener('click', () => this.onToggleReplaceButton());
|
||||
// TODO@joh need to dispose this listener eventually
|
||||
this.toggleReplaceButton.onDidClick(() => this.onToggleReplaceButton());
|
||||
this.toggleReplaceButton.getElement().title = nls.localize('search.replace.toggle.button.title', "Toggle Replace");
|
||||
}
|
||||
|
||||
|
|
Loading…
Reference in a new issue