cpee 2.0.23 → 2.0.24

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.
Files changed (80) hide show
  1. checksums.yaml +4 -4
  2. data/cockpit/css/model.css +2 -0
  3. data/cockpit/css/replay.css +55 -0
  4. data/cockpit/edit.html +1 -0
  5. data/cockpit/index.html +2 -0
  6. data/cockpit/js/instance.js +0 -13
  7. data/cockpit/js/replay.js +40 -0
  8. data/cockpit/model.html +3 -1
  9. data/cockpit/replay.html +52 -0
  10. data/cockpit/templates/instantiate.local/Take_Sub.xml +1 -1
  11. data/cockpit/themes/compact/rngs/call.rng +67 -40
  12. data/cockpit/themes/compact/rngs/callmanipulate.rng +81 -38
  13. data/cockpit/themes/control/rngs/alternative.rng +25 -0
  14. data/cockpit/themes/control/rngs/call.rng +149 -0
  15. data/cockpit/themes/control/rngs/callmanipulate.rng +188 -0
  16. data/cockpit/themes/control/rngs/choose.rng +14 -0
  17. data/cockpit/themes/control/rngs/closed_loop.rng +62 -0
  18. data/cockpit/themes/control/rngs/closed_loop_cancel.rng +5 -0
  19. data/cockpit/themes/control/rngs/closed_loop_control.rng +31 -0
  20. data/cockpit/themes/control/rngs/closed_loop_measuring.rng +12 -0
  21. data/cockpit/themes/control/rngs/critical.rng +5 -0
  22. data/cockpit/themes/control/rngs/escape.rng +1 -0
  23. data/cockpit/themes/control/rngs/group.rng +3 -0
  24. data/cockpit/themes/control/rngs/loop.rng +22 -0
  25. data/cockpit/themes/control/rngs/manipulate.rng +9 -0
  26. data/cockpit/themes/control/rngs/otherwise.rng +22 -0
  27. data/cockpit/themes/control/rngs/parallel.rng +21 -0
  28. data/cockpit/themes/control/rngs/parallel_branch.rng +8 -0
  29. data/cockpit/themes/control/rngs/scripts.rng +23 -0
  30. data/cockpit/themes/control/rngs/stop.rng +5 -0
  31. data/cockpit/themes/control/rngs/terminate.rng +1 -0
  32. data/cockpit/themes/control/symbols/alternative.svg +5 -0
  33. data/cockpit/themes/control/symbols/arrow.svg +3 -0
  34. data/cockpit/themes/control/symbols/call.svg +6 -0
  35. data/cockpit/themes/control/symbols/callmanipulate.svg +8 -0
  36. data/cockpit/themes/control/symbols/choose.svg +5 -0
  37. data/cockpit/themes/control/symbols/choose_exclusive.svg +5 -0
  38. data/cockpit/themes/control/symbols/choose_inclusive.svg +4 -0
  39. data/cockpit/themes/control/symbols/closed_loop.svg +5 -0
  40. data/cockpit/themes/control/symbols/closed_loop_cancel.svg +5 -0
  41. data/cockpit/themes/control/symbols/closed_loop_control.svg +5 -0
  42. data/cockpit/themes/control/symbols/closed_loop_measuring.svg +6 -0
  43. data/cockpit/themes/control/symbols/complex.svg +8 -0
  44. data/cockpit/themes/control/symbols/critical.svg +4 -0
  45. data/cockpit/themes/control/symbols/end.svg +3 -0
  46. data/cockpit/themes/control/symbols/escape.svg +5 -0
  47. data/cockpit/themes/control/symbols/event_end.svg +3 -0
  48. data/cockpit/themes/control/symbols/loop.svg +5 -0
  49. data/cockpit/themes/control/symbols/manipulate.svg +4 -0
  50. data/cockpit/themes/control/symbols/otherwise.svg +5 -0
  51. data/cockpit/themes/control/symbols/parallel.svg +5 -0
  52. data/cockpit/themes/control/symbols/parallel_branch.svg +5 -0
  53. data/cockpit/themes/control/symbols/parallel_branch_compact.svg +4 -0
  54. data/cockpit/themes/control/symbols/parallel_branch_event.svg +14 -0
  55. data/cockpit/themes/control/symbols/parallel_branch_normal.svg +5 -0
  56. data/cockpit/themes/control/symbols/scripts.svg +4 -0
  57. data/cockpit/themes/control/symbols/start.svg +3 -0
  58. data/cockpit/themes/control/symbols/stop.svg +5 -0
  59. data/cockpit/themes/control/symbols/terminate.svg +4 -0
  60. data/cockpit/themes/control/theme.js +1665 -0
  61. data/cockpit/themes/default/rngs/call.rng +67 -40
  62. data/cockpit/themes/default/rngs/callmanipulate.rng +81 -38
  63. data/cockpit/themes/default/theme.js +1287 -0
  64. data/cockpit/themes/diana/rngs/call.rng +67 -40
  65. data/cockpit/themes/diana/rngs/callmanipulate.rng +81 -38
  66. data/cockpit/themes/extended/rngs/call.rng +67 -40
  67. data/cockpit/themes/extended/rngs/callmanipulate.rng +81 -38
  68. data/cockpit/themes/packed/rngs/call.rng +67 -40
  69. data/cockpit/themes/packed/rngs/callmanipulate.rng +81 -38
  70. data/cockpit/themes/preset/rngs/call.rng +67 -40
  71. data/cockpit/themes/preset/rngs/callmanipulate.rng +81 -38
  72. data/cockpit/track.html +0 -7
  73. data/cpee.gemspec +2 -2
  74. data/server/handlerwrappers/default.rb +2 -2
  75. data/server/routing/end.pid +1 -0
  76. data/server/routing/forward-events.pid +1 -0
  77. data/server/routing/forward-votes.pid +1 -0
  78. data/server/routing/persist.pid +1 -0
  79. data/server/server.pid +1 -0
  80. metadata +60 -2
