void HierarchyTreeAggregatorNode::ReplaceAggregator(HierarchyTreeControlNode *node) { UIAggregatorControl* uiAggregator = dynamic_cast<UIAggregatorControl*>(node->GetUIObject()); String path1; if (uiAggregator && uiAggregator->GetAggregatorPath().compare(path) == 0) { Logger::Debug(uiAggregator->GetAggregatorPath().c_str()); HIERARCHYTREENODESLIST childs = node->GetChildNodes(); uint32 i = 0; for (HIERARCHYTREENODESLIST::iterator iter = childs.begin(); iter != childs.end(); ++iter) { HierarchyTreeNode* childNode = (*iter); node->RemoveTreeNode(childNode, true, false); if (++i == GetScreen()->GetChildren().size()) break; } HierarchyTreeAggregatorControlNode* controlNode = dynamic_cast<HierarchyTreeAggregatorControlNode*>(node); DVASSERT(controlNode); if (controlNode) controlNode->SetAggregatorNode(this); this->childs.insert(node); UpdateChilds(); } const HierarchyTreeNode::HIERARCHYTREENODESLIST& child = node->GetChildNodes(); for (HierarchyTreeNode::HIERARCHYTREENODESLIST::const_iterator iter = child.begin(); iter != child.end(); ++iter) { HierarchyTreeControlNode* node = dynamic_cast<HierarchyTreeControlNode*>(*iter); DVASSERT(node); if (!node) continue; ReplaceAggregator(node); } }