• Main Page
  • Related Pages
  • Namespaces
  • Data Structures
  • Files
  • File List

E:/E/GEAMP/www/openbiz/openbiz/bin/easy/Panel.php

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         /* @var $elem Element */
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)  // reset the elements
00108                 $elem->reset();
00109             $this->setRecordArr($arr);
00110             $table['ids'][] = $arr['Id'];
00111 
00112             /* @var $elem Element */
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         // reset elements first to avoid use stale data
00142         foreach ($this->m_var as $elem)
00143               $elem->reset();
00144         /* @var $elem Element */
00145         $this->getFormObj()->setFormInputs();
00146         foreach ($this->m_var as $elem)
00147         {
00148             //if (!$recArr)
00149             //    $elem->setValue("");
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         /* @var $elem Element */
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 ?>

Generated on Thu Apr 19 2012 17:09:13 for openbiz by  doxygen 1.7.2