diff --git a/src/sql/workbench/parts/dataExplorer/browser/connectionViewletPanel.ts b/src/sql/workbench/parts/dataExplorer/browser/connectionViewletPanel.ts index 0bd896ae5e..5cc0e2f5c8 100644 --- a/src/sql/workbench/parts/dataExplorer/browser/connectionViewletPanel.ts +++ b/src/sql/workbench/parts/dataExplorer/browser/connectionViewletPanel.ts @@ -56,10 +56,12 @@ export class ConnectionViewletPanel extends ViewletPanel { this._addServerGroupAction = this.instantiationService.createInstance(AddServerGroupAction, AddServerGroupAction.ID, AddServerGroupAction.LABEL); - this._serverTreeView = this.instantiationService.createInstance(ServerTreeView); + this._serverTreeView = this.objectExplorerService.getServerTreeView(); + if (!this._serverTreeView) { + this._serverTreeView = this.instantiationService.createInstance(ServerTreeView); + this.objectExplorerService.registerServerTreeView(this._serverTreeView); + } this._activeConnectionsFilterAction = this._serverTreeView.activeConnectionsFilterAction; - - this.objectExplorerService.registerServerTreeView(this._serverTreeView); } protected renderHeader(container: HTMLElement): void { @@ -127,9 +129,8 @@ export class ConnectionViewletPanel extends ViewletPanel { } dispose(): void { - this._serverTreeView.dispose(); - super.dispose(); this.disposables = dispose(this.disposables); + super.dispose(); } focus(): void { diff --git a/src/sql/workbench/parts/dataExplorer/browser/dataExplorerViewlet.ts b/src/sql/workbench/parts/dataExplorer/browser/dataExplorerViewlet.ts index aa2e73a648..58ceb7b78a 100644 --- a/src/sql/workbench/parts/dataExplorer/browser/dataExplorerViewlet.ts +++ b/src/sql/workbench/parts/dataExplorer/browser/dataExplorerViewlet.ts @@ -117,7 +117,9 @@ export class DataExplorerViewlet extends ViewContainerViewlet { } protected createView(viewDescriptor: IViewDescriptor, options: IViewletViewOptions): ViewletPanel { - return this.instantiationService.createInstance(viewDescriptor.ctorDescriptor.ctor, options) as ViewletPanel; + let viewletPanel = this.instantiationService.createInstance(viewDescriptor.ctorDescriptor.ctor, options) as ViewletPanel; + this._register(viewletPanel); + return viewletPanel; } dispose(): void {