- Notifications
You must be signed in to change notification settings - Fork 440
/
Copy pathnotification-center.ts
176 lines (155 loc) · 5.97 KB
/
notification-center.ts
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
124
125
126
127
128
129
130
131
132
133
134
135
136
137
138
139
140
141
142
143
144
145
146
147
148
149
150
151
152
153
154
155
156
157
158
159
160
161
162
163
164
165
166
167
168
169
170
171
172
173
174
175
176
import{
inject,
injectable,
postConstruct,
}from'@theia/core/shared/inversify';
import{Emitter}from'@theia/core/lib/common/event';
import{JsonRpcProxy}from'@theia/core/lib/common/messaging/proxy-factory';
import{DisposableCollection}from'@theia/core/lib/common/disposable';
import{FrontendApplicationContribution}from'@theia/core/lib/browser/frontend-application-contribution';
import{
IndexUpdateDidCompleteParams,
IndexUpdateDidFailParams,
IndexUpdateWillStartParams,
NotificationServiceClient,
NotificationServiceServer,
}from'../common/protocol/notification-service';
importtype{
BoardsPackage,
LibraryPackage,
ConfigState,
Sketch,
ProgressMessage,
DetectedPorts,
}from'../common/protocol';
import{
FrontendApplicationStateService,
FrontendApplicationState,
}from'@theia/core/lib/browser/frontend-application-state';
@injectable()
exportclassNotificationCenter
implementsNotificationServiceClient,FrontendApplicationContribution
{
@inject(NotificationServiceServer)
privatereadonlyserver: JsonRpcProxy<NotificationServiceServer>;
@inject(FrontendApplicationStateService)
privatereadonlyappStateService: FrontendApplicationStateService;
privatereadonlydidReinitializeEmitter=newEmitter<void>();
privatereadonlyindexUpdateDidCompleteEmitter=
newEmitter<IndexUpdateDidCompleteParams>();
privatereadonlyindexUpdateWillStartEmitter=
newEmitter<IndexUpdateWillStartParams>();
privatereadonlyindexUpdateDidProgressEmitter=
newEmitter<ProgressMessage>();
privatereadonlyindexUpdateDidFailEmitter=
newEmitter<IndexUpdateDidFailParams>();
privatereadonlydaemonDidStartEmitter=newEmitter<number>();
privatereadonlydaemonDidStopEmitter=newEmitter<void>();
privatereadonlyconfigDidChangeEmitter=newEmitter<ConfigState>();
privatereadonlyplatformDidInstallEmitter=newEmitter<{
item: BoardsPackage;
}>();
privatereadonlyplatformDidUninstallEmitter=newEmitter<{
item: BoardsPackage;
}>();
privatereadonlylibraryDidInstallEmitter=newEmitter<{
item: LibraryPackage|'zip-install';
}>();
privatereadonlylibraryDidUninstallEmitter=newEmitter<{
item: LibraryPackage;
}>();
privatereadonlydetectedPortsDidChangeEmitter=newEmitter<{
detectedPorts: DetectedPorts;
}>();
privatereadonlyrecentSketchesChangedEmitter=newEmitter<{
sketches: Sketch[];
}>();
privatereadonlyonAppStateDidChangeEmitter=
newEmitter<FrontendApplicationState>();
privatereadonlytoDispose=newDisposableCollection(
this.didReinitializeEmitter,
this.indexUpdateWillStartEmitter,
this.indexUpdateDidProgressEmitter,
this.indexUpdateDidCompleteEmitter,
this.indexUpdateDidFailEmitter,
this.daemonDidStartEmitter,
this.daemonDidStopEmitter,
this.configDidChangeEmitter,
this.platformDidInstallEmitter,
this.platformDidUninstallEmitter,
this.libraryDidInstallEmitter,
this.libraryDidUninstallEmitter,
this.detectedPortsDidChangeEmitter
);
readonlyonDidReinitialize=this.didReinitializeEmitter.event;
readonlyonIndexUpdateDidComplete=this.indexUpdateDidCompleteEmitter.event;
readonlyonIndexUpdateWillStart=this.indexUpdateWillStartEmitter.event;
readonlyonIndexUpdateDidProgress=this.indexUpdateDidProgressEmitter.event;
readonlyonIndexUpdateDidFail=this.indexUpdateDidFailEmitter.event;
readonlyonDaemonDidStart=this.daemonDidStartEmitter.event;
readonlyonDaemonDidStop=this.daemonDidStopEmitter.event;
readonlyonConfigDidChange=this.configDidChangeEmitter.event;
readonlyonPlatformDidInstall=this.platformDidInstallEmitter.event;
readonlyonPlatformDidUninstall=this.platformDidUninstallEmitter.event;
readonlyonLibraryDidInstall=this.libraryDidInstallEmitter.event;
readonlyonLibraryDidUninstall=this.libraryDidUninstallEmitter.event;
readonlyonDetectedPortsDidChange=this.detectedPortsDidChangeEmitter.event;
readonlyonRecentSketchesDidChange=this.recentSketchesChangedEmitter.event;
readonlyonAppStateDidChange=this.onAppStateDidChangeEmitter.event;
@postConstruct()
protectedinit(): void{
this.server.setClient(this);
this.toDispose.push(
this.appStateService.onStateChanged((state)=>
this.onAppStateDidChangeEmitter.fire(state)
)
);
}
onStop(): void{
this.toDispose.dispose();
}
notifyDidReinitialize(): void{
this.didReinitializeEmitter.fire();
}
notifyIndexUpdateWillStart(params: IndexUpdateWillStartParams): void{
this.indexUpdateWillStartEmitter.fire(params);
}
notifyIndexUpdateDidProgress(progressMessage: ProgressMessage): void{
this.indexUpdateDidProgressEmitter.fire(progressMessage);
}
notifyIndexUpdateDidComplete(params: IndexUpdateDidCompleteParams): void{
this.indexUpdateDidCompleteEmitter.fire(params);
}
notifyIndexUpdateDidFail(params: IndexUpdateDidFailParams): void{
this.indexUpdateDidFailEmitter.fire(params);
}
notifyDaemonDidStart(port: number): void{
this.daemonDidStartEmitter.fire(port);
}
notifyDaemonDidStop(): void{
this.daemonDidStopEmitter.fire();
}
notifyConfigDidChange(event: ConfigState): void{
this.configDidChangeEmitter.fire(event);
}
notifyPlatformDidInstall(event: {item: BoardsPackage}): void{
this.platformDidInstallEmitter.fire(event);
}
notifyPlatformDidUninstall(event: {item: BoardsPackage}): void{
this.platformDidUninstallEmitter.fire(event);
}
notifyLibraryDidInstall(event: {
item: LibraryPackage|'zip-install';
}): void{
this.libraryDidInstallEmitter.fire(event);
}
notifyLibraryDidUninstall(event: {item: LibraryPackage}): void{
this.libraryDidUninstallEmitter.fire(event);
}
notifyDetectedPortsDidChange(event: {detectedPorts: DetectedPorts}): void{
this.detectedPortsDidChangeEmitter.fire(event);
}
notifyRecentSketchesDidChange(event: {sketches: Sketch[]}): void{
this.recentSketchesChangedEmitter.fire(event);
}
}