File tree Expand file tree Collapse file tree 2 files changed +34
-0
lines changed
extensions/ql-vscode/src/model-editor Expand file tree Collapse file tree 2 files changed +34
-0
lines changed Original file line number Diff line number Diff 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" : {
Original file line number Diff line number Diff 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 (
You can’t perform that action at this time.
0 commit comments