Bpmn.js 提供了EventBus事件总线模块来管理监听事件,并预设了许多事件
// 通过事件总线发出的事件
interface InternalEvent {
type: string; // 发生的事件名称,但是很快会被置为undefined
element: Shape | Connection;
elements: Element[];
shape: Shape;
context: object; // 有点复杂,有兴趣的朋友可以研究
gfx?: SVGElement;
svg?: SVGElement;
viewport?: SVGElement;
viewbox?: Viewbox;
}
interface Element {
element: Shape | Connection;
gfx?: SVGElement;
}
interface Elements {
elements: Array<Shape | Connection>
}
interface Canvas {
svg?: SVGElement;
viewport?: SVGElement;
}
interface Viewbox {
viewbox: {
height: number;
width: number;
x: number;
y: number;
inter: object; // 包含x,y,width,height的一个对象
outer: object; // 包含x,y,width,height的一个对象
scale: number; // 当前缩放比例(小数)
}
}
以下事件均可使用this.bpmnModeler.on(eventName, callback)
或者eventBus.on(eventName, callback)
的形式注册
序号 | 事件 | 说明 | 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 |
内容来源于:https://github.com/miyuesc/blog/issues/20 ,感谢作者整理