CBoxProxy::CBoxProxy(IScenario& rScenario, const CIdentifier& rBoxIdentifier) :m_pConstBox(rScenario.getBoxDetails(rBoxIdentifier)) ,m_pBox(rScenario.getBoxDetails(rBoxIdentifier)) ,m_iXCenter(0) ,m_iYCenter(0) { if(m_pConstBox) { TAttributeHandler l_oAttributeHandler(*m_pConstBox); m_iXCenter=l_oAttributeHandler.getAttributeValue<int>(OVD_AttributeId_XBoxCenterPosition); m_iYCenter=l_oAttributeHandler.getAttributeValue<int>(OVD_AttributeId_YBoxCenterPosition); } }
CBoxProxy::CBoxProxy(const IKernelContext& rKernelContext, IScenario& rScenario, const CIdentifier& rBoxIdentifier) :m_rKernelContext(rKernelContext) ,m_pConstBox(rScenario.getBoxDetails(rBoxIdentifier)) ,m_pBox(rScenario.getBoxDetails(rBoxIdentifier)) ,m_bApplied(false) ,m_iXCenter(0) ,m_iYCenter(0) { if(m_pConstBox) { TAttributeHandler l_oAttributeHandler(*m_pConstBox); m_iXCenter=l_oAttributeHandler.getAttributeValue<int>(OV_AttributeId_Box_XCenterPosition); m_iYCenter=l_oAttributeHandler.getAttributeValue<int>(OV_AttributeId_Box_YCenterPosition); } m_bShowOriginalNameWhenModified=m_rKernelContext.getConfigurationManager().expandAsBoolean("${Designer_ShowOriginalBoxName}", true); }
boolean CScenario::merge( const IScenario& rScenario) { this->getLogManager() << LogLevel_ImportantWarning << "Scenario merging is not yet implemented\n"; #if 0 // Prepares copy map < CIdentifier, CIdentifier > l_vIdMapping; // Copies boxes CIdentifier l_oBoxIdentifier; while((l_oBoxIdentifier=rScenario.getNextBoxIdentifier(l_oBoxIdentifier))!=OV_UndefinedIdentifier) { CIdentifier l_oNewIdentifier; const IBox* l_pBox=rScenario.getBoxDetails(l_oBoxIdentifier); this->addBox( *l_pBox, l_oNewIdentifier); l_vIdMapping[l_oBoxIdentifier]=l_oNewIdentifier; // Updates visualisation manager CIdentifier l_oBoxAlgorithmIdentifier=l_pBox->getAlgorithmClassIdentifier(); const IPluginObjectDesc* l_pPOD = this->getPluginManager().getPluginObjectDescCreating(l_oBoxAlgorithmIdentifier); // If a visualisation box was dropped, add it in window manager if(l_pPOD && l_pPOD->hasFunctionality(PluginFunctionality_Visualization)) { CIdentifier l_oVisualisationWidgetIdentifier; // Let window manager know about new box this->getVisualisationTreeDetails().addVisualisationWidget( l_oVisualisationWidgetIdentifier, l_pBox->getName(), EVisualisationWidget_VisualisationBox, OV_UndefinedIdentifier, 0, l_oNewIdentifier, 0); // this->getVisualisationTreeDetails().reloadTree(); } } // Copies links CIdentifier l_oLinkIdentifier; while((l_oLinkIdentifier=rScenario.getNextLinkIdentifier(l_oLinkIdentifier))!=OV_UndefinedIdentifier) { CIdentifier l_oNewIdentifier; const ILink* l_pLink=rScenario.getLinkDetails(l_oLinkIdentifier); this->connect( l_vIdMapping[l_pLink->getSourceBoxIdentifier()], l_pLink->getSourceBoxOutputIndex(), l_vIdMapping[l_pLink->getTargetBoxIdentifier()], l_pLink->getTargetBoxInputIndex(), l_oNewIdentifier); } return true; #else return false; #endif }