Ejemplo n.º 1
0
 /**
  * Renders the given array of nodes.
  * @param TREE_NODE[] $nodes
  * @access private
  */
 public function iterate_nodes($nodes)
 {
     $count = count($nodes);
     $index = 0;
     $sub_nodes = array();
     $sub_node_has_children = false;
     while ($index < $count) {
         $node = $nodes[$index];
         if ($node) {
             $node_sub_nodes = $this->node_info->sub_nodes($node);
             $sub_node_has_children = $sub_node_has_children || !empty($node_sub_nodes);
             $sub_nodes[] = $node_sub_nodes;
         } else {
             $sub_nodes[] = array();
         }
         $index += 1;
     }
     $index = 0;
     while ($index < $count) {
         $node = $nodes[$index];
         if (isset($this->decorator)) {
             $this->decorator->node_found($node);
         }
         $this->iterate_node($node, $index == $count - 1, $sub_nodes[$index], $sub_node_has_children);
         $index += 1;
     }
 }
 /**
  * @param TREE $tree Decorate this tree.
  * @param integer[] $selected_node_ids Initially selected node ids
  */
 public function __construct($tree, $selected_node_ids)
 {
     parent::__construct($tree);
     $this->selected_node_ids = $selected_node_ids;
 }