From fe0cff07d6d016d6a8acdb86960b1cee928d53a3 Mon Sep 17 00:00:00 2001 From: Kim Santiago <31145923+kisantia@users.noreply.github.com> Date: Thu, 31 Mar 2022 11:08:08 -0700 Subject: [PATCH] Expose refresh projects tree (#18890) * refresh project tree after apply schema compare to project * clarify comment --- .../data-workspace/src/common/dataWorkspaceExtension.ts | 4 ++++ extensions/data-workspace/src/dataworkspace.d.ts | 5 +++++ extensions/data-workspace/src/services/workspaceService.ts | 7 +++++++ extensions/schema-compare/src/schemaCompareMainWindow.ts | 1 + 4 files changed, 17 insertions(+) diff --git a/extensions/data-workspace/src/common/dataWorkspaceExtension.ts b/extensions/data-workspace/src/common/dataWorkspaceExtension.ts index 8e3a20e9e1..3ff9e2a7a4 100644 --- a/extensions/data-workspace/src/common/dataWorkspaceExtension.ts +++ b/extensions/data-workspace/src/common/dataWorkspaceExtension.ts @@ -25,6 +25,10 @@ export class DataWorkspaceExtension implements IExtension { void vscode.commands.executeCommand('dataworkspace.views.main.focus'); } + refreshProjectsTree(): void { + this.workspaceService.refreshProjectsTree(); + } + get defaultProjectSaveLocation(): vscode.Uri | undefined { return defaultProjectSaveLocation(); } diff --git a/extensions/data-workspace/src/dataworkspace.d.ts b/extensions/data-workspace/src/dataworkspace.d.ts index 75168e4ded..da4357bef8 100644 --- a/extensions/data-workspace/src/dataworkspace.d.ts +++ b/extensions/data-workspace/src/dataworkspace.d.ts @@ -33,6 +33,11 @@ declare module 'dataworkspace' { */ showProjectsView(): void; + /** + * Fires event to refresh the project tree. The tree is not guaranteed to be refreshed after this call returns + */ + refreshProjectsTree(): void; + /** * Returns the default location to save projects */ diff --git a/extensions/data-workspace/src/services/workspaceService.ts b/extensions/data-workspace/src/services/workspaceService.ts index 0d3aa573c0..218a8daa9f 100644 --- a/extensions/data-workspace/src/services/workspaceService.ts +++ b/extensions/data-workspace/src/services/workspaceService.ts @@ -168,6 +168,13 @@ export class WorkspaceService implements IWorkspaceService { } } + /** + * Fire event to refresh projects tree + */ + public refreshProjectsTree(): void { + this._onDidWorkspaceProjectsChange.fire(); + } + /** * Returns an array of all the supported projects in the folder * @param folder folder to look look for projects diff --git a/extensions/schema-compare/src/schemaCompareMainWindow.ts b/extensions/schema-compare/src/schemaCompareMainWindow.ts index 2759689d28..f969156a29 100644 --- a/extensions/schema-compare/src/schemaCompareMainWindow.ts +++ b/extensions/schema-compare/src/schemaCompareMainWindow.ts @@ -914,6 +914,7 @@ export class SchemaCompareMainWindow { } else if (this.targetEndpointInfo.endpointType === mssql.SchemaCompareEndpointType.Project) { const workspaceApi = getDataWorkspaceExtensionApi(); workspaceApi.showProjectsView(); + workspaceApi.refreshProjectsTree(); void vscode.window.showInformationMessage(loc.applySuccess); }