checksums.yaml CHANGED
@@ -1,7 +1,7 @@
1
1
  ---
2
2
  SHA256:
3
- metadata.gz: 245c1fa5ecd451992f6fb7ba0386858bc8595f640e08c353ad153ec69e57eb14
4
- data.tar.gz: 71f69beee300e44b98c70b97c06818fea60fe18685e9080f6e796d95109ee20c
3
+ metadata.gz: ce85aa02aabbdb513ce56fc7eb7b11878290d2253a4dbad6e4ca0f308c9e4128
4
+ data.tar.gz: bb30943c2256495cb8346d2ac7808549748deba62aa33d2f15e8582dba55447a
5
5
  SHA512:
6
- metadata.gz: 2aac6ff87441d239b3d0c359c3a42fe489e3f6e6bf7f8363d66032a53095c818d6162db6e9d448bcf20a8cc379815bf7b126f6a2cab122381709d9cc2f387d30
7
- data.tar.gz: 0acb4ca004b780c45eb46736b98b4c30c0709e22dc97e674c62a2ff5a0971447e12940b7c1fb14fdc5b5044cdb8614c6a7447e19307bb8baca6f78f9baa76ec1
6
+ metadata.gz: baf7bd6776dd0be3b9c677cd69ca0ece4705550d81ab5ea4f7465ecd087280d726ee96ba9db8c8df0dc365acce52749ca660f3888f1837f92a596d14437b455f
7
+ data.tar.gz: 77adf09dc7471ff19ec4283cbe9296789085eed108e836589f34b18aed50946b32b24d9f7f9380bfd9f7adc19eab33652af4ef022c8785ae88fd19d07903184d
@@ -22,3 +22,5 @@
22
22
 
23
23
  #areamodel div.section:nth-child(4) div { white-space: normal; vertical-align: middle; margin: 0; padding: 0; }
24
24
  #areamodel div.section:nth-child(4) button[name=loadmodeltype] { white-space: normal; width: 10em; height: 2em; }
