|
From: <ma...@us...> - 2010-12-12 21:34:01
|
Revision: 215
http://openautomation.svn.sourceforge.net/openautomation/?rev=215&view=rev
Author: mayerch
Date: 2010-12-12 21:33:55 +0000 (Sun, 12 Dec 2010)
Log Message:
-----------
Transformed colorChooser
Modified Paths:
--------------
CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
CometVisu/trunk/visu/visu_config_neu.xml
Modified: CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js
===================================================================
--- CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2010-12-12 20:22:10 UTC (rev 214)
+++ CometVisu/trunk/visu/plugins/colorchooser/structure_plugin.js 2010-12-12 21:33:55 UTC (rev 215)
@@ -21,77 +21,109 @@
* to demonstrate all available
*/
VisuDesign_Custom.prototype.addCreator("colorchooser", {
- create: function( page, path ) {
- var ret_val = $('<div class="widget" />');
- ret_val.addClass( 'colorChooser' );
- var label = '<div class="label">' + page.textContent + '</div>';
- var actor = '<div class="actor">';
- actor += '</div>';
- var a_r = $(page).attr('address_r'); ga_list.push( a_r );
- var a_g = $(page).attr('address_g'); ga_list.push( a_g );
- var a_b = $(page).attr('address_b'); ga_list.push( a_b );
- var datatype = $(page).attr('datatype');
- ret_val.append(label)
- .append($(actor)
- .data({
- //'mapping' : $(page).attr('mapping'),
- //'styling' : $(page).attr('styling'),
- 'datatype': datatype, //jQuery(page).attr('datatype'), // use jQuery as '$' dosn't work here?!?
- 'value_r' : 0,
- 'value_g' : 0,
- 'value_b' : 0,
- 'type' : 'colorChooser'
- })
- .farbtastic( function(color){
- var r = parseInt(color.substring(1, 3), 16) * 100 / 255;
- var g = parseInt(color.substring(3, 5), 16) * 100 / 255;
- var b = parseInt(color.substring(5, 7), 16) * 100 / 255;
- visu.write( a_r, r, datatype );
- visu.write( a_g, g, datatype );
- visu.write( a_b, b, datatype );
- })
- .bind('_'+$(page).attr('address_r'), this.update_r )
- .bind('_'+$(page).attr('address_g'), this.update_g )
- .bind('_'+$(page).attr('address_b'), this.update_b ) );
- return ret_val;
- },
- update_r: function(e,d) {
- var element = $(this);
- var value = decodeDPT( d, element.data('datatype') );
- element.data( 'value_r', value );
- function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
- var color = toHex( element.data( 'value_r' )*255/100 )
- + toHex( element.data( 'value_g' )*255/100 )
- + toHex( element.data( 'value_b' )*255/100 );
- jQuery.farbtastic( element ).setColor( '#' + color );
- },
- update_g: function(e,d) {
- var element = $(this);
- var value = decodeDPT( d, element.data('datatype') );
- element.data( 'value_g', value );
- function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
- var color = toHex( element.data( 'value_r' )*255/100 )
- + toHex( element.data( 'value_g' )*255/100 )
- + toHex( element.data( 'value_b' )*255/100 );
- jQuery.farbtastic( element ).setColor( '#' + color );
- },
- update_b: function(e,d) {
- var element = $(this);
- var value = decodeDPT( d, element.data('datatype') );
- element.data( 'value_b', value );
- function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
- var color = toHex( element.data( 'value_r' )*255/100 )
- + toHex( element.data( 'value_g' )*255/100 )
- + toHex( element.data( 'value_b' )*255/100 );
- jQuery.farbtastic( element ).setColor( '#' + color );
- },
- attributes: {
- address_r: {type: "address", required: true},
- address_g: {type: "address", required: true},
- address_b: {type: "address", required: true},
- datatype: {type: "datatype", required: true},
- },
- content: {type: "string", required: true}
+ create: function( page, path ) {
+ var $p = $(page);
+ var ret_val = $('<div class="widget" />');
+ ret_val.addClass( 'colorChooser' );
+
+ 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 color = this.getAttribute('color' );
+ var readonly = this.getAttribute('readonly' );
+ ga_list.push( src )
+ address[ '_' + src ] = [ transform, color, readonly=='true' ];
+ });
+
+ var actor = '<div class="actor">';
+ actor += '</div>';
+ var datatype = $(page).attr('datatype');
+ var $actor = $(actor)
+ .data({
+ 'address' : address,
+ 'value_r' : 0,
+ 'value_g' : 0,
+ 'value_b' : 0,
+ 'type' : 'colorChooser'
+ })
+ .farbtastic( function(color){
+ var r = parseInt(color.substring(1, 3), 16) * 100 / 255;
+ var g = parseInt(color.substring(3, 5), 16) * 100 / 255;
+ var b = parseInt(color.substring(5, 7), 16) * 100 / 255;
+ for( var addr in address )
+ {
+ if( address[addr][2] == true ) continue; // skip read only
+ switch( address[addr][1] )
+ {
+ case 'r':
+ visu.write( addr.substr(1), r, address[addr][0].substr(4) );
+ break;
+ case 'g':
+ visu.write( addr.substr(1), g, address[addr][0].substr(4) );
+ break;
+ case 'b':
+ visu.write( addr.substr(1), b, address[addr][0].substr(4) );
+ break;
+ }
+ }
+ });
+ for( var addr in address ) {
+ switch( address[addr][1] ) {
+ case 'r':
+ $actor.bind( addr, this.update_r );
+ break;
+ case 'g':
+ $actor.bind( addr, this.update_g );
+ break;
+ case 'b':
+ $actor.bind( addr, this.update_b );
+ break;
+ }
+ }
+
+ ret_val.append(label).append( $actor );
+ return ret_val;
+ },
+ update_r: function( e, data ) {
+ var element = $(this);
+ var value = transform( data, element.data().address[ e.type ][0] );
+ element.data( 'value_r', value );
+ function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
+ var color = toHex( element.data( 'value_r' )*255/100 )
+ + toHex( element.data( 'value_g' )*255/100 )
+ + toHex( element.data( 'value_b' )*255/100 );
+ jQuery.farbtastic( element ).setColor( '#' + color );
+ },
+ update_g: function( e, data ) {
+ var element = $(this);
+ var value = transform( data, element.data().address[ e.type ][0] );
+ element.data( 'value_g', value );
+ function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
+ var color = toHex( element.data( 'value_r' )*255/100 )
+ + toHex( element.data( 'value_g' )*255/100 )
+ + toHex( element.data( 'value_b' )*255/100 );
+ jQuery.farbtastic( element ).setColor( '#' + color );
+ },
+ update_b: function( e, data ) {
+ var element = $(this);
+ var value = transform( data, element.data().address[ e.type ][0] );
+ element.data( 'value_b', value );
+ function toHex( x ) { var r = parseInt( x ).toString(16); return r.length == 1 ? '0'+r : r; }
+ var color = toHex( element.data( 'value_r' )*255/100 )
+ + toHex( element.data( 'value_g' )*255/100 )
+ + toHex( element.data( 'value_b' )*255/100 );
+ jQuery.farbtastic( element ).setColor( '#' + color );
+ },
+ attributes: {
+ address_r: { type: 'address' , required: true },
+ address_g: { type: 'address' , required: true },
+ address_b: { type: 'address' , required: true },
+ datatype: { type: 'datatype', required: true },
+ },
+ content: { type: 'string', required: true }
});
/**
Modified: CometVisu/trunk/visu/visu_config_neu.xml
===================================================================
--- CometVisu/trunk/visu/visu_config_neu.xml 2010-12-12 20:22:10 UTC (rev 214)
+++ CometVisu/trunk/visu/visu_config_neu.xml 2010-12-12 21:33:55 UTC (rev 215)
@@ -2,8 +2,8 @@
<pages xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" design="pure" xsi:noNamespaceSchemaLocation="visu_config.xsd">
<meta>
<plugins>
+ <plugin name="colorchooser"/>
<!--
- <plugin name="colorchooser"/>
<plugin name="diagram"/>
-->
</plugins>
@@ -88,5 +88,15 @@
<page name="iframe Test">
<iframe src="http://www.cometvisu.org" width="500px" height="500px"/>
</page>
+ <colorchooser>
+ <label>A colorChooser</label>
+ <address src="1/2/59" transform="DPT:5.001" color="r" />
+ <address src="1/2/60" transform="DPT:5.001" color="g" />
+ <address src="1/2/61" transform="DPT:5.001" color="b" />
+ </colorchooser>
+ <info><label>R</label><address src="1/2/59" transform="DPT:5.001" /></info>
+ <info><label>G</label><address src="1/2/60" transform="DPT:5.001" /></info>
+ <info><label>B</label><address src="1/2/61" transform="DPT:5.001" /></info>
+ <slide><label>B</label><address src="1/2/61" transform="DPT:5.001" /></slide>
</page>
</pages>
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|