public function startRender(__IComponent &$component) { $component_id = $component->getId(); $properties = array(); $component_properties = $component->getProperties(); foreach ($component_properties as $property => $value) { $property = strtolower($property); if ($property != 'runat') { $properties[] = $property . '="' . $value . '"'; } } if (!key_exists('TYPE', $component_properties)) { $properties[] = 'type="text"'; } $properties[] = 'id="' . $component_id . '"'; $properties[] = 'name="' . $component->getName() . '"'; $value = $component->getValue(); $example_value = $component->getExampleValue(); if (!empty($value)) { $properties[] = 'value="' . htmlentities($value) . '"'; } else { if (!empty($example_value)) { $properties[] = 'value="' . htmlentities($example_value) . '"'; } } if ($component->getVisible() == false) { $properties[] = 'style = "display : none;"'; } $return_value = '<input ' . implode(' ', $properties) . '>'; if (!empty($example_value)) { if (__ResponseWriterManager::getInstance()->hasResponseWriter('examplevalues')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('examplevalues'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('examplevalues'); $js_code = <<<CODE function hideExampleValue(event){ var formfield = Event.element(event); var exampleValue = (\$A(arguments)).last(); if (formfield.value == exampleValue) { formfield.value = ""; } } CODE; $jod_response_writer->addJsCode($js_code); $jod_response_writer->setLoadAfterDomLoaded(true); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $js_code = "Event.observe('{$component_id}', 'focus', hideExampleValue.bindAsEventListener(\$({$component_id}), '{$example_value}'));\n"; $jod_response_writer->addJsCode($js_code); } return $return_value; }
public function endRender() { parent::endRender(); $async_message = __ClientNotificator::getInstance()->getStartupNotification($this->_view_code); if ($async_message != null && ($async_message->getHeader()->getStatus() != __AsyncMessageHeader::ASYNC_MESSAGE_STATUS_OK || $async_message->hasPayload())) { $response_writer_manager = __ResponseWriterManager::getInstance(); if ($response_writer_manager->hasResponseWriter('javascript')) { $javascript_response_writer = $response_writer_manager->getResponseWriter('javascript'); } else { $javascript_response_writer = new __JavascriptOnDemandResponseWriter('javascript'); $response_writer_manager->addResponseWriter($javascript_response_writer); } if ($response_writer_manager->hasResponseWriter('setup-client-view')) { $setup_client_view_rw = $response_writer_manager->getResponseWriter('setup-client-view'); } else { $setup_client_view_rw = new __JavascriptOnDemandResponseWriter('setup-client-view'); $setup_client_view_rw->setLoadAfterDomLoaded(false); $javascript_response_writer->addResponseWriter($setup_client_view_rw); } $javascript_response_writer->addJsCode('__MessageProcessor.process(Object.extend(new __Message(), ' . $async_message->toJson() . '));', __JavascriptOnDemandResponseWriter::JS_CODE_POSITION_BOTTOM); } }
public function startRender(__IComponent &$component) { $component_id = $component->getId(); if (__ResponseWriterManager::getInstance()->hasResponseWriter('uploadfile')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('uploadfile'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('uploadfile'); $jod_response_writer->setLoadAfterDomLoaded(true); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer); } $jod_response_writer->addJsCode($component_id . ' = new __FileUploader($("' . $component_id . '"));' . "\n"); if ($component->getStatus() == __IUploaderComponent::UPLOAD_STATUS_DONE) { $filename = $component->getFilename(); $icon = $component->getIcon(); if ($icon != null) { $filename = "<img src='{$icon}' width='32' height='32' valign='absmiddle'> " . $filename; } $jod_response_writer->addJsCode($component_id . '.renderAsUploaded("' . $filename . '");'); } $properties = array(); $component_properties = $component->getProperties(); foreach ($component_properties as $property => $value) { $properties[] = $property . '="' . $value . '"'; } $properties[] = 'type = "file"'; $properties[] = 'id = "' . $component_id . '"'; $properties[] = 'name = "' . $component_id . '"'; if ($component->getVisible() == false) { $properties[] = 'style = "display : none;"'; } $input_file_properties = implode(' ', $properties); $return_value = <<<CODE <input type="file" {$input_file_properties}> CODE; return $return_value; }
public function startRender(__IComponent &$component) { $component_id = $component->getId(); $component_name = $component->getName(); if (!__ResponseWriterManager::getInstance()->hasResponseWriter('remoteservicedeclarations_' . $component_name)) { $send_event_parameters = array(); $send_event_parameters[] = "'remotecall'"; $send_event_parameters[] = "arg"; $send_event_parameters[] = "'{$component_id}'"; $send_event_parameters = join(', ', $send_event_parameters); //generate the remote service function: $js_code = <<<CODESET {$component_name} = function() { var arg = \$A({$component_name}.arguments); (__ClientEventHandler.getInstance()).sendEvent({$send_event_parameters}); }; CODESET; $jod_response_writer2 = new __JavascriptOnDemandResponseWriter('remoteservicedeclarations_' . $component_name); $jod_response_writer2->addJsCode($js_code); $javascript_rw = __ResponseWriterManager::getInstance()->getResponseWriter('javascript'); $javascript_rw->addResponseWriter($jod_response_writer2); //generate the callback code (if applicable) $callback = $component->getClientResponseCallback(); if ($callback != null) { $js_callback_code = "{$component_id} = new __ResponseCallbackHandler({$callback});"; if (__ResponseWriterManager::getInstance()->hasResponseWriter('remoteservicecallback')) { $jod_response_writer = __ResponseWriterManager::getInstance()->getResponseWriter('remoteservicecallback'); } else { $jod_response_writer = new __JavascriptOnDemandResponseWriter('remoteservicecallback'); } $jod_response_writer->addJsCode($js_callback_code); $jod_response_writer->setLoadAfterDomLoaded(true); $javascript_rw->addResponseWriter($jod_response_writer); } } }