25
+
26
+ #model ui-content { height: 6em; }
@@ -0,0 +1,55 @@
1
+ body {
2
+ -webkit-user-select: none;
3
+ -moz-user-select: -moz-none;
4
+ -ms-user-select: none;
5
+ user-select: none;
6
+ font-family: sans-serif;
7
+ font-size: 1em;
8
+ padding: 0;
9
+ margin: 0;
10
+ }
11
+
12
+ #replayer {
13
+ display: flex;
14
+ flex-direction: column;
15
+ flex-wrap: nowrap;
16
+ align-items: stretch;
17
+ height: 100vh;
18
+ }
19
+
20
+ #replay {
21
+ width: 100%;
22
+ display: flex;
23
+ flex-direction: row;
24
+ flex-wrap: nowrap;
25
+ align-items: stretch;
26
+ padding: 1em 0;
27
+ flex: 0 0 auto;
28
+ }
29
+
30
+ #replay span {
31
+ flex: 0 0 auto;
32
+ margin-left: 1em;
33
+ align-self: center;
34
+ }
35
+ #replay input {
36
+ margin: 0em 1em;
37
+ flex: 1 1 auto;
38
+ }
39
+ #replay button {
40
+ margin-right: 1em;
41
+ flex: 0 0 auto;
42
+ }
43
+
44
+ #content {
45
+ width: 100%;
46
+ align-self: center;
47
+ flex: 1 1 auto;
48
+ }
49
+
50
+ iframe {
51
+ border: 0 none;
52
+ padding: 0;
53
+ margin: 0;
54
+ overflow: scroll;
55
+ }
@@ -0,0 +1 @@
1
+ ./index.html
@@ -54,6 +54,7 @@
54
54
  <script type="text/javascript" src="js/details.js"></script>
55
55
  <script type="text/javascript" src="js/parameters.js"></script>
56
56
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
57
+ <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
57
58
  <style>
58
59
  /* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
59
60
  /* shit balls, no elegance is left in this world */
@@ -122,6 +123,7 @@
122
123
  <ui-tab class="inactive hidden" data-tab="instance" id="tabinstance" >Instance</ui-tab>
123
124
  <ui-tab class="inactive hidden" data-tab="execution" id="tabexecution">Execution</ui-tab>
124
125
  <ui-behind ><a style='display:none' target='_blank' id='current-instance'></a><a style='display:none' target='_blank' id='current-instance-properties'>P</a><a style='display:none' target='_blank' id='current-instance-subscriptions'>S</a><a style='display:none' target='_blank' id='current-instance-callbacks'>C</a></ui-behind>
126
+ <ui-last ><a class="logo" href=".."></a></ui-last>
125
127
  </ui-tabbar>
126
128
  <ui-content>
127
129
  <ui-area data-belongs-to-tab="new" id="areanew"> <!--{{{-->
@@ -91,7 +91,6 @@ function cockpit() { //{{{
91
91
  $("button[name=savesvgfile]").click(function(){ save_svgfile(); });
92
92
  $("button[name=state_start]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");start_instance(); });
93
93
  $("button[name=state_stop]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");stop_instance(); });
94
- $("button[name=state_replay]").click(function(){ $(this).parent().find('button').attr("disabled","disabled");replay_instance(); });
95
94
  $("button[name=state_abandon]").click(function(){ aba_instance(); });
96
95
  $("input[name=votecontinue]").click(check_subscription);
97
96
  $("input[name=testsetfile]").change(load_testsetfile_after);
@@ -701,19 +700,16 @@ function monitor_instance_state_change(notification) { //{{{
701
700
  $('#state_extended').show();
702
701
  $("button[name=state_start]").show();
703
702
  $("button[name=state_stop]").hide();
704
- $("button[name=state_replay]").show();
705
703
  $("button[name=state_abandon]").show();
706
704
  } else if (notification == "running") {
707
705
  $('#state_extended').hide();
708
706
  $("button[name=state_start]").hide();
709
707
  $("button[name=state_stop]").show();
710
- $("button[name=state_replay]").hide();
711
708
  $("button[name=state_abandon]").hide();
712
709
  } else {
713
710
  $('#state_extended').hide();
714
711
  $("button[name=state_start]").hide();
715
712
  $("button[name=state_stop]").hide();
716
- $("button[name=state_replay]").hide();
717
713
  $("button[name=state_abandon]").hide();
718
714
  }
