@eclipse-glsp/client 0.9.0-next.d9bed812 → 0.9.0-next.eb280175

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (627) hide show
  1. package/LICENSE +642 -277
  2. package/README.md +2 -1
  3. package/css/command-palette.css +9 -5
  4. package/css/decoration.css +3 -2
  5. package/css/glsp-sprotty.css +16 -7
  6. package/css/tool-palette.css +44 -27
  7. package/lib/base/action-dispatcher.d.ts +18 -2
  8. package/lib/base/action-dispatcher.d.ts.map +1 -1
  9. package/lib/base/action-dispatcher.js +41 -61
  10. package/lib/base/action-dispatcher.js.map +1 -1
  11. package/lib/base/actions/focus-change-action.d.ts +1 -1
  12. package/lib/base/actions/focus-change-action.d.ts.map +1 -1
  13. package/lib/base/actions/focus-change-action.js +4 -5
  14. package/lib/base/actions/focus-change-action.js.map +1 -1
  15. package/lib/base/{args.d.ts → argumentable.d.ts} +4 -6
  16. package/lib/base/argumentable.d.ts.map +1 -0
  17. package/lib/base/{args.js → argumentable.js} +1 -1
  18. package/lib/base/argumentable.js.map +1 -0
  19. package/lib/base/auto-complete/auto-complete-actions.d.ts +1 -1
  20. package/lib/base/auto-complete/auto-complete-actions.d.ts.map +1 -1
  21. package/lib/base/auto-complete/auto-complete-actions.js.map +1 -1
  22. package/lib/base/auto-complete/auto-complete-widget.d.ts +5 -5
  23. package/lib/base/auto-complete/auto-complete-widget.d.ts.map +1 -1
  24. package/lib/base/auto-complete/auto-complete-widget.js +121 -152
  25. package/lib/base/auto-complete/auto-complete-widget.js.map +1 -1
  26. package/lib/base/auto-complete/validation-decorator.d.ts +3 -18
  27. package/lib/base/auto-complete/validation-decorator.d.ts.map +1 -1
  28. package/lib/base/auto-complete/validation-decorator.js +49 -65
  29. package/lib/base/auto-complete/validation-decorator.js.map +1 -1
  30. package/lib/base/command-stack.d.ts +1 -1
  31. package/lib/base/command-stack.d.ts.map +1 -1
  32. package/lib/base/command-stack.js +19 -37
  33. package/lib/base/command-stack.js.map +1 -1
  34. package/lib/base/container-modules.d.ts +40 -0
  35. package/lib/base/container-modules.d.ts.map +1 -0
  36. package/lib/base/container-modules.js +100 -0
  37. package/lib/base/container-modules.js.map +1 -0
  38. package/lib/base/di.config.d.ts +13 -3
  39. package/lib/base/di.config.d.ts.map +1 -1
  40. package/lib/base/di.config.js +50 -33
  41. package/lib/base/di.config.js.map +1 -1
  42. package/lib/base/drag-aware-mouse-listener.d.ts +3 -2
  43. package/lib/base/drag-aware-mouse-listener.d.ts.map +1 -1
  44. package/lib/base/drag-aware-mouse-listener.js +23 -62
  45. package/lib/base/drag-aware-mouse-listener.js.map +1 -1
  46. package/lib/base/editor-context-service.d.ts +42 -0
  47. package/lib/base/editor-context-service.d.ts.map +1 -0
  48. package/lib/base/editor-context-service.js +109 -0
  49. package/lib/base/editor-context-service.js.map +1 -0
  50. package/lib/base/focus-tracker.d.ts +17 -1
  51. package/lib/base/focus-tracker.d.ts.map +1 -1
  52. package/lib/base/focus-tracker.js +19 -39
  53. package/lib/base/focus-tracker.js.map +1 -1
  54. package/lib/base/model/model-registry.d.ts +5 -0
  55. package/lib/base/model/model-registry.d.ts.map +1 -0
  56. package/lib/base/model/model-registry.js +43 -0
  57. package/lib/base/model/model-registry.js.map +1 -0
  58. package/lib/base/model/update-model-command.d.ts +20 -6
  59. package/lib/base/model/update-model-command.d.ts.map +1 -1
  60. package/lib/base/model/update-model-command.js +69 -94
  61. package/lib/base/model/update-model-command.js.map +1 -1
  62. package/lib/base/model-initialization-constraint.d.ts +17 -2
  63. package/lib/base/model-initialization-constraint.d.ts.map +1 -1
  64. package/lib/base/model-initialization-constraint.js +34 -54
  65. package/lib/base/model-initialization-constraint.js.map +1 -1
  66. package/lib/base/selection-clearing-mouse-listener.d.ts +1 -1
  67. package/lib/base/selection-clearing-mouse-listener.d.ts.map +1 -1
  68. package/lib/base/selection-clearing-mouse-listener.js +11 -28
  69. package/lib/base/selection-clearing-mouse-listener.js.map +1 -1
  70. package/lib/base/source-uri-aware.js +2 -5
  71. package/lib/base/source-uri-aware.js.map +1 -1
  72. package/lib/base/tool-manager/glsp-tool-manager.d.ts +2 -2
  73. package/lib/base/tool-manager/glsp-tool-manager.d.ts.map +1 -1
  74. package/lib/base/tool-manager/glsp-tool-manager.js +59 -141
  75. package/lib/base/tool-manager/glsp-tool-manager.js.map +1 -1
  76. package/lib/base/types.d.ts +3 -1
  77. package/lib/base/types.d.ts.map +1 -1
  78. package/lib/base/types.js +23 -21
  79. package/lib/base/types.js.map +1 -1
  80. package/lib/base/view/view-registry.d.ts +5 -0
  81. package/lib/base/view/view-registry.d.ts.map +1 -0
  82. package/lib/base/view/view-registry.js +43 -0
  83. package/lib/base/view/view-registry.js.map +1 -0
  84. package/lib/features/change-bounds/model.d.ts +4 -2
  85. package/lib/features/change-bounds/model.d.ts.map +1 -1
  86. package/lib/features/change-bounds/model.js +21 -32
  87. package/lib/features/change-bounds/model.js.map +1 -1
  88. package/lib/features/change-bounds/movement-restrictor.d.ts +18 -2
  89. package/lib/features/change-bounds/movement-restrictor.d.ts.map +1 -1
  90. package/lib/features/change-bounds/movement-restrictor.js +34 -46
  91. package/lib/features/change-bounds/movement-restrictor.js.map +1 -1
  92. package/lib/features/change-bounds/snap.d.ts +17 -1
  93. package/lib/features/change-bounds/snap.d.ts.map +1 -1
  94. package/lib/features/change-bounds/snap.js +13 -39
  95. package/lib/features/change-bounds/snap.js.map +1 -1
  96. package/lib/features/command-palette/command-palette-tool.d.ts +1 -1
  97. package/lib/features/command-palette/command-palette-tool.d.ts.map +1 -1
  98. package/lib/features/command-palette/command-palette-tool.js +30 -38
  99. package/lib/features/command-palette/command-palette-tool.js.map +1 -1
  100. package/lib/features/command-palette/di.config.d.ts +2 -2
  101. package/lib/features/command-palette/di.config.js +6 -6
  102. package/lib/features/command-palette/di.config.js.map +1 -1
  103. package/lib/features/command-palette/server-command-palette-provider.d.ts +19 -3
  104. package/lib/features/command-palette/server-command-palette-provider.d.ts.map +1 -1
  105. package/lib/features/command-palette/server-command-palette-provider.js +31 -36
  106. package/lib/features/command-palette/server-command-palette-provider.js.map +1 -1
  107. package/lib/features/context-menu/delete-element-context-menu.d.ts +2 -2
  108. package/lib/features/context-menu/delete-element-context-menu.d.ts.map +1 -1
  109. package/lib/features/context-menu/delete-element-context-menu.js +24 -72
  110. package/lib/features/context-menu/delete-element-context-menu.js.map +1 -1
  111. package/lib/features/context-menu/di.config.d.ts +2 -2
  112. package/lib/features/context-menu/di.config.d.ts.map +1 -1
  113. package/lib/features/context-menu/di.config.js +14 -18
  114. package/lib/features/context-menu/di.config.js.map +1 -1
  115. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts +2 -2
  116. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.d.ts.map +1 -1
  117. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js +29 -67
  118. package/lib/features/context-menu/selection-service-aware-context-menu-mouse-listener.js.map +1 -1
  119. package/lib/features/context-menu/server-context-menu-provider.d.ts +19 -3
  120. package/lib/features/context-menu/server-context-menu-provider.d.ts.map +1 -1
  121. package/lib/features/context-menu/server-context-menu-provider.js +31 -32
  122. package/lib/features/context-menu/server-context-menu-provider.js.map +1 -1
  123. package/lib/features/copy-paste/copy-paste-context-menu.d.ts +22 -2
  124. package/lib/features/copy-paste/copy-paste-context-menu.d.ts.map +1 -1
  125. package/lib/features/copy-paste/copy-paste-context-menu.js +99 -72
  126. package/lib/features/copy-paste/copy-paste-context-menu.js.map +1 -1
  127. package/lib/features/copy-paste/copy-paste-handler.d.ts +21 -4
  128. package/lib/features/copy-paste/copy-paste-handler.d.ts.map +1 -1
  129. package/lib/features/copy-paste/copy-paste-handler.js +70 -70
  130. package/lib/features/copy-paste/copy-paste-handler.js.map +1 -1
  131. package/lib/features/copy-paste/di.config.d.ts +2 -2
  132. package/lib/features/copy-paste/di.config.d.ts.map +1 -1
  133. package/lib/features/copy-paste/di.config.js +11 -11
  134. package/lib/features/copy-paste/di.config.js.map +1 -1
  135. package/lib/features/decoration/decoration-placer.d.ts +17 -1
  136. package/lib/features/decoration/decoration-placer.d.ts.map +1 -1
  137. package/lib/features/decoration/decoration-placer.js +14 -47
  138. package/lib/features/decoration/decoration-placer.js.map +1 -1
  139. package/lib/features/decoration/di.config.d.ts +2 -2
  140. package/lib/features/decoration/di.config.d.ts.map +1 -1
  141. package/lib/features/decoration/di.config.js +4 -6
  142. package/lib/features/decoration/di.config.js.map +1 -1
  143. package/lib/features/edit-label/di.config.d.ts +1 -1
  144. package/lib/features/edit-label/di.config.js +7 -7
  145. package/lib/features/edit-label/di.config.js.map +1 -1
  146. package/lib/features/edit-label/edit-label-tool.d.ts +2 -2
  147. package/lib/features/edit-label/edit-label-tool.js +20 -43
  148. package/lib/features/edit-label/edit-label-tool.js.map +1 -1
  149. package/lib/features/edit-label/edit-label-validator.d.ts +18 -3
  150. package/lib/features/edit-label/edit-label-validator.d.ts.map +1 -1
  151. package/lib/features/edit-label/edit-label-validator.js +40 -62
  152. package/lib/features/edit-label/edit-label-validator.js.map +1 -1
  153. package/lib/features/hints/di.config.d.ts +1 -16
  154. package/lib/features/hints/di.config.d.ts.map +1 -1
  155. package/lib/features/hints/di.config.js +9 -9
  156. package/lib/features/hints/di.config.js.map +1 -1
  157. package/lib/features/hints/model.d.ts +3 -2
  158. package/lib/features/hints/model.d.ts.map +1 -1
  159. package/lib/features/hints/model.js +2 -2
  160. package/lib/features/hints/model.js.map +1 -1
  161. package/lib/features/hints/type-hints.d.ts +21 -49
  162. package/lib/features/hints/type-hints.d.ts.map +1 -1
  163. package/lib/features/hints/type-hints.js +83 -142
  164. package/lib/features/hints/type-hints.js.map +1 -1
  165. package/lib/features/hover/di.config.d.ts +2 -2
  166. package/lib/features/hover/di.config.d.ts.map +1 -1
  167. package/lib/features/hover/di.config.js +8 -8
  168. package/lib/features/hover/di.config.js.map +1 -1
  169. package/lib/features/hover/hover.d.ts +18 -2
  170. package/lib/features/hover/hover.d.ts.map +1 -1
  171. package/lib/features/hover/hover.js +37 -75
  172. package/lib/features/hover/hover.js.map +1 -1
  173. package/lib/features/layout/di.config.d.ts +6 -2
  174. package/lib/features/layout/di.config.d.ts.map +1 -1
  175. package/lib/features/layout/di.config.js +47 -7
  176. package/lib/features/layout/di.config.js.map +1 -1
  177. package/lib/features/layout/freeform-layout.d.ts +16 -0
  178. package/lib/features/layout/freeform-layout.d.ts.map +1 -0
  179. package/lib/features/layout/freeform-layout.js +107 -0
  180. package/lib/features/layout/freeform-layout.js.map +1 -0
  181. package/lib/features/layout/layout-commands.d.ts +26 -10
  182. package/lib/features/layout/layout-commands.d.ts.map +1 -1
  183. package/lib/features/layout/layout-commands.js +189 -264
  184. package/lib/features/layout/layout-commands.js.map +1 -1
  185. package/lib/features/layout/layout-commands.spec.d.ts +2 -17
  186. package/lib/features/layout/layout-commands.spec.d.ts.map +1 -1
  187. package/lib/features/layout/layout-commands.spec.js +124 -117
  188. package/lib/features/layout/layout-commands.spec.js.map +1 -1
  189. package/lib/features/layout/vbox-layout.d.ts +25 -0
  190. package/lib/features/layout/vbox-layout.d.ts.map +1 -0
  191. package/lib/features/layout/vbox-layout.js +188 -0
  192. package/lib/features/layout/vbox-layout.js.map +1 -0
  193. package/lib/features/model-source-watcher/di.config.d.ts +1 -16
  194. package/lib/features/model-source-watcher/di.config.d.ts.map +1 -1
  195. package/lib/features/model-source-watcher/di.config.js +7 -7
  196. package/lib/features/model-source-watcher/di.config.js.map +1 -1
  197. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts +17 -2
  198. package/lib/features/model-source-watcher/model-source-changed-action-handler.d.ts.map +1 -1
  199. package/lib/features/model-source-watcher/model-source-changed-action-handler.js +38 -46
  200. package/lib/features/model-source-watcher/model-source-changed-action-handler.js.map +1 -1
  201. package/lib/features/mouse-tool/di.config.d.ts +1 -1
  202. package/lib/features/mouse-tool/di.config.js +5 -5
  203. package/lib/features/mouse-tool/di.config.js.map +1 -1
  204. package/lib/features/mouse-tool/mouse-tool.d.ts +3 -2
  205. package/lib/features/mouse-tool/mouse-tool.d.ts.map +1 -1
  206. package/lib/features/mouse-tool/mouse-tool.js +74 -217
  207. package/lib/features/mouse-tool/mouse-tool.js.map +1 -1
  208. package/lib/features/navigation/di.config.d.ts +1 -16
  209. package/lib/features/navigation/di.config.d.ts.map +1 -1
  210. package/lib/features/navigation/di.config.js +11 -10
  211. package/lib/features/navigation/di.config.js.map +1 -1
  212. package/lib/features/navigation/navigation-action-handler.d.ts +19 -39
  213. package/lib/features/navigation/navigation-action-handler.d.ts.map +1 -1
  214. package/lib/features/navigation/navigation-action-handler.js +118 -255
  215. package/lib/features/navigation/navigation-action-handler.js.map +1 -1
  216. package/lib/features/navigation/navigation-target-resolver.d.ts +18 -40
  217. package/lib/features/navigation/navigation-target-resolver.d.ts.map +1 -1
  218. package/lib/features/navigation/navigation-target-resolver.js +46 -188
  219. package/lib/features/navigation/navigation-target-resolver.js.map +1 -1
  220. package/lib/features/navigation/navigation-target-resolver.spec.d.ts +2 -17
  221. package/lib/features/navigation/navigation-target-resolver.spec.d.ts.map +1 -1
  222. package/lib/features/navigation/navigation-target-resolver.spec.js +27 -26
  223. package/lib/features/navigation/navigation-target-resolver.spec.js.map +1 -1
  224. package/lib/features/rank/model.d.ts +2 -2
  225. package/lib/features/rank/model.d.ts.map +1 -1
  226. package/lib/features/rank/model.js +2 -2
  227. package/lib/features/rank/model.js.map +1 -1
  228. package/lib/features/reconnect/model.d.ts +2 -2
  229. package/lib/features/reconnect/model.d.ts.map +1 -1
  230. package/lib/features/reconnect/model.js +10 -28
  231. package/lib/features/reconnect/model.js.map +1 -1
  232. package/lib/features/save/di.config.d.ts +2 -2
  233. package/lib/features/save/di.config.d.ts.map +1 -1
  234. package/lib/features/save/di.config.js +6 -6
  235. package/lib/features/save/di.config.js.map +1 -1
  236. package/lib/features/save/model.d.ts +1 -1
  237. package/lib/features/save/{save.d.ts → save-keylistener.d.ts} +4 -10
  238. package/lib/features/save/save-keylistener.d.ts.map +1 -0
  239. package/lib/features/{undo-redo/model.d.ts → save/save-keylistener.js} +16 -12
  240. package/lib/features/save/save-keylistener.js.map +1 -0
  241. package/lib/features/select/di.config.d.ts +1 -1
  242. package/lib/features/select/di.config.js +11 -11
  243. package/lib/features/select/di.config.js.map +1 -1
  244. package/lib/features/select/select-feedback-action.d.ts +1 -1
  245. package/lib/features/select/select-feedback-action.d.ts.map +1 -1
  246. package/lib/features/select/select-feedback-action.js +45 -71
  247. package/lib/features/select/select-feedback-action.js.map +1 -1
  248. package/lib/features/select/select-mouse-listener.d.ts +2 -2
  249. package/lib/features/select/select-mouse-listener.js +7 -23
  250. package/lib/features/select/select-mouse-listener.js.map +1 -1
  251. package/lib/features/select/selection-service.d.ts +19 -3
  252. package/lib/features/select/selection-service.d.ts.map +1 -1
  253. package/lib/features/select/selection-service.js +134 -236
  254. package/lib/features/select/selection-service.js.map +1 -1
  255. package/lib/features/select/selection-service.spec.js +96 -138
  256. package/lib/features/select/selection-service.spec.js.map +1 -1
  257. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts +21 -4
  258. package/lib/features/tool-feedback/change-bounds-tool-feedback.d.ts.map +1 -1
  259. package/lib/features/tool-feedback/change-bounds-tool-feedback.js +117 -149
  260. package/lib/features/tool-feedback/change-bounds-tool-feedback.js.map +1 -1
  261. package/lib/features/tool-feedback/creation-tool-feedback.d.ts +19 -2
  262. package/lib/features/tool-feedback/creation-tool-feedback.d.ts.map +1 -1
  263. package/lib/features/tool-feedback/creation-tool-feedback.js +81 -115
  264. package/lib/features/tool-feedback/creation-tool-feedback.js.map +1 -1
  265. package/lib/features/tool-feedback/css-feedback.d.ts +21 -3
  266. package/lib/features/tool-feedback/css-feedback.d.ts.map +1 -1
  267. package/lib/features/tool-feedback/css-feedback.js +37 -81
  268. package/lib/features/tool-feedback/css-feedback.js.map +1 -1
  269. package/lib/features/tool-feedback/di.config.d.ts +2 -2
  270. package/lib/features/tool-feedback/di.config.d.ts.map +1 -1
  271. package/lib/features/tool-feedback/di.config.js +27 -27
  272. package/lib/features/tool-feedback/di.config.js.map +1 -1
  273. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts +21 -4
  274. package/lib/features/tool-feedback/edge-edit-tool-feedback.d.ts.map +1 -1
  275. package/lib/features/tool-feedback/edge-edit-tool-feedback.js +160 -204
  276. package/lib/features/tool-feedback/edge-edit-tool-feedback.js.map +1 -1
  277. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts +19 -3
  278. package/lib/features/tool-feedback/feedback-action-dispatcher.d.ts.map +1 -1
  279. package/lib/features/tool-feedback/feedback-action-dispatcher.js +35 -72
  280. package/lib/features/tool-feedback/feedback-action-dispatcher.js.map +1 -1
  281. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts +18 -2
  282. package/lib/features/tool-feedback/marquee-tool-feedback.d.ts.map +1 -1
  283. package/lib/features/tool-feedback/marquee-tool-feedback.js +44 -86
  284. package/lib/features/tool-feedback/marquee-tool-feedback.js.map +1 -1
  285. package/lib/features/tool-feedback/model.d.ts +2 -2
  286. package/lib/features/tool-feedback/model.js +11 -27
  287. package/lib/features/tool-feedback/model.js.map +1 -1
  288. package/lib/features/tool-feedback/view.d.ts +22 -6
  289. package/lib/features/tool-feedback/view.d.ts.map +1 -1
  290. package/lib/features/tool-feedback/view.js +30 -51
  291. package/lib/features/tool-feedback/view.js.map +1 -1
  292. package/lib/features/tool-palette/di.config.d.ts +2 -2
  293. package/lib/features/tool-palette/di.config.d.ts.map +1 -1
  294. package/lib/features/tool-palette/di.config.js +6 -6
  295. package/lib/features/tool-palette/di.config.js.map +1 -1
  296. package/lib/features/tool-palette/palette-item.d.ts +2 -3
  297. package/lib/features/tool-palette/palette-item.d.ts.map +1 -1
  298. package/lib/features/tool-palette/palette-item.js +6 -6
  299. package/lib/features/tool-palette/palette-item.js.map +1 -1
  300. package/lib/features/tool-palette/tool-palette.d.ts +22 -6
  301. package/lib/features/tool-palette/tool-palette.d.ts.map +1 -1
  302. package/lib/features/tool-palette/tool-palette.js +225 -291
  303. package/lib/features/tool-palette/tool-palette.js.map +1 -1
  304. package/lib/features/tools/base-glsp-tool.d.ts +21 -5
  305. package/lib/features/tools/base-glsp-tool.d.ts.map +1 -1
  306. package/lib/features/tools/base-glsp-tool.js +37 -59
  307. package/lib/features/tools/base-glsp-tool.js.map +1 -1
  308. package/lib/features/tools/change-bounds-tool.d.ts +26 -9
  309. package/lib/features/tools/change-bounds-tool.d.ts.map +1 -1
  310. package/lib/features/tools/change-bounds-tool.js +192 -241
  311. package/lib/features/tools/change-bounds-tool.js.map +1 -1
  312. package/lib/features/tools/delete-tool.d.ts +20 -4
  313. package/lib/features/tools/delete-tool.d.ts.map +1 -1
  314. package/lib/features/tools/delete-tool.js +71 -104
  315. package/lib/features/tools/delete-tool.js.map +1 -1
  316. package/lib/features/tools/di.config.d.ts +1 -16
  317. package/lib/features/tools/di.config.d.ts.map +1 -1
  318. package/lib/features/tools/di.config.js +19 -19
  319. package/lib/features/tools/di.config.js.map +1 -1
  320. package/lib/features/tools/edge-creation-tool.d.ts +20 -5
  321. package/lib/features/tools/edge-creation-tool.d.ts.map +1 -1
  322. package/lib/features/tools/edge-creation-tool.js +64 -89
  323. package/lib/features/tools/edge-creation-tool.js.map +1 -1
  324. package/lib/features/tools/edge-edit-tool.d.ts +22 -6
  325. package/lib/features/tools/edge-edit-tool.d.ts.map +1 -1
  326. package/lib/features/tools/edge-edit-tool.js +125 -189
  327. package/lib/features/tools/edge-edit-tool.js.map +1 -1
  328. package/lib/features/tools/marquee-behavior.d.ts +42 -0
  329. package/lib/features/tools/marquee-behavior.d.ts.map +1 -0
  330. package/lib/features/tools/marquee-behavior.js +128 -0
  331. package/lib/features/tools/marquee-behavior.js.map +1 -0
  332. package/{src/features/undo-redo/model.ts → lib/features/tools/marquee-behavior.spec.d.ts} +3 -12
  333. package/lib/features/tools/marquee-behavior.spec.d.ts.map +1 -0
  334. package/lib/features/tools/marquee-behavior.spec.js +165 -0
  335. package/lib/features/tools/marquee-behavior.spec.js.map +1 -0
  336. package/lib/features/tools/marquee-mouse-tool.d.ts +27 -15
  337. package/lib/features/tools/marquee-mouse-tool.d.ts.map +1 -1
  338. package/lib/features/tools/marquee-mouse-tool.js +90 -184
  339. package/lib/features/tools/marquee-mouse-tool.js.map +1 -1
  340. package/lib/features/tools/marquee-tool.d.ts +18 -2
  341. package/lib/features/tools/marquee-tool.d.ts.map +1 -1
  342. package/lib/features/tools/marquee-tool.js +32 -73
  343. package/lib/features/tools/marquee-tool.js.map +1 -1
  344. package/lib/features/tools/model.d.ts +1 -1
  345. package/lib/features/tools/model.d.ts.map +1 -1
  346. package/lib/features/tools/model.js +6 -24
  347. package/lib/features/tools/model.js.map +1 -1
  348. package/lib/features/tools/node-creation-tool.d.ts +20 -5
  349. package/lib/features/tools/node-creation-tool.d.ts.map +1 -1
  350. package/lib/features/tools/node-creation-tool.js +60 -90
  351. package/lib/features/tools/node-creation-tool.js.map +1 -1
  352. package/lib/features/tools/view.d.ts +3 -18
  353. package/lib/features/tools/view.d.ts.map +1 -1
  354. package/lib/features/tools/view.js +21 -39
  355. package/lib/features/tools/view.js.map +1 -1
  356. package/lib/features/validation/di.config.d.ts +1 -1
  357. package/lib/features/validation/di.config.js +12 -12
  358. package/lib/features/validation/di.config.js.map +1 -1
  359. package/lib/features/validation/issue-marker.d.ts +3 -3
  360. package/lib/features/validation/issue-marker.d.ts.map +1 -1
  361. package/lib/features/validation/issue-marker.js +18 -56
  362. package/lib/features/validation/issue-marker.js.map +1 -1
  363. package/lib/features/validation/marker-navigator.d.ts +19 -3
  364. package/lib/features/validation/marker-navigator.d.ts.map +1 -1
  365. package/lib/features/validation/marker-navigator.js +131 -164
  366. package/lib/features/validation/marker-navigator.js.map +1 -1
  367. package/lib/features/validation/marker-navigator.spec.d.ts +2 -17
  368. package/lib/features/validation/marker-navigator.spec.d.ts.map +1 -1
  369. package/lib/features/validation/marker-navigator.spec.js +84 -77
  370. package/lib/features/validation/marker-navigator.spec.js.map +1 -1
  371. package/lib/features/validation/validate.d.ts +20 -31
  372. package/lib/features/validation/validate.d.ts.map +1 -1
  373. package/lib/features/validation/validate.js +148 -299
  374. package/lib/features/validation/validate.js.map +1 -1
  375. package/lib/features/viewport/di.config.d.ts +16 -1
  376. package/lib/features/viewport/di.config.d.ts.map +1 -1
  377. package/lib/features/viewport/di.config.js +10 -10
  378. package/lib/features/viewport/di.config.js.map +1 -1
  379. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts +3 -2
  380. package/lib/features/viewport/glsp-scroll-mouse-listener.d.ts.map +1 -1
  381. package/lib/features/viewport/glsp-scroll-mouse-listener.js +16 -47
  382. package/lib/features/viewport/glsp-scroll-mouse-listener.js.map +1 -1
  383. package/lib/index.d.ts +32 -35
  384. package/lib/index.d.ts.map +1 -1
  385. package/lib/index.js +33 -35
  386. package/lib/index.js.map +1 -1
  387. package/lib/lib/model.d.ts +3 -3
  388. package/lib/lib/model.d.ts.map +1 -1
  389. package/lib/lib/model.js +11 -27
  390. package/lib/lib/model.js.map +1 -1
  391. package/lib/model-source/glsp-diagram-server.d.ts +4 -6
  392. package/lib/model-source/glsp-diagram-server.d.ts.map +1 -1
  393. package/lib/model-source/glsp-diagram-server.js +63 -122
  394. package/lib/model-source/glsp-diagram-server.js.map +1 -1
  395. package/lib/protocol-reexport.d.ts +45 -0
  396. package/lib/protocol-reexport.d.ts.map +1 -0
  397. package/lib/protocol-reexport.js +75 -0
  398. package/lib/protocol-reexport.js.map +1 -0
  399. package/lib/utils/argument-utils.d.ts +50 -0
  400. package/lib/utils/argument-utils.d.ts.map +1 -0
  401. package/lib/utils/argument-utils.js +110 -0
  402. package/lib/utils/argument-utils.js.map +1 -0
  403. package/lib/utils/html-utils.js +2 -2
  404. package/lib/utils/html-utils.js.map +1 -1
  405. package/lib/utils/layout-utils.d.ts +4 -3
  406. package/lib/utils/layout-utils.d.ts.map +1 -1
  407. package/lib/utils/layout-utils.js +5 -5
  408. package/lib/utils/layout-utils.js.map +1 -1
  409. package/lib/utils/marker.d.ts +1 -39
  410. package/lib/utils/marker.d.ts.map +1 -1
  411. package/lib/utils/marker.js +14 -61
  412. package/lib/utils/marker.js.map +1 -1
  413. package/lib/utils/smodel-util.d.ts +7 -17
  414. package/lib/utils/smodel-util.d.ts.map +1 -1
  415. package/lib/utils/smodel-util.js +18 -67
  416. package/lib/utils/smodel-util.js.map +1 -1
  417. package/lib/utils/viewpoint-util.d.ts +3 -2
  418. package/lib/utils/viewpoint-util.d.ts.map +1 -1
  419. package/lib/utils/viewpoint-util.js +15 -30
  420. package/lib/utils/viewpoint-util.js.map +1 -1
  421. package/lib/views/base-view-module.d.ts +9 -0
  422. package/lib/views/base-view-module.d.ts.map +1 -0
  423. package/lib/views/base-view-module.js +59 -0
  424. package/lib/views/base-view-module.js.map +1 -0
  425. package/lib/views/compartments.d.ts +6 -0
  426. package/lib/views/compartments.d.ts.map +1 -0
  427. package/lib/views/compartments.js +43 -0
  428. package/lib/views/compartments.js.map +1 -0
  429. package/lib/views/glsp-edge-view.d.ts +27 -0
  430. package/lib/views/glsp-edge-view.d.ts.map +1 -0
  431. package/lib/views/glsp-edge-view.js +55 -0
  432. package/lib/views/glsp-edge-view.js.map +1 -0
  433. package/lib/{features/model-source-watcher/model-source-changed-action.d.ts → views/index.d.ts} +8 -10
  434. package/lib/views/index.d.ts.map +1 -0
  435. package/lib/views/index.js +34 -0
  436. package/lib/views/index.js.map +1 -0
  437. package/lib/views/issue-marker-view.d.ts +9 -0
  438. package/lib/views/issue-marker-view.d.ts.map +1 -0
  439. package/lib/views/issue-marker-view.js +68 -0
  440. package/lib/views/issue-marker-view.js.map +1 -0
  441. package/lib/views/rounded-corner-view.d.ts +13 -0
  442. package/lib/views/rounded-corner-view.d.ts.map +1 -0
  443. package/lib/views/rounded-corner-view.js +82 -0
  444. package/lib/views/rounded-corner-view.js.map +1 -0
  445. package/lib/views/rounded-corner.d.ts +38 -0
  446. package/lib/views/rounded-corner.d.ts.map +1 -0
  447. package/lib/views/rounded-corner.js +62 -0
  448. package/lib/views/rounded-corner.js.map +1 -0
  449. package/package.json +24 -32
  450. package/src/base/action-dispatcher.ts +7 -8
  451. package/src/base/actions/focus-change-action.ts +2 -2
  452. package/src/base/{args.ts → argumentable.ts} +3 -4
  453. package/src/base/auto-complete/auto-complete-actions.ts +2 -2
  454. package/src/base/auto-complete/auto-complete-widget.ts +66 -48
  455. package/src/base/auto-complete/validation-decorator.ts +21 -15
  456. package/src/base/command-stack.ts +4 -7
  457. package/src/base/container-modules.ts +112 -0
  458. package/src/base/di.config.ts +44 -27
  459. package/src/base/drag-aware-mouse-listener.ts +7 -8
  460. package/src/base/{editor-context.ts → editor-context-service.ts} +13 -40
  461. package/src/base/focus-tracker.ts +4 -6
  462. package/src/base/model/model-registry.ts +31 -0
  463. package/src/base/model/update-model-command.ts +14 -22
  464. package/src/base/model-initialization-constraint.ts +16 -11
  465. package/src/base/selection-clearing-mouse-listener.ts +4 -3
  466. package/src/base/tool-manager/glsp-tool-manager.ts +12 -14
  467. package/src/base/types.ts +23 -21
  468. package/src/{features/model-source-watcher/model-source-changed-action.ts → base/view/view-registry.ts} +15 -10
  469. package/src/features/change-bounds/model.ts +23 -13
  470. package/src/features/change-bounds/movement-restrictor.ts +28 -18
  471. package/src/features/change-bounds/snap.ts +6 -5
  472. package/src/features/command-palette/command-palette-tool.ts +4 -4
  473. package/src/features/command-palette/di.config.ts +7 -7
  474. package/src/features/command-palette/server-command-palette-provider.ts +16 -14
  475. package/src/features/context-menu/delete-element-context-menu.ts +10 -11
  476. package/src/features/context-menu/di.config.ts +10 -12
  477. package/src/features/context-menu/selection-service-aware-context-menu-mouse-listener.ts +8 -7
  478. package/src/features/context-menu/server-context-menu-provider.ts +13 -10
  479. package/src/features/copy-paste/copy-paste-context-menu.ts +66 -37
  480. package/src/features/copy-paste/copy-paste-handler.ts +30 -20
  481. package/src/features/copy-paste/di.config.ts +6 -7
  482. package/src/features/decoration/decoration-placer.ts +6 -15
  483. package/src/features/decoration/di.config.ts +4 -6
  484. package/src/features/edit-label/di.config.ts +5 -5
  485. package/src/features/edit-label/edit-label-tool.ts +4 -4
  486. package/src/features/edit-label/edit-label-validator.ts +18 -19
  487. package/src/features/hints/di.config.ts +6 -7
  488. package/src/features/hints/model.ts +7 -6
  489. package/src/features/hints/type-hints.ts +46 -113
  490. package/src/features/hover/di.config.ts +6 -7
  491. package/src/features/hover/hover.ts +11 -14
  492. package/src/features/layout/di.config.ts +32 -6
  493. package/src/features/layout/freeform-layout.ts +133 -0
  494. package/src/features/layout/layout-commands.spec.ts +104 -85
  495. package/src/features/layout/layout-commands.ts +65 -54
  496. package/src/features/layout/vbox-layout.ts +256 -0
  497. package/src/features/model-source-watcher/di.config.ts +5 -6
  498. package/src/features/model-source-watcher/model-source-changed-action-handler.ts +16 -12
  499. package/src/features/mouse-tool/di.config.ts +4 -4
  500. package/src/features/mouse-tool/mouse-tool.ts +44 -32
  501. package/src/features/navigation/di.config.ts +6 -12
  502. package/src/features/navigation/navigation-action-handler.ts +46 -78
  503. package/src/features/navigation/navigation-target-resolver.spec.ts +6 -9
  504. package/src/features/navigation/navigation-target-resolver.ts +16 -94
  505. package/src/features/rank/model.ts +3 -3
  506. package/src/features/reconnect/model.ts +9 -11
  507. package/src/features/save/di.config.ts +4 -5
  508. package/src/features/save/model.ts +1 -1
  509. package/src/features/save/{save.ts → save-keylistener.ts} +4 -12
  510. package/src/features/select/di.config.ts +6 -6
  511. package/src/features/select/select-feedback-action.ts +6 -8
  512. package/src/features/select/select-mouse-listener.ts +2 -2
  513. package/src/features/select/selection-service.spec.ts +25 -19
  514. package/src/features/select/selection-service.ts +25 -22
  515. package/src/features/tool-feedback/change-bounds-tool-feedback.ts +56 -39
  516. package/src/features/tool-feedback/creation-tool-feedback.ts +49 -24
  517. package/src/features/tool-feedback/css-feedback.ts +16 -13
  518. package/src/features/tool-feedback/di.config.ts +12 -15
  519. package/src/features/tool-feedback/edge-edit-tool-feedback.ts +56 -35
  520. package/src/features/tool-feedback/feedback-action-dispatcher.ts +13 -14
  521. package/src/features/tool-feedback/marquee-tool-feedback.ts +12 -12
  522. package/src/features/tool-feedback/model.ts +2 -3
  523. package/src/features/tool-feedback/view.tsx +20 -13
  524. package/src/features/tool-palette/di.config.ts +5 -7
  525. package/src/features/tool-palette/palette-item.ts +5 -7
  526. package/src/features/tool-palette/tool-palette.ts +118 -110
  527. package/src/features/tools/base-glsp-tool.ts +12 -12
  528. package/src/features/tools/change-bounds-tool.ts +83 -53
  529. package/src/features/tools/delete-tool.ts +23 -20
  530. package/src/features/tools/di.config.ts +16 -17
  531. package/src/features/tools/edge-creation-tool.ts +20 -25
  532. package/src/features/tools/edge-edit-tool.ts +43 -46
  533. package/src/features/tools/marquee-behavior.spec.ts +175 -0
  534. package/src/features/tools/marquee-behavior.ts +158 -0
  535. package/src/features/tools/marquee-mouse-tool.ts +67 -118
  536. package/src/features/tools/marquee-tool.ts +6 -6
  537. package/src/features/tools/model.ts +1 -2
  538. package/src/features/tools/node-creation-tool.ts +16 -23
  539. package/src/features/tools/view.tsx +21 -15
  540. package/src/features/validation/di.config.ts +5 -5
  541. package/src/features/validation/issue-marker.ts +4 -5
  542. package/src/features/validation/marker-navigator.spec.ts +38 -33
  543. package/src/features/validation/marker-navigator.ts +39 -26
  544. package/src/features/validation/validate.ts +25 -59
  545. package/src/features/viewport/di.config.ts +4 -4
  546. package/src/features/viewport/glsp-scroll-mouse-listener.ts +5 -5
  547. package/src/index.ts +53 -38
  548. package/src/lib/model.ts +4 -4
  549. package/src/model-source/glsp-diagram-server.ts +19 -33
  550. package/src/protocol-reexport.ts +64 -0
  551. package/src/utils/argument-utils.ts +130 -0
  552. package/src/utils/layout-utils.ts +19 -11
  553. package/src/utils/marker.ts +8 -32
  554. package/src/utils/smodel-util.ts +28 -22
  555. package/src/utils/viewpoint-util.ts +5 -6
  556. package/src/views/base-view-module.ts +97 -0
  557. package/src/views/compartments.tsx +37 -0
  558. package/src/views/glsp-edge-view.tsx +79 -0
  559. package/src/views/index.ts +21 -0
  560. package/src/views/issue-marker-view.tsx +65 -0
  561. package/src/views/rounded-corner-view.tsx +103 -0
  562. package/src/views/rounded-corner.ts +87 -0
  563. package/lib/base/actions/context-actions.d.ts +0 -36
  564. package/lib/base/actions/context-actions.d.ts.map +0 -1
  565. package/lib/base/actions/context-actions.js +0 -51
  566. package/lib/base/actions/context-actions.js.map +0 -1
  567. package/lib/base/actions/edit-mode-action.d.ts +0 -13
  568. package/lib/base/actions/edit-mode-action.d.ts.map +0 -1
  569. package/lib/base/actions/edit-mode-action.js +0 -56
  570. package/lib/base/actions/edit-mode-action.js.map +0 -1
  571. package/lib/base/actions/edit-validation-actions.d.ts +0 -78
  572. package/lib/base/actions/edit-validation-actions.d.ts.map +0 -1
  573. package/lib/base/actions/edit-validation-actions.js +0 -82
  574. package/lib/base/actions/edit-validation-actions.js.map +0 -1
  575. package/lib/base/actions/protocol-actions.d.ts +0 -41
  576. package/lib/base/actions/protocol-actions.d.ts.map +0 -1
  577. package/lib/base/actions/protocol-actions.js +0 -151
  578. package/lib/base/actions/protocol-actions.js.map +0 -1
  579. package/lib/base/args.d.ts.map +0 -1
  580. package/lib/base/args.js.map +0 -1
  581. package/lib/base/editor-context.d.ts +0 -46
  582. package/lib/base/editor-context.d.ts.map +0 -1
  583. package/lib/base/editor-context.js +0 -174
  584. package/lib/base/editor-context.js.map +0 -1
  585. package/lib/base/operations/operation.d.ts +0 -135
  586. package/lib/base/operations/operation.d.ts.map +0 -1
  587. package/lib/base/operations/operation.js +0 -231
  588. package/lib/base/operations/operation.js.map +0 -1
  589. package/lib/features/copy-paste/copy-paste-actions.d.ts +0 -50
  590. package/lib/features/copy-paste/copy-paste-actions.d.ts.map +0 -1
  591. package/lib/features/copy-paste/copy-paste-actions.js +0 -68
  592. package/lib/features/copy-paste/copy-paste-actions.js.map +0 -1
  593. package/lib/features/decoration/view.d.ts +0 -8
  594. package/lib/features/decoration/view.d.ts.map +0 -1
  595. package/lib/features/decoration/view.js +0 -80
  596. package/lib/features/decoration/view.js.map +0 -1
  597. package/lib/features/hints/request-type-hints-action.d.ts +0 -32
  598. package/lib/features/hints/request-type-hints-action.d.ts.map +0 -1
  599. package/lib/features/hints/request-type-hints-action.js +0 -30
  600. package/lib/features/hints/request-type-hints-action.js.map +0 -1
  601. package/lib/features/model-source-watcher/model-source-changed-action.d.ts.map +0 -1
  602. package/lib/features/model-source-watcher/model-source-changed-action.js +0 -17
  603. package/lib/features/model-source-watcher/model-source-changed-action.js.map +0 -1
  604. package/lib/features/save/save.d.ts.map +0 -1
  605. package/lib/features/save/save.js +0 -62
  606. package/lib/features/save/save.js.map +0 -1
  607. package/lib/features/undo-redo/model.d.ts.map +0 -1
  608. package/lib/features/undo-redo/model.js +0 -22
  609. package/lib/features/undo-redo/model.js.map +0 -1
  610. package/lib/model-source/glsp-server-status.d.ts +0 -30
  611. package/lib/model-source/glsp-server-status.d.ts.map +0 -1
  612. package/lib/model-source/glsp-server-status.js +0 -61
  613. package/lib/model-source/glsp-server-status.js.map +0 -1
  614. package/lib/utils/array-utils.d.ts +0 -28
  615. package/lib/utils/array-utils.d.ts.map +0 -1
  616. package/lib/utils/array-utils.js +0 -61
  617. package/lib/utils/array-utils.js.map +0 -1
  618. package/src/base/actions/context-actions.ts +0 -43
  619. package/src/base/actions/edit-mode-action.ts +0 -33
  620. package/src/base/actions/edit-validation-actions.ts +0 -102
  621. package/src/base/actions/protocol-actions.ts +0 -82
  622. package/src/base/operations/operation.ts +0 -178
  623. package/src/features/copy-paste/copy-paste-actions.ts +0 -60
  624. package/src/features/decoration/view.tsx +0 -54
  625. package/src/features/hints/request-type-hints-action.ts +0 -36
  626. package/src/model-source/glsp-server-status.ts +0 -38
  627. package/src/utils/array-utils.ts +0 -55
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,38 +13,37 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import "../../css/glsp-sprotty.css";
17
-
18
- import { ContainerModule } from "inversify";
19
- import { configureActionHandler, configureCommand, SetModelCommand, TYPES } from "sprotty";
20
-
21
- import { GLSPActionDispatcher } from "./action-dispatcher";
22
- import { SetEditModeAction } from "./actions/edit-mode-action";
23
- import { FocusStateChangedAction } from "./actions/focus-change-action";
24
- import { ConfigureServerHandlersAction, ConfigureServerHandlersActionHandler } from "./actions/protocol-actions";
25
- import { GLSPCommandStack } from "./command-stack";
26
- import { EditorContextService } from "./editor-context";
27
- import { FocusTracker } from "./focus-tracker";
28
- import { DefaultModelInitializationConstraint, ModelInitializationConstraint } from "./model-initialization-constraint";
29
- import { FeedbackAwareUpdateModelCommand, SetModelActionHandler } from "./model/update-model-command";
30
- import { SelectionClearingMouseListener } from "./selection-clearing-mouse-listener";
31
- import { GLSPToolManager } from "./tool-manager/glsp-tool-manager";
32
- import { GLSP_TYPES } from "./types";
16
+ import { InitializeResult, SetEditModeAction } from '@eclipse-glsp/protocol';
17
+ import '@vscode/codicons/dist/codicon.css';
18
+ import { Container, ContainerModule } from 'inversify';
19
+ import { ActionHandlerRegistry, configureActionHandler, configureCommand, ModelSource, SetModelCommand, TYPES } from 'sprotty';
20
+ import '../../css/glsp-sprotty.css';
21
+ import { GLSPActionDispatcher } from './action-dispatcher';
22
+ import { FocusStateChangedAction } from './actions/focus-change-action';
23
+ import { GLSPCommandStack } from './command-stack';
24
+ import { EditorContextService } from './editor-context-service';
25
+ import { FocusTracker } from './focus-tracker';
26
+ import { DefaultModelInitializationConstraint, ModelInitializationConstraint } from './model-initialization-constraint';
27
+ import { GLSPModelRegistry } from './model/model-registry';
28
+ import { FeedbackAwareUpdateModelCommand, SetModelActionHandler } from './model/update-model-command';
29
+ import { SelectionClearingMouseListener } from './selection-clearing-mouse-listener';
30
+ import { GLSPToolManager } from './tool-manager/glsp-tool-manager';
31
+ import { GLSP_TYPES } from './types';
32
+ import { GLSPViewRegistry } from './view/view-registry';
33
33
 
