#
# SUPERV Supervision : contains the implementation of interfaces of SuperVision described in SUPERV.idl
#
-# Copyright (C) 2003 CEA/DEN, EDF R&D
-#
+# Copyright (C) 2003 OPEN CASCADE, EADS/CCR, LIP6, CEA/DEN,
+# CEDRAT, EDF R&D, LEG, PRINCIPIA R&D, BUREAU VERITAS
+#
+# This library is free software; you can redistribute it and/or
+# modify it under the terms of the GNU Lesser General Public
+# License as published by the Free Software Foundation; either
+# version 2.1 of the License.
+#
+# This library is distributed in the hope that it will be useful,
+# but WITHOUT ANY WARRANTY; without even the implied warranty of
+# MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+# Lesser General Public License for more details.
+#
+# You should have received a copy of the GNU Lesser General Public
+# License along with this library; if not, write to the Free Software
+# Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+#
+# See http://www.salome-platform.org/ or email : webmaster.salome@opencascade.com
#
#
# File : SuperV.py
from salome import naming_service
from salome import CORBA
from salome import sg
+ from salome import SALOMEDS
import SALOME_ModuleCatalog
import SUPERV
import SUPERV_idl
modulecatalog = naming_service.Resolve("/Kernel/ModulCatalog")
+def createDataflowStudyObject( theStudy , aDataFlow , aBuilder ) :
+ aStudyObject = theStudy.FindObjectIOR( aDataFlow.G.getIOR() )
+ if aStudyObject == None :
+ aComponent = theStudy.FindComponent( "SUPERV" )
+ if aComponent == None :
+ print "createDataflowStudyObject Component SUPERV is None"
+ aComponent = aBuilder.NewComponent( "SUPERV" )
+ anAttr = aBuilder.FindOrCreateAttribute(aComponent, "AttributeName")
+ aName = anAttr._narrow( SALOMEDS.AttributeName )
+ aName.SetValue( modulecatalog.GetComponentInfo( "SUPERV" ).username )
+ anAttr = aBuilder.FindOrCreateAttribute( aComponent , "AttributePixMap" )
+ aPixmap = anAttr._narrow( SALOMEDS.AttributePixMap )
+ aPixmap.SetPixMap( "ICON_OBJBROWSER_Supervision" );
+ aBuilder.DefineComponentInstance( aComponent , SuperVision )
+ print "createDataflowStudyObject Component SUPERV is created"
+ aStudyObject = aBuilder.NewObject( aComponent )
+ anAttr = aBuilder.FindOrCreateAttribute( aStudyObject , "AttributeName" )
+ aName = anAttr._narrow( SALOMEDS.AttributeName )
+ aName.SetValue( aDataFlow.Name() )
+ anAttr = aBuilder.FindOrCreateAttribute( aStudyObject , "AttributeIOR" )
+ anIORAttr = anAttr._narrow( SALOMEDS.AttributeIOR )
+ anIORAttr.SetValue( aDataFlow.G.getIOR() )
+ return aStudyObject
+
+def addDataflowToStudy( theStudy , aDataFlow ) :
+ aBuilder = theStudy.NewBuilder()
+ aBuilder.NewCommand()
+ aStudyObject = createDataflowStudyObject( theStudy , aDataFlow , aBuilder )
+ if aStudyObject != None :
+ aBuilder.CommitCommand()
+ sg.updateObjBrowser( 1 )
+ print "addDataflowToStudy aStudyObject ",aDataFlow.Name()," added in study"
+ #theStudy.updateObjBrowser()
+ else :
+ print "addDataflowToStudy ERROR aStudyObject is None"
+ aBuilder.AbortCommand()
+ return aBuilder,aStudyObject
+
def PortInputFloat(obj, x):
return obj.Input( SuperVision.AnyValue( CORBA.Any(CORBA.TC_double, x)))
return self.N.DoneW()
def SuspendedW( self ):
return self.N.SuspendedW()
- def ReRun( self ):
- return self.N.ReRun()
- def ReStart( self ):
- return self.N.ReStart()
- def ReRunAt( self , aNodeName ):
- return self.N.ReRunAt( aNodeName )
- def ReStartAt( self , aNodeName ):
- return self.N.ReStartAt( aNodeName )
+ #def ReRun( self ):
+ # return self.N.ReRun()
+ #def ReStart( self ):
+ # return self.N.ReStart()
+ #def ReRunAt( self , aNodeName ):
+ # return self.N.ReRunAt( aNodeName )
+ #def ReStartAt( self , aNodeName ):
+ # return self.N.ReStartAt( aNodeName )
def Ping( self ):
return self.N.ping()
def Kill( self ):
return self.N.SetInterfaceName( anInterfaceName )
def SetContainer( self , aComputer ):
return self.N.SetContainer( aComputer )
+ def IsCimpl( self ):
+ return self.N.isCimpl
##########################################################
class INode(CNode):
#if SuperVision.Swig :
#aService = Service_Swig( aService )
return self.FNode( aComponent , anInterface , aService )
+ def FNodeImpl( self , aComponent , anInterface , aService, isCimpl ):
+ NodeComponent = modulecatalog.GetComponent( aComponent )
+ aService = NodeComponent.GetService( anInterface , aService )
+ aNode = self.G.FNode( aComponent , anInterface , aService, isCimpl )
+ if aNode != None :
+ aNode.isCimpl = isCimpl
+ myNode = FNode( aNode , self.G.Verbose )
+ return myNode
+ ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
+ if self.G.Verbose :
+ print ErrMsg
+ return aNode
def FNode( self , aComponent , anInterface , aService ):
+ # create node with C++ implementation type by default
NodeComponent = modulecatalog.GetComponent( aComponent )
aService = NodeComponent.GetService( anInterface , aService )
#if SuperVision.Swig :
#aService = Service_Swig( aService )
- aNode = self.G.FNode( aComponent , anInterface , aService )
+ aNode = self.G.FNode( aComponent , anInterface , aService, SALOME_ModuleCatalog.SO )
if aNode != None :
+ aNode.isCimpl = 1
myNode = FNode( aNode , self.G.Verbose )
return myNode
ErrMsg = "Failed to create a Node with Service " + aService.ServiceName
if self.G.Verbose :
print ErrMsg
return aLink
+ def Messages( self ):
+ return self.G.Messages()
def Import( self , anXmlFileName ):
return self.G.Import( anXmlFileName )
def Export( self , anXmlFileName ):