forked from rstudio/gary-uml
-
Notifications
You must be signed in to change notification settings - Fork 0
/
workbench.puml
340 lines (291 loc) · 7.64 KB
/
workbench.puml
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
177
178
179
180
181
182
183
184
185
186
187
188
189
190
191
192
193
194
195
196
197
198
199
200
201
202
203
204
205
206
207
208
209
210
211
212
213
214
215
216
217
218
219
220
221
222
223
224
225
226
227
228
229
230
231
232
233
234
235
236
237
238
239
240
241
242
243
244
245
246
247
248
249
250
251
252
253
254
255
256
257
258
259
260
261
262
263
264
265
266
267
268
269
270
271
272
273
274
275
276
277
278
279
280
281
282
283
284
285
286
287
288
289
290
291
292
293
294
295
296
297
298
299
300
301
302
303
304
305
306
307
308
309
310
311
312
313
314
315
316
317
318
319
320
321
322
323
324
325
326
327
328
329
330
331
332
333
334
335
336
337
338
339
340
@startuml
title __WORKBENCH Class Diagram__\n
legend top left
https://github.com/rstudio/gary-uml/blob/master/workbench.puml
Major GWT classes involved in IDE Workbench panes
Last updated: 2020-06-04
endlegend
abstract class MessageDisplay {
# createDialog() {abstract}
+ promptForInteger() {abstract}
+ promptForText() {abstract}
+ promptForTextWithOption() {abstract}
+ public void promptForPassword()
+ showErrorMessage()
+ showGenericDialog()
+ showMessage()
+ showNotYetImplemented()
+ showPopupBlockedMessage()
+ showYesNoMessage()
}
hide MessageDisplay methods
hide MessageDisplay fields
abstract class GlobalDisplay {
+ openWindow() {abstract}
+ openWindow() {abstract}
+ openProgressWindow() {abstract}
+ openMinimalWindow() {abstract}
+ openWebMinimalWindow() {abstract}
+ openSatelliteWindow() {abstract}
+ openEmailComposeWindow() {abstract}
+ showHtmlFile() {abstract}
+ showWordDoc() {abstract}
+ showPptPresentation() {abstract}
+ openRStudioLink()
+ void openRStudioLink() {abstract}
+ showProgress() {abstract}
+ showLicenseWarningBar() {abstract}
+ showWarningBar() {abstract}
+ hideWarningBar() {abstract}
+ getProgressIndicator() {abstract}
}
hide GlobalDisplay methods
hide GlobalDisplay fields
MessageDisplay <|-- GlobalDisplay
class DefaultGlobalDisplay <<Singleton>> {
}
hide DefaultGlobalDisplay methods
hide DefaultGlobalDisplay fields
GlobalDisplay <|-- DefaultGlobalDisplay
DefaultGlobalDisplay --> ApplicationView
class SatelliteManager <<Singleton>> {
}
hide SatelliteManager methods
hide SatelliteManager fields
class RStudio <<Entrypoint>> {
}
hide RStudio methods
hide RStudio fields
class Application <<Singleton>> {
- rootPanel_ : RootLayoutPanel
+ go()
}
hide Application methods
hide Application fields
RStudio --> Application
interface ApplicationView {
focusToolbar()
getWidget()
hideSerializationProgress()
hideWarning()
isToolbarShowing()
reportStatus()
showApplicationAgreement()
showApplicationDisconnected()
showApplicationMultiSessionQuit()
showApplicationOffline()
showApplicationQuit()
showApplicationSuicide()
showApplicationUpdateRequired()
showLicenseWarning()
showSerializationProgress()
showSessionAbendWarning()
showToolbar()
showWarning()
showWorkbenchView()
}
hide ApplicationView methods
hide ApplicationView fields
class ApplicationWindow <<Singleton, Composite:LayoutPanel>> {
}
hide ApplicationWindow methods
hide ApplicationWindow fields
Application *-- ApplicationView
Application --> SatelliteManager
ApplicationView <|.. ApplicationWindow
interface WorkbenchMainView <<Widget>> {
}
hide WorkbenchMainView fields
hide WorkbenchMainView methods
class WorkbenchScreen <<Composite:MainSplitPanel>> {
}
hide WorkbenchScreen methods
hide WorkbenchScreen fields
WorkbenchMainView <|.. WorkbenchScreen
class Workbench {
}
hide Workbench fields
hide Workbench methods
class WorkbenchContext <<Singleton>> {
}
hide WorkbenchContext fields
hide WorkbenchContext methods
Workbench --> WorkbenchMainView
Workbench --> WorkbenchContext
ApplicationWindow *-- WorkbenchMainView
interface ApplicationHeader <<IsWidget>> {
}
hide ApplicationHeader fields
hide ApplicationHeader methods
class WebApplicationHeader <<Composite: FlowPanel>> {
}
hide WebApplicationHeader fields
hide WebApplicationHeader methods
ApplicationHeader <|-- WebApplicationHeader
ApplicationWindow *-- ApplicationHeader
class AppMenuBar {
}
hide AppMenuBar methods
hide AppMenuBar fields
WebApplicationHeader *-- AppMenuBar
class GlobalToolbar {
}
hide GlobalToolbar methods
hide GlobalToolbar fields
WebApplicationHeader *-- GlobalToolbar
class MainSplitPanel {
}
hide MainSplitPanel methods
hide MainSplitPanel fields
WorkbenchScreen --> MainSplitPanel
class LogicalWindow {
}
hide LogicalWindow methods
hide LogicalWindow fields
class WindowFrame {
}
hide WindowFrame methods
hide WindowFrame fields
class MinimizedWindowFrame {
}
hide MinimizedWindowFrame methods
hide MinimizedWindowFrame fields
LogicalWindow *-- WindowFrame
LogicalWindow *-- MinimizedWindowFrame
class TabLayoutPanel {
}
hide TabLayoutPanel methods
hide TabLayoutPanel fields
class ModuleTabLayoutPanel {
}
hide ModuleTabLayoutPanel methods
hide ModuleTabLayoutPanel fields
TabLayoutPanel <|-- ModuleTabLayoutPanel
interface WorkbenchTab {
}
hide WorkbenchTab methods
hide WorkbenchTab fields
class DockPanel {
}
hide DockPanel methods
hide DockPanel fields
abstract class DelayLoadTabShim<PresenterClass, TabClass> {
}
hide DelayLoadTabShim methods
hide DelayLoadTabShim fields
abstract class DelayLoadWorkbenchTab<T> {
}
hide DelayLoadWorkbenchTab methods
hide DelayLoadWorkbenchTab fields
WorkbenchTab <|.. DelayLoadWorkbenchTab
DelayLoadWorkbenchTab --> DockPanel
DelayLoadWorkbenchTab --> DelayLoadTabShim
abstract class BasePresenter {
}
hide BasePresenter methods
hide BasePresenter fields
BasePresenter --> WorkbenchView
class EnvironmentPresenter {
}
hide EnvironmentPresenter methods
hide EnvironmentPresenter fields
BasePresenter <|-- EnvironmentPresenter
interface WorkbenchView {
}
hide WorkbenchView methods
hide WorkbenchView fields
interface EnvironmentPresenter.Display {
}
hide EnvironmentPresenter.Display methods
hide EnvironmentPresenter.Display fields
WorkbenchView <|-- EnvironmentPresenter.Display
class EnvironmentPane {
}
hide EnvironmentPane methods
hide EnvironmentPane fields
class ToolbarPane {
}
hide ToolbarPane methods
hide ToolbarPane fields
abstract class WorkbenchPane {
}
hide WorkbenchPane methods
hide WorkbenchPane fields
ToolbarPane <|-- WorkbenchPane
WorkbenchView <|.. WorkbenchPane
WorkbenchTab <|.. WorkbenchPane
WorkbenchPane <|-- EnvironmentPane
EnvironmentPresenter.Display <|.. EnvironmentPane
class EnvironmentTab<EnvironmentPresenter> {
}
hide EnvironmentTab methods
hide EnvironmentTab fields
DelayLoadWorkbenchTab <|-- EnvironmentTab
abstract class EnvironmentTab.Shim {
}
hide EnvironmentTab.Shim methods
hide EnvironmentTab.Shim fields
DelayLoadTabShim <|-- EnvironmentTab.Shim
class WorkbenchTabPanel <<Composite: LayoutPanel>> {
}
hide WorkbenchTabPanel methods
hide WorkbenchTabPanel fields
WorkbenchTabPanel *-- ModuleTabLayoutPanel
WorkbenchTabPanel --> WorkbenchTab
ModuleTabLayoutPanel *-- WorkbenchTab
class ConsoleTabPanel {
}
hide ConsoleTabPanel methods
hide ConsoleTabPanel fields
WorkbenchTabPanel <|-- ConsoleTabPanel
class PaneManager {
- createConsole() : LogicalWindow
- createSource() : LogicalWindow
- createTabSet() : LogicalWindow
}
hide PaneManager fields
WorkbenchScreen *-- PaneManager
PaneManager *-- MainSplitPanel
PaneManager *-- "4" LogicalWindow
PaneManager *-- ConsoleTabPanel
PaneManager *-- "2" WorkbenchTabPanel
PaneManager *-- SourceShim
class DualWindowLayoutPanel {
}
hide DualWindowLayoutPanel methods
hide DualWindowLayoutPanel fields
DualWindowLayoutPanel *-- "2 (top/bottom)" LogicalWindow
MainSplitPanel *-- "2 (left/right)" DualWindowLayoutPanel
class PrimaryWindowFrame {
}
hide PrimaryWindowFrame methods
hide PrimaryWindowFrame fields
WindowFrame <|-- PrimaryWindowFrame
class MinimizedModuleTabLayoutPanel {
}
hide MinimizedModuleTabLayoutPanel methods
hide MinimizedModuleTabLayoutPanel fields
MinimizedWindowFrame <|-- MinimizedModuleTabLayoutPanel
class SourceShim <<Singleton>> {
}
hide SourceShim methods
hide SourceShim fields
class Source {
}
hide Source methods
hide Source fields
interface Source.Display {
}
hide Source.Display methods
hide Source.Display fields
class SourcePane <<Composite>> {
}
hide SourcePane methods
hide SourcePane fields
Source.Display <|.. SourcePane
class DocTabLayoutPanel {
}
hide DocTabLayoutPanel methods
hide DocTabLayoutPanel fields
TabLayoutPanel <|-- DocTabLayoutPanel
@enduml