Files
azuredatastudio/src/sql/workbench/api/electron-browser/mainThreadModalDialog.ts
Anthony Dresser d4704e39ac Another code layering (#4037)
* working on formatting

* fixed basic lint errors; starting moving things to their appropriate location

* formatting

* update tslint to match the version of vscode we have

* remove unused code

* work in progress fixing layering

* formatting

* moved connection management service to platform

* formatting

* add missing file

* moving more servies

* formatting

* moving more services

* formatting

* wip

* moving more services

* formatting

* move css file

* add missing svgs

* moved the rest of services

* formatting

* changing around some references

* formatting

* revert tslint

* revert some changes that brake things

* formatting

* fix tests

* fix testzx

* fix tests

* fix tests

* fix compile issue
2019-02-19 12:11:54 -08:00

71 lines
2.3 KiB
TypeScript

/*---------------------------------------------------------------------------------------------
* Copyright (c) Microsoft Corporation. All rights reserved.
* Licensed under the Source EULA. See License.txt in the project root for license information.
*--------------------------------------------------------------------------------------------*/
'use strict';
import 'vs/css!sql/media/icons/common-icons';
import { WebViewDialog } from 'sql/workbench/parts/webview/electron-browser/webViewDialog';
import { MainThreadModalDialogShape, SqlMainContext, SqlExtHostContext, ExtHostModalDialogsShape } from 'sql/workbench/api/node/sqlExtHost.protocol';
import { IExtHostContext } from 'vs/workbench/api/node/extHost.protocol';
import { extHostNamedCustomer } from 'vs/workbench/api/electron-browser/extHostCustomers';
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
@extHostNamedCustomer(SqlMainContext.MainThreadModalDialog)
export class MainThreadModalDialog implements MainThreadModalDialogShape {
private readonly _proxy: ExtHostModalDialogsShape;
private readonly _dialogs = new Map<number, WebViewDialog>();
constructor(
context: IExtHostContext,
@IInstantiationService private readonly _instantiationService: IInstantiationService
) {
this._proxy = context.getProxy(SqlExtHostContext.ExtHostModalDialogs);
}
dispose(): void {
throw new Error('Method not implemented.');
}
$createDialog(handle: number): void {
const dialog = this._instantiationService.createInstance(WebViewDialog);
this._dialogs.set(handle, dialog);
dialog.onMessage(args => {
this._proxy.$onMessage(handle, args);
});
dialog.onClosed(args => {
this._proxy.$onClosed(handle);
});
}
$disposeDialog(handle: number): void {
const dialog = this._dialogs.get(handle);
dialog.close();
}
$setTitle(handle: number, value: string): void {
const dialog = this._dialogs.get(handle);
dialog.headerTitle = value;
}
$setHtml(handle: number, value: string): void {
const dialog = this._dialogs.get(handle);
dialog.html = value;
}
$show(handle: number): void {
const dialog = this._dialogs.get(handle);
dialog.render();
dialog.open();
}
async $sendMessage(handle: number, message: any): Promise<boolean> {
const dialog = this._dialogs.get(handle);
dialog.sendMessage(message);
return Promise.resolve(true);
}
}