1 | import BpmnTreeWalker from './BpmnTreeWalker';
|
2 |
|
3 |
|
4 |
|
5 |
|
6 |
|
7 |
|
8 |
|
9 |
|
10 |
|
11 |
|
12 |
|
13 | export function importBpmnDiagram(diagram, definitions, done) {
|
14 |
|
15 | var importer,
|
16 | eventBus,
|
17 | translate;
|
18 |
|
19 | var error,
|
20 | warnings = [];
|
21 |
|
22 | |
23 |
|
24 |
|
25 |
|
26 |
|
27 |
|
28 | function render(definitions) {
|
29 |
|
30 | var visitor = {
|
31 |
|
32 | root: function(element) {
|
33 | return importer.add(element);
|
34 | },
|
35 |
|
36 | element: function(element, parentShape) {
|
37 | return importer.add(element, parentShape);
|
38 | },
|
39 |
|
40 | error: function(message, context) {
|
41 | warnings.push({ message: message, context: context });
|
42 | }
|
43 | };
|
44 |
|
45 | var walker = new BpmnTreeWalker(visitor, translate);
|
46 |
|
47 |
|
48 |
|
49 | walker.handleDefinitions(definitions);
|
50 | }
|
51 |
|
52 | try {
|
53 | importer = diagram.get('bpmnImporter');
|
54 | eventBus = diagram.get('eventBus');
|
55 | translate = diagram.get('translate');
|
56 |
|
57 | eventBus.fire('import.render.start', { definitions: definitions });
|
58 |
|
59 | render(definitions);
|
60 |
|
61 | eventBus.fire('import.render.complete', {
|
62 | error: error,
|
63 | warnings: warnings
|
64 | });
|
65 | } catch (e) {
|
66 | error = e;
|
67 | }
|
68 |
|
69 | done(error, warnings);
|
70 | } |
\ | No newline at end of file |