mirror of
https://github.com/ckaczor/azuredatastudio.git
synced 2026-01-19 17:22:48 -05:00
62 lines
2.5 KiB
TypeScript
62 lines
2.5 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 { OptionsDialog } from 'sql/workbench/browser/modal/optionsDialog';
|
|
import { IInstantiationService } from 'vs/platform/instantiation/common/instantiation';
|
|
import * as azdata from 'azdata';
|
|
import { localize } from 'vs/nls';
|
|
import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys';
|
|
|
|
export class AdvancedPropertiesController {
|
|
private _advancedDialog: OptionsDialog;
|
|
private _options: { [name: string]: any };
|
|
|
|
constructor(private _onCloseAdvancedProperties: () => void,
|
|
@IInstantiationService private _instantiationService: IInstantiationService
|
|
) {
|
|
}
|
|
|
|
|
|
private handleOnOk(): void {
|
|
this._options = this._advancedDialog.optionValues;
|
|
}
|
|
|
|
public showDialog(providerOptions: azdata.ConnectionOption[], options: { [name: string]: any }): void {
|
|
this._options = options;
|
|
let serviceOptions = providerOptions.map(option => AdvancedPropertiesController.connectionOptionToServiceOption(option));
|
|
this.advancedDialog.open(serviceOptions, this._options);
|
|
}
|
|
|
|
public get advancedDialog() {
|
|
if (!this._advancedDialog) {
|
|
this._advancedDialog = this._instantiationService.createInstance(
|
|
OptionsDialog, localize('connectionAdvancedProperties', "Advanced Properties"), TelemetryKeys.ModalDialogName.ConnectionAdvancedProperties, { hasBackButton: true, cancelLabel: localize('advancedProperties.discard', "Discard") });
|
|
this._advancedDialog.onCloseEvent(() => this._onCloseAdvancedProperties());
|
|
this._advancedDialog.onOk(() => this.handleOnOk());
|
|
this._advancedDialog.render();
|
|
}
|
|
return this._advancedDialog;
|
|
}
|
|
|
|
public set advancedDialog(dialog: OptionsDialog) {
|
|
this._advancedDialog = dialog;
|
|
}
|
|
|
|
public static connectionOptionToServiceOption(connectionOption: azdata.ConnectionOption): azdata.ServiceOption {
|
|
return {
|
|
name: connectionOption.name,
|
|
displayName: connectionOption.displayName,
|
|
description: connectionOption.description,
|
|
groupName: connectionOption.groupName,
|
|
valueType: connectionOption.valueType,
|
|
defaultValue: connectionOption.defaultValue,
|
|
objectType: undefined,
|
|
categoryValues: connectionOption.categoryValues,
|
|
isRequired: connectionOption.isRequired,
|
|
isArray: undefined,
|
|
};
|
|
}
|
|
}
|