Phundament-Packages
[ class tree: Phundament-Packages ] [ index: Phundament-Packages ] [ all elements ]

Source for file LMetaDataSelection.php

Documentation is available at LMetaDataSelection.php

  1. <?php
  2.  
  3. /**
  4.  * class file.
  5.  *
  6.  * @license http://opensource.org/licenses/mozilla1.1.php Mozilla Public License
  7.  * @copyright 2005, diemeisterei GmbH. All rights reserved.
  8.  * @author $Author: schmunk $
  9.  * @version $Revision: 601 $  $Date: 2007-02-24 23:49:30 +0100 (Sa, 24 Feb 2007) $
  10.  * @package Phundament.Packages
  11.  * @subpackage LMetaData
  12.  */
  13.  
  14. /**
  15.  * Wrapper for administration of IMetaData components
  16.  *
  17.  * @package System.Web.UI.WebControls
  18.  * @subpackage MetaData
  19.  */
  20. {
  21.     private $_packageData;
  22.     private $_dataObject;
  23.  
  24.     /**
  25.      * calls updateDataObject()
  26.      * @return object: metadata of this control
  27.      */
  28.     public function getDataObject()
  29.     {
  30.         $this->updateDataObject();
  31.         return $this->_dataObject;
  32.     }
  33.  
  34.     /**
  35.      * @param string: package name
  36.      * @param mixed: data
  37.      */
  38.     function setPackageData($pkg$data)
  39.     {
  40.         $this->_packageData[$pkg]$data;
  41.     }
  42.  
  43.     /**
  44.      * creates contols
  45.      */
  46.     public function onLoad($param)
  47.     {
  48.         $config$this->Application->getModule("meta_data")->getConfiguration();
  49.         $key$this->getMetaId(":Selection";
  50.         $controls$config[$key];
  51.         foreach ($controls AS $c)
  52.         {
  53.  
  54.             $newnew $c['class'];
  55.             $new->setId($c['id']);
  56.             $new->setCustomData($c['custom_data']);
  57.             $this->Controls[]$new;
  58.         }
  59.         parent :: onLoad($param);
  60.     }
  61.  
  62.     /**
  63.      * data is applied
  64.      */
  65.     public function onPreRender($param)
  66.     {
  67.         $this->applyDataObject();
  68.         parent :: onPreRender($param);
  69.     }
  70.  
  71.     /**
  72.      * performs setSelection() interface definition
  73.      */
  74.     private function applyDataObject()
  75.     {
  76.         $this->_dataObjectPrado :: unserialize(TPropertyValue :: ensureString($this->getSerializedDataObject()));
  77.         #var_dump($this->_dataObject);
  78.         if (isset ($this->_dataObject[self::DATA_KEY]&& is_array($this->_dataObject[self::DATA_KEY]))
  79.             foreach ($this->_dataObject[self::DATA_KEYAS $id => $pkgData)
  80.             {
  81.                 try
  82.                 {
  83.                     Prado :: trace("Applying data for $id""Lithron.LMetaData");
  84.                     $control$this->findControl($id);
  85.                     if (is_array($pkgData&& is_object($control))
  86.                         $control->setSelection($pkgData);
  87.                 }
  88.                 catch (Exception $e)
  89.                 {
  90.                     Prado :: trace($e->getMessage()"Lithron.LMetaData");
  91.                 }
  92.             }
  93.  
  94.     }
  95.  
  96.     /**
  97.      * performs getSelection() interface definition and stores data
  98.      */
  99.     function updateDataObject()
  100.     {
  101.         foreach ($this->Controls AS $control)
  102.         {
  103.             if (is_object($control))
  104.             {
  105.                 $id$control->getId();
  106.                 $classget_class($control);
  107.                 #echo $id.":".$class;
  108.                 $items$control->getSelection();
  109.                 $this->_packageData[$id]$items;
  110.             }
  111.  
  112.         }
  113.         $this->_dataObjectarray (
  114.             "ApiRevision" => self::API_REVISION,
  115.             self::DATA_KEY => $this->_packageData
  116.         );
  117.         #var_dump($this->DataObject);
  118.     }
  119.  
  120.     /**
  121.      * @return array: data object
  122.      */
  123.     function toArray()
  124.     {
  125.         $this->updateDataObject();
  126.         $returnPrado :: serialize($this->_dataObject);
  127.         return $return;
  128.     }
  129. }
  130. ?>

Documentation generated on Sun, 25 Feb 2007 16:11:13 +0100 by phpDocumentor 1.3.1