namespace Combodo\iTop\Form\Field; use \Closure; use \Combodo\iTop\Form\Form; /** * Description of SubFormField * * @author Guillaume Lajarige */ class SubFormField extends Field { protected $oForm; /** * Default constructor * * @param string $sId * @param string $sParentFormId * @param Closure $onFinalizeCallback */ public function __construct($sId, $sParentFormId, Closure $onFinalizeCallback = null) { $this->oForm = new Form($sParentFormId.'-subform_'.$sId); parent::__construct($sId, $onFinalizeCallback); } /** * * @return \Combodo\iTop\Form\Form */ public function GetForm() { return $this->oForm; } /** * Checks the validators to see if the field's current value is valid. * Then sets $bValid and $aErrorMessages. * * @return boolean */ public function Validate() { $this->oForm->Validate(); } /** * * @return boolean */ public function GetValid() { return $this->oForm->GetValid(); } /** * * @return array */ public function GetErrorMessages() { $aRet = array(); foreach ($this->oForm->GetErrorMessages() as $sSubFieldId => $aSubFieldMessages) { $aRet[] = $sSubFieldId.': '.implode(', ', $aSubFieldMessages); } return $aRet; } /** * * @return array */ public function GetCurrentValue() { return $this->oForm->GetCurrentValues(); } /** * * @param array $value * @return \Combodo\iTop\Form\Field\SubFormField */ public function SetCurrentValue($value) { $this->oForm->SetCurrentValues($value); return $this; } }