719
715
 
@@ -781,15 +777,6 @@ function start_instance() {// {{{
781
777
  error: report_failure
782
778
  });
783
779
  }// }}}
784
- function replay_instance() {// {{{
785
- var url = $('body').attr('current-instance');
786
- $.ajax({
787
- type: "PUT",
788
- url: url + "/properties/state/",
789
- data: ({value: "replaying"}),
790
- error: report_failure
791
- });
792
- }// }}}
793
780
  function aba_instance() {// {{{
794
781
  monitor_instance_state_change('abandoned');
795
782
  var url = $('body').attr('current-instance');
@@ -0,0 +1,40 @@
1
+ $(document).ready(function() {
2
+ $("#replay button").click(e => {
3
+ $.ajax({
4
+ url: $('#replay input').val(),
5
+ type: 'GET',
6
+ success: function(re) {
7
+ var de;
8
+ var ep;
9
+ var at;
10
+ var desc;
11
+ try {
12
+ jsyaml.loadAll(re,e => {
13
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'dataelements/change') {
14
+ de = e.event.data.data_values;
15
+ }
16
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'endpoints/change') {
17
+ ep = e.event.data.data_values;
18
+ }
19
+ if (e.event && e.event['cpee:lifecycle:transition'] == 'attributes/change') {
20
+ at = e.event.data.data_values;
21
+ }
22
+ if (e.event && e.event['cpee:description']) {
23
+ desc = e.event['cpee:description'];
24
+ }
25
+ if (e.event && e.event['cpee:state'] == 'running') {
26
+ throw BreakException;
27
+ }
28
+ });
29
+ } catch(e) { /* just to break out of the iterator. what a shitty language */ }
30
+ }
31
+ });
32
+
33
+
34
+ // load log with ajax
35
+ // extract process model
36
+ // initialize process model
37
+ // set attributes
38
+ // change start button to do replay
39
+ });
40
+ });
@@ -56,6 +56,7 @@
56
56
  <script type="text/javascript" src="js/model.js"></script>
57
57
  <link rel="stylesheet" href="css/ui.css" type="text/css"/>
58
58
  <link rel="stylesheet" href="css/model.css" type="text/css"/>
59
+ <link rel="stylesheet" href="/global_ui/uicpee.css" type="text/css"/>
59
60
  <style>
60
61
  /* has to be fucking inline, because firefox and chrome disagree how to handle filter urls */
61
62
  /* shit balls, no elegance is left in this world */
@@ -119,7 +120,8 @@
119
120
  <ui-tab class="switch" ></ui-tab>
120
121
  <ui-tab class="" data-tab="model" id="tabmodel" >Model</ui-tab>
121
122
  <ui-tab class="inactive" data-tab="dataelements" id="tabdataelements">Data Elements</ui-tab>
122
- <ui-behind ><button title='add entry' class="hidden">New</button></ui-behind>
123
+ <ui-behind ></ui-behind>
124
+ <ui-last ><a class="logo" href=".."></a></ui-last>
123
125
  </ui-tabbar>
124
126
  <ui-content>
