/*--------------------------------------------------------------------------------------------- * 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 { RawContextKey, IContextKeyService, IContextKey } from 'vs/platform/contextkey/common/contextkey'; import { IConnectionProfile } from 'sqlops'; export class ConnectionContextkey implements IContextKey { static Provider = new RawContextKey('connectionProvider', undefined); static Server = new RawContextKey('serverName', undefined); static Database = new RawContextKey('databaseName', undefined); static Connection = new RawContextKey('connection', undefined); private _providerKey: IContextKey; private _serverKey: IContextKey; private _databaseKey: IContextKey; private _connectionKey: IContextKey; constructor( @IContextKeyService contextKeyService: IContextKeyService ) { this._providerKey = ConnectionContextkey.Provider.bindTo(contextKeyService); this._serverKey = ConnectionContextkey.Server.bindTo(contextKeyService); this._databaseKey = ConnectionContextkey.Database.bindTo(contextKeyService); this._connectionKey = ConnectionContextkey.Connection.bindTo(contextKeyService); } set(value: IConnectionProfile) { this._connectionKey.set(value); this._providerKey.set(value && value.providerName); this._serverKey.set(value && value.serverName); this._databaseKey.set(value && value.databaseName); } reset(): void { this._providerKey.reset(); this._serverKey.reset(); this._databaseKey.reset(); this._connectionKey.reset(); } public get(): IConnectionProfile { return this._connectionKey.get(); } }