Lithron.LMetaData
[ class tree: Lithron.LMetaData ] [ index: Lithron.LMetaData ] [ 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: 249 $ $Date: 2006-06-05 21:32:47 +0200 (Mo, 05 Jun 2006) $
  10. * @package Lithron.LMetaData
  11. * @subpackage WebControls
  12. */
  13.  
  14. /**
  15. * Wrapper for administration of IMetaData components
  16. *
  17. * @package System.Web.UI.WebControls
  18. * @subpackage MetaData
  19. */
  20. class LMetaDataSelection extends LMetaDataBase
  21. {
  22. private $_packageData;
  23. private $_dataObject;
  24.  
  25. /**
  26. * calls updateDataObject()
  27. * @return object: metadata of this control
  28. */
  29. public function getDataObject()
  30. {
  31. $this->updateDataObject();
  32. return $this->_dataObject;
  33. }
  34.  
  35. /**
  36. * @param string: package name
  37. * @param mixed: data
  38. */
  39. function setPackageData($pkg, $data)
  40. {
  41. $this->_packageData[$pkg]= $data;
  42. }
  43.  
  44. /**
  45. * creates contols
  46. */
  47. public function onLoad($param)
  48. {
  49. $config= $this->Application->getModule("meta_data")->getConfiguration();
  50. $key= $this->getMetaId() . ":Selection";
  51. $controls= $config[$key];
  52. foreach ($controls AS $c)
  53. {
  54. $new= new $c['class'];
  55. $new->setId($c['id']);
  56. $this->Controls[]= $new;
  57. }
  58. parent :: onLoad($param);
  59. }
  60.  
  61. /**
  62. * data is applied
  63. */
  64. public function onPreRender($param)
  65. {
  66. $this->applyDataObject();
  67. parent :: onPreRender($param);
  68. }
  69.  
  70. /**
  71. * performs setSelection() interface definition
  72. */
  73. private function applyDataObject()
  74. {
  75. $this->_dataObject= Prado :: unserialize(TPropertyValue :: ensureString($this->getSerializedDataObject()));
  76. #var_dump($this->_dataObject);
  77. if (isset ($this->_dataObject[self::DATA_KEY]) && is_array($this->_dataObject[self::DATA_KEY]))
  78. foreach ($this->_dataObject[self::DATA_KEY] AS $id => $pkgData)
  79. {
  80. try
  81. {
  82. Prado :: trace("Applying data for $id", "Lithron.LMetaData");
  83. $control= $this->findControl($id);
  84. if (is_array($pkgData) && is_object($control))
  85. $control->setSelection($pkgData);
  86. }
  87. catch (Exception $e)
  88. {
  89. echo "!!! " . $e->getMessage();
  90. }
  91. }
  92.  
  93. }
  94.  
  95. /**
  96. * performs getSelection() interface definition and stores data
  97. */
  98. function updateDataObject()
  99. {
  100. foreach ($this->Controls AS $control)
  101. {
  102. if (is_object($control))
  103. {
  104. $id= $control->getId();
  105. $class= get_class($control);
  106. #echo $id.":".$class;
  107. $items= $control->getSelection();
  108. $this->_packageData[$id]= $items;
  109. }
  110.  
  111. }
  112. $this->_dataObject= array (
  113. "ApiRevision" => self::API_REVISION,
  114. self::DATA_KEY => $this->_packageData
  115. );
  116. #var_dump($this->DataObject);
  117. }
  118.  
  119. /**
  120. * @return array: data object
  121. */
  122. function toArray()
  123. {
  124. $this->updateDataObject();
  125. $return= Prado :: serialize($this->_dataObject);
  126. return $return;
  127. }
  128. }
  129. ?>

Documentation generated on Tue, 20 Jun 2006 05:15:19 +0200 by phpDocumentor 1.3.0RC4