";
public $minus = " ";
public $point = " ";
/**
* Tree
*
* @param array $xmlnode default value NULL
*
* @return void
*/
public function __construct($xmlnode = null)
{
if (!isset($xmlnode)) {
return;
}
if (isset($xmlnode->attributes['nodeType'])) {
$this->nodeType = $xmlnode->attributes['nodeType'];
}
foreach ($xmlnode as $key => $value) {
if ($key === 'children') {
foreach ($xmlnode->children as $key => $value) {
$this->children[$key] = new PmTree($value->toTree());
}
} elseif ($key === 'attributes') {
foreach ($xmlnode->attributes as $key => $value) {
$this->{$key} = $value;
}
} else {
$this->{$key} = $value;
}
}
}
/**
* &addChild
*
* @param string $name
* @param string $label
* @param array $attributes
*
* @return object(Tree) $newNode
*/
public function &addChild($name, $label, $attributes = array())
{
$newNode = new PmTree(new Xml_Node($name, 'open', $label, $attributes));
$this->children[] = & $newNode;
return $newNode;
}
/**
* printPlus
*
* @return string '...'
*/
public function printPlus()
{
$plus = 'none';
$minus = 'none';
$point = 'none';
if ($this->showSign) {
if ((sizeof($this->children) > 0) && ($this->contracted)) {
$plus = '';
} elseif ((sizeof($this->children) > 0) && (!$this->contracted)) {
$minus = '';
} else {
$point = '';
}
}
return "{$this->plus}" . "{$this->minus}" . "{$this->point}";
}
/**
* printLabel
*
* @return $this->value
*/
public function printLabel()
{
return $this->value;
}
/**
* printContent
*
* @return string $html
*/
public function printContent()
{
$html = '';
$row = 0;
foreach ($this->children as $child) {
if ($row) {
$child->nodeClass = 'treeNodeAlternate';
}
$html .= $child->render();
$row = ($row + 1) % 2;
}
return $html;
}
/**
* render
*
* @return $obj->printObject( array( 'node' => &$this ) )
*/
public function render()
{
$obj = new objectTemplate($this->template);
return $obj->printObject(array('node' => &$this));
}
}