125
127
  <ui-area data-belongs-to-tab="model" id="areamodel"> <!--{{{-->
@@ -0,0 +1,52 @@
1
+ <!--
2
+ This file is part of CPEE.
3
+
4
+ CPEE is free software: you can redistribute it and/or modify it under the terms
5
+ of the GNU General Public License as published by the Free Software Foundation,
6
+ either version 3 of the License, or (at your option) any later version.
7
+
8
+ CPEE is distributed in the hope that it will be useful, but WITHOUT ANY
9
+ WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A
10
+ PARTICULAR PURPOSE. See the GNU General Public License for more details.
11
+
12
+ You should have received a copy of the GNU General Public License along with
13
+ CPEE (file COPYING in the main directory). If not, see
14
+ <http://www.gnu.org/licenses/>.
15
+ -->
16
+
17
+ <!DOCTYPE html>
18
+ <html xmlns="http://www.w3.org/1999/xhtml" lang="en" xml:lang="en">
19
+ <head>
20
+ <meta charset="utf-8"/>
21
+ <meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
22
+ <title>CPEE Cockpit</title>
23
+
24
+ <!-- libs, do not modify. When local than load local libs. -->
25
+ <script type="text/javascript" src="/js_libs/jquery.min.js"></script>
26
+ <script type="text/javascript" src="/js_libs/jquery.browser.js"></script>
27
+ <script type="text/javascript" src="/js_libs/jquery.svg.min.js"></script>
28
+ <script type="text/javascript" src="/js_libs/jquery.svgdom.min.js"></script>
29
+ <script type="text/javascript" src="/js_libs/vkbeautify.js"></script>
30
+ <script type="text/javascript" src="/js_libs/util.js"></script>
31
+ <script type="text/javascript" src="/js_libs/printf.js"></script>
32
+ <script type="text/javascript" src="/js_libs/strftime.min.js"></script>
33
+ <script type="text/javascript" src="/js_libs/parsequery.js"></script>
34
+ <script type="text/javascript" src="/js_libs/underscore.min.js"></script>
35
+ <script type="text/javascript" src="/js_libs/jquery.caret.min.js"></script>
36
+ <script type="text/javascript" src="/js_libs/jquery.cookie.js"></script>
37
+ <script type="text/javascript" src="/js_libs/js-yaml.min.js"></script>
38
+
39
+ <script type="text/javascript" src="/js_libs/ui.js"></script>
40
+
41
+ <!-- custom stuff, play arround -->
42
+ <script type="text/javascript" src="js/replay.js"></script>
43
+ <link rel="stylesheet" href="css/ui.css" type="text/css"/>
44
+ <link rel="stylesheet" href="css/replay.css" type="text/css"/>
45
+ </head>
46
+ <body is="x-ui">
47
+ <div id="replayer">
48
+ <div id="replay"><span>Replay:</span><input type="text" value="http://localhost/logs/4b92138d-1f68-4d18-b676-92fb1cbe2c78.xes.yaml"/><button>Prepare!</button></div>
49
+ <iframe id="content" src=""></iframe>
50
+ </div>
51
+ </body>
52
+ </html>
@@ -15,7 +15,7 @@
15
15
  <method>:post</method>
16
16
  <arguments>
17
17
  <behavior>wait_running</behavior>
18
- <url>https://cpee.org/flow/templates/instantiate/Take_Perf.xml</url
18
+ <url>https://cpee.org/flow/templates/instantiate/Take_Perf.xml</url>
19
19
  <init/>
20
20
  <endpoints/>
21
21
  <stream/>
@@ -26,7 +26,8 @@
26
26
  </zeroOrMore>
27
27
  </element>
28
28
  <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
- <element name="sensors" rngui:header="Sensors" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
30
31
  <zeroOrMore rngui:label="Add Sensor">
31
32
  <element name="sensor">
32
33
  <element name="name" rngui:label="Label">
@@ -35,13 +36,18 @@
35
36
  <element name="extractor_url" rngui:label="Extractor Url">
36
37
  <data type="string" rngui:label="Service Url"/>
37
38
  </element>
38
- <element name="extractor_arg" rngui:label="Extractor Argument">
39
- <data type="string" rngui:label="Value / Json"/>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
40
46
  </element>
41
47
  <element name="visualizer_url" rngui:label="Visualizer Url">
42
48
  <data type="string" rngui:label="Service Url"/>
43
49
  </element>
44
- <element name="visualizer_params" rngui:header="Visualizer Arguments">
50
+ <element name="visualizer_params" rngui:label="Visualizer Arguments">
45
51
  <zeroOrMore rngui:label="Create Visualizer Argument Pairs">
46
52
  <element rngui:label="Name">
47
53
  <anyName/>
@@ -52,42 +58,44 @@
52
58
  </element>
53
59
  </zeroOrMore>
54
60
  </element>
55
- <element name="aggregators" rngui:header="Aggregators" rngui:fold="closed">
56
- <zeroOrMore rngui:label="Add Aggregator">
57
- <element name="aggregator">
58
- <element name="name" rngui:label="Label">
59
- <data type="string" rngui:label="Label"/>
60
- </element>
61
- <element name="aggregator_url" rngui:label="Aggregator Url">
62
- <data type="string" rngui:label="Service Url"/>
63
- </element>
64
- <element name="aggregator_arg" rngui:label="Aggregator Argument">
65
- <data type="string" rngui:label="Value / Json"/>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
- <element name="costs" rngui:header="Costs" rngui:fold="closed">
71
- <zeroOrMore rngui:label="Create Cost Factor">
72
- <element name="cost_factor">
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
73
65
  <element name="name" rngui:label="Label">
74
66
  <data type="string" rngui:label="Label"/>
75
67
  </element>
76
68
  <element name="target" rngui:label="Target Value">
77
69
  <data type="string" rngui:label="Value"/>
78
70
  </element>
79
- <element name="vfunc_url" rngui:label="Violation Function Url">
80
- <data type="string" rngui:label="Service Url"/>
81
- </element>
82
- <element name="vfunc_arg" rngui:label="Violation Function Argument">
83
- <data type="string" rngui:label="Service Url"/>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="aggregator_url" rngui:label="Aggregator Url">
81
+ <data type="string" rngui:label="Service Url + Parameters"/>
82
+ </element>
83
+ </element>
84
+ </zeroOrMore>
85
+ </element>
86
+ <element name="aggregator_url" rngui:label="Impact Function Url">
87
+ <data type="string" rngui:label="Service Url + Parameters"/>
88
+ </element>
89
+ </element>
90
+ </zeroOrMore>
84
91
  </element>
85
- <element name="vcost" rngui:label="Violation Cost">
86
- <data type="string" rngui:label="Value"/>
92
+ <element name="vfunc_url" rngui:label="Violation Function Url">
93
+ <data type="string" rngui:label="Service Url + Parameters"/>
87
94
  </element>
88
95
  </element>
89
96
  </zeroOrMore>
90
97
  </element>
98
+
91
99
  </element>
92
100
  <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
93
101
  <element name="url" rngui:label='HTML Snippet'>
@@ -97,21 +105,40 @@
97
105
  </element>
98
106
  <element name="annotations" rngui:header="Annotations">
99
107
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
100
- <element name="_timing_wait" rngui:label="&#x3C9; - Wait">
101
- <data type="float" rngui:label="[0,1]" rngui:default="0.5"/>
102
- </element>
103
- <element name="_timing_threshold" rngui:label="&#x3BA; - Threshold">
104
- <data type="float" rngui:label="[0,3,n]" rngui:default="3"/>
105
- </element>
106
- <element name="_timing_min" rngui:label="Min in min">
107
- <data type="float" rngui:label="Minutes"/>
108
- </element>
109
- <element name="_timing_max" rngui:label="Max in min">
110
- <data type="float" rngui:label="Minutes"/>
108
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
109
+ <data type="float" rngui:label="[0,1]"/>
111
110
  </element>
112
111
  <element name="_timing_avg" rngui:label="Avg in min">
113
112
  <data type="float" rngui:label="Minutes"/>
114
113
  </element>
114
+ <element name="explanations" rngui:header="Explanations">
115
+ <zeroOrMore rngui:label="Add Explanation">
116
+ <element name="explanation">
117
+ <element name="type" rngui:label="Type">
118
+ <choice>
119
+ <value>&gt;</value>
120
+ <value>&lt;</value>
121
+ </choice>
122
+ </element>
123
+ <element name="deviation" rngui:label="Deviation">
124
+ <data type="float" rngui:label="Minutes"/>
125
+ </element>
126
+ <element name="behaviour" rngui:label="Behaviour">
127
+ <choice>
128
+ <value>Immediately</value>
129
+ <value>Wait until next</value>
130
+ <value>Use grace period value</value>
131
+ </choice>
132
+ </element>
133
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
134
+ <data type="float" rngui:label="Minutes"/>
135
+ </element>
136
+ <element name="text" rngui:label="Explanation">
137
+ <data type="string" rngui:label="Patterns"/>
138
+ </element>
139
+ </element>
140
+ </zeroOrMore>
141
+ </element>
115
142
  </element>
116
143
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
117
144
  <element name="_notes_general" rngui:label="General">
@@ -26,7 +26,8 @@
26
26
  </zeroOrMore>
27
27
  </element>
28
28
  <element name="stream" rngui:header="Data Stream Handling" rngui:fold="closed">
29
- <element name="sensors" rngui:header="Sensors" rngui:fold="closed">
29
+
30
+ <element name="sensors" rngui:header="Sensor Data Streams" rngui:fold="closed">
30
31
  <zeroOrMore rngui:label="Add Sensor">
31
32
  <element name="sensor">
32
33
  <element name="name" rngui:label="Label">
@@ -35,8 +36,13 @@
35
36
  <element name="extractor_url" rngui:label="Extractor Url">
36
37
  <data type="string" rngui:label="Service Url"/>
37
38
  </element>
38
- <element name="extractor_arg" rngui:label="Extractor Argument">
39
- <data type="string" rngui:label="Value / Json"/>
39
+ <element name="extractor_params" rngui:label="Extractor Arguments:">
40
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
41
+ <element rngui:label="Name">
42
+ <anyName/>
43
+ <data type="string" rngui:label="Value / Json"/>
44
+ </element>
45
+ </zeroOrMore>
40
46
  </element>
41
47
  <element name="visualizer_url" rngui:label="Visualizer Url">
42
48
  <data type="string" rngui:label="Service Url"/>
@@ -52,42 +58,60 @@
52
58
  </element>
53
59
  </zeroOrMore>
54
60
  </element>
55
- <element name="aggregators" rngui:header="Aggregators" rngui:fold="closed">
56
- <zeroOrMore rngui:label="Add Aggregator">
57
- <element name="aggregator">
58
- <element name="name" rngui:label="Label">
59
- <data type="string" rngui:label="Label"/>
60
- </element>
61
- <element name="aggregator_url" rngui:label="Aggregator Url">
62
- <data type="string" rngui:label="Service Url"/>
63
- </element>
64
- <element name="aggregator_arg" rngui:label="Aggregator Argument">
65
- <data type="string" rngui:label="Value / Json"/>
66
- </element>
67
- </element>
68
- </zeroOrMore>
69
- </element>
70
- <element name="costs" rngui:header="Costs" rngui:fold="closed">
71
- <zeroOrMore rngui:label="Create Cost Factor">
72
- <element name="cost_factor">
61
+
62
+ <element name="ips" rngui:header="Impact Profiles" rngui:fold="closed">
63
+ <zeroOrMore rngui:label="Add Impact Profile">
64
+ <element name="ip">
73
65
  <element name="name" rngui:label="Label">
74
66
  <data type="string" rngui:label="Label"/>
75
67
  </element>
76
68
  <element name="target" rngui:label="Target Value">
77
69
  <data type="string" rngui:label="Value"/>
78
70
  </element>
79
- <element name="vfunc_url" rngui:label="Violation Function Url">
80
- <data type="string" rngui:label="Service Url"/>
81
- </element>
82
- <element name="vfunc_arg" rngui:label="Violation Function Argument">
83
- <data type="string" rngui:label="Service Url"/>
71
+ <element name="ifs" rngui:header="Impact Factors">
72
+ <zeroOrMore rngui:label="Add Impact Factor">
73
+ <element name="if">
74
+ <element name="ivs" rngui:header="Impact Values">
75
+ <zeroOrMore rngui:label="Add Impact Value ">
76
+ <element name="iv">
77
+ <element name="extractor_url" rngui:label="Extractor Url">
78
+ <data type="string" rngui:label="Service Url + Parameters"/>
79
+ </element>
80
+ <element name="extractor_params" rngui:header="Extractor Arguments">
81
+ <zeroOrMore rngui:label="Create Extractor Argument Pairs">
82
+ <element rngui:label="Name">
83
+ <anyName/>
84
+ <data type="string" rngui:label="Value / Json"/>
85
+ </element>
86
+ </zeroOrMore>
87
+ </element>
88
+ <element name="aggregator_url" rngui:label="Aggregator Url">
89
+ <data type="string" rngui:label="Service Url + Parameters"/>
90
+ </element>
91
+ <element name="aggregator_params" rngui:header="Extractor Arguments">
92
+ <zeroOrMore rngui:label="Create Aggregator Argument Pairs">
93
+ <element rngui:label="Name">
94
+ <anyName/>
95
+ <data type="string" rngui:label="Value / Json"/>
96
+ </element>
97
+ </zeroOrMore>
98
+ </element>
99
+ </element>
100
+ </zeroOrMore>
101
+ </element>
102
+ <element name="aggregator_url" rngui:label="Impact Function Url">
103
+ <data type="string" rngui:label="Service Url + Parameters"/>
104
+ </element>
105
+ </element>
106
+ </zeroOrMore>
84
107
  </element>
85
- <element name="vcost" rngui:label="Violation Cost">
86
- <data type="string" rngui:label="Value"/>
108
+ <element name="vfunc_url" rngui:label="Violation Function Url">
109
+ <data type="string" rngui:label="Service Url + Parameters"/>
87
110
  </element>
88
111
  </element>
89
112
  </zeroOrMore>
90
113
  </element>
114
+
91
115
  </element>
92
116
  <element name="report" rngui:header="Reporting Annotation" rngui:fold="closed">
93
117
  <element name="url" rngui:label='HTML Snippet'>
@@ -120,21 +144,40 @@
120
144
  </element>
121
145
  <element name="annotations" rngui:header="Annotations">
122
146
  <element name="_timing" rngui:header="Timing" rngui:fold="closed">
123
- <element name="_timing_wait" rngui:label="&#x3C9; - Wait">
147
+ <element name="_timing_weight" rngui:label="&#x3C9; - Weight">
124
148
  <data type="float" rngui:label="[0,1]"/>
125
149
  </element>
126
- <element name="_timing_threshold" rngui:label="&#x3BA; - Threshold">
127
- <data type="float" rngui:label="[0,3,n]"/>
128
- </element>
129
- <element name="_timing_min" rngui:label="Min in min">
130
- <data type="float" rngui:label="Minutes"/>
131
- </element>
132
- <element name="_timing_max" rngui:label="Max in min">
133
- <data type="float" rngui:label="Minutes"/>
134
- </element>
135
150
  <element name="_timing_avg" rngui:label="Avg in min">
136
151
  <data type="float" rngui:label="Minutes"/>
137
152
  </element>
153
+ <element name="explanations" rngui:header="Explanations">
154
+ <zeroOrMore rngui:label="Add Explanation">
155
+ <element name="explanation">
156
+ <element name="type" rngui:label="Type">
157
+ <choice>
158
+ <value>&gt;</value>
159
+ <value>&lt;</value>
160
+ </choice>
161
+ </element>
162
+ <element name="deviation" rngui:label="Deviation">
163
+ <data type="float" rngui:label="Minutes"/>
164
+ </element>
165
+ <element name="behaviour" rngui:label="Behaviour">
166
+ <choice>
167
+ <value>Immediately</value>
168
+ <value>Wait until next</value>
169
+ <value>Use grace period value</value>
170
+ </choice>
171
+ </element>
172
+ <element name="grace" rngui:label="Grace Period" rngui:default="0.0">
173
+ <data type="float" rngui:label="Minutes"/>
174
+ </element>
175
+ <element name="text" rngui:label="Explanation">
176
+ <data type="string" rngui:label="Patterns"/>
177
+ </element>
178
+ </element>
179
+ </zeroOrMore>
180
+ </element>
138
181
  </element>
139
182
  <element name="_notes" rngui:header="Notes" rngui:fold="closed">
140
183
  <element name="_notes_general" rngui:label="General">