public function startRender(__IComponent &$component) { $properties = array(); $component_properties = $component->getProperties(); foreach ($component_properties as $property => $value) { $properties[] = $property . '="' . $value . '"'; } $properties[] = 'id="' . $component->getId() . '"'; $properties[] = 'name="' . $component->getName() . '"'; $jod_response_writer = $this->_getJavascriptResponseWriter(); if ($component->getVisible() == false) { $properties[] = 'style = "display : none;"'; } $value = $component->getValue(); if ($value) { $properties[] = 'class="depressed"'; } else { $properties[] = 'class="raised"'; } $width = $component->getWidth(); $height = $component->getHeight(); $style = array(); if ($width != null) { $style[] = 'width:' . $width; } if ($height != null) { $style[] = 'height:' . $height; } $return_value = '<span style="display: inline-block; ' . implode('; ', $style) . '" onclick="toggleButton(this);" ' . implode(' ', $properties) . '>'; return $return_value; }
public function startRender(__IComponent &$component) { $component_id = $component->getId(); $class_name = $component->getClassName(); $window_properties = array(); $window_properties[] = 'width: ' . $component->getWidth(); $window_properties[] = 'height: ' . $component->getHeight(); $window_properties[] = 'className: "' . $class_name . '"'; $window_properties[] = 'destroyOnClose: false'; $window_properties[] = 'recenterAuto: false'; $window_properties[] = 'id: "' . $component->getId() . '"'; if ($component->getTitle() !== null) { $window_properties[] = 'title: "' . $component->getTitle() . '"'; } if (!$component->getShowCloseButton()) { $window_properties[] = 'closable: false'; } if (!$component->getShowMaximizeButton()) { $window_properties[] = 'maximizable: false'; } if (!$component->getShowMinimizeButton()) { $window_properties[] = 'minimizable: false'; } if (__ResponseWriterManager::getInstance()->hasResponseWriter('prototype_window')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('prototype_window'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('prototype_window'); $jod_response_writer->addCssFileRef('prototypewindow/themes/default.css'); if ($class_name != 'dialog') { $jod_response_writer->addCssFileRef('prototypewindow/themes/' . $class_name . '.css'); } $jod_response_writer->addJsFileRef('prototypewindow/javascripts/window.js'); $jod_response_writer->addLoadCheckingVariable('Window'); $jod_response_writer->addLoadCheckingVariable('Windows'); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $js_code = "if(!window['{$component_id}']) {\n"; $js_code .= " {$component_id} = new Window({" . join(', ', $window_properties) . "});\n"; $js_code .= " {$component_id}.setCloseCallback(function() {\n"; $js_code .= " (__ClientEventHandler.getInstance()).sendEvent(\"close\", {}, \"{$component_id}\");\n"; $js_code .= " return true;\n"; $js_code .= " });\n"; $content = $component->getContent(); if (!empty($content)) { $js_code .= " {$component_id}.setHTMLContent(" . json_encode($content) . ");\n"; } $js_code .= "}\n"; $jod_response_writer->addJsCode($js_code); }
public function startRender(__IComponent &$component) { if (__ResponseWriterManager::getInstance()->hasResponseWriter('sliderjscode')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('sliderjscode'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('sliderjscode'); $jod_response_writer->addJsFileRef('scriptaculous/src/slider.js'); $jod_response_writer->addLoadCheckingVariable('Control'); $jod_response_writer->addLoadCheckingVariable('Control.Slider'); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $component_id = $component->getId(); $handle = $component_id . '_handle'; $track = $component_id . '_track'; $initial_value = $component->getValue(); $input_receiver = $component->getInputReceiver(); $decimals = $component->getDecimals(); if ($decimals > 0) { $v = 'Math.round(v*1' . str_pad('', $decimals, '0') . ')/1' . str_pad('', $decimals, '0'); } else { $v = 'Math.round(v)'; } $onreceiver_keyup_js = ''; $onslide_js = ''; if ($input_receiver != null) { $input_receiver_id = $input_receiver->getId(); $onslide_js = ''; if ($input_receiver instanceof __InputBoxComponent) { $onslide_js = 'onSlide: function(v) { $(\'' . $input_receiver_id . '\').value = ' . $v . '; },'; $onreceiver_keyup_js = <<<CODE \$("{$input_receiver_id}").onKeyUp = function() { var value = \$("{$input_receiver_id}").value; if (value == '') return; if (isNaN(value)) \$('{$component_id}').setValue(0); else \$('{$component_id}').setValue(value); } CODE; } else { if ($input_receiver instanceof __LabelComponent) { $onslide_js = 'onSlide: function(v) { $(\'' . $input_receiver_id . '\').update(' . $v . '); },'; } } } $lower_limit = $component->getLowerLimit(); $upper_limit = $component->getUpperLimit(); $axis = $component->getAxis(); $js_code = <<<CODE window['{$component_id}'] = new Control.Slider("{$handle}", "{$track}", { {$onslide_js} onChange: function(v) { (__ClientEventHandler.getInstance()).sendEvent("change", {}, "{$component_id}"); }, range: \$R({$lower_limit},{$upper_limit}), sliderValue: {$initial_value}, axis: "{$axis}" }); {$onreceiver_keyup_js} CODE; $jod_response_writer->addJsCode($js_code); $width = $component->getWidth(); $height = $component->getHeight(); $handle_width = $component->getHandleWidth(); $handle_height = $component->getHandleHeight(); $track_css_class = $component->getTrackCssClass(); $left_track_css_class = $component->getLeftTrackCssClass(); $handle_img = $component->getHandleImg(); if (empty($track_css_class)) { $track_style = 'style="width:' . $width . '; background-color:#ccc; height: ' . $height . ';"'; } else { $track_style = 'class="' . $track_css_class . '"'; } if (empty($handle_img)) { $handle_style = 'style="width:' . $handle_width . '; height:' . $handle_height . ';background-color:#f00; cursor:move;"'; } else { $handle_style = 'style="width:' . $handle_width . '; height:' . $handle_height . ';"'; } $return_value = <<<CODE <div id="{$component_id}" style="width:{$width}; height: {$handle_height};"> <div {$track_style} id="{$track}" style="width:{$width}; height:{$height};"> <div class="{$left_track_css_class}"></div><div id="{$handle}" {$handle_style}><img src="{$handle_img}" alt="" style="float: left;" /></div> </div> </div> CODE; return $return_value; }