equal
deleted
inserted
replaced
6 frequency = 5; |
6 frequency = 5; |
7 range = undefined; |
7 range = undefined; |
8 fi = undefined; |
8 fi = undefined; |
9 drag = false; |
9 drag = false; |
10 enTimer = false; |
10 enTimer = false; |
|
11 svg_dist = 0 |
11 |
12 |
12 dispatch(value) { |
13 dispatch(value) { |
13 if(!this.drag){ |
14 if(this.value_elt) |
14 if(this.value_elt) |
15 this.value_elt.textContent = String(value); |
15 this.value_elt.textContent = String(value); |
|
16 |
16 |
17 this.handle_position(value); |
17 this.handle_position(value); |
18 } |
|
19 } |
18 } |
20 |
19 |
21 handle_position(value){ |
20 handle_position(value){ |
22 let [min,max,start,totallength] = this.range; |
21 let [min,max,start,totallength] = this.range; |
23 let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); |
22 let length = Math.max(0,Math.min(totallength,(Number(value)-min)*totallength/(max-min))); |
30 this.drag = false; |
29 this.drag = false; |
31 } |
30 } |
32 } |
31 } |
33 |
32 |
34 update_position(evt){ |
33 update_position(evt){ |
35 if(this.drag && this.enTimer){ |
34 if(this.drag){ |
36 var html_dist = 0; |
35 var html_dist = 0; |
37 var svg_dist = 0; |
|
38 |
36 |
39 //calculate size of widget in html |
37 //calculate size of widget in html |
40 var range_borders = this.range_elt.getBoundingClientRect(); |
38 var range_borders = this.range_elt.getBoundingClientRect(); |
41 var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); |
39 var range_length = Math.sqrt( range_borders.height*range_borders.height + range_borders.width*range_borders.width ); |
42 var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; |
40 var [minX,minY,maxX,maxY] = [range_borders.left,range_borders.bottom,range_borders.right,range_borders.top]; |
75 } |
73 } |
76 else if (html_dist < 0){ |
74 else if (html_dist < 0){ |
77 html_dist = 0; |
75 html_dist = 0; |
78 } |
76 } |
79 } |
77 } |
|
78 |
|
79 this.svg_dist=(html_dist/range_length)*this.range[1]; |
|
80 |
80 //redraw handle |
81 //redraw handle |
81 this.handle_position(svg_dist=(html_dist/range_length)*this.range[1]); |
82 //this.handle_position(svg_dist=(html_dist/range_length)*this.range[1]); |
82 this.value_elt.textContent = String(Math.ceil(svg_dist)); |
83 //this.value_elt.textContent = String(Math.ceil(svg_dist)); |
83 this.apply_hmi_value(0, Math.ceil(svg_dist)); |
84 |
84 //reset timer |
85 if(this.enTimer){ |
85 this.enTimer = false; |
86 this.apply_hmi_value(0, Math.ceil(this.svg_dist)); |
86 setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); |
87 |
|
88 // TODO : update ghost cursor and call this.request_animate() |
|
89 |
|
90 //reset timer |
|
91 this.enTimer = false; |
|
92 setTimeout("{hmi_widgets['"+this.element_id+"'].enTimer = true;}", 100); |
|
93 } |
87 } |
94 } |
88 |
|
89 } |
95 } |
90 |
96 |
91 on_select(evt){ |
97 on_select(evt){ |
92 this.drag = true; |
98 this.drag = true; |
93 this.enTimer = true; |
99 this.enTimer = true; |