You are here

function editableviews_handler_field_entity_metadata_property::edit_form_validate in Editable Views 7

Handle the form validation for this field's form element.

File

handlers/editableviews_handler_field_entity_metadata_property.inc, line 280

Class

editableviews_handler_field_entity_metadata_property
Field handler for editing an entity metadata property.

Code

function edit_form_validate($entity_type, $entity, &$element, &$form_state) {

  // Wrappers don't have a way of testing the waters to validate, but we can
  // attempt to set the property and catch an exception.
  try {

    // Get the value out of the form state.
    $value = $this
      ->get_element_value($element, $form_state);
    if ($this->options['reverse_boolean']) {
      $value = !$value;
    }

    // Set it on the wrapper, and stand back!
    $wrapper = entity_metadata_wrapper($entity_type, $entity);
    $wrapper->{$this->options['property']}
      ->set($value);
  } catch (EntityMetadataWrapperException $e) {

    // TODO: the exception message from Entity API is not that end-user-friendly.
    form_error($element[$this->options['property']], $e
      ->getMessage());
  }
}