通用事件总线, 该组件用于跨图实例进行通信。 图的其他部分可以使用它来侦听和广播事件。
事件获取使用
const EventBus = this.bpmnModeler.get("eventBus");
事件均可使用this.bpmnModeler.on(eventName, callback)
或者eventBus.on(eventName, callback)
的形式注册。
核心方法
/**
* 注册事件监听器
* @param events: string | string[] 事件名称(s)
* @param priority?: number 优先级,默认1000
* @param callback: Function 回调函数
* @param that?: object 上下文中的this,会将其传递给callback
*/
EventBus.on(events, priority, callback, that)
/**
* 注册只执行一次的事件监听器
* @param events: string | string[] 事件名称(s)
* @param priority?: number 优先级,默认1000
* @param callback: Function 回调函数
* @param that?: object 上下文中的this,会将其传递给callback
*/
EventBus.once(events, priority, callback, that)
/**
* 关闭、删除事件监听器
* @param events
* @param callback
*/
EventBus.off(events, callback)
/**
* 创建一个可以让EventBus识别的事件,并返回这个事件
* @param data: object
* @return event: object
*/
EventBus.createEvent(data)
/**
* 主动触发事件
* @param type: string | object 事件名称/嵌套事件名称的对象({type: string})
* @param data: any 传递给回调函数的参数
* @return status: boolean | any 事件返回值(如果指定);如果侦听器阻止了默认操作,则返回false
*/
EventBus.fire(type, data)
事件整理 (据说预设了244个事件) 来源
序号 事件名 说明 callback参数
0 "diagram.destroy" 流程编辑器销毁 event:InternalEvent
1 "render.shape" -
2 "render.connection" -
3 "render.getShapePath" -
4 "render.getConnectionPath" -
5 "diagram.init" 指示画布已准备好在其上进行绘制
6 "shape.added" 已更新到xml内,触发渲染方法,返回值为插入的新元素 event:InternalEvent, element: Element
7 "connection.added" 已更新到xml内,触发渲染方法,返回值为插入的新元素 event:InternalEvent, element: Element
8 "shape.removed" 形状移除完成,返回值为被移除元素 event:InternalEvent, element: Element
9 "connection.removed" 连线移除完成,返回值为被移除元素
10 "elements.changed" 元素发生改变并更改完成 event: InternalEvent, element: Elements
11 "diagram.clear" 流程编辑器元素及画布已清空 event:InternalEvent
12 "canvas.destroy" 画布销毁 event:InternalEvent
13 "canvas.init" 画布初始化完成
14 "shape.changed" 形状属性更新,返回当前元素 event:InternalEvent, element: Element
15 "connection.changed" 连线属性更新,返回当前元素 event:InternalEvent, element: Element
16 "interactionEvents.createHit"
17 "interactionEvents.updateHit"
18 "shape.remove" 形状被选中移除,返回被移除的元素对象 event:InternalEvent, element: Element
19 "connection.remove" 连线被选中移除 event:InternalEvent, element: Element
20 "element.hover" 鼠标移动到元素上,返回鼠标位置处元素对象 event:InternalEvent, element: Element
21 "element.out" 鼠标移出元素,返回鼠标最近移入的元素对象 event:InternalEvent, element: Element
22 "selection.changed" 选中元素变化时,返回新选中的元素对象 event:InternalEvent, element: Element
23 "create.end" 从palette中新建的元素创建完成(不清楚为什么有两个相同的参数) event:InternalEvent, event:InternalEvent
24 "connect.end" 从palette中或者从选中节点中新建的连线元素创建完成(不清楚为什么有两个相同的参数) event:InternalEvent, event:InternalEvent
25 "shape.move.end" 形状元素移动结束后 event:InternalEvent, element: Element
26 "element.click" 元素单击事件 event:InternalEvent, element: Element
27 "canvas.viewbox.changing" 视图缩放过程中 event:InternalEvent
28 "canvas.viewbox.changed" 视图缩放完成 event:InternalEvent, viewbox: Viewbox
29 "element.changed" 元素发生改变时触发,返回发生改变的元素 event:InternalEvent, element: Element
30 "element.marker.update"
31 "attach"
32 "detach"
33 "editorActions.init"
34 "keyboard.keydown" 键盘按键按下
35 "element.mousedown" 鼠标在元素上按下时触发 event:InternalEvent, element: Element
36 "commandStack.connection.start.canExecute"
37 "commandStack.connection.create.canExecute"
38 "commandStack.connection.reconnect.canExecute"
39 "commandStack.connection.updateWaypoints.canExecute"
40 "commandStack.shape.resize.canExecute"
41 "commandStack.elements.create.canExecute"
42 "commandStack.elements.move.canExecute"
43 "commandStack.shape.create.canExecute"
44 "commandStack.shape.attach.canExecute"
45 "commandStack.element.copy.canExecute"
46 "shape.move.start" 形状开始移动 event:InternalEvent, element: Element
47 "shape.move.move"
48 "elements.delete" 元素被删除
49 "tool-manager.update"
50 "i18n.changed"
51 "drag.move"
52 "contextPad.create"
53 "palette.create"
54 "autoPlace.end"
55 "autoPlace"
56 "drag.start"
57 "drag.init"
58 "drag.cleanup"
59 "commandStack.shape.create.postExecuted"
60 "commandStack.elements.move.postExecuted"
61 "commandStack.shape.toggleCollapse.postExecuted"
62 "commandStack.shape.resize.postExecuted"
63 "commandStack.element.autoResize.canExecute"
64 "bendpoint.move.hover"
65 "bendpoint.move.out"
66 "bendpoint.move.cleanup"
67 "bendpoint.move.end"
68 "connectionSegment.move.start"
69 "connectionSegment.move.move"
70 "connectionSegment.move.hover"
71 "connectionSegment.move.out"
72 "connectionSegment.move.cleanup"
73 "connectionSegment.move.cancel"
74 "connectionSegment.move.end"
75 "element.mousemove"
76 "element.updateId"
77 "bendpoint.move.move"
78 "bendpoint.move.start"
79 "bendpoint.move.cancel"
80 "connect.move"
81 "connect.hover"
82 "connect.out"
83 "connect.cleanup"
84 "create.move"
85 "create.hover"
86 "create.out"
87 "create.cleanup"
88 "create.init"
89 "copyPaste.copyElement"
90 "copyPaste.pasteElements"
91 "moddleCopy.canCopyProperties"
92 "moddleCopy.canCopyProperty"
93 "moddleCopy.canSetCopiedProperty"
94 "copyPaste.pasteElement"
95 "popupMenu.getProviders.bpmn-replace"
96 "contextPad.getProviders"
97 "resize.move"
98 "resize.end"
99 "commandStack.shape.resize.preExecute"
100 "spaceTool.move"
101 "spaceTool.end"
102 "create.start"
103 "commandStack.connection.create.postExecuted"
104 "commandStack.connection.layout.postExecuted"
105 "shape.move.init"
106 "resize.start"
107 "resize.cleanup"
108 "directEditing.activate"
109 "directEditing.resize"
110 "directEditing.complete"
111 "directEditing.cancel"
112 "commandStack.connection.updateWaypoints.postExecuted"
113 "commandStack.label.create.postExecuted"
114 "commandStack.elements.create.postExecuted"
115 "commandStack.shape.append.preExecute"
116 "commandStack.shape.move.postExecute"
117 "commandStack.elements.move.preExecute"
118 "commandStack.connection.create.postExecute"
119 "commandStack.connection.reconnect.postExecute"
120 "commandStack.shape.create.executed"
121 "commandStack.shape.create.reverted"
122 "commandStack.shape.create.preExecute"
123 "shape.move.hover"
124 "global-connect.hover"
125 "global-connect.out"
126 "global-connect.end"
127 "global-connect.cleanup"
128 "connect.start"
129 "commandStack.shape.create.execute"
130 "commandStack.shape.create.revert"
131 "commandStack.shape.create.postExecute"
132 "commandStack.elements.create.preExecute"
133 "commandStack.elements.create.revert"
134 "commandStack.elements.create.postExecute"
135 "commandStack.connection.layout.executed"
136 "commandStack.connection.create.executed"
137 "commandStack.connection.layout.reverted"
138 "commandStack.shape.move.executed"
139 "commandStack.shape.delete.executed"
140 "commandStack.connection.move.executed"
141 "commandStack.connection.delete.executed"
142 "commandStack.shape.move.reverted"
143 "commandStack.shape.delete.reverted"
144 "commandStack.connection.create.reverted"
145 "commandStack.connection.move.reverted"
146 "commandStack.connection.delete.reverted"
147 "commandStack.canvas.updateRoot.executed"
148 "commandStack.canvas.updateRoot.reverted"
149 "commandStack.shape.resize.executed"
150 "commandStack.shape.resize.reverted"
151 "commandStack.connection.reconnect.executed"
152 "commandStack.connection.reconnect.reverted"
153 "commandStack.connection.updateWaypoints.executed"
154 "commandStack.connection.updateWaypoints.reverted"
155 "commandStack.element.updateAttachment.executed"
156 "commandStack.element.updateAttachment.reverted"
157 "commandStack.shape.delete.postExecute"
158 "commandStack.canvas.updateRoot.postExecute"
159 "spaceTool.selection.init"
160 "spaceTool.selection.ended"
161 "spaceTool.selection.canceled"
162 "spaceTool.ended"
163 "spaceTool.canceled"
164 "spaceTool.selection.end"
165 "commandStack.shape.delete.postExecuted"
166 "commandStack.connection.create.preExecuted"
167 "commandStack.shape.replace.preExecuted"
168 "bpmnElement.added"
169 "commandStack.element.updateProperties.postExecute"
170 "commandStack.label.create.postExecute"
171 "commandStack.connection.layout.postExecute"
172 "commandStack.connection.updateWaypoints.postExecute"
173 "commandStack.shape.replace.postExecute"
174 "commandStack.shape.resize.postExecute"
175 "shape.move.rejected"
176 "create.rejected"
177 "elements.paste.rejected"
178 "commandStack.shape.delete.preExecute"
179 "commandStack.connection.reconnect.preExecute"
180 "commandStack.element.updateProperties.postExecuted"
181 "commandStack.shape.replace.postExecuted"
182 "commandStack.shape.toggleCollapse.executed"
183 "commandStack.shape.toggleCollapse.reverted"
184 "spaceTool.getMinDimensions"
185 "commandStack.connection.delete.preExecute"
186 "commandStack.canvas.updateRoot.preExecute"
187 "commandStack.spaceTool.preExecute"
188 "commandStack.lane.add.preExecute"
189 "commandStack.lane.resize.preExecute"
190 "commandStack.lane.split.preExecute"
191 "commandStack.elements.delete.preExecute"
192 "commandStack.shape.move.preExecute"
193 "commandStack.spaceTool.postExecuted"
194 "commandStack.lane.add.postExecuted"
195 "commandStack.lane.resize.postExecuted"
196 "commandStack.lane.split.postExecuted"
197 "commandStack.elements.delete.postExecuted"
198 "commandStack.shape.move.postExecuted"
199 "saveXML.start"
200 "commandStack.connection.create.preExecute"
201 "commandStack.connection.move.preExecute"
202 "shape.move.out"
203 "shape.move.cleanup"
204 "commandStack.elements.move.preExecuted"
205 "commandStack.shape.delete.execute"
206 "commandStack.shape.delete.revert"
207 "spaceTool.selection.start"
208 "spaceTool.selection.move"
209 "spaceTool.selection.cleanup"
210 "spaceTool.cleanup"
211 "lasso.selection.init"
212 "lasso.selection.ended"
213 "lasso.selection.canceled"
214 "lasso.ended"
215 "lasso.canceled"
216 "lasso.selection.end"
217 "lasso.end"
218 "lasso.start"
219 "lasso.move"
220 "lasso.cleanup"
221 "hand.init"
222 "hand.ended"
223 "hand.canceled"
224 "hand.move.ended"
225 "hand.move.canceled"
226 "hand.end"
227 "hand.move.move"
228 "hand.move.end"
229 "global-connect.init"
230 "global-connect.ended"
231 "global-connect.canceled"
232 "global-connect.drag.ended"
233 "global-connect.drag.canceled"
234 "palette.getProviders"
235 "propertiesPanel.isEntryVisible"
236 "propertiesPanel.isPropertyEditable"
237 "root.added"
238 "propertiesPanel.changed"
239 "propertiesPanel.resized"
240 "elementTemplates.changed"
241 "canvas.resized"
242 "import.parse.complete" 读取模型(xml)完成
243 "commandStack.changed" 发生任意可撤销/恢复操作时触发,可用来实时更新xml