Salome HOME
Improvement: now in rules you can use "canBeDisplayed" parameter. It is true, if...
[modules/smesh.git] / src / SMESHGUI / SMESHGUI_Displayer.cxx
index f1ddb5b2ded3269ac299aa0c5f5a60ecbd6bad7f..4f1a2457e8bdd42d5aa90010a4548e5712012402 100644 (file)
 #include "SMESHGUI_VTKUtils.h"
 
 #include <SalomeApp_Study.h>
+#include <SalomeApp_Application.h>
 #include <SVTK_ViewModel.h>
 #include <SVTK_ViewWindow.h>
 
-SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Study* st )
-: SalomeApp_Displayer(),
-  myStudy( st )
+SMESHGUI_Displayer::SMESHGUI_Displayer( SalomeApp_Application* app )
+: LightApp_Displayer(),
+  myApp( app )
 {
 }
 
@@ -57,11 +58,11 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_
       SUIT_ViewWindow* wnd = vtk_viewer->getViewManager()->getActiveView();
       SMESH_Actor* anActor = SMESH::FindActorByEntry( wnd, entry.latin1() );
       if( !anActor )
-       anActor = SMESH::CreateActor( myStudy->studyDS(), entry.latin1(), true );
+       anActor = SMESH::CreateActor( study()->studyDS(), entry.latin1(), true );
       if( anActor )
       {
        SMESH::DisplayActor( wnd, anActor );
-        prs = SalomeApp_Displayer::buildPresentation( entry.latin1(), aViewFrame );
+        prs = LightApp_Displayer::buildPresentation( entry.latin1(), aViewFrame );
       }
       if( prs )
        UpdatePrs( prs );
@@ -72,3 +73,13 @@ SALOME_Prs* SMESHGUI_Displayer::buildPresentation( const QString& entry, SALOME_
 
   return prs;
 }
+
+SalomeApp_Study* SMESHGUI_Displayer::study() const
+{
+  return dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
+}
+
+bool SMESHGUI_Displayer::canBeDisplayed( const QString& /*entry*/, const QString& viewer_type ) const
+{
+  return viewer_type==SVTK_Viewer::Type();
+}