Salome HOME
Compilation bugs are fixed.
[modules/gui.git] / src / SalomeApp / SalomeApp_TypeFilter.cxx
1 #include "SalomeApp_TypeFilter.h"
2
3 #include "SalomeApp_DataOwner.h"
4 #include "SalomeApp_Study.h"
5
6 #include <SALOMEDS_SObject.hxx>
7
8 SalomeApp_TypeFilter::SalomeApp_TypeFilter( SalomeApp_Study* study, const QString& kind )
9   : SalomeApp_Filter( study ) 
10 {
11   myKind = kind;
12 }
13
14 SalomeApp_TypeFilter::~SalomeApp_TypeFilter()
15 {
16 }
17
18 bool SalomeApp_TypeFilter::isOk( const SUIT_DataOwner* sOwner ) const
19 {  
20   const SalomeApp_DataOwner* owner = dynamic_cast<const SalomeApp_DataOwner*> ( sOwner );
21
22   SalomeApp_Study* aDoc =  getStudy();
23   if (owner && aDoc && aDoc->studyDS())
24     {
25       _PTR(Study) aStudy = aDoc->studyDS();
26       QString entry = owner->entry();
27       
28       _PTR(SObject) aSObj( aStudy->FindObjectID( entry.latin1() ) );
29       if (aSObj)
30         {
31           _PTR(SComponent) aComponent(aSObj->GetFatherComponent());
32           if ( aComponent && (aComponent->ComponentDataType() == myKind.latin1()) )
33             return true;
34         }
35     }
36
37   return false;
38 }