public function createFormElement(Tracker $tracker, array $formElement_data, User $user)
 {
     $formElement = $this->factory->getFormElementById($formElement_data['field_id']);
     if (!$formElement) {
         $exception_message = $GLOBALS['Language']->getText('plugin_tracker_formelement_exception', 'wrong_field_id', $formElement_data['field_id']);
         throw new Exception($exception_message);
     }
     $field = $this->getRootOriginalField($formElement);
     $this->assertFieldCanBeCopied($field, $user);
     $data = $this->populateFormElementDataForASharedField($field);
     $type = $data['type'];
     $id = $this->factory->createFormElement($tracker, $type, $data);
     $this->boundValuesFactory->duplicateByReference($field->getId(), $id);
     return $id;
 }