BenjiELCA commited on
Commit
9d60902
·
1 Parent(s): 189ac0f

better way to create event

Browse files
Files changed (2) hide show
  1. app.py +1 -3
  2. 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
- 'start': (43.2, 43.2),
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
- 'end_event': 1,
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
- if Bpmn_id == 'event':
33
- if data['links'][idx][0] is not None and data['links'][idx][1] is None:
34
- key = 'end_event'
35
- elif data['links'][idx][0] is None and data['links'][idx][1] is not None:
36
- key = 'start_event'
37
- else:
38
- key = {
39
- 'task': 'task',
40
- 'dataObject': 'dataObject',
41
- 'sequenceFlow': 'sequenceFlow',
42
- 'messageFlow': 'messageFlow',
43
- 'messageEvent': 'message_event',
44
- 'exclusiveGateway': 'exclusiveGateway',
45
- 'parallelGateway': 'parallelGateway',
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 == 'start':
143
- element = ET.SubElement(process, 'bpmn:startEvent', id=element_id, name=text_mapping[element_id])
144
- add_diagram_elements(bpmnplane, element_id, x, y, size['start'][0], size['start'][1])
 
 
 
 
 
 
 
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'