- if ( anObj->hasEntry() ) {
- QAD_Study* ActiveStudy = QAD_Application::getDesktop()->getActiveStudy();
- SALOMEDS::Study_var aStudy = ActiveStudy->getStudyDocument();
- SALOMEDS::SObject_var obj = aStudy->FindObjectID( anObj->getEntry() );
+ const SalomeApp_DataOwner* owner =
+ dynamic_cast<const SalomeApp_DataOwner*>(theDataOwner);
+ SalomeApp_Study* appStudy = dynamic_cast<SalomeApp_Study*>
+ (SUIT_Session::session()->activeApplication()->activeStudy());
+
+ if (owner && appStudy) {
+ _PTR(Study) study = appStudy->studyDS();
+ QString entry = owner->entry();
+
+ _PTR(SObject) obj (study->FindObjectID(entry.latin1()));
+ if (!obj) return false;
+
+ _PTR(SObject) objFather = obj->GetFather();
+ _PTR(SComponent) objComponent = obj->GetFatherComponent();
+
+ if( objComponent->ComponentDataType()!="SMESH" )
+ return false;
+
+ int aLevel = obj->Depth() - objComponent->Depth();
+
+ // Max level under the component is 5:
+ //
+ // 0 Mesh Component
+ // 1 |- Hypotheses
+ // 2 | |- Regular 1D
+ // |- Algorithms
+ // |- Mesh 1
+ // |- * Main Shape
+ // |- Applied Hypotheses
+ // |- Applied Algorithms
+ // |- Submeshes on Face
+ // 3 | |- SubmeshFace
+ // 4 | |- * Face 1
+ // 4 | |- Applied algorithms ( selectable in Use Case Browser )
+ // 5 | |- Regular 1D
+ // |- Group Of Nodes