34
34
  const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) => {
35
35
  const context = { bind, _unbind, isBound, rebind };
36
36
  bind(EditorContextService).toSelf().inSingletonScope();
37
- bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(ctx => {
38
- return () => {
39
- return new Promise<EditorContextService>((resolve, reject) => {
37
+ bind(GLSP_TYPES.IEditorContextServiceProvider).toProvider<EditorContextService>(
38
+ ctx => () =>
39
+ new Promise<EditorContextService>((resolve, reject) => {
40
40
  if (ctx.container.isBound(EditorContextService)) {
41
41
  resolve(ctx.container.get<EditorContextService>(EditorContextService));
42
42
  } else {
43
43
  reject();
44
44
  }
45
- });
46
- };
47
- });
45
+ })
46
+ );
48
47
 
49
48
  configureActionHandler(context, SetEditModeAction.KIND, EditorContextService);
50
49
 
@@ -55,9 +54,6 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
55
54
  configureCommand(context, FeedbackAwareUpdateModelCommand);
56
55
  configureActionHandler(context, SetModelCommand.KIND, SetModelActionHandler);
57
56
 
58
- // Dynamically register all server-side action/operation handlers
59
- configureActionHandler(context, ConfigureServerHandlersAction.KIND, ConfigureServerHandlersActionHandler);
60
-
61
57
  bind(TYPES.MouseListener).to(SelectionClearingMouseListener);
62
58
 
63
59
  rebind(TYPES.ICommandStack).to(GLSPCommandStack);
@@ -68,6 +64,27 @@ const defaultGLSPModule = new ContainerModule((bind, _unbind, isBound, rebind) =
68
64
  rebind(TYPES.IActionDispatcher).toService(GLSPActionDispatcher);
69
65
 
70
66
  bind(ModelInitializationConstraint).to(DefaultModelInitializationConstraint).inSingletonScope();
67
+
68
+ // support re-registration of model elements and views
69
+ rebind(TYPES.SModelRegistry).to(GLSPModelRegistry).inSingletonScope();
70
+ rebind(TYPES.ViewRegistry).to(GLSPViewRegistry).inSingletonScope();
71
71
  });
