From 290ccc3735eaee72819a2ad6d6a2f77a60a74dd8 Mon Sep 17 00:00:00 2001 From: Daniel Date: Sun, 19 Oct 2014 16:24:04 -0500 Subject: function tryToUpdateView 1st version completed. --- framework/Web/UI/TPage.php | 62 +++++++++++++++++++++++++++++++++++++++++----- 1 file changed, 56 insertions(+), 6 deletions(-) (limited to 'framework/Web') diff --git a/framework/Web/UI/TPage.php b/framework/Web/UI/TPage.php index e9fd8141..82e1f0ae 100644 --- a/framework/Web/UI/TPage.php +++ b/framework/Web/UI/TPage.php @@ -1215,19 +1215,69 @@ class TPage extends TTemplateControl /** * Function to update view controls with those data in a given AR object. - * @param type $arObj - * TODO + * @param TActiveRecord $arObj + * @author Daniel Sampedro */ - public function tryUpdateView($arObj) + public function tryToUpdateView($arObj, $throwExceptions = false) { - + $objAttrs = get_class_vars(get_class($arObj)); + foreach (array_keys($objAttrs) as $key) + { + try + { + if ($key != "RELATIONS") + { + $control = $this->{$key}; + switch (get_class($control)) + { + default: + case "TTextBox": + $control->Text = $arObj->{$key}; + break; + case "TCheckBox": + $control->Checked = (boolean) $arObj->{$key}; + break; + case "TDatePicker": + $control->Date = $arObj->{$key}; + break; + } + } else + { + foreach ($objAttrs["RELATIONS"] as $relKey => $relValues) + { + $relControl = $this->{$relKey}; + switch ($relValues[0]) + { + case TActiveRecord::BELONGS_TO: + case TActiveRecord::HAS_ONE: + $relControl->Text = $arObj->{$relKey}; + break; + case TActiveRecord::HAS_MANY: + if($relControl instanceof TListControl){ + $relControl->DataSource = $arObj->{$relKey}; + $relControl->dataBind(); + } + break; + } + } + break; + } + } catch (Exception $ex) + { + if ($throwExceptions) + { + throw $ex; + } + } + } } /** * Function to try to update an AR object with data in view controls. - * @param type $arObj + * @param TActiveRecord $arObj + * @author Daniel Sampedro */ - public function tryUpdateAR($arObj) + public function tryToUpdateAR($arObj) { } -- cgit v1.2.3