/**
  * TODO PHPDoc
  * Enter description here ...
  * @param unknown_type $template
  * @param umiField $field
  * @param unknown_type $object
  */
 public function renderEditField($template, umiField $field, $object = false)
 {
     $field_type_id = $field->getFieldTypeId();
     $field_type = umiFieldTypesCollection::getInstance()->getFieldType($field_type_id);
     $is_multiple = $field_type->getIsMultiple();
     $data_type = $field_type->getDataType();
     switch ($data_type) {
         case "counter":
         case "int":
             $res = $this->renderEditFieldInt($field, $is_multiple, $object, $template);
             $data_type = "int";
             break;
         case "price":
         case "float":
             $res = $this->renderEditFieldInt($field, $is_multiple, $object, $template);
             break;
         case "string":
             $res = $this->renderEditFieldString($field, $is_multiple, $object, $template);
             break;
         case "date":
             $res = $this->renderEditFieldDate($field, $is_multiple, $object, $template);
             break;
         case "password":
             $res = $this->renderEditFieldPassword($field, $is_multiple, $object, $template);
             break;
         case "relation":
             $res = $this->renderEditFieldRelation($field, $is_multiple, $object, $template);
             break;
         case "symlink":
             $res = $this->renderEditFieldSymlink($field, $is_multiple, $object, $template);
             break;
         case "img_file":
             $res = $this->renderEditFieldImageFile($field, $is_multiple, $object, $template);
             break;
         case "video_file":
         case "swf_file":
             $res = $this->renderEditFieldFile($field, $is_multiple, $object, $template);
             break;
         case "file":
             $res = $this->renderEditFieldFile($field, $is_multiple, $object, $template);
             break;
         case "text":
             $res = $this->renderEditFieldText($field, $is_multiple, $object, $template);
             break;
         case "wysiwyg":
             $res = $this->renderEditFieldWYSIWYG($field, $is_multiple, $object, $template);
             break;
         case "boolean":
             $res = $this->renderEditFieldBoolean($field, $is_multiple, $object, $template);
             break;
         case "tags":
             $res = $this->renderEditFieldTags($field, $is_multiple, $object, $template);
             break;
         case "optioned":
             $res = $this->renderEditFieldOptioned($field, $is_multiple, $object, $template);
             break;
         default:
             $res = "";
     }
     if ($res === false) {
         return NULL;
     }
     if (!def_module::isXSLTResultMode()) {
         $required = $field->getIsRequired();
         $res = def_module::parseTemplate($res, array('required' => $required ? 'required' : '', 'required_asteriks' => $required ? '<i>*</i>' : ''));
     } else {
         $res['attribute:type'] = $data_type;
         $res['attribute:id'] = $field->getId();
         if ($field->getIsRequired()) {
             $res['attribute:required'] = 'required';
         }
         if ($tip = $field->getTip()) {
             $res['attribute:tip'] = $tip;
         }
     }
     return $res;
 }