public static function renderEdit($request, $module, $action, afDomAccess $view)
 {
     $fields = $view->wrapAll('fields/field');
     $submitUrl = self::getSubmitUrl($module, $action, $view);
     $validators = afEditView::getValidators($fields);
     $fileTypes = afEditView::getFileTypes($fields);
     $result = array();
     $result['success'] = true;
     $result['af_submitUrl'] = $request->getUriPrefix() . $submitUrl;
     $instance = afEditShowRenderer::fetchDataInstance($view);
     foreach (self::getFieldValues($instance, $fields) as $name => $value) {
         $result[sprintf('edit[%s]', $name)] = $value;
     }
     $result['af_formcfg'] = self::buildFormcfg($submitUrl, $validators, $fileTypes);
     return afOutput::renderText(json_encode($result));
 }
 /**
  * Returns the initial value for form field.
  */
 public static function getFieldValue(afDomAccess $field, $object)
 {
     $value = $field->get("@value");
     $selected = $field->get("@selected");
     if (!$value) {
         if ($field->get("@type") == "checkbox" || $field->get("@type") == "radio") {
             $value = $field->get("@checked") ? "yes" : "no";
         } else {
             $source = $field->wrapAll("value");
             if (!empty($source)) {
                 $method = $source[0]->get("source@name");
                 if ($method) {
                     $value = $object->{$method}();
                 } else {
                     $class = $source[0]->get("class");
                     $method = $source[0]->get("method@name");
                     $tmp = $source[0]->wrapAll("method/param");
                     $params = array();
                     foreach ($tmp as $t) {
                         $params[] = $t->get("");
                     }
                     $result = call_user_func_array(array($class, $method), $params);
                     if ($field->get("@type") == "combo" || $field->get("@type") == "extendedCombo" || $field->get("@type") == "multicombo") {
                         if (isset($result[$selected])) {
                             $value = $result[$selected];
                         }
                     } else {
                         if ($field->get("@type") == "doublemulticombo" || $field->get("@type") == "doubletree") {
                             foreach ($result[1] as $r) {
                                 $value .= $r . ",";
                             }
                             $value = trim($value, ",");
                         }
                     }
                 }
             }
         }
     }
     return $value;
 }