#include <SPlot2d_Prs.h>
#include <Plot2d_ViewWindow.h>
+#include <SalomeApp_Application.h>
#include <SalomeApp_Study.h>
#include "VISU_ViewManager_i.hh"
-VisuGUI_Displayer::VisuGUI_Displayer( SalomeApp_Study* st )
+VisuGUI_Displayer::VisuGUI_Displayer( SalomeApp_Application* app )
: LightApp_Displayer(),
- myStudy( st )
+ myApp( app )
{
}
SALOME_Prs* prs = 0;
SALOME_View* aViewFrame = theViewFrame ? theViewFrame : GetActiveView();
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
- if ( myStudy && aViewFrame )
+ if ( study && aViewFrame )
{
- CORBA::Object_var anObj = VISU::ClientSObjectToObject( myStudy->studyDS()->FindObjectID( entry.latin1() ) );
+ _PTR(SObject) obj = study->studyDS()->FindObjectID( entry.latin1() );
+ CORBA::Object_var anObj = VISU::ClientSObjectToObject( obj );
if( CORBA::is_nil( anObj ) )
return 0;
SPlot2d_Prs* VisuGUI_Displayer::buildTable( Plot2d_ViewWindow* wnd, VISU::Table_i* t ) const
{
SPlot2d_Prs* prs = new SPlot2d_Prs();
- _PTR(SObject) TableSO = myStudy->studyDS()->FindObjectID( t->GetEntry().latin1() );
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
+ if( !study )
+ return prs;
+
+ _PTR(SObject) TableSO = study->studyDS()->FindObjectID( t->GetEntry().latin1() );
if( !TableSO )
return prs;
- _PTR(ChildIterator) Iter = myStudy->studyDS()->NewChildIterator( TableSO );
+ _PTR(ChildIterator) Iter = study->studyDS()->NewChildIterator( TableSO );
for( ; Iter->More(); Iter->Next() )
{
CORBA::Object_var childObject = VISU::ClientSObjectToObject( Iter->Value() );
}
return prs;
}
+
+bool VisuGUI_Displayer::canBeDisplayed( const QString& entry, const QString& viewer_type ) const
+{
+ SalomeApp_Study* study = dynamic_cast<SalomeApp_Study*>( myApp->activeStudy() );
+ if( !study )
+ return false;
+
+ _PTR(SObject) obj = study->studyDS()->FindObjectID( entry.latin1() );
+ CORBA::Object_var anObj = VISU::ClientSObjectToObject( obj );
+ if( CORBA::is_nil( anObj ) )
+ return false;
+
+ if( viewer_type==SVTK_Viewer::Type() )
+ {
+ VISU::Prs3d_i* thePrs = dynamic_cast<VISU::Prs3d_i*>( VISU::GetServant( anObj ).in() );
+ return thePrs;
+ }
+ else if( viewer_type==SPlot2d_Viewer::Type() )
+ {
+ VISU::Curve_i* aCurve = dynamic_cast<VISU::Curve_i*>( VISU::GetServant( anObj ).in() );
+ VISU::Container_i* aCont = dynamic_cast<VISU::Container_i*>( VISU::GetServant( anObj ).in() );
+ VISU::Table_i* aTable = dynamic_cast<VISU::Table_i*>(VISU::GetServant( anObj ).in() );
+ return aCurve || aCont || aTable;
+ }
+ else
+ return false;
+}