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) { $properties = array(); $component_id = $component->getId(); $date_format = $component->getDateFormat(); $datebox_button_id = $component_id . '_calbutton'; if (__ResponseWriterManager::getInstance()->hasResponseWriter('datebox')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('datebox'); $jod_setup_response_writer = $jod_response_writer->getResponseWriter('datebox-setup'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('datebox'); $jod_response_writer->addCssFileRef('jscalendar/calendar-green.css'); $jod_response_writer->addJsFileRef('jscalendar/calendar.js'); $jod_response_writer->addLoadCheckingVariable('Calendar'); $jod_language_response_writer = new __JavascriptOnDemandResponseWriter('datebox-language'); $jod_language_response_writer->addJsFileRef('jscalendar/lang/calendar-en.js'); $jod_language_response_writer->addLoadCheckingVariable('Calendar._DN'); $jod_response_writer->addResponseWriter($jod_language_response_writer); $jod_setup_response_writer = new __JavascriptOnDemandResponseWriter('datebox-setup'); $jod_setup_response_writer->addJsFileRef('jscalendar/calendar-setup.js'); $jod_setup_response_writer->addLoadCheckingVariable('Calendar.setup'); $jod_language_response_writer->addResponseWriter($jod_setup_response_writer); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $js_code = <<<CODESET Calendar.setup({ \tinputField:"{$component_id}", \tifFormat:"{$date_format}", \tbutton:"{$datebox_button_id}", \tshowsTime:false }); CODESET; $jod_setup_response_writer->addJsCode($js_code); $component_properties = $component->getProperties(); foreach ($component_properties as $property => $value) { $properties[] = $property . '="' . $value . '"'; } $properties[] = 'type="text"'; $properties[] = 'id="' . $component->getId() . '"'; $properties[] = 'name="' . $component->getName() . '"'; $properties[] = 'value="' . $component->getValue() . '"'; if ($component->getVisible() == false) { $properties[] = 'style = "display : none;"'; } $local_js_lib = __ApplicationContext::getInstance()->getPropertyContent('JS_LIB_DIR'); $calendar_image_url = __UrlHelper::resolveUrl('jscalendar/calendar.gif', $local_js_lib); $return_value = '<input onchange="this.fire(\'lion:validate\');" ' . implode(' ', $properties) . '> <input type="image" src="' . $calendar_image_url . '" id="' . $datebox_button_id . '" width="16" height="16" border="0">'; return $return_value; }
public function endRender(__IComponent &$component) { $component_id = $component->getId(); $return_value = $this->_component_writer->endRender($component); $context_help = $component->getContextHelp(); if (!empty($context_help)) { if (__ResponseWriterManager::getInstance()->hasResponseWriter('formcontexthelp')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('formcontexthelp'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('formcontexthelp'); $jod_response_writer->addCssFileRef('formcontexthelp/formcontexthelp.css'); $jod_response_writer->addJsFileRef('formcontexthelp/formcontexthelp.js'); $jod_response_writer->addLoadCheckingVariable('prepareInputsForHints'); $jod_response_writer->addJsCode("\nprepareInputsForHints();\n"); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $return_value .= '<span id="' . $component_id . '_contextHelp" class="hint" style="display: none;">' . $context_help . '<span id="' . $component_id . '_contextHelpPointer" class="hint-pointer" style="display: none;"> </span></span>'; } $example = str_replace("'", "\\'", $component->getExample()); if (!empty($example)) { if (__ResponseWriterManager::getInstance()->hasResponseWriter('inputexamples')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('inputexamples'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('inputexamples'); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); $code = <<<CODESET window['showAllExamples'] = function() { \$\$('input').each(function(inputElement) { showExampleValueOnInput(inputElement); }); }; var showExampleValueOnInput = function(input) { if(input['exampleValue']) { input.onfocus = function () { if(input.exampleValue == input.value) { if(input.originalType == 'password') { input.type = 'password'; } input.value = ''; input.style.color = ''; } } input.onblur = function () { if(input.value == '') { if(input.type == 'password') { input.originalType = 'password'; input.type = 'text'; } input.value = input.exampleValue; input.style.color = '#858585'; } } if(input.value == '') { if(input.type == 'password') { input.originalType = 'password'; input.type = 'text'; } input.value = input.exampleValue; } if(input.value == input.exampleValue) { if(input.type == 'password') { input.originalType = 'password'; input.type = 'text'; } input.style.color = '#858585'; } } }; CODESET; $jod_response_writer->addJsCode($code); } $code = <<<CODESET var {$component_id} = \$('{$component_id}'); {$component_id}.exampleValue = '{$example}'; showExampleValueOnInput({$component_id}); CODESET; $jod_response_writer->addJsCode($code); } $mask = $component->getMask(); if (!empty($mask)) { if (__ResponseWriterManager::getInstance()->hasResponseWriter('inputmask')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('inputmask'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('inputmask'); $jod_response_writer->addJsFileRef('inputmask/inputmask.js'); $jod_response_writer->addLoadCheckingVariable('__InputMask'); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $jod_response_writer->addJsCode("(__InputMask.getInstance()).addMask(\"{$component_id}\", \"{$mask}\");\n"); } return $return_value; }