|
From: <ma...@us...> - 2010-12-11 15:41:14
|
Revision: 198
http://openautomation.svn.sourceforge.net/openautomation/?rev=198&view=rev
Author: mayerch
Date: 2010-12-11 15:41:08 +0000 (Sat, 11 Dec 2010)
Log Message:
-----------
Change value update from class parsing to subscriber modell
(Tracker ID 3134594)
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/lib/templateengine.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2010-12-11 13:38:03 UTC (rev 197)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2010-12-11 15:41:08 UTC (rev 198)
@@ -125,9 +125,10 @@
'datatype': $(page).attr('datatype'),
'mapping' : $(page).attr('mapping'),
'styling' : $(page).attr('styling')
- } ) );
+ } ).bind('_'+$(page).attr('address'), this.update ) );
return ret_val;
},
+ update: defaultUpdate,
attributes: {
address: {type: "address", required: true},
datatype: {type: "datatype", required: true},
@@ -163,10 +164,16 @@
'max' : max,
'step' : step,
'type' : 'dim'
- }).slider({step:step,min:min,max:max, animate: true,start:slideStart,change:slideChange});//slide:slideAction});
-
+ }).bind('_'+$(page).attr('address'), this.update )
+ .slider({step:step,min:min,max:max, animate: true,start:slideStart,change:slideChange}/*slide:slideAction}*/);
return ret_val;
- },
+ },
+ update: function(e,d) {
+ var element = $(this);
+ var value = decodeDPT( d, element.data('datatype') );
+ element.data( 'value', value );
+ element.slider('value', value);
+ },
attributes: {
address: {type: "address", required: true},
datatype: {type: "datatype", required: true},
@@ -201,9 +208,16 @@
'mapping' : $(page).attr('mapping'),
'styling' : $(page).attr('styling'),
'type' : 'toggle'
- } ).bind('click',switchAction) );
+ } ).bind('click',switchAction)
+ .bind('_'+$(page).attr('address'), this.update ) );
return ret_val;
},
+ update: function(e,d) {
+ var element = $(this);
+ var value = defaultUpdate( e, d, element );
+ element.removeClass( value == '0' ? 'switchPressed' : 'switchUnpressed' );
+ element.addClass( value == '0' ? 'switchUnpressed' : 'switchPressed' );
+ },
attributes: {
address: {type: "address", required: true},
datatype: {type: "datatype", required: true},
@@ -513,4 +527,37 @@
}
return { x: 0, y: 0 }; // sanity return
+}
+
+
+function defaultUpdate( e, data, passedElement )
+{
+ var element = passedElement || $(this);
+ var value = decodeDPT( data, element.data('datatype') );
+ element.data( 'value', value );
+ element.find('.value').text( map( value, element ) );
+
+ var styling = element.data('styling');
+ if( styling && stylings[styling] && (stylings[styling][value] || stylings[styling]['range']) )
+ {
+ if( stylings[styling]['range'] ) value = parseFloat( value );
+ element.removeClass();
+ if( stylings[styling][value] )
+ {
+ element.addClass( 'actor ' + stylings[styling][value] );
+ } else {
+ var range = stylings[styling]['range'];
+ var not_found = true;
+ for( var min in range )
+ {
+ if( min > value ) continue;
+ if( range[min][0] < value ) continue; // check max
+ element.addClass( 'actor ' + range[min][1] );
+ not_found = false;
+ break;
+ }
+ if( not_found ) element.addClass( 'actor' );
+ }
+ }
+ return value;
}
\ No newline at end of file
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2010-12-11 13:38:03 UTC (rev 197)
+++ CometVisu/trunk/visu/lib/templateengine.js 2010-12-11 15:41:08 UTC (rev 198)
@@ -30,48 +30,7 @@
{
for( key in json )
{
- var GA = 'GA' + key.split('/').join('_');
- var elements = $( '.' + GA );
- for( i = 0; i < elements.length; i++ )
- {
- var element = $( elements[i] );
- var value = decodeDPT( json[key], element.data('datatype') );
- element.data( 'value', value );
- $('.value', element).text( map( value, element ) );
-
- var styling = element.data('styling');
- if( styling && stylings[styling] && (stylings[styling][value] || stylings[styling]['range']) )
- {
- if( stylings[styling]['range'] ) value = parseFloat( value );
- element.removeClass();
- if( stylings[styling][value] )
- {
- element.addClass( 'actor ' + GA + ' ' + stylings[styling][value] );
- } else {
- var range = stylings[styling]['range'];
- var not_found = true;
- for( var min in range )
- {
- if( min > value ) continue;
- if( range[min][0] < value ) continue; // check max
- element.addClass( 'actor ' + GA + ' ' + range[min][1] );
- not_found = false;
- break;
- }
- if( not_found ) element.addClass( 'actor ' + GA );
- }
- }
- switch( element.data( 'type' ) )
- {
- case 'toggle':
- element.removeClass( value == '0' ? 'switchPressed' : 'switchUnpressed' );
- element.addClass( value == '0' ? 'switchUnpressed' : 'switchPressed' );
- break;
- case 'slide':
- case 'dim':
- element.slider( 'value', value ); // only update when necessary
- }
- }
+ $.event.trigger( '_' + key, json[key] );
}
}
visu.user = 'demo_user'; // example for setting a user
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|