コード例 #1
0
 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);
 }
コード例 #2
0
    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) . '>&nbsp;<input type="image" src="' . $calendar_image_url . '"  id="' . $datebox_button_id . '" width="16" height="16" border="0">';
        return $return_value;
    }
コード例 #3
0
    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;">&nbsp;</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;
    }