72
72
 
73
73
  export default defaultGLSPModule;
74
+
75
+ /**
76
+ * Utility function to configure the {@link ModelSource}, i.e. the `DiagramServer`, as action handler for all server actions for the given
77
+ * diagramType.
78
+ * @param result A promise that resolves after all server actions have been registered.
79
+ * @param diagramType The diagram type.
80
+ * @param container The di container.
81
+ */
82
+ export async function configureServerActions(result: InitializeResult, diagramType: string, container: Container): Promise<void> {
83
+ const modelSource = container.get<ModelSource>(TYPES.ModelSource);
84
+ const actionHandlerRegistry = container.get<ActionHandlerRegistry>(ActionHandlerRegistry);
85
+ const serverActions = result.serverActions[diagramType];
86
+ if (serverActions.length === 0) {
87
+ throw new Error(`No server-handled actions could be derived from the initialize result for diagramType: ${diagramType}!`);
88
+ }
89
+ serverActions.forEach(actionKind => actionHandlerRegistry.register(actionKind, modelSource));
90
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,7 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action, MouseListener, SModelElement } from "sprotty";
16
+ import { Action } from '@eclipse-glsp/protocol';
17
+ import { MouseListener, SModelElement } from 'sprotty';
17
18
 
18
19
  /**
19
20
  * A mouse listener that is aware of prior mouse dragging.
@@ -24,9 +25,8 @@ import { Action, MouseListener, SModelElement } from "sprotty";
24
25
  * of mouse up events.
25
26
  */
