Skip to content

Commit 031b507

Browse files
authored
Update modeling panel when clicking 'view' on model editor (#2874)
1 parent f1533dd commit 031b507

File tree

2 files changed

+34
-0
lines changed

2 files changed

+34
-0
lines changed

extensions/ql-vscode/src/model-editor/method-modeling/method-modeling-view-provider.ts

Lines changed: 13 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -58,6 +58,7 @@ export class MethodModelingViewProvider
5858

5959
this.webviewView = webviewView;
6060

61+
this.setInitialState(webviewView);
6162
this.registerToModelingStoreEvents();
6263
}
6364

@@ -72,6 +73,18 @@ export class MethodModelingViewProvider
7273
}
7374
}
7475

76+
private setInitialState(webviewView: vscode.WebviewView): void {
77+
const selectedMethod = this.modelingStore.getSelectedMethodDetails();
78+
if (selectedMethod) {
79+
void webviewView.webview.postMessage({
80+
t: "setSelectedMethod",
81+
method: selectedMethod.method,
82+
modeledMethod: selectedMethod.modeledMethod,
83+
isModified: selectedMethod.isModified,
84+
});
85+
}
86+
}
87+
7588
private async onMessage(msg: FromMethodModelingMessage): Promise<void> {
7689
switch (msg.t) {
7790
case "setModeledMethod": {

extensions/ql-vscode/src/model-editor/modeling-store.ts

Lines changed: 21 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -264,6 +264,27 @@ export class ModelingStore extends DisposableObject {
264264
});
265265
}
266266

267+
public getSelectedMethodDetails() {
268+
const dbState = this.getStateForActiveDb();
269+
if (!dbState) {
270+
throw new Error("No active state found in modeling store");
271+
}
272+
273+
const selectedMethod = dbState.selectedMethod;
274+
if (!selectedMethod) {
275+
return undefined;
276+
}
277+
278+
return {
279+
method: selectedMethod,
280+
usage: dbState.selectedUsage,
281+
modeledMethod: dbState.modeledMethods[selectedMethod.signature],
282+
isModified: dbState.modifiedMethodSignatures.has(
283+
selectedMethod.signature,
284+
),
285+
};
286+
}
287+
267288
private getState(databaseItem: DatabaseItem): DbModelingState {
268289
if (!this.state.has(databaseItem.databaseUri.toString())) {
269290
throw Error(

0 commit comments

Comments
 (0)