Add DatabaseItem to model details panel state

This commit is contained in:
Robert
2023-08-08 14:58:42 +01:00
parent 946607098a
commit 16d5f0f12b
4 changed files with 21 additions and 7 deletions

View File

@@ -147,7 +147,7 @@ export class DataExtensionsEditorModule extends DisposableObject {
db,
modelFile,
Mode.Application,
(usages) => this.modelDetailsPanel.setExternalApiUsages(usages),
this.modelDetailsPanel.setState.bind(this.modelDetailsPanel),
);
await view.openView();
},

View File

@@ -77,8 +77,9 @@ export class DataExtensionsEditorView extends AbstractWebview<
private readonly databaseItem: DatabaseItem,
private readonly extensionPack: ExtensionPack,
private mode: Mode,
private readonly onExternalApiUsagesChanged: (
private readonly updateModelDetailsPanelState: (
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
) => void,
) {
super(ctx);
@@ -296,7 +297,10 @@ export class DataExtensionsEditorView extends AbstractWebview<
t: "setExternalApiUsages",
externalApiUsages,
});
this.onExternalApiUsagesChanged(externalApiUsages);
this.updateModelDetailsPanelState(
externalApiUsages,
this.databaseItem,
);
} catch (err) {
void showAndLogExceptionWithTelemetry(
this.app.logger,
@@ -578,7 +582,7 @@ export class DataExtensionsEditorView extends AbstractWebview<
addedDatabase,
modelFile,
Mode.Framework,
this.onExternalApiUsagesChanged,
this.updateModelDetailsPanelState,
);
await view.openView();
});

View File

@@ -7,12 +7,14 @@ import {
} from "vscode";
import { DisposableObject } from "../../common/disposable-object";
import { ExternalApiUsage, Usage } from "../external-api-usage";
import { DatabaseItem } from "../../databases/local-databases";
export class ModelDetailsDataProvider
extends DisposableObject
implements TreeDataProvider<ModelDetailsTreeViewItem>
{
private externalApiUsages: ExternalApiUsage[] = [];
private databaseItem: DatabaseItem | undefined = undefined;
private readonly onDidChangeTreeDataEmitter = this.push(
new EventEmitter<void>(),
@@ -22,8 +24,12 @@ export class ModelDetailsDataProvider
return this.onDidChangeTreeDataEmitter.event;
}
public setExternalApiUsages(externalApiUsages: ExternalApiUsage[]): void {
public setState(
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
): void {
this.externalApiUsages = externalApiUsages;
this.databaseItem = databaseItem;
this.onDidChangeTreeDataEmitter.fire();
}

View File

@@ -2,6 +2,7 @@ import { window } from "vscode";
import { DisposableObject } from "../../common/disposable-object";
import { ModelDetailsDataProvider } from "./model-details-data-provider";
import { ExternalApiUsage } from "../external-api-usage";
import { DatabaseItem } from "../../databases/local-databases";
export class ModelDetailsPanel extends DisposableObject {
private readonly dataProvider: ModelDetailsDataProvider;
@@ -17,7 +18,10 @@ export class ModelDetailsPanel extends DisposableObject {
this.push(treeView);
}
public setExternalApiUsages(externalApiUsages: ExternalApiUsage[]): void {
this.dataProvider.setExternalApiUsages(externalApiUsages);
public setState(
externalApiUsages: ExternalApiUsage[],
databaseItem: DatabaseItem,
): void {
this.dataProvider.setState(externalApiUsages, databaseItem);
}
}