Skip to content

Commit 6ae7bea

Browse files
committed
Add legend
1 parent e4c964e commit 6ae7bea

File tree

4 files changed

+80
-1
lines changed

4 files changed

+80
-1
lines changed

demo/predictions/css/demo.css

Lines changed: 4 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -24,6 +24,8 @@
2424

2525
/* message flow start marker */
2626
.bpmn-message-flow.state-already-executed > ellipse,
27+
/* message flow icon */
28+
.bpmn-message-flow-icon.state-already-executed > *,
2729
/* sequence/message flow line and arrow (end marker) */
2830
.bpmn-type-flow.state-already-executed > path,
2931
/* task */
@@ -157,6 +159,8 @@
157159
.bpmn-type-flow.path-predicted-on-time > path,
158160
/* message flow start marker */
159161
.bpmn-message-flow.path-predicted-on-time > ellipse,
162+
/* message flow icon */
163+
.bpmn-message-flow-icon.path-predicted-on-time > *,
160164
.bpmn-type-task.path-predicted-on-time > rect,
161165
.bpmn-type-event.path-predicted-on-time > ellipse {
162166
stroke: var(--color-path-predicted-on-time);

demo/predictions/css/legend.css

Lines changed: 47 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,47 @@
1+
fieldset {
2+
border: 1px solid#ddd;
3+
padding: 5px 12px;
4+
}
5+
6+
legend {
7+
font-size: 18px;
8+
padding: 0 10px;
9+
margin: auto;
10+
}
11+
12+
.state-predicted-on-time .legend li:first-child::before {
13+
background-color: var(--color-state-predicted-on-time);
14+
}
15+
16+
.state-predicted-late .legend li:first-child::before {
17+
background-color: var(--color-state-predicted-late);
18+
}
19+
20+
.legend li:nth-child(2)::before {
21+
background-color: var(--color-state-running);
22+
}
23+
.legend li:nth-child(3)::before {
24+
background-color: var(--color-path-executed);
25+
}
26+
27+
28+
.legend li::before {
29+
content: "";
30+
display: inline-block;
31+
vertical-align: middle;
32+
margin-inline-end: .5rem;
33+
border-width: 2px;
34+
border-style: solid;
35+
width: 1rem;
36+
height: 1rem;
37+
border-radius: 3px;
38+
border-color: #000;
39+
}
40+
41+
.legend li {
42+
line-height: 1rem;
43+
}
44+
.legend {
45+
list-style: none;
46+
font-size: 0.8rem;
47+
}

demo/predictions/index.html

Lines changed: 12 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -21,6 +21,7 @@
2121
<link rel="stylesheet" href="../../examples/static/css/icons.min.css" type="text/css">
2222
<link rel="stylesheet" href="../../examples/static/css/main.css" type="text/css">
2323
<link rel="stylesheet" href="../static/css/style.css" type="text/css">
24+
<link rel="stylesheet" href="./css/legend.css" type="text/css">
2425
<link rel="stylesheet" href="./css/demo.css" type="text/css">
2526
<script defer src="../../examples/static/js/link-to-sources.js"></script>
2627
<!-- load bpmn-visualization -->
@@ -89,7 +90,17 @@ <h5>Use case</h5>
8990
<h4 id="late-title">Predicted Late</h4>
9091
<h4 id="onTime-title" class="d-hide">Predicted on Time</h4>
9192
</div>
92-
<div class="columns">
93+
<div class="columns" style="padding: 0 1rem">
94+
<div id="legend" class="column col-2 col-mx-auto state-predicted-late" style="margin: auto; padding-right: 0.7rem">
95+
<fieldset>
96+
<legend>Legend</legend>
97+
<ul class="legend">
98+
<li>Running items with prediction</li>
99+
<li>Running items without prediction</li>
100+
<li>Executed items</li>
101+
</ul>
102+
</fieldset>
103+
</div>
93104
<div class="column col-10 col-mx-auto">
94105
<div id="late-bpmn-container" class="col-12 bpmn-container"></div>
95106
<div id="onTime-bpmn-container" class="col-12 bpmn-container d-hide"></div>

demo/predictions/js/prediction-use-case.js

Lines changed: 17 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -7,6 +7,17 @@ class PredicatedLateUseCase extends UseCase {
77
super(type, () => pizzaDiagram(), true, {fit: {type: 'Center', margin: 20}});
88
}
99

10+
_displayPanel() {
11+
super._displayPanel();
12+
this._switchLegend();
13+
}
14+
15+
_switchLegend() {
16+
const element = document.getElementById(`legend`);
17+
element.classList.remove('state-predicted-on-time');
18+
element.classList.add('state-predicted-late');
19+
}
20+
1021
_postLoadDiagram() {
1122
this._initManagers();
1223

@@ -39,6 +50,12 @@ class PredicatedLateUseCase extends UseCase {
3950

4051

4152
class PredictedOnTimeUseCase extends PredicatedLateUseCase {
53+
_switchLegend() {
54+
const element = document.getElementById(`legend`);
55+
element.classList.remove('state-predicted-late');
56+
element.classList.add('state-predicted-on-time');
57+
}
58+
4259
_initManagers() {
4360
this._style = new PredictedOnTimeStyle(this._bpmnVisualization.bpmnElementsRegistry);
4461
const pathResolver = new PathResolver(this._bpmnVisualization);

0 commit comments

Comments
 (0)