00001 <?php
00026 class Panel extends MetaIterator implements iUIControl
00027 {
00028 public $m_FormName;
00029
00030 public function __construct(&$xmlArr, $childClassName, $parentObj=null)
00031 {
00032 parent::__construct($xmlArr, $childClassName, $parentObj);
00033 $this->m_FormName = $parentObj->m_Name;
00034 }
00035
00036 protected function getFormObj()
00037 {
00038 return BizSystem::objectFactory()->getObject($this->m_FormName);
00039 }
00045 public function render()
00046 {
00047 $panel = array();
00048
00049
00050 foreach($this->m_var as $elem)
00051 {
00052 if ($elem->canDisplayed())
00053 {
00054 $panel[$elem->m_Name]['element'] = $elem->render();
00055 $panel[$elem->m_Name]['type'] = $elem->m_Class;
00056 $panel[$elem->m_Name]['width'] = $elem->m_Width;
00057 $panel[$elem->m_Name]['elementset'] = $elem->m_ElementSet;
00058 $panel[$elem->m_Name]['elementsetcode'] = $elem->m_ElementSetCode;
00059 $panel[$elem->m_Name]['tabset'] = $elem->m_TabSet;
00060 $panel[$elem->m_Name]['tabsetcode'] = $elem->m_TabSetCode;
00061 if (isset($elem->m_Label) && $elem->m_Label !== null)
00062 $panel[$elem->m_Name]['label'] = $elem->renderLabel();
00063 if (isset($elem->m_Value) && $elem->m_Value !== null)
00064 $panel[$elem->m_Name]['value'] = $elem->m_Value;
00065 if (isset($elem->m_Description) && $elem->m_Description !== null)
00066 $panel[$elem->m_Name]['description'] = $elem->getDescription();
00067 if (isset($elem->m_Required))
00068 $panel[$elem->m_Name]['required'] = $elem->m_Required;
00069 if (isset($elem->m_ColumnStyle))
00070 $panel[$elem->m_Name]['colstyle'] = $elem->m_ColumnStyle;
00071 }
00072 }
00073
00074 return $panel;
00075 }
00076
00083 public function renderRecord(&$recArr)
00084 {
00085 if ($recArr)
00086 $this->setRecordArr($recArr);
00087 return $this->render();
00088 }
00089
00096 public function renderTable(&$recSet)
00097 {
00098 $table['elems'] = $this->render();
00099
00100 $counter = 0;
00101 while (true)
00102 {
00103 $arr = $recSet[$counter];
00104
00105 if (!$arr) break;
00106
00107 foreach($this->m_var as $elem)
00108 $elem->reset();
00109 $this->setRecordArr($arr);
00110 $table['ids'][] = $arr['Id'];
00111
00112
00113 foreach($this->m_var as $elem)
00114 {
00115 if ($elem->canDisplayed())
00116 $tableRow[$elem->m_Name] = $elem->render();
00117 }
00118 $table['data'][] = $tableRow;
00119 unset($tableRow);
00120 $counter++;
00121 }
00122 return $table;
00123 }
00124
00132 public function setRecordArr(&$recArr)
00133 {
00134 if(!$recArr)
00135 return ;
00136
00137 foreach($recArr as $key=>$value){
00138 $this->getFormObj()->m_ActiveRecord[$key] = $recArr[$key];
00139 }
00140
00141
00142 foreach ($this->m_var as $elem)
00143 $elem->reset();
00144
00145 $this->getFormObj()->setFormInputs();
00146 foreach ($this->m_var as $elem)
00147 {
00148
00149
00150 if (key_exists($elem->m_FieldName, $recArr)) {
00151 $elem->setValue($recArr[$elem->m_FieldName]);
00152 }
00153 else if (key_exists($elem->m_Name, $recArr)) {
00154 $elem->setValue($recArr[$elem->m_Name]);
00155 }
00156 }
00157 }
00158
00166 public function getByField($fieldName)
00167 {
00168
00169 $elems = $this->m_var;
00170 foreach ($elems as $elem)
00171 {
00172 if($elem->m_FieldName == $fieldName && $elem->m_Class!='RowCheckbox')
00173 {
00174 return $elem;
00175 }
00176 }
00177 }
00178 }
00179 ?>