|
From: <ma...@us...> - 2012-04-22 20:01:55
|
Revision: 759
http://openautomation.svn.sourceforge.net/openautomation/?rev=759&view=rev
Author: mayerch
Date: 2012-04-22 20:01:48 +0000 (Sun, 22 Apr 2012)
Log Message:
-----------
Switch readonly/writeonly to the new, unified attribute "mode" which might be set to "disable", "read", "write" or "readwrite" (which is the default).
Note: The editor isn't changed to this new syntax yet!
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
CometVisu/trunk/visu/structure/pure/_common.js
CometVisu/trunk/visu/structure/pure/imagetrigger.js
CometVisu/trunk/visu/structure/pure/infotrigger.js
CometVisu/trunk/visu/structure/pure/multitrigger.js
CometVisu/trunk/visu/structure/pure/slide.js
CometVisu/trunk/visu/structure/pure/switch.js
CometVisu/trunk/visu/structure/pure/toggle.js
CometVisu/trunk/visu/structure/pure/trigger.js
CometVisu/trunk/visu/visu_config.xsd
CometVisu/trunk/visu/visu_config_demo.xml
Modified: CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -27,15 +27,11 @@
ret_val.setWidgetLayout($p);
var labelElement = $p.find('label')[0];
var label = labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '';
- var address = {};
- $p.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var color = this.getAttribute('variant' );
- var readonly = this.getAttribute('readonly' );
- ga_list.push( src );
- address[ '_' + src ] = [ transform, color, readonly=='true' ];
- });
+ var address = makeAddressList( $p,
+ function( src, transform, mode, variant ) {
+ return [ true, variant ];
+ }
+ );
var actor = '<div class="actor">';
actor += '</div>';
@@ -67,8 +63,8 @@
var bb = a.data( 'bus_b' );
for( var addr in address )
{
- if( address[addr][2] == true ) continue; // skip read only
- switch( address[addr][1] )
+ if( !(address[addr][1] & 2) ) continue; // skip when write flag not set
+ switch( address[addr][2] )
{
case 'r':
var v = Transform[address[addr][0]].encode( r );
@@ -112,7 +108,7 @@
rateLimitedSend( $actor );
});
for( var addr in address ) {
- switch( address[addr][1] ) {
+ switch( address[addr][2] ) {
case 'r':
$actor.bind( addr, this.update_r );
break;
Modified: CometVisu/trunk/visu/structure/pure/_common.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/_common.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/_common.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -84,15 +84,31 @@
* this function extracts all addresses with attributes (JNK)
*/
-function makeAddressList(page) {
+function makeAddressList( page, handleVariant ) {
var address = {};
page.find('address').each( function(){
var src = this.textContent;
var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- var writeonly = this.getAttribute('writeonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true', writeonly=='true' ];
+ var mode = 1|2; // Bit 0 = read, Bit 1 = write => 1|2 = 3 = readwrite
+ switch( this.getAttribute('mode') )
+ {
+ case 'disable':
+ mode = 0;
+ break;
+ case 'read':
+ mode = 1;
+ break;
+ case 'write':
+ mode = 2;
+ break;
+ case 'readwrite':
+ mode = 1|2;
+ break;
+ }
+ var variantInfo = handleVariant ? handleVariant( src, transform, mode, this.getAttribute('variant') ) : [true, undefined];
+ if( variantInfo[0] )
+ ga_list.push( src );
+ address[ '_' + src ] = [ transform, mode, variantInfo[1] ];
});
return address;
}
Modified: CometVisu/trunk/visu/structure/pure/imagetrigger.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/imagetrigger.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/imagetrigger.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -24,17 +24,7 @@
var value = $e.attr('value') ? $e.attr('value') : 0;
var labelElement = $e.find('label')[0];
ret_val.append( labelElement ? '<div class="label">' + labelElement.textContent + '</div>' : '' );
- var address = {};
- $e.find('address').each( function(){
- var src = this.textContent;
- ga_list.push( src )
- address[ '_' + src ] = [
- this.getAttribute('transform'), {
- 'readonly' : this.getAttribute('readonly'),
- 'writeonly' : this.getAttribute('writeonly')
- }
- ];
- });
+ var address = makeAddressList($e);
var layout = $e.children('layout')[0];
var style = layout ? 'style="' + extractLayout( layout, {width:'100%'} ) + '"' : '';
@@ -89,8 +79,8 @@
var data = $(this).data();
sendValue = data.sendValue;
for( var addr in data.address ) {
- if( data.address[addr][1].readonly == "true" )
- continue; // skip read only
+ if( !(data.address[addr][1] & 2) )
+ continue; // skip when write flag not set
if( data.sendValue == "" )
continue; // skip empty
visu.write( addr.substr(1), transformEncode( data.address[addr][0], sendValue ) );
Modified: CometVisu/trunk/visu/structure/pure/infotrigger.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/infotrigger.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/infotrigger.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -28,17 +28,11 @@
ret_val.append( label );
// handle addresses
- var address = {};
- $e.find('address').each( function(){
- var src = this.textContent;
- var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly' ) == 'true';
- var isButton = this.getAttribute('variant' ) == 'button';
- address[ '_' + src ] = [ transform, readonly, isButton ];
- if( !isButton ) { // no need to listen to relative address
- ga_list.push( src );
- };
- });
+ var address = makeAddressList($e,
+ function( src, transform, mode, variant ) {
+ return [ variant != 'button', variant == 'button' ];
+ }
+ );
// create buttons + info
var buttons = $('<div style="float:left;"/>');
@@ -141,7 +135,7 @@
}
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
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 ) );
}
Modified: CometVisu/trunk/visu/structure/pure/multitrigger.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/multitrigger.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/multitrigger.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -133,7 +133,7 @@
var data = $(this).data();
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
visu.write( addr.substr(1), transformEncode( data.address[addr][0], data.value ) );
}
},
Modified: CometVisu/trunk/visu/structure/pure/slide.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/slide.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/slide.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -22,16 +22,11 @@
var style = layout ? 'style="' + extractLayout( layout ) + '"' : '';
var ret_val = $('<div class="widget clearfix slide" ' + style + ' />');
ret_val.setWidgetLayout($e).makeWidgetLabel($e);
- var address = {};
+ var address = makeAddressList($e);
var datatype_min = undefined;
var datatype_max = undefined;
$e.find('address').each( function(){
- var src = this.textContent;
var transform = this.getAttribute('transform');
- var readonly = this.getAttribute('readonly');
- var writeonly = this.getAttribute('writeonly');
- ga_list.push( src )
- address[ '_' + src ] = [ transform, readonly=='true', writeonly=='true' ];
if( Transform[ transform ] && Transform[ transform ].range )
{
if( !( datatype_min > Transform[ transform ].range.min ) )
@@ -57,7 +52,7 @@
});
for( var addr in address )
{
- if( !address[addr][2] ) $actor.bind( addr, this.update ); // no writeonly
+ if( address[addr][1] & 1 ) $actor.bind( addr, this.update ); // only when read flag is set
}
$actor.slider({
step: step,
@@ -94,7 +89,7 @@
var asv = actor.slider('value');
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
var dv = transformEncode( data.address[addr][0], asv );
if( dv != transformEncode( data.address[addr][0], data.value ) )
visu.write( addr.substr(1), dv );
@@ -112,7 +107,7 @@
if( data.valueInternal && data.value != ui.value )
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
var uv = transformEncode( data.address[addr][0], ui.value );
if( uv != transformEncode( data.address[addr][0], data.value ) )
visu.write( addr.substr(1), uv );
Modified: CometVisu/trunk/visu/structure/pure/switch.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/switch.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/switch.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -37,7 +37,7 @@
} ).bind( 'click', this.action );
for( var addr in address )
{
- if( !address[addr][2] ) $actor.bind( addr, this.update ); // no writeonly
+ if( address[addr][1] & 1 ) $actor.bind( addr, this.update ); // only when read flag is set
}
ret_val.append( label ).append( $actor );
return ret_val;
@@ -53,7 +53,7 @@
var data = $(this).data();
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
visu.write( addr.substr(1), transformEncode( data.address[addr][0], data.value == data.off_value ? data.on_value : data.off_value ) );
}
},
Modified: CometVisu/trunk/visu/structure/pure/toggle.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/toggle.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/toggle.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -59,7 +59,7 @@
sendValue = (next_element) ? next_element : first_element;
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
visu.write( addr.substr(1), transformEncode( data.address[addr][0], sendValue ) );
}
},
Modified: CometVisu/trunk/visu/structure/pure/trigger.js
===================================================================
--- CometVisu/trunk/visu/structure/pure/trigger.js 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/structure/pure/trigger.js 2012-04-22 20:01:48 UTC (rev 759)
@@ -55,7 +55,7 @@
var data = $(this).data();
for( var addr in data.address )
{
- if( data.address[addr][1] == true ) continue; // skip read only
+ if( !(data.address[addr][1] & 2) ) continue; // skip when write flag not set
visu.write( addr.substr(1), transformEncode( data.address[addr][0], data.sendValue ) );
}
},
Modified: CometVisu/trunk/visu/visu_config.xsd
===================================================================
--- CometVisu/trunk/visu/visu_config.xsd 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/visu_config.xsd 2012-04-22 20:01:48 UTC (rev 759)
@@ -26,8 +26,7 @@
<xsd:simpleContent>
<xsd:extension base="addr">
<xsd:attribute ref="transform" use="required" />
- <xsd:attribute ref="readonly" use="optional" />
- <xsd:attribute ref="writeonly" use="optional" />
+ <xsd:attribute ref="mode" use="optional" />
<xsd:attribute name="type" type="xsd:string" use="optional" />
<xsd:attribute name="variant" type="xsd:string" use="optional" />
</xsd:extension>
@@ -62,8 +61,7 @@
<xsd:attribute name="styling" type="xsd:string" />
<xsd:attribute name="value" type="xsd:string" />
-<xsd:attribute name="readonly" type="xsd:boolean" />
-<xsd:attribute name="writeonly" type="xsd:boolean" />
+<xsd:attribute name="mode" type="xsd:string" />
<xsd:attribute name="align" type="xsd:string" />
<xsd:attribute name="variant" type="xsd:string" />
Modified: CometVisu/trunk/visu/visu_config_demo.xml
===================================================================
--- CometVisu/trunk/visu/visu_config_demo.xml 2012-04-15 19:00:08 UTC (rev 758)
+++ CometVisu/trunk/visu/visu_config_demo.xml 2012-04-22 20:01:48 UTC (rev 759)
@@ -115,21 +115,21 @@
<break/>
<switch mapping="On_Off" styling="Red_Green">
<label>Switch</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<break/>
<trigger value="0" mapping="On_Off">
<label>Trigger</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
<trigger value="1" mapping="On_Off">
<label>Trigger</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
<break/>
<multitrigger button1label="Auto" button1value="auto" button2label="Komfort" button2value="comfort" button3label="Standy By" button3value="standby" button4label="Economy" button4value="economy">
<label>Multitrigger: KONNEX Betriebsart</label>
- <address transform="DPT:20.102" readonly="false" type="">12/7/20</address>
+ <address transform="DPT:20.102" type="">12/7/20</address>
</multitrigger>
<info mapping="KonnexHVAC">
<label>Info: Betriebsart</label>
@@ -138,7 +138,7 @@
<break/>
<multitrigger button1label="An" button1value="0" button2label="Aus" button2value="1" button3label="Essen" button3value="2" button4label="Fernsehen" button4value="3">
<label>Multitrigger: Szenenaufruf</label>
- <address transform="DPT:5.010" readonly="false" type="">12/7/5</address>
+ <address transform="DPT:5.010" type="">12/7/5</address>
</multitrigger>
<break/>
<infotrigger uplabel="wärmer" downlabel="kälter" upvalue="0.1" downvalue="-0.1" align="center" format="%.1f °C" change="absolute" min="7" max="24">
@@ -156,8 +156,8 @@
<break/>
<infotrigger uplabel="+" upvalue="1" downlabel="-" downvalue="0" align="center" infoposition="1" change="relative">
<label>Lautstärke</label>
- <address transform="DPT:16.000" readonly="true" variant="display">12/7/16</address>
- <address transform="DPT:1.001" readonly="false" variant="button">12/7/1</address>
+ <address transform="DPT:16.000" mode="read" variant="display">12/7/16</address>
+ <address transform="DPT:1.001" variant="button">12/7/1</address>
</infotrigger>
<break/>
<info>
@@ -170,14 +170,14 @@
</info>
<multitrigger button1label="An" button1value="50%" button2label="Aus" button2value="0%" button3label="Leise" button3value="25%" button4label="Laut" button4value="100%">
<label>Lautstärke-Text</label>
- <address transform="DPT:16.000" readonly="false" type="">12/7/16</address>
+ <address transform="DPT:16.000" type="">12/7/16</address>
</multitrigger>
<line/>
<text>Absolut</text>
<break/>
<infotrigger uplabel="+" upvalue="5" downlabel="-" downvalue="-5" align="center" infoposition="1" change="absolute" format="%.1f%%" max="100">
<label>Lautstärke</label>
- <address transform="DPT:5.001" readonly="false">12/7/5</address>
+ <address transform="DPT:5.001">12/7/5</address>
</infotrigger>
</page>
<break/>
@@ -211,7 +211,7 @@
</page>
<trigger value="1">
<label>Seitenwechsel per GA</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/100</address>
+ <address transform="DPT:1.001" type="">12/7/100</address>
</trigger>
<line/>
<page name="iframe Test" align="center" >
@@ -356,23 +356,23 @@
<page name="Stylings Test" align="center">
<switch mapping="On_Off" styling="Green_Red">
<label>Switch green/red</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<switch mapping="On_Off" styling="Grey_Green">
<label>Switch grey/green</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<switch mapping="On_Off" styling="Grey_Red">
<label>Switch grey/red</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<switch mapping="On_Off" styling="Grey_Blue">
<label>Switch grey/blue</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<switch mapping="On_Off" styling="Brown_Purple">
<label>Switch brown/purple</label>
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<line/>
<info styling="Blue_Lightblue_Green_Purple_Red" format="%.1f °C">
@@ -387,43 +387,43 @@
<page name="2D fixed Bitmap" type="2d" backdrop="media/demo_2d_backdrop_nikolaushaus.png" align="center">
<switch mapping="On_Off" styling="Red_Green">
<layout x="200px" y="300px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<trigger value="0" mapping="On_Off">
<layout x="0px" y="500px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
<trigger value="1" mapping="On_Off">
<layout x="360px" y="500px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
</page>
<page name="2D scaled Bitmap" type="2d" backdrop="media/demo_2d_backdrop_nikolaushaus.png" align="center">
<switch mapping="On_Off" styling="Red_Green">
<layout x="45%" y="45%" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<trigger value="0" mapping="On_Off">
<layout x="5%" y="70%" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
<trigger value="1" mapping="On_Off">
<layout x="90%" y="70%" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
</page>
<page name="2D SVG" type="2d" backdrop="media/demo_2d_backdrop_nikolaushaus.svg" align="center">
<switch mapping="On_Off" styling="Red_Green">
<layout x="200px" y="300px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</switch>
<trigger value="0" mapping="On_Off">
<layout x="0px" y="500px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
<trigger value="1" mapping="On_Off">
<layout x="360px" y="500px" width="600px" />
- <address transform="DPT:1.001" readonly="false" type="">12/7/1</address>
+ <address transform="DPT:1.001" type="">12/7/1</address>
</trigger>
</page>
<page name="3D" align="center">
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|