Add close method to ModelView dashboards (#14812)

* Add close method to ModelView dashboards

* fix closing

* remove accessors

* Update errors
This commit is contained in:
Charles Gagnon
2021-03-22 10:17:16 -07:00
committed by GitHub
parent 98ba49304e
commit 72295d46c2
24 changed files with 95 additions and 51 deletions

View File

@@ -32,8 +32,8 @@ export class MiaaComputeAndStoragePage extends DashboardPage {
private readonly _azdataApi: azdataExt.IExtension;
constructor(protected modelView: azdata.ModelView, private _miaaModel: MiaaModel) {
super(modelView);
constructor(protected modelView: azdata.ModelView, dashboard: azdata.window.ModelViewDashboard, private _miaaModel: MiaaModel) {
super(modelView, dashboard);
this._azdataApi = vscode.extensions.getExtension(azdataExt.extension.name)?.exports;
this.initializeConfigurationBoxes();

View File

@@ -16,8 +16,8 @@ export class MiaaConnectionStringsPage extends DashboardPage {
private _keyValueContainer!: KeyValueContainer;
private _connectionStringsMessage!: azdata.TextComponent;
constructor(modelView: azdata.ModelView, private _miaaModel: MiaaModel) {
super(modelView);
constructor(modelView: azdata.ModelView, dashboard: azdata.window.ModelViewDashboard, private _miaaModel: MiaaModel) {
super(modelView, dashboard);
this.disposables.push(this._miaaModel.onConfigUpdated(_ =>
this.eventuallyRunOnInitialized(() => this.updateConnectionStrings())));
}

View File

@@ -26,9 +26,9 @@ export class MiaaDashboard extends Dashboard {
}
protected async registerTabs(modelView: azdata.ModelView): Promise<(azdata.DashboardTab | azdata.DashboardTabGroup)[]> {
const overviewPage = new MiaaDashboardOverviewPage(modelView, this._controllerModel, this._miaaModel);
const connectionStringsPage = new MiaaConnectionStringsPage(modelView, this._miaaModel);
const computeAndStoragePage = new MiaaComputeAndStoragePage(modelView, this._miaaModel);
const overviewPage = new MiaaDashboardOverviewPage(modelView, this.dashboard, this._controllerModel, this._miaaModel);
const connectionStringsPage = new MiaaConnectionStringsPage(modelView, this.dashboard, this._miaaModel);
const computeAndStoragePage = new MiaaComputeAndStoragePage(modelView, this.dashboard, this._miaaModel);
return [
overviewPage.tab,
{

View File

@@ -48,8 +48,8 @@ export class MiaaDashboardOverviewPage extends DashboardPage {
vCores: ''
};
constructor(modelView: azdata.ModelView, private _controllerModel: ControllerModel, private _miaaModel: MiaaModel) {
super(modelView);
constructor(modelView: azdata.ModelView, dashboard: azdata.window.ModelViewDashboard, private _controllerModel: ControllerModel, private _miaaModel: MiaaModel) {
super(modelView, dashboard);
this._azdataApi = vscode.extensions.getExtension(azdataExt.extension.name)?.exports;
this._azurecoreApi = vscode.extensions.getExtension(azurecore.extension.name)?.exports;
@@ -250,11 +250,17 @@ export class MiaaDashboardOverviewPage extends DashboardPage {
} finally {
session.dispose();
}
}
);
await this._controllerModel.refreshTreeNode();
vscode.window.showInformationMessage(loc.instanceDeleted(this._miaaModel.info.name));
try {
await this.dashboard.close();
} catch (err) {
// Failures closing the dashboard aren't something we need to show users
console.log('Error closing MIAA dashboard ', err);
}
}
} catch (error) {
vscode.window.showErrorMessage(loc.instanceDeletionFailed(this._miaaModel.info.name, error));