예제 #1
0
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;
}
예제 #2
0
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;
}
예제 #3
0
boolean CBox::acceptVisitor(
	IObjectVisitor& rObjectVisitor)
{
	CObjectVisitorContext l_oObjectVisitorContext(getKernelContext());
	return rObjectVisitor.processBegin(l_oObjectVisitorContext, *this) && rObjectVisitor.processEnd(l_oObjectVisitorContext, *this);
}