|
From: <ma...@us...> - 2010-12-12 16:47:02
|
Revision: 209
http://openautomation.svn.sourceforge.net/openautomation/?rev=209&view=rev
Author: mayerch
Date: 2010-12-12 16:46:55 +0000 (Sun, 12 Dec 2010)
Log Message:
-----------
Moved switch and trigger to new config syntax
Modified Paths:
--------------
CometVisu/trunk/visu/designs/structure_pure.js
CometVisu/trunk/visu/lib/templateengine.js
CometVisu/trunk/visu/visu_config_demo.xml
CometVisu/trunk/visu/visu_config_neu.xml
Modified: CometVisu/trunk/visu/designs/structure_pure.js
===================================================================
--- CometVisu/trunk/visu/designs/structure_pure.js 2010-12-12 15:48:46 UTC (rev 208)
+++ CometVisu/trunk/visu/designs/structure_pure.js 2010-12-12 16:46:55 UTC (rev 209)
@@ -119,7 +119,7 @@
var src = this.getAttribute('src');
var transform = this.getAttribute('transform');
ga_list.push( src )
- address[ '_' + src ] = transform;
+ address[ '_' + src ] = [transform];
});
var actor = '<div class="actor">';
if( $p.attr('pre') ) actor += '<div>' + $p.attr('pre') + '</div>';
@@ -190,86 +190,110 @@
content: {type: "string", required: true}
});
- this.addCreator("switch", {
- create: function( page, path ) {
- var ret_val = $('<div class="widget" />');
- ret_val.addClass( 'switch' );
- var label = '<div class="label">' + page.textContent + '</div>';
- var response_address = $(page).attr('response_address');
- ga_list.push( response_address );
- var actor = '<div class="actor switchUnpressed">';
- if( $(page).attr('pre') ) actor += $(page).attr('pre');
- actor += '<div class="value">-</div>';
- if( $(page).attr('post') ) actor += $(page).attr('post');
- actor += '</div>';
- ret_val.append( label ).append( $(actor).data( {
- 'GA': $(page).attr('address'),
- 'datatype': $(page).attr('datatype'),
- 'mapping' : $(page).attr('mapping'),
- 'styling' : $(page).attr('styling'),
- 'type' : 'toggle'
- } ).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},
- response_address: {type: "address", required: true},
- response_datatype: {type: "datatype", required: true},
- pre: {type: "string", required: false},
- post: {type: "string", required: false},
- mapping: {type: "mapping", required: false},
- styling: {type: "styling", required: false}
- },
- content: {type: "string", required: true}
+ this.addCreator('switch', {
+ create: function( page, path ) {
+ var $p = $(page);
+ var ret_val = $('<div class="widget switch" />');
+ 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.getAttribute('src');
+ var transform = this.getAttribute('transform');
+ var readonly = this.getAttribute('readonly');
+ ga_list.push( src )
+ address[ '_' + src ] = [ transform, readonly=='true' ];
+ });
+ var actor = '<div class="actor switchUnpressed">';
+ if( $p.attr('pre') ) actor += $p.attr('pre');
+ actor += '<div class="value">-</div>';
+ if( $p.attr('post') ) actor += $p.attr('post');
+ actor += '</div>';
+ var $actor = $(actor).data( {
+ 'address' : address,
+ 'mapping' : $p.attr('mapping'),
+ 'styling' : $p.attr('styling'),
+ 'type' : 'switch'
+ } ).bind( 'click', this.action );
+ for( var addr in address ) $actor.bind( addr, this.update );
+ ret_val.append( label ).append( $actor );
+ 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' );
+ },
+ action: function() {
+ var data = $(this).data();
+ for( var addr in data.address )
+ {
+ if( data.address[addr][1] == true ) continue; // skip read only
+ visu.write( addr.substr(1), data.value=='1' ? '0' : '1', data.address[addr][0].substr(4) );
+ }
+ },
+ attributes: {
+ pre: { type: 'string' , required: false },
+ post: { type: 'string' , required: false },
+ mapping: { type: 'mapping' , required: false },
+ styling: { type: 'styling' , required: false }
+ },
+ content: { type: 'string', required: true }
});
- this.addCreator("toggle", this.getCreator("switch"));
-
- this.addCreator("trigger", {
- create: function( page, path ) {
- var value = $(page).attr('value') ? $(page).attr('value') : 0;
- var ret_val = $('<div class="widget" />');
- ret_val.addClass( 'switch' );
- var label = '<div class="label">' + page.textContent + '</div>';
- var address = $(page).attr('address');
- var actor = '<div class="actor switchUnpressed">';
- if( $(page).attr('pre') ) actor += $(page).attr('pre');
- var map = $(page).attr('mapping');
- if( mappings[map] && mappings[map][value] )
- actor += '<div class="value">' + mappings[map][value] + '</div>';
- else
- actor += '<div class="value">' + value + '</div>';
- if( $(page).attr('post') ) actor += $(page).attr('post');
- actor += '</div>';
- ret_val.append( label ).append( $(actor).data( {
- 'GA' : $(page).attr('address'),
- 'datatype': $(page).attr('datatype'),
- 'mapping' : $(page).attr('mapping'),
- 'styling' : $(page).attr('styling'),
- 'type' : 'trigger',
- 'sendValue': value
- } ).bind('click',triggerAction) );
-
- return ret_val;
- },
- attributes: {
- address: {type: "address", required: true},
- datatype: {type: "datatype", required: true},
- value: {type: "string", required: true},
- pre: {type: "string", required: false},
- post: {type: "string", required: false},
- mapping: {type: "mapping", required: false},
- styling: {type: "styling", required: false}
- },
- content: {type: "string", required: true}
+ this.addCreator('trigger', {
+ create: function( page, path ) {
+ var $p = $(page);
+ var value = $p.attr('value') ? $p.attr('value') : 0;
+ var ret_val = $('<div class="widget switch" />');
+ 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.getAttribute('src');
+ var transform = this.getAttribute('transform');
+ var readonly = this.getAttribute('readonly');
+ ga_list.push( src )
+ address[ '_' + src ] = [ transform, readonly=='true' ];
+ });
+ var actor = '<div class="actor switchUnpressed">';
+ if( $p.attr('pre') ) actor += $p.attr('pre');
+ var map = $p.attr('mapping');
+ if( mappings[map] && mappings[map][value] )
+ actor += '<div class="value">' + mappings[map][value] + '</div>';
+ else
+ actor += '<div class="value">' + value + '</div>';
+ if( $p.attr('post') ) actor += $p.attr('post');
+ actor += '</div>';
+ var $actor = $(actor).data( {
+ 'address' : address,
+ 'mapping' : $(page).attr('mapping'),
+ 'styling' : $(page).attr('styling'),
+ 'type' : 'trigger',
+ 'sendValue': value
+ } ).bind( 'click', this.action );
+ ret_val.append( label ).append( $actor );
+ return ret_val;
+ },
+ action: function() {
+ var data = $(this).data();
+ for( var addr in data.address )
+ {
+ if( data.address[addr][1] == true ) continue; // skip read only
+ visu.write( addr.substr(1), data.sendValue, data.address[addr][0].substr(4) );
+ }
+ },
+ attributes: {
+ address: { type: 'address' , required: true },
+ datatype: { type: 'datatype', required: true },
+ value: { type: 'string' , required: true },
+ pre: { type: 'string' , required: false },
+ post: { type: 'string' , required: false },
+ mapping: { type: 'mapping' , required: false },
+ styling: { type: 'styling' , required: false }
+ },
+ content: { type: 'string' , required: true }
});
this.addCreator("image", {
@@ -428,12 +452,6 @@
this.addPopup('warning', $.extend(true, {}, this.getPopup('unknown')) );
this.addPopup('error' , $.extend(true, {}, this.getPopup('unknown')) ) ;
- this.switchAction = function() {
- var data = $(this).data();
- // alert( data.GA + ' = ' + data.value );
- visu.write( data.GA, data.value=='1' ? '0' : '1', data.datatype );
- }
-
this.slideAction = function(event,ui) {
//alert(ui.value);
var now = new Date().getTime();
@@ -542,7 +560,7 @@
var element = passedElement || $(this);
//var datatype = element.data().address[ e.type ];
//var value = decodeDPT( data, element.data('datatype') );
- var value = transform( data, element.data().address[ e.type ] );
+ var value = transform( data, element.data().address[ e.type ][0] );
element.data( 'value', value );
element.find('.value').text( map( value, element ) );
Modified: CometVisu/trunk/visu/lib/templateengine.js
===================================================================
--- CometVisu/trunk/visu/lib/templateengine.js 2010-12-12 15:48:46 UTC (rev 208)
+++ CometVisu/trunk/visu/lib/templateengine.js 2010-12-12 16:46:55 UTC (rev 209)
@@ -313,18 +313,6 @@
/* FIXME - Question: should this belong to the VisuDesign object so that it */
/* is possible to overload?!? */
/****************************************************************************/
-function switchAction()
-{
- var data = $(this).data();
- visu.write( data.GA, data.value=='1' ? '0' : '1', data.datatype );
-}
-
-function triggerAction()
-{
- var data = $(this).data();
- visu.write( data.GA, data.sendValue, data.datatype );
-}
-
function refreshAction( target, src )
{
target.src = src + '&' + new Date().getTime();
Modified: CometVisu/trunk/visu/visu_config_demo.xml
===================================================================
--- CometVisu/trunk/visu/visu_config_demo.xml 2010-12-12 15:48:46 UTC (rev 208)
+++ CometVisu/trunk/visu/visu_config_demo.xml 2010-12-12 16:46:55 UTC (rev 209)
@@ -38,7 +38,8 @@
<statusbar>
<status type="html"><![CDATA[
<img src="icon/comet_64_ff8000.png" alt="CometVisu" /> by <a href="http://www.cometvisu.org/">CometVisu.org</a>
- - <a href=".">Reload</a>
+ - <a href=".?config=demo">Reload</a>
+ - <a href=".">Default Config</a>
]]></status>
<status type="html" condition="!edit"><![CDATA[
- <a href="edit_config.html">Edit</a>
@@ -52,7 +53,7 @@
</statusbar>
</meta>
<page name="Übersicht">
- <text align="center">Willkommen bei der CometVisu!</text>
+ <text align="center">CometVisu widget demo</text>
<toggle address="1/0/2" datatype="1.001" response_address="1/0/2" mapping="OnOff" styling="RedGreen">Terrase Licht</toggle>
<trigger address="1/0/2" datatype="1.001" value="0" mapping="OnOff">Terrase Licht 0</trigger>
<trigger address="1/0/2" datatype="1.001" value="1" mapping="OnOff">Terrase Licht 1</trigger>
Modified: CometVisu/trunk/visu/visu_config_neu.xml
===================================================================
--- CometVisu/trunk/visu/visu_config_neu.xml 2010-12-12 15:48:46 UTC (rev 208)
+++ CometVisu/trunk/visu/visu_config_neu.xml 2010-12-12 16:46:55 UTC (rev 209)
@@ -61,6 +61,20 @@
<address src="12/4/250" transform="DPT:9" />
<address src="12/4/251" transform="DPT:9.001" />
</info>
+ <switch mapping="OnOff" styling="RedGreen">
+ <label>Terrase Licht</label>
+ <address src="1/0/2" transform="DPT:1.001" />
+ <address src="12/4/253" transform="DPT:9.001" readonly="true" />
+ </switch>
+ <break />
+ <trigger value="0" mapping="OnOff">
+ <label>Terrase Licht 0</label>
+ <address src="1/0/2" transform="DPT:1.001" />
+ </trigger>
+ <trigger value="1" mapping="OnOff">
+ <label>Terrase Licht 1</label>
+ <address src="1/0/2" transform="DPT:1.001" />
+ </trigger>
<line />
<designtoggle>Change design</designtoggle>
</page>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|