|
From: <ma...@us...> - 2011-10-30 14:10:59
|
Revision: 481
http://openautomation.svn.sourceforge.net/openautomation/?rev=481&view=rev
Author: mayerch
Date: 2011-10-30 14:10:53 +0000 (Sun, 30 Oct 2011)
Log Message:
-----------
Change infotrigger to use variant=absolute or relative in the addresses to determine where a delta value should be sent to and which is the info address when used in the relative mode.
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2011-10-30 11:50:17 UTC (rev 480)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2011-10-30 14:10:53 UTC (rev 481)
@@ -715,16 +715,14 @@
// handle addresses
var address = {};
- var addrread = {};
$p.find('address').each( function(){
var src = this.textContent;
var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- ga_list.push( src )
- if (readonly=='true') {
- addrread[ '_' + src ] = [ transform, readonly=='true' ];
- } else {
- address[ '_' + src ] = [ transform, readonly=='true' ];
+ var readonly = this.getAttribute('readonly' ) == 'true' ;
+ var relative = this.getAttribute('variant' ) == 'relative';
+ address[ '_' + src ] = [ transform, readonly, relative ];
+ if( !relative ) { // no need to listen to relative address
+ ga_list.push( src );
};
});
@@ -773,13 +771,17 @@
actorinfo += 'style="text-align: '+$p.attr( 'align' )+'" ';
actorinfo += '" ><div class="value">-</div></div>';
var $actorinfo = $(actorinfo).data({
- 'address' : addrread,
+ 'address' : address,
'format' : $p.attr('format'),
'mapping' : $p.attr('mapping'),
'styling' : $p.attr('styling'),
'align' : $p.attr('align'),
});
- for( var addr in addrread ) $actorinfo.bind( addr, this.update );
+ for( var addr in address )
+ {
+ if( !address[addr][2] ) // if NOT relative
+ $actorinfo.bind( addr, this.update );
+ }
if ( $p.attr('infoposition' )==1 ) {
buttons.append( $actordown );
@@ -806,18 +808,19 @@
},
action: function() {
var data = $(this).data();
- var value = parseFloat($(this).parent().find('.switchInvisible').data('basicvalue'));
- var absoluteValue = value + parseFloat(data.value);
+ var value = data.value;
+ var relative = ( data.change != 'absolute' );
+ if( !relative )
+ {
+ value = parseFloat($(this).parent().find('.switchInvisible').data('basicvalue'));
+ value = value + parseFloat(data.value);
+ if (value < data.min || data.max < value) return; // check min/max
+ }
for( var addr in data.address )
{
if( data.address[addr][1] == true ) continue; // skip read only
- if( data.change == 'absolute' )
- {
- if (absoluteValue < data.min || data.max < absoluteValue) continue; // check min/max
- visu.write( addr.substr(1), transformEncode( data.address[addr][0], absoluteValue ) );
- } else {
- visu.write( addr.substr(1), transformEncode( data.address[addr][0], data.value ) );
- }
+ if( data.address[addr][2] != relative ) continue; // skip when address mode doesn't fit action mode
+ visu.write( addr.substr(1), transformEncode( data.address[addr][0], value ) );
}
},
attributes: {
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|