Generates the form element for a single copy of the widget.
protected function formSingleElement(EntityInterface $entity, array $items, $delta, $langcode, array $element, array &$form, array &$form_state) {
$instance = $this->instance;
$field = $this->field;
$element += array(
'#entity_type' => $entity
->entityType(),
'#bundle' => $entity
->bundle(),
'#entity' => $entity,
'#field_name' => $field['field_name'],
'#language' => $langcode,
'#field_parents' => $form['#parents'],
'#columns' => array_keys($field['columns']),
// Only the first widget should be required.
'#required' => $delta == 0 && $instance['required'],
'#delta' => $delta,
'#weight' => $delta,
);
$element = $this
->formElement($items, $delta, $element, $langcode, $form, $form_state);
if ($element) {
// Allow modules to alter the field widget form element.
$context = array(
'form' => $form,
'field' => $field,
'instance' => $instance,
'langcode' => $langcode,
'items' => $items,
'delta' => $delta,
'default' => !empty($entity->field_ui_default_value),
);
drupal_alter(array(
'field_widget_form',
'field_widget_' . $this
->getPluginId() . '_form',
), $element, $form_state, $context);
}
return $element;
}