diff --git a/src/sql/workbench/services/accountManagement/browser/accountDialog.ts b/src/sql/workbench/services/accountManagement/browser/accountDialog.ts index 09ece24486..14cf57af1f 100644 --- a/src/sql/workbench/services/accountManagement/browser/accountDialog.ts +++ b/src/sql/workbench/services/accountManagement/browser/accountDialog.ts @@ -34,14 +34,29 @@ import * as TelemetryKeys from 'sql/platform/telemetry/common/telemetryKeys'; import { ILogService } from 'vs/platform/log/common/log'; import { ITextResourcePropertiesService } from 'vs/editor/common/services/textResourceConfigurationService'; import { IAdsTelemetryService } from 'sql/platform/telemetry/common/telemetry'; -import { IViewPaneOptions, ViewPane } from 'vs/workbench/browser/parts/views/viewPaneContainer'; +import { IViewPaneOptions, ViewPane, ViewPaneContainer } from 'vs/workbench/browser/parts/views/viewPaneContainer'; import { attachModalDialogStyler, attachPanelStyler } from 'sql/workbench/common/styler'; -import { IViewDescriptorService } from 'vs/workbench/common/views'; +import { IViewDescriptorService, IViewsRegistry, Extensions as ViewContainerExtensions, IViewContainersRegistry, ViewContainerLocation } from 'vs/workbench/common/views'; import { IQuickInputService, IQuickPickItem } from 'vs/platform/quickinput/common/quickInput'; import { INotificationService } from 'vs/platform/notification/common/notification'; import { IOpenerService } from 'vs/platform/opener/common/opener'; import { ITelemetryService } from 'vs/platform/telemetry/common/telemetry'; import { ILayoutService } from 'vs/platform/layout/browser/layoutService'; +import { Registry } from 'vs/platform/registry/common/platform'; +import { SyncDescriptor } from 'vs/platform/instantiation/common/descriptors'; + +export const VIEWLET_ID = 'workbench.view.accountpanel'; + +export class AccountPaneContainer extends ViewPaneContainer { + +} + +export const ACCOUNT_VIEW_CONTAINER = Registry.as(ViewContainerExtensions.ViewContainersRegistry).registerViewContainer({ + id: VIEWLET_ID, + name: localize('accountExplorer.name', "Accounts"), + ctorDescriptor: new SyncDescriptor(AccountPaneContainer), + storageId: `${VIEWLET_ID}.state` +}, ViewContainerLocation.Sidebar); class AccountPanel extends ViewPane { public index: number; @@ -341,6 +356,12 @@ export class AccountDialog extends Modal { this.vstelemetryService ); + Registry.as(ViewContainerExtensions.ViewsRegistry).registerViews([{ + id: newProvider.addedProvider.id, + name: newProvider.addedProvider.displayName, + ctorDescriptor: new SyncDescriptor(AccountPanel), + }], ACCOUNT_VIEW_CONTAINER); + attachPanelStyler(providerView, this._themeService); const insertIndex = this._splitView.length;