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

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

00001 <?PHP
00026 class HTMLTree extends MetaObject implements iUIControl
00027 {
00028     protected $m_NodesXml = null;
00029 
00036     function __construct(&$xmlArr)
00037     {
00038         $this->readMetadata($xmlArr);
00039     }
00040 
00046     protected function readMetadata(&$xmlArr)
00047     {
00048         $this->m_Name = $xmlArr["TREE"]["ATTRIBUTES"]["NAME"];
00049         $this->m_Package = $xmlArr["TREE"]["ATTRIBUTES"]["PACKAGE"];
00050         $this->m_Class = $xmlArr["TREE"]["ATTRIBUTES"]["CLASS"];
00051 
00052         $this->m_NodesXml = $xmlArr["TREE"]["NODE"];
00053     }
00054 
00060     public function render()
00061     {
00062         // preload images
00063         $sHTML = "<script language=\"JavaScript\">\n".
00064                 " minus = new Image();\n minus.src = \"".Resource::getImageUrl()."/minus.gif\";\n".
00065                 " plus = new Image();\n plus.src = \"".Resource::getImageUrl()."/plus.gif\";\n".
00066                 "</script>\n";
00067 
00068         // list all views and highlight the current view
00069         $sHTML .= "<ul class='expanded'>\n";
00070         $sHTML .= $this->renderNodeItems($this->m_NodesXml);
00071         $sHTML .= "</ul>";
00072         return $sHTML;
00073     }
00074 
00080     protected function renderNodeItems(&$nodeItemArray)
00081     {
00082         $sHTML = "";
00083         if (isset($nodeItemArray["ATTRIBUTES"]))
00084         {
00085             $sHTML .= $this->renderSingleNodeItem($nodeItemArray);
00086         }
00087         else
00088         {
00089             foreach ($nodeItemArray as $nodeItem)
00090             {
00091                 $sHTML .= $this->renderSingleNodeItem($nodeItem);
00092             }
00093         }
00094         return $sHTML;
00095     }
00096 
00103     protected function renderSingleNodeItem(&$nodeItem)
00104     {
00105         $url = $nodeItem["ATTRIBUTES"]["URL"];
00106         $caption = $this->translate($nodeItem["ATTRIBUTES"]["CAPTION"]);
00107         $target = $nodeItem["ATTRIBUTES"]["TARGET"];
00108         //$img = $nodeItem["ATTRIBUTES"]["IMAGE"];
00109         if ($nodeItem["NODE"])
00110             $image = "<img src='".Resource::getImageUrl()."/plus.gif' class='collapsed' onclick='mouseClickHandler(this)'>";
00111         else
00112             $image = "<img src='".Resource::getImageUrl()."/topic.gif'>";
00113 
00114         if ($target)
00115             if ($url)
00116                 $sHTML .= "<li class='tree'>$image <a href=\"".$url."\" target='$target'>".$caption."</a>";
00117             else
00118                 $sHTML .= "<li class='tree'>$image $caption";
00119         else
00120         if ($url)
00121             $sHTML .= "<li class='tree'>$image <a href=\"".$url."\">".$caption."</a>";
00122         else
00123             $sHTML .= "<li class='tree'>$image $caption";
00124         if ($nodeItem["NODE"])
00125         {
00126             $sHTML .= "\n<ul class='collapsed'>\n";
00127             $sHTML .= $this->renderNodeItems($nodeItem["NODE"]);
00128             $sHTML .= "</ul>";
00129         }
00130         $sHTML .= "</li>\n";
00131         return $sHTML;
00132     }
00133 
00139     public function rerender()
00140     {
00141         return $this->render();
00142     }
00143     
00144     protected function translate($caption)
00145     {
00146        $module = $this->getModuleName($this->m_Name);
00147               return I18n::t($caption, $this->getTransKey(caption), $module);
00148     }
00149     
00150     protected function getTransKey($name)
00151     {
00152        $shortFormName = substr($this->m_Name,intval(strrpos($this->m_Name,'.'))+1);
00153        return strtoupper($shortFormName.'_'.$name);
00154     }
00155 }
00156 
00157 ?>

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