boolean CScenario::acceptVisitor( IObjectVisitor& rObjectVisitor) { CObjectVisitorContext l_oObjectVisitorContext(getKernelContext()); if(!rObjectVisitor.processBegin(l_oObjectVisitorContext, *this)) { return false; } map<CIdentifier, CBox*>::iterator i; for(i=m_vBox.begin(); i!=m_vBox.end(); i++) { if(!i->second->acceptVisitor(rObjectVisitor)) { return false; } } map<CIdentifier, CComment*>::iterator j; for(j=m_vComment.begin(); j!=m_vComment.end(); j++) { if(!j->second->acceptVisitor(rObjectVisitor)) { return false; } } map<CIdentifier, CLink*>::iterator k; for(k=m_vLink.begin(); k!=m_vLink.end(); k++) { if(!k->second->acceptVisitor(rObjectVisitor)) { return false; } } map<CIdentifier, CProcessingUnit*>::iterator l; for(l=m_vProcessingUnit.begin(); l!=m_vProcessingUnit.end(); l++) { if(!l->second->acceptVisitor(rObjectVisitor)) { return false; } } if(!getKernelContext().getVisualisationManager().getVisualisationTree(m_oVisualisationTreeIdentifier).acceptVisitor(rObjectVisitor)) { return false; } if(!rObjectVisitor.processEnd(l_oObjectVisitorContext, *this)) { return false; } return true; }
boolean CVisualisationTree::acceptVisitor(IObjectVisitor& rObjectVisitor) { CObjectVisitorContext l_oObjectVisitorContext(getKernelContext()); if(!rObjectVisitor.processBegin(l_oObjectVisitorContext, *this)) { return false; } //go through all top level visualisation widgets and visit them recursively in a depth-first approach CIdentifier l_oCurrentIdentifier = OV_UndefinedIdentifier; while(getNextVisualisationWidgetIdentifier(l_oCurrentIdentifier, EVisualisationWidget_VisualisationWindow)) { if(!visitVisualisationWidget(rObjectVisitor, l_oCurrentIdentifier, true)) { return false; } } //go through all visualisation boxes and visit unaffected ones l_oCurrentIdentifier = OV_UndefinedIdentifier; while(getNextVisualisationWidgetIdentifier(l_oCurrentIdentifier, EVisualisationWidget_VisualisationBox)) { IVisualisationWidget* l_pVisualisationWidget = getVisualisationWidget(l_oCurrentIdentifier); if(l_pVisualisationWidget->getParentIdentifier() == OV_UndefinedIdentifier) { if(!visitVisualisationWidget(rObjectVisitor, l_oCurrentIdentifier, true)) { return false; } } } if(!rObjectVisitor.processEnd(l_oObjectVisitorContext, *this)) { return false; } return true; }
boolean CBox::acceptVisitor( IObjectVisitor& rObjectVisitor) { CObjectVisitorContext l_oObjectVisitorContext(getKernelContext()); return rObjectVisitor.processBegin(l_oObjectVisitorContext, *this) && rObjectVisitor.processEnd(l_oObjectVisitorContext, *this); }