Spaces:
Running
Running
better way to create event
Browse files- app.py +1 -3
- modules/toXML.py +25 -29
app.py
CHANGED
@@ -61,13 +61,11 @@ def create_XML(full_pred, text_mapping, scale):
|
|
61 |
}
|
62 |
|
63 |
size_elements = {
|
64 |
-
'
|
65 |
'task': (120, 96),
|
66 |
'message': (43.2, 43.2),
|
67 |
'messageEvent': (43.2, 43.2),
|
68 |
-
'end': (43.2, 43.2),
|
69 |
'exclusiveGateway': (60, 60),
|
70 |
-
'event': (43.2, 43.2),
|
71 |
'parallelGateway': (60, 60),
|
72 |
'dataObject': (48, 72),
|
73 |
'dataStore': (72, 72),
|
|
|
61 |
}
|
62 |
|
63 |
size_elements = {
|
64 |
+
'event': (43.2, 43.2),
|
65 |
'task': (120, 96),
|
66 |
'message': (43.2, 43.2),
|
67 |
'messageEvent': (43.2, 43.2),
|
|
|
68 |
'exclusiveGateway': (60, 60),
|
|
|
69 |
'parallelGateway': (60, 60),
|
70 |
'dataObject': (48, 72),
|
71 |
'dataStore': (72, 72),
|
modules/toXML.py
CHANGED
@@ -11,8 +11,7 @@ def rescale(scale, boxes):
|
|
11 |
|
12 |
def create_BPMN_id(data):
|
13 |
enums = {
|
14 |
-
'
|
15 |
-
'start_event': 1,
|
16 |
'task': 1,
|
17 |
'sequenceFlow': 1,
|
18 |
'messageFlow': 1,
|
@@ -29,25 +28,20 @@ def create_BPMN_id(data):
|
|
29 |
BPMN_name = [class_dict[label] for label in data['labels']]
|
30 |
|
31 |
for idx, Bpmn_id in enumerate(BPMN_name):
|
32 |
-
|
33 |
-
|
34 |
-
|
35 |
-
|
36 |
-
|
37 |
-
|
38 |
-
|
39 |
-
|
40 |
-
|
41 |
-
|
42 |
-
|
43 |
-
|
44 |
-
|
45 |
-
|
46 |
-
'dataAssociation': 'dataAssociation',
|
47 |
-
'pool': 'pool',
|
48 |
-
'dataStore': 'dataStore',
|
49 |
-
'timerEvent': 'timerEvent'
|
50 |
-
}.get(Bpmn_id, None)
|
51 |
|
52 |
if key:
|
53 |
data['BPMN_id'][idx] = f'{key}_{enums[key]}'
|
@@ -139,9 +133,16 @@ def create_bpmn_object(process, bpmnplane, text_mapping, definitions, size, data
|
|
139 |
x, y = positions[i][:2]
|
140 |
|
141 |
# Start Event
|
142 |
-
if element_type == '
|
143 |
-
|
144 |
-
|
|
|
|
|
|
|
|
|
|
|
|
|
|
|
145 |
|
146 |
# Task
|
147 |
elif element_type == 'task':
|
@@ -204,11 +205,6 @@ def create_bpmn_object(process, bpmnplane, text_mapping, definitions, size, data
|
|
204 |
ET.SubElement(element, 'bpmn:messageEventDefinition', id=f'MessageEventDefinition_{i+1}')
|
205 |
add_diagram_elements(bpmnplane, element_id, x, y, size['message'][0], size['message'][1])
|
206 |
|
207 |
-
# End Event
|
208 |
-
elif element_type == 'end':
|
209 |
-
element = ET.SubElement(process, 'bpmn:endEvent', id=element_id, name=text_mapping[element_id])
|
210 |
-
add_diagram_elements(bpmnplane, element_id, x, y, size['end'][0], size['end'][1])
|
211 |
-
|
212 |
# Gateways (Exclusive, Parallel)
|
213 |
elif element_type in ['exclusiveGateway', 'parallelGateway']:
|
214 |
gateway_type = 'exclusiveGateway' if element_type == 'exclusiveGateway' else 'parallelGateway'
|
|
|
11 |
|
12 |
def create_BPMN_id(data):
|
13 |
enums = {
|
14 |
+
'event': 1,
|
|
|
15 |
'task': 1,
|
16 |
'sequenceFlow': 1,
|
17 |
'messageFlow': 1,
|
|
|
28 |
BPMN_name = [class_dict[label] for label in data['labels']]
|
29 |
|
30 |
for idx, Bpmn_id in enumerate(BPMN_name):
|
31 |
+
key = {
|
32 |
+
'event': 'event',
|
33 |
+
'task': 'task',
|
34 |
+
'dataObject': 'dataObject',
|
35 |
+
'sequenceFlow': 'sequenceFlow',
|
36 |
+
'messageFlow': 'messageFlow',
|
37 |
+
'messageEvent': 'message_event',
|
38 |
+
'exclusiveGateway': 'exclusiveGateway',
|
39 |
+
'parallelGateway': 'parallelGateway',
|
40 |
+
'dataAssociation': 'dataAssociation',
|
41 |
+
'pool': 'pool',
|
42 |
+
'dataStore': 'dataStore',
|
43 |
+
'timerEvent': 'timerEvent'
|
44 |
+
}.get(Bpmn_id, None)
|
|
|
|
|
|
|
|
|
|
|
45 |
|
46 |
if key:
|
47 |
data['BPMN_id'][idx] = f'{key}_{enums[key]}'
|
|
|
133 |
x, y = positions[i][:2]
|
134 |
|
135 |
# Start Event
|
136 |
+
if element_type == 'event':
|
137 |
+
status = check_status(links[i], keep_elements)
|
138 |
+
if status == 'start':
|
139 |
+
element = ET.SubElement(process, 'bpmn:startEvent', id=element_id, name=text_mapping[element_id])
|
140 |
+
elif status == 'middle':
|
141 |
+
element = ET.SubElement(process, 'bpmn:intermediateCatchEvent', id=element_id, name=text_mapping[element_id])
|
142 |
+
elif status == 'end':
|
143 |
+
element = ET.SubElement(process, 'bpmn:endEvent', id=element_id, name=text_mapping[element_id])
|
144 |
+
|
145 |
+
add_diagram_elements(bpmnplane, element_id, x, y, size['event'][0], size['event'][1])
|
146 |
|
147 |
# Task
|
148 |
elif element_type == 'task':
|
|
|
205 |
ET.SubElement(element, 'bpmn:messageEventDefinition', id=f'MessageEventDefinition_{i+1}')
|
206 |
add_diagram_elements(bpmnplane, element_id, x, y, size['message'][0], size['message'][1])
|
207 |
|
|
|
|
|
|
|
|
|
|
|
208 |
# Gateways (Exclusive, Parallel)
|
209 |
elif element_type in ['exclusiveGateway', 'parallelGateway']:
|
210 |
gateway_type = 'exclusiveGateway' if element_type == 'exclusiveGateway' else 'parallelGateway'
|