@@ -5,11 +5,13 @@ import { DatabaseItem } from "../databases/local-databases";
5
5
import { Method , Usage } from "./method" ;
6
6
import { ModeledMethod } from "./modeled-method" ;
7
7
import { INITIAL_HIDE_MODELED_METHODS_VALUE } from "./shared/hide-modeled-methods" ;
8
+ import { INITIAL_MODE , Mode } from "./shared/mode" ;
8
9
9
10
interface DbModelingState {
10
11
databaseItem : DatabaseItem ;
11
12
methods : Method [ ] ;
12
13
hideModeledMethods : boolean ;
14
+ mode : Mode ;
13
15
modeledMethods : Record < string , ModeledMethod [ ] > ;
14
16
modifiedMethodSignatures : Set < string > ;
15
17
selectedMethod : Method | undefined ;
@@ -27,6 +29,11 @@ interface HideModeledMethodsChangedEvent {
27
29
isActiveDb : boolean ;
28
30
}
29
31
32
+ interface ModeChangedEvent {
33
+ mode : Mode ;
34
+ isActiveDb : boolean ;
35
+ }
36
+
30
37
interface ModeledMethodsChangedEvent {
31
38
modeledMethods : Record < string , ModeledMethod [ ] > ;
32
39
dbUri : string ;
@@ -53,6 +60,7 @@ export class ModelingStore extends DisposableObject {
53
60
public readonly onDbClosed : AppEvent < string > ;
54
61
public readonly onMethodsChanged : AppEvent < MethodsChangedEvent > ;
55
62
public readonly onHideModeledMethodsChanged : AppEvent < HideModeledMethodsChangedEvent > ;
63
+ public readonly onModeChanged : AppEvent < ModeChangedEvent > ;
56
64
public readonly onModeledMethodsChanged : AppEvent < ModeledMethodsChangedEvent > ;
57
65
public readonly onModifiedMethodsChanged : AppEvent < ModifiedMethodsChangedEvent > ;
58
66
public readonly onSelectedMethodChanged : AppEvent < SelectedMethodChangedEvent > ;
@@ -65,6 +73,7 @@ export class ModelingStore extends DisposableObject {
65
73
private readonly onDbClosedEventEmitter : AppEventEmitter < string > ;
66
74
private readonly onMethodsChangedEventEmitter : AppEventEmitter < MethodsChangedEvent > ;
67
75
private readonly onHideModeledMethodsChangedEventEmitter : AppEventEmitter < HideModeledMethodsChangedEvent > ;
76
+ private readonly onModeChangedEventEmitter : AppEventEmitter < ModeChangedEvent > ;
68
77
private readonly onModeledMethodsChangedEventEmitter : AppEventEmitter < ModeledMethodsChangedEvent > ;
69
78
private readonly onModifiedMethodsChangedEventEmitter : AppEventEmitter < ModifiedMethodsChangedEvent > ;
70
79
private readonly onSelectedMethodChangedEventEmitter : AppEventEmitter < SelectedMethodChangedEvent > ;
@@ -98,6 +107,11 @@ export class ModelingStore extends DisposableObject {
98
107
this . onHideModeledMethodsChanged =
99
108
this . onHideModeledMethodsChangedEventEmitter . event ;
100
109
110
+ this . onModeChangedEventEmitter = this . push (
111
+ app . createEventEmitter < ModeChangedEvent > ( ) ,
112
+ ) ;
113
+ this . onModeChanged = this . onModeChangedEventEmitter . event ;
114
+
101
115
this . onModeledMethodsChangedEventEmitter = this . push (
102
116
app . createEventEmitter < ModeledMethodsChangedEvent > ( ) ,
103
117
) ;
@@ -117,12 +131,16 @@ export class ModelingStore extends DisposableObject {
117
131
this . onSelectedMethodChangedEventEmitter . event ;
118
132
}
119
133
120
- public initializeStateForDb ( databaseItem : DatabaseItem ) {
134
+ public initializeStateForDb (
135
+ databaseItem : DatabaseItem ,
136
+ mode : Mode = INITIAL_MODE ,
137
+ ) {
121
138
const dbUri = databaseItem . databaseUri . toString ( ) ;
122
139
this . state . set ( dbUri , {
123
140
databaseItem,
124
141
methods : [ ] ,
125
142
hideModeledMethods : INITIAL_HIDE_MODELED_METHODS_VALUE ,
143
+ mode,
126
144
modeledMethods : { } ,
127
145
modifiedMethodSignatures : new Set ( ) ,
128
146
selectedMethod : undefined ,
@@ -214,6 +232,22 @@ export class ModelingStore extends DisposableObject {
214
232
} ) ;
215
233
}
216
234
235
+ public setMode ( dbItem : DatabaseItem , mode : Mode ) {
236
+ const dbState = this . getState ( dbItem ) ;
237
+ const dbUri = dbItem . databaseUri . toString ( ) ;
238
+
239
+ dbState . mode = mode ;
240
+
241
+ this . onModeChangedEventEmitter . fire ( {
242
+ mode,
243
+ isActiveDb : dbUri === this . activeDb ,
244
+ } ) ;
245
+ }
246
+
247
+ public getMode ( dbItem : DatabaseItem ) {
248
+ return this . getState ( dbItem ) . mode ;
249
+ }
250
+
217
251
/**
218
252
* Returns the modeled methods for the given database item and method signatures.
219
253
* If the `methodSignatures` argument is not provided or is undefined, returns all modeled methods.
0 commit comments