+ typedef cpExtensions::QT::ActorsWidgetInterface _TViewer;
+
+ // Get filter parameters
+ std::vector< std::string > tokens;
+ cpPlugins::Tokenize( tokens, name, "@" );
+ if( tokens.size( ) != 2 )
+ return;
+ auto filter_name = tokens[ 1 ];
+ auto output_name = tokens[ 0 ];
+
+ // Process data
+ try
+ {
+ auto ws = this->workspace( this->m_ActiveWS );
+ auto filter = ws->GetFilter( filter_name );
+ cpBaseQtApplication_Execute( filter->Update( ) );
+ auto image = filter->GetOutputData< vtkImageData >( output_name );
+ auto mesh = filter->GetOutputData< vtkPolyData >( output_name );
+ _TViewer* viewer = NULL;
+ if( image != NULL )
+ {
+ int dim = image->GetDataDimension( );
+ if( dim == 2 )
+ viewer =
+ this->_configureViewer< cpExtensions::QT::ImageWidget >(
+ this->m_UI->Viewer
+ );
+ else if( dim == 3 )
+ viewer =
+ this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >(
+ this->m_UI->Viewer
+ );
+ }
+ else if( mesh != NULL )
+ viewer =
+ this->_configureViewer< cpExtensions::QT::SimpleMPRWidget >(
+ this->m_UI->Viewer
+ );
+ if( ( QWidget* )( viewer ) != ( QWidget* )( this->m_UI->Viewer ) )
+ {
+ delete this->m_UI->Viewer;
+ this->m_UI->Viewer = viewer;
+ this->m_UI->MainSplitter->insertWidget( 0, this->m_UI->Viewer );
+ this->setViewer( viewer );
+
+ } // fi
+ }
+ catch( std::exception& err )
+ {
+ QMessageBox::critical(
+ NULL,
+ QMessageBox::tr( "Error showing data" ),
+ QMessageBox::tr( err.what( ) )
+ );