mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-13 17:22:15 -05:00
42 lines
1.3 KiB
TypeScript
42 lines
1.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.
|
|
*--------------------------------------------------------------------------------------------*/
|
|
import * as azdata from 'azdata';
|
|
import { ApiWrapper } from '../common/apiWrapper';
|
|
import { MainViewBase } from './mainViewBase';
|
|
import { IPageView } from './interfaces';
|
|
|
|
/**
|
|
* Dialog view to create and manage a dialog
|
|
*/
|
|
export class DialogView extends MainViewBase {
|
|
|
|
private _dialog: azdata.window.Dialog | undefined;
|
|
|
|
/**
|
|
* Creates new instance
|
|
*/
|
|
constructor(apiWrapper: ApiWrapper) {
|
|
super(apiWrapper);
|
|
}
|
|
|
|
private createDialogPage(title: string, componentView: IPageView): azdata.window.DialogTab {
|
|
let viewPanel = this._apiWrapper.createTab(title);
|
|
this.addPage(componentView);
|
|
this.registerContent(viewPanel, componentView);
|
|
return viewPanel;
|
|
}
|
|
|
|
/**
|
|
* Creates a new dialog
|
|
* @param title title
|
|
* @param pages pages
|
|
*/
|
|
public createDialog(title: string, pages: IPageView[]): azdata.window.Dialog {
|
|
this._dialog = this._apiWrapper.createModelViewDialog(title);
|
|
this._dialog.content = pages.map(x => this.createDialogPage(x.title || '', x));
|
|
return this._dialog;
|
|
}
|
|
}
|