comparison webapp/src/main/webapp/jquery/jquery.digilib.sliders.js @ 1066:555f6f0d6be5

prepare for making rgb indicator an independent widget
author hertzhaft
date Mon, 02 Apr 2012 08:19:21 +0200
parents 897f0560af46
children 788c757d7f70
comparison
equal deleted inserted replaced
1065:897f0560af46 1066:555f6f0d6be5
103 } 103 }
104 }; 104 };
105 105
106 var indicators = { 106 var indicators = {
107 brgt : function ($slider, value) { 107 brgt : function ($slider, value) {
108 // TODO: replace with call to setIndicatorValues()
108 var brgt = parseFloat(value); 109 var brgt = parseFloat(value);
109 var cls = $slider.data('cls'); 110 var cls = $slider.data('cls');
110 var $ind = $slider.data('indicator'); 111 var $ind = $slider.data('indicator');
111 var $td = $ind.find('table.'+cls+'indicator td'); 112 var $td = $ind.find('table.'+cls+'indicator td');
112 var setBgColor = function (index) { 113 var setBgColor = function (index) {
113 var val = index * 32; 114 var val = index * 32;
114 var grey = Math.min(Math.max(Math.round(val + brgt), 0), 255); 115 var grey = Math.min(Math.max(Math.round(val + brgt), 0), 255);
115 $(this).css('background-color', 'rgb('+grey+','+grey+','+grey+')'); 116 $(this).css('background-color', 'rgb('+grey+','+grey+','+grey+')');
116 }; 117 };
117 $td.each(setBgColor); 118 $td.each(setBgColor);
118 }, 119 },
119 120
120 cont : function ($slider, value) { 121 cont : function ($slider, value) {
122 // TODO: replace with call to setIndicatorValues()
121 var cont = parseFloat(value); 123 var cont = parseFloat(value);
122 var cls = $slider.data('cls'); 124 var cls = $slider.data('cls');
123 var $ind = $slider.data('indicator'); 125 var $ind = $slider.data('indicator');
124 var $td = $ind.find('table.'+cls+'indicator td'); 126 var $td = $ind.find('table.'+cls+'indicator td');
125 var setBgColor = function (index) { 127 var setBgColor = function (index) {
126 var val = index * 32; 128 var val = index * 32;
127 var grey = Math.min(Math.max(Math.round(Math.pow(2, cont) * val), 0), 255); 129 var grey = Math.min(Math.max(Math.round(Math.pow(2, cont) * val), 0), 255);
128 $(this).css('background-color', 'rgb('+grey+','+grey+','+grey+')'); 130 $(this).css('background-color', 'rgb('+grey+','+grey+','+grey+')');
129 }; 131 };
130 $td.each(setBgColor); 132 $td.each(setBgColor);
131 } 133 },
132 }; 134
135 rgb : function ($slider, value) {
136 // TODO: replace with call to setIndicatorValues()
137 var val = parseFloat(value);
138 var cls = $slider.data('cls');
139 var $ind = $slider.data('indicator');
140 var $td = $ind.find('table.'+cls+'indicator td');
141 var setRGBValue = function (index) {
142 var val = index * 32;
143 var r = Math.min(Math.max(Math.round(Math.pow(2, rm) * val + ra), 0), 255);
144 var g = Math.min(Math.max(Math.round(Math.pow(2, gm) * val + ga), 0), 255);
145 var b = Math.min(Math.max(Math.round(Math.pow(2, bm) * val + ba), 0), 255);
146 $(this).css('background-color', 'rgb('+r+','+g+','+b+')');
147 };
148 $td.each(setRGBValue);
149 }
150 };
151
152 // set indicator values
153 var setIndicatorValues = function ($slider) {
154 var cls = $slider.data('cls');
155 var $ind = $slider.data('indicator');
156 var $td1 = $div.find('table.'+cls+'grey td');
157 var $td2 = $ind.find('table.'+cls+'indicator td');
158 var setGreyScale = function (index) {
159 // sets a series of grey values
160 var val = index * 32;
161 $(this).css('background-color', 'rgb('+val+','+val+','+val+')');
162 };
163 // TODO: account for current brgt/cont/rgbm/rgba values
164 var setRGBValue = function (index) {
165 var val = index * 32;
166 var r = Math.min(Math.max(Math.round(Math.pow(2, rm) * val + ra), 0), 255);
167 var g = Math.min(Math.max(Math.round(Math.pow(2, gm) * val + ga), 0), 255);
168 var b = Math.min(Math.max(Math.round(Math.pow(2, bm) * val + ba), 0), 255);
169 $(this).css('background-color', 'rgb('+r+','+g+','+b+')');
170 };
171 $td1.each(setGreyScale);
172 $td2.each(setRGBValue);
173 };
174
133 // assign button actions to sliders (rotate, brightness, contrast) 175 // assign button actions to sliders (rotate, brightness, contrast)
134 var setButtonActions = function () { 176 var setButtonActions = function () {
135 if (fn.setButtonAction == null) { 177 if (fn.setButtonAction == null) {
136 console.debug('sliders: could not assign button actions. Maybe jquery.digilib.buttons.js was not loaded?'); 178 console.debug('sliders: could not assign button actions. Maybe jquery.digilib.buttons.js was not loaded?');
137 return; 179 return;
392 <table class="'+cls+'indicator">\ 434 <table class="'+cls+'indicator">\
393 <tr>'+td+'</tr>\ 435 <tr>'+td+'</tr>\
394 </table>\ 436 </table>\
395 </div>'; 437 </div>';
396 var $div = $(html); 438 var $div = $(html);
439 // TODO: replace with setRGBValue
397 var setGreyScale = function (index) { 440 var setGreyScale = function (index) {
398 // sets a series of grey values 441 // sets a series of grey values
399 var val = index * 32; 442 var val = index * 32;
400 $(this).css('background-color', 'rgb('+val+','+val+','+val+')'); 443 $(this).css('background-color', 'rgb('+val+','+val+','+val+')');
401 }; 444 };