26
27
  export class DragAwareMouseListener extends MouseListener {
27
-
28
- private _isMouseDown: boolean = false;
29
- private _isMouseDrag: boolean = false;
28
+ private _isMouseDown = false;
29
+ private _isMouseDrag = false;
30
30
 
31
31
  mouseDown(target: SModelElement, event: MouseEvent): Action[] {
32
32
  this._isMouseDown = true;
@@ -58,12 +58,11 @@ export class DragAwareMouseListener extends MouseListener {
58
58
  return [];
59
59
  }
60
60
 
61
- get isMouseDrag() {
61
+ get isMouseDrag(): boolean {
62
62
  return this._isMouseDrag;
63
63
  }
64
64
 
65
- get isMouseDown() {
65
+ get isMouseDown(): boolean {
66
66
  return this._isMouseDown;
67
67
  }
68
-
69
68
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,37 +13,12 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, multiInject, optional } from "inversify";
17
- import { Action, IActionHandler, ModelSource, MousePositionTracker, Point, SModelElement, SModelRoot, TYPES } from "sprotty";
18
-
19
- import { SelectionService } from "../features/select/selection-service";
20
- import { distinctAdd, remove } from "../utils/array-utils";
21
- import { EditMode, isSetEditModeAction } from "./actions/edit-mode-action";
22
- import { Args } from "./args";
23
- import { isSourceUriAware } from "./source-uri-aware";
24
- import { GLSP_TYPES } from "./types";
25
-
26
- /**
27
- * The `EditorContext` may be used to represent the current state of the editor for particular actions.
28
- * It encompasses the last recorded mouse position, the list of selected elements, and may contain
29
- * custom arguments to encode additional state information.
30
- */
31
- export interface EditorContext {
32
- /**
33
- * The list of selected element identifiers.
34
- */
35
- readonly selectedElementIds: string[];
36
-
37
- /**
38
- * The last recorded mouse position.
39
- */
40
- readonly lastMousePosition?: Point;
41
-
42
- /**
43
- * Custom arguments.
44
- */
45
- readonly args?: Args;
46
- }
16
+ import { Action, Args, distinctAdd, EditMode, EditorContext, isSetEditModeAction, remove } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, multiInject, optional } from 'inversify';
18
+ import { IActionHandler, ModelSource, MousePositionTracker, SModelElement, SModelRoot, TYPES } from 'sprotty';
19
+ import { SelectionService } from '../features/select/selection-service';
20
+ import { isSourceUriAware } from './source-uri-aware';
21
+ import { GLSP_TYPES } from './types';
47
22
 
48
23
  export interface EditModeListener {
49
24
  editModeChanged(newValue: string, oldvalue: string): void;
@@ -51,19 +26,18 @@ export interface EditModeListener {
51
26
 
52
27
  @injectable()
53
28
  export class EditorContextService implements IActionHandler {
54
-
55
29
  @inject(GLSP_TYPES.SelectionService) protected selectionService: SelectionService;
56
30
  @inject(MousePositionTracker) protected mousePositionTracker: MousePositionTracker;
57
31
  @inject(TYPES.ModelSourceProvider) protected modelSource: () => Promise<ModelSource>;
58
32
  protected _editMode: string;
59
33
 
60
- constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) { }
34
+ constructor(@multiInject(GLSP_TYPES.IEditModeListener) @optional() protected editModeListeners: EditModeListener[] = []) {}
61
35
 
62
- register(editModeListener: EditModeListener) {
36
+ register(editModeListener: EditModeListener): void {
63
37
  distinctAdd(this.editModeListeners, editModeListener);
64
38
  }
65
39
 
66
- deregister(editModeListener: EditModeListener) {
40
+ deregister(editModeListener: EditModeListener): void {
67
41
  remove(this.editModeListeners, editModeListener);
68
42
  }
69
43
 
@@ -83,7 +57,7 @@ export class EditorContextService implements IActionHandler {
83
57
  };
84
58
  }
85
59
 
86
- handle(action: Action) {
60
+ handle(action: Action): void {
87
61
  if (isSetEditModeAction(action)) {
88
62
  const oldValue = this._editMode;
89
63
  this._editMode = action.editMode;
@@ -91,11 +65,11 @@ export class EditorContextService implements IActionHandler {
91
65
  }
92
66
  }
93
67
 
94
- protected notifiyEditModeListeners(oldValue: string) {
68
+ protected notifiyEditModeListeners(oldValue: string): void {
95
69
  this.editModeListeners.forEach(listener => listener.editModeChanged(oldValue, this.editMode));
96
70
  }
97
71
 
98
- async getSourceUri() {
72
+ async getSourceUri(): Promise<string | undefined> {
99
73
  const modelSource = await this.modelSource();
100
74
  if (isSourceUriAware(modelSource)) {
101
75
  return modelSource.getSourceURI();
@@ -121,4 +95,3 @@ export class EditorContextService implements IActionHandler {
121
95
  }
122
96
 
123
97
  export type EditorContextServiceProvider = () => Promise<EditorContextService>;
124
-
@@ -13,14 +13,13 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable } from "inversify";
17
- import { Action, IActionHandler, ICommand, TYPES, ViewerOptions } from "sprotty";
18
-
19
- import { isFocusStateChangedAction } from "./actions/focus-change-action";
16
+ import { Action } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable } from 'inversify';
18
+ import { IActionHandler, ICommand, TYPES, ViewerOptions } from 'sprotty';
19
+ import { isFocusStateChangedAction } from './actions/focus-change-action';
20
20
 
21
21
  @injectable()
22
22
  export class FocusTracker implements IActionHandler {
23
-
24
23
  protected inActiveCssClass = 'inactive';
25
24
  protected _hasFocus = true;
26
25
 
@@ -46,5 +45,4 @@ export class FocusTracker implements IActionHandler {
46
45
  }
47
46
  }
48
47
  }
49
-
50
48
  }
@@ -0,0 +1,31 @@
1
+ /********************************************************************************
2
+ * Copyright (c) 2021 EclipseSource and others.
3
+ *
4
+ * This program and the accompanying materials are made available under the
5
+ * terms of the Eclipse Public License v. 2.0 which is available at
6
+ * http://www.eclipse.org/legal/epl-2.0.
7
+ *
8
+ * This Source Code may also be made available under the following Secondary
9
+ * Licenses when the conditions for such availability set forth in the Eclipse
10
+ * Public License v. 2.0 are satisfied: GNU General Public License, version 2
11
+ * with the GNU Classpath Exception which is available at
12
+ * https://www.gnu.org/software/classpath/license.html.
13
+ *
14
+ * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
+ ********************************************************************************/
16
+ import { injectable } from 'inversify';
17
+ import { SModelElement, SModelRegistry } from 'sprotty';
18
+
19
+ @injectable()
20
+ export class GLSPModelRegistry extends SModelRegistry {
21
+ register(key: string, factory: (u: void) => SModelElement): void {
22
+ if (key === undefined) {
23
+ throw new Error('Key is undefined');
24
+ }
25
+ if (this.hasKey(key)) {
26
+ // do not throw error but log overwriting
27
+ console.log(`Factory for model element '${key}' will be overwritten.`);
28
+ }
29
+ this.elements.set(key, factory);
30
+ }
31
+ }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,9 +13,9 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, multiInject, optional, postConstruct } from "inversify";
16
+ import { Action, isSetModelAction, UpdateModelAction } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
17
18
  import {
18
- Action,
19
19
  ActionHandlerRegistry,
20
20
  Command,
21
21
  CommandActionHandler,
@@ -23,19 +23,16 @@ import {
23
23
  CommandReturn,
24
24
  IActionHandler,
25
25
  ILogger,
26
- SetModelAction,
27
- SetModelCommand,
28
26
  SModelRoot,
29
- TYPES
30
- } from "sprotty";
31
- import { UpdateModelAction, UpdateModelCommand } from "sprotty/lib/features/update/update-model";
32
-
33
- import { IFeedbackActionDispatcher } from "../../features/tool-feedback/feedback-action-dispatcher";
34
- import { FeedbackCommand } from "../../features/tool-feedback/model";
35
- import { GLSP_TYPES } from "../types";
27
+ TYPES,
28
+ UpdateModelCommand
29
+ } from 'sprotty';
30
+ import { IFeedbackActionDispatcher } from '../../features/tool-feedback/feedback-action-dispatcher';
31
+ import { FeedbackCommand } from '../../features/tool-feedback/model';
32
+ import { GLSP_TYPES } from '../types';
36
33
 
37
34
  /* ActionHandler that transforms a SetModelAction into an (feedback-aware) UpdateModelAction. This can be done because in sprotty
38
- * UpdateModel behaves the same as SetModel if no model is present yet.*/
35
+ * UpdateModel behaves the same as SetModel if no model is present yet.*/
39
36
  @injectable()
40
37
  export class SetModelActionHandler implements IActionHandler {
41
38
  handle(action: Action): Action | void {
@@ -45,18 +42,13 @@ export class SetModelActionHandler implements IActionHandler {
45
42
  }
46
43
  }
47
44
 
48
- export function isSetModelAction(action: Action): action is SetModelAction {
49
- return action !== undefined && (action.kind === SetModelCommand.KIND)
50
- && (<SetModelAction>action).newRoot !== undefined;
51
- }
52
-
53
45
  export interface SModelRootListener {
54
- modelRootChanged(root: Readonly<SModelRoot>): void
46
+ modelRootChanged(root: Readonly<SModelRoot>): void;
55
47
  }
56
48
 
57
49
  /**
58
- * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their feedback
59
- * to the `newRoot` before performing the update
50
+ * A special`UpdateModelCommand` that retrieves all registered `actions` from the `IFeedbackActionDispatcher` (if present) and applies their
51
+ * feedback to the `newRoot` before performing the update
60
52
  */
61
53
  @injectable()
62
54
  export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
@@ -73,7 +65,7 @@ export class FeedbackAwareUpdateModelCommand extends UpdateModelCommand {
73
65
 
74
66
  @postConstruct()
75
67
  protected initialize(): void {
76
- this.actionHandlerRegistryProvider().then(registry => this.actionHandlerRegistry = registry);
68
+ this.actionHandlerRegistryProvider().then(registry => (this.actionHandlerRegistry = registry));
77
69
  }
78
70
 
79
71
  protected performUpdate(oldRoot: SModelRoot, newRoot: SModelRoot, context: CommandExecutionContext): CommandReturn {
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,9 +13,10 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { injectable } from "inversify";
17
- import { Action, InitializeCanvasBoundsAction, UpdateModelAction } from "sprotty";
18
- import { Deferred } from "sprotty/lib/utils/async";
16
+ import { Action, UpdateModelAction } from '@eclipse-glsp/protocol';
17
+ import { injectable } from 'inversify';
18
+ import { InitializeCanvasBoundsAction } from 'sprotty';
19
+ import { Deferred } from 'sprotty/lib/utils/async';
19
20
 
20
21
  /**
21
22
  * The constraint defining when the initialization of the GLSP model is completed.
@@ -38,23 +39,27 @@ import { Deferred } from "sprotty/lib/utils/async";
38
39
  @injectable()
39
40
  export abstract class ModelInitializationConstraint {
40
41
  protected completion: Deferred<void> = new Deferred();
41
- protected completed: boolean = false;
42
+ protected completed = false;
42
43
 
43
44
  get isCompleted(): boolean {
44
45
  return this.completed;
45
46
  }
46
47
 
47
- protected setCompleted(isCompleted: boolean) {
48
+ protected setCompleted(isCompleted: boolean): void {
48
49
  this.completed = isCompleted;
49
- if (isCompleted) { this.completion.resolve(); }
50
+ if (isCompleted) {
51
+ this.completion.resolve();
52
+ }
50
53
  }
51
54
 
52
55
  onInitialized(): Promise<void> {
53
56
  return this.completion.promise;
54
57
  }
55
58
 
56
- notifyDispatched(action: Action) {
57
- if (this.isCompleted) { return; }
59
+ notifyDispatched(action: Action): void {
60
+ if (this.isCompleted) {
61
+ return;
62
+ }
58
63
  if (this.isInitializedAfter(action)) {
59
64
  this.setCompleted(true);
60
65
  }
@@ -69,9 +74,9 @@ export abstract class ModelInitializationConstraint {
69
74
  */
70
75
  @injectable()
71
76
  export class DefaultModelInitializationConstraint extends ModelInitializationConstraint {
72
- protected seenNonEmptyUpdateModel: boolean = false;
77
+ protected seenNonEmptyUpdateModel = false;
73
78
 
74
- isInitializedAfter(action: Action) {
79
+ isInitializedAfter(action: Action): boolean {
75
80
  if (this.isNonEmptyUpdateModel(action)) {
76
81
  this.seenNonEmptyUpdateModel = true;
77
82
  } else if (this.seenNonEmptyUpdateModel && action.kind === InitializeCanvasBoundsAction.KIND) {
@@ -13,8 +13,8 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { injectable } from "inversify";
17
- import { MouseListener, SModelElement } from "sprotty";
16
+ import { injectable } from 'inversify';
17
+ import { MouseListener, SModelElement } from 'sprotty';
18
18
 
19
19
  /**
20
20
  * A mouse listener that clears the document selection on click
@@ -30,8 +30,9 @@ import { MouseListener, SModelElement } from "sprotty";
30
30
  */
31
31
  @injectable()
32
32
  export class SelectionClearingMouseListener extends MouseListener {
33
- mouseDown(_target: SModelElement, event: MouseEvent) {
33
+ mouseDown(_target: SModelElement, event: MouseEvent): never[] {
34
34
  const selection = document.getSelection();
35
+ // eslint-disable-next-line no-null/no-null
35
36
  if (selection === null) {
36
37
  return [];
37
38
  }
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2020-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,13 +13,11 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { inject, injectable, multiInject, optional, postConstruct } from "inversify";
17
- import { Tool, ToolManager } from "sprotty";
18
-
19
- import { distinctAdd } from "../../utils/array-utils";
20
- import { EditMode } from "../actions/edit-mode-action";
21
- import { EditModeListener, EditorContextService, EditorContextServiceProvider } from "../editor-context";
22
- import { GLSP_TYPES } from "../types";
16
+ import { distinctAdd, EditMode } from '@eclipse-glsp/protocol';
17
+ import { inject, injectable, multiInject, optional, postConstruct } from 'inversify';
18
+ import { Tool, ToolManager } from 'sprotty';
19
+ import { EditModeListener, EditorContextService, EditorContextServiceProvider } from '../editor-context-service';
20
+ import { GLSP_TYPES } from '../types';
23
21
 
24
22
  export interface IGLSPToolManager extends ToolManager {
25
23
  /* Disables all actives tools and activates only default tool with non-edit function*/
@@ -45,19 +43,19 @@ export class GLSPToolManager extends ToolManager implements IGLSPToolManager, Ed
45
43
  });
46
44
  }
47
45
 
48
- registerDefaultTools(...tools: Tool[]) {
46
+ registerDefaultTools(...tools: Tool[]): void {
49
47
  for (const tool of tools) {
50
48
  distinctAdd(this.defaultTools, tool);
51
49
  }
52
50
  }
53
51
 
54
- registerTools(...tools: Tool[]) {
52
+ registerTools(...tools: Tool[]): void {
55
53
  for (const tool of tools) {
56
54
  distinctAdd(this.tools, tool);
57
55
  }
58
56
  }
59
57
 
60
- enable(toolIds: string[]) {
58
+ enable(toolIds: string[]): void {
61
59
  this.disableActiveTools();
62
60
  let tools = toolIds.map(id => this.tool(id));
63
61
  if (this.editorContext && this.editorContext.isReadonly) {
@@ -71,12 +69,12 @@ export class GLSPToolManager extends ToolManager implements IGLSPToolManager, Ed
71
69
  });
72
70
  }
73
71
 
74
- disableEditTools() {
72
+ disableEditTools(): void {
75
73
  this.disableActiveTools();
76
74
  this.enable(this.defaultTools.filter(tool => !isGLSPTool(tool) || tool.isEditTool === false).map(tool => tool.id));
77
75
  }
78
76
 
79
- editModeChanged(oldValue: string, newValue: string) {
77
+ editModeChanged(oldValue: string, newValue: string): void {
80
78
  if (oldValue === newValue) {
81
79
  return;
82
80
  }
@@ -93,5 +91,5 @@ export interface GLSPTool extends Tool {
93
91
  }
94
92
 
95
93
  export function isGLSPTool(tool: Tool): tool is GLSPTool {
96
- return "isEditTool" in tool && typeof tool["isEditTool"] === "boolean";
94
+ return 'isEditTool' in tool && typeof tool['isEditTool'] === 'boolean';
97
95
  }
package/src/base/types.ts CHANGED
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2019 EclipseSource and others.
2
+ * Copyright (c) 2019-2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -14,24 +14,26 @@
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
16
  export const GLSP_TYPES = {
17
- IAsyncClipboardService: Symbol.for("IAsyncClipboardService"),
18
- ICommandPaletteActionProviderRegistry: Symbol.for("ICommandPaletteActionProviderRegistry"),
19
- IEditorContextServiceProvider: Symbol.for("IEditorContextProvider"),
20
- IFeedbackActionDispatcher: Symbol.for("IFeedbackActionDispatcher"),
21
- IToolFactory: Symbol.for("Factory<Tool>"),
22
- ITypeHintProvider: Symbol.for("ITypeHintProvider"),
23
- IMovementRestrictor: Symbol.for("IMovmementRestrictor"),
24
- SelectionService: Symbol.for("SelectionService"),
25
- SelectionListener: Symbol.for("SelectionListener"),
26
- SModelRootListener: Symbol.for("SModelRootListener"),
27
- MouseTool: Symbol.for("MouseTool"),
28
- IContextMenuService: Symbol.for("IContextMenuService"),
29
- IContextMenuServiceProvider: Symbol.for("IContextMenuServiceProvider"),
30
- IContextMenuProviderRegistry: Symbol.for("IContextMenuProviderRegistry"),
31
- IContextMenuProvider: Symbol.for("IContextMenuProvider"),
32
- ICopyPasteHandler: Symbol.for("ICopyPasteHandler"),
33
- IGLSPToolManager: Symbol.for("IGLSPToolManager"),
34
- ITool: Symbol.for("ITool"),
35
- IDefaultTool: Symbol.for("IDefaultTool"),
36
- IEditModeListener: Symbol.for("IEditModeListener")
17
+ IAsyncClipboardService: Symbol.for('IAsyncClipboardService'),
18
+ ICommandPaletteActionProviderRegistry: Symbol.for('ICommandPaletteActionProviderRegistry'),
19
+ IEditorContextServiceProvider: Symbol.for('IEditorContextProvider'),
20
+ IFeedbackActionDispatcher: Symbol.for('IFeedbackActionDispatcher'),
21
+ IToolFactory: Symbol.for('Factory<Tool>'),
22
+ ITypeHintProvider: Symbol.for('ITypeHintProvider'),
23
+ IMovementRestrictor: Symbol.for('IMovmementRestrictor'),
24
+ SelectionService: Symbol.for('SelectionService'),
25
+ SelectionListener: Symbol.for('SelectionListener'),
26
+ SModelRootListener: Symbol.for('SModelRootListener'),
27
+ MouseTool: Symbol.for('MouseTool'),
28
+ IContextMenuService: Symbol.for('IContextMenuService'),
29
+ IContextMenuServiceProvider: Symbol.for('IContextMenuServiceProvider'),
30
+ IContextMenuProviderRegistry: Symbol.for('IContextMenuProviderRegistry'),
31
+ IContextMenuProvider: Symbol.for('IContextMenuProvider'),
32
+ ICopyPasteHandler: Symbol.for('ICopyPasteHandler'),
33
+ IGLSPToolManager: Symbol.for('IGLSPToolManager'),
34
+ ITool: Symbol.for('ITool'),
35
+ IDefaultTool: Symbol.for('IDefaultTool'),
36
+ IEditModeListener: Symbol.for('IEditModeListener'),
37
+ LayoutRegistration: Symbol.for('LayoutRegistration'),
38
+ IMarqueeBehavior: Symbol.for('IMarqueeBehavior')
37
39
  };
@@ -1,5 +1,5 @@
1
1
  /********************************************************************************
2
- * Copyright (c) 2020 EclipseSource and others.
2
+ * Copyright (c) 2021 EclipseSource and others.
3
3
  *
4
4
  * This program and the accompanying materials are made available under the
5
5
  * terms of the Eclipse Public License v. 2.0 which is available at
@@ -13,14 +13,19 @@
13
13
  *
14
14
  * SPDX-License-Identifier: EPL-2.0 OR GPL-2.0 WITH Classpath-exception-2.0
15
15
  ********************************************************************************/
16
- import { Action } from "sprotty";
16
+ import { injectable } from 'inversify';
17
+ import { IView, ViewRegistry } from 'sprotty';
17
18
 
18
- export class ModelSourceChangedAction implements Action {
19
- static KIND = 'modelSourceChanged';
20
- readonly kind = ModelSourceChangedAction.KIND;
21
- constructor(public readonly modelSourceName: string) { }
22
- }
23
-
24
- export function isModelSourceChangedAction(action: Action): action is ModelSourceChangedAction {
25
- return action.kind === ModelSourceChangedAction.KIND;
19
+ @injectable()
20
+ export class GLSPViewRegistry extends ViewRegistry {
21
+ register(key: string, instance: IView): void {
22
+ if (key === undefined) {
23
+ throw new Error('Key is undefined');
24
+ }
25
+ if (this.hasKey(key)) {
26
+ // do not throw error but log overwriting
27
+ console.log(`View instance for type '${key}' will be overwritten.`);
28
+ }
29
+ this.elements.set(key, instance);
30
+ }
26
31
  }