fix issue 7489 and disposable handling (#7491)

This commit is contained in:
Alan Ren
2019-10-03 12:20:54 -07:00
committed by GitHub
parent cf1a09aeaf
commit d2e4e94aec
5 changed files with 19 additions and 11 deletions

View File

@@ -12,7 +12,8 @@ export abstract class DialogBase {
constructor(dialogTitle: string, dialogName: string, isWide: boolean = false) {
this._dialogObject = azdata.window.createModelViewDialog(dialogTitle, dialogName, isWide);
this._dialogObject.cancelButton.onClick(() => this.onCancel());
this._toDispose.push(this._dialogObject.cancelButton.onClick(() => this.onCancelButtonClicked()));
this._toDispose.push(this._dialogObject.okButton.onClick(() => this.onOkButtonClicked()));
}
protected abstract initialize(): void;
@@ -22,10 +23,17 @@ export abstract class DialogBase {
azdata.window.openDialog(this._dialogObject);
}
protected onCancel(): void {
private onCancelButtonClicked(): void {
this.dispose();
}
private onOkButtonClicked(): void {
this.onComplete();
this.dispose();
}
protected onComplete(): void { }
protected dispose(): void {
this._toDispose.forEach(disposable => disposable.dispose());
}