]> SALOME platform Git repositories - modules/gui.git/commitdiff
Salome HOME
PAL9391
authorasl <asl@opencascade.com>
Wed, 9 Nov 2005 11:09:06 +0000 (11:09 +0000)
committerasl <asl@opencascade.com>
Wed, 9 Nov 2005 11:09:06 +0000 (11:09 +0000)
src/SalomeApp/SalomeApp_Study.cxx
src/SalomeApp/SalomeApp_Study.h

index ab02eaa72fead50823c9c85cc70f9ad507144adf..59ce63e0530255e71aee9e04bcc9afa7f186ef34 100644 (file)
@@ -551,7 +551,7 @@ void SalomeApp_Study::deleteReferencesTo( _PTR( SObject ) obj )
 // Function : referencedToEntry
 /*! Purpose  : Return referenced entry from entry*/
 //================================================================
-QString SalomeApp_Study::referencedToEntry( const QString& entry )
+QString SalomeApp_Study::referencedToEntry( const QString& entry ) const
 {
   _PTR(SObject) obj = studyDS()->FindObjectID( entry.latin1() );
   _PTR(SObject) refobj;
@@ -565,10 +565,47 @@ QString SalomeApp_Study::referencedToEntry( const QString& entry )
 // Function : componentDataType
 /*! Purpose  : Return component data type from entry*/
 //================================================================
-QString SalomeApp_Study::componentDataType( const QString& entry )
+QString SalomeApp_Study::componentDataType( const QString& entry ) const
 {
   _PTR(SObject) obj( studyDS()->FindObjectID( entry.latin1() ) );
   if ( !obj )
     return LightApp_Study::componentDataType( entry );
   return obj->GetFatherComponent()->ComponentDataType().c_str();
 }
+
+//================================================================
+// Function : componentDataType
+/*! Purpose  : Return component data type from entry*/
+//================================================================
+bool SalomeApp_Study::isComponent( const QString& entry ) const
+{
+  _PTR(SObject) obj( studyDS()->FindObjectID( entry.latin1() ) );
+  return obj && QString( obj->GetID().c_str() ) == obj->GetFatherComponent()->GetID().c_str();
+}
+
+//================================================================
+// Function : children
+/*! Purpose : Return entries of children of object*/
+//================================================================
+void SalomeApp_Study::children( const QString& entry, QStringList& child_entries ) const
+{
+  _PTR(SObject) SO = studyDS()->FindObjectID( entry.latin1() );
+  _PTR(ChildIterator) anIter ( studyDS()->NewChildIterator( SO ) );
+  anIter->InitEx( true );
+  while( anIter->More() )
+  {
+    _PTR(SObject) val( anIter->Value() );
+    child_entries.append( val->GetID() );
+  }
+}
+
+void SalomeApp_Study::components( QStringList& comps ) const
+{
+  for( _PTR(SComponentIterator) it ( studyDS()->NewComponentIterator() ); it->More(); it->Next() ) 
+  {
+    _PTR(SComponent) aComponent ( it->Value() );
+    if( aComponent && aComponent->ComponentDataType() == "Interface Applicative" )
+      continue; // skip the magic "Interface Applicative" component
+    comps.append( aComponent->ComponentDataType() );
+  }
+}
index 54e0c2f902d48ce5a156645f98849e4eab1ffcb3..e3d3588bc0f0c5edb4188ce9364171596665aba0 100644 (file)
@@ -42,8 +42,11 @@ public:
   // to delete all references to object, whose have the same component
   void                deleteReferencesTo( _PTR( SObject ) );
 
-  virtual QString     componentDataType( const QString& );
-  virtual QString     referencedToEntry( const QString& );
+  virtual QString     componentDataType( const QString& ) const;
+  virtual QString     referencedToEntry( const QString& ) const;
+  virtual bool        isComponent( const QString& ) const;
+  virtual void        children( const QString&, QStringList& ) const;
+  virtual void        components( QStringList& ) const;
 
 protected:
   virtual void        saveModuleData ( QString theModuleName, QStringList theListOfFiles );