]> Creatis software - cpPlugins.git/blobdiff - lib/cpPlugins/Interface/Workspace.cxx
Moved to version 1.0
[cpPlugins.git] / lib / cpPlugins / Interface / Workspace.cxx
diff --git a/lib/cpPlugins/Interface/Workspace.cxx b/lib/cpPlugins/Interface/Workspace.cxx
deleted file mode 100644 (file)
index 4fbcb2b..0000000
+++ /dev/null
@@ -1,638 +0,0 @@
-#include <cpPlugins/Interface/Workspace.h>
-#include <cpPlugins/Pipeline/Widget.h>
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Clear( )
-{
-  this->m_Filters.clear( );
-}
-
-// -------------------------------------------------------------------------
-std::vector< std::string > cpPlugins::Interface::Workspace::
-GetFiltersNames( ) const
-{
-  std::vector< std::string > n;
-  for( auto i : this->m_Filters )
-    n.push_back( i.first );
-  return( n );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-TFilter* cpPlugins::Interface::Workspace::
-GetFilter( const std::string& name )
-{
-  auto i = this->m_Filters.find( name );
-  if( i != this->m_Filters.end( ) )
-    return( i->second.GetPointer( ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Interface::Workspace::
-TFilter* cpPlugins::Interface::Workspace::
-GetFilter( const std::string& name ) const
-{
-  auto i = this->m_Filters.find( name );
-  if( i != this->m_Filters.end( ) )
-    return( i->second.GetPointer( ) );
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-TWidget* cpPlugins::Interface::Workspace::
-GetWidget( const std::string& name )
-{
-  TFilter* process = this->GetFilter( name );
-  return( dynamic_cast< TWidget* >( process ) );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Interface::Workspace::
-TWidget* cpPlugins::Interface::Workspace::
-GetWidget( const std::string& name ) const
-{
-  const TFilter* process = this->GetFilter( name );
-  return( dynamic_cast< const TWidget* >( process ) );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-HasFilter( const std::string& name ) const
-{
-  return( this->m_Filters.find( name ) != this->m_Filters.end( ) );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-HasWidget( const std::string& name ) const
-{
-  const TWidget* wdg = this->GetWidget( name );
-  return( wdg != NULL );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-TFilter* cpPlugins::Interface::Workspace::
-CreateFilter(
-  const std::string& category, const std::string& filter,
-  const std::string& name
-  )
-{
-  typedef cpPlugins::Pipeline::Widget _TWidget;
-
-  TFilter::Pointer o = this->m_Loader.CreateFilter( category, filter );
-  if( o.IsNotNull( ) )
-  {
-    // Choose a name
-    std::string real_name = name;
-    while( this->GetFilter( real_name ) != NULL )
-      real_name += std::string( "_" );
-    o->SetPrintExecution( this->m_PrintExecution );
-    o->SetName( real_name );
-
-    // Interactors
-    for(
-      auto i = this->m_Interactors.begin( );
-      i != this->m_Interactors.end( );
-      ++i
-      )
-      o->AddInteractor( *i );
-
-    // Finish association
-    this->m_Filters[ real_name ] = o;
-
-  } // fi
-  return( o.GetPointer( ) );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-TFilter* cpPlugins::Interface::Workspace::
-CreateFilter( const std::string& category, const std::string& filter )
-{
-  return( this->CreateFilter( category, filter, filter ) );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-RenameFilter( const std::string& old_name, const std::string& new_name )
-{
-  auto o = this->m_Filters.find( old_name );
-  auto n = this->m_Filters.find( new_name );
-  if( o != this->m_Filters.end( ) && n == this->m_Filters.end( ) )
-  {
-    // Rename filter
-    o->second->SetName( new_name );
-    this->m_Filters[ new_name ] = o->second;
-    this->m_Filters.erase( o );
-
-    // Rename exposed ports
-    /* TODO
-       auto e = this->m_ExposedInputs.begin( );
-       for( ; e != this->m_ExposedInputs.end( ); ++e )
-       if( e->second.first == old_name )
-       e->second.first = new_name;
-       e = this->m_ExposedOutputs.begin( );
-       for( ; e != this->m_ExposedOutputs.end( ); ++e )
-       if( e->second.first == old_name )
-       e->second.first = new_name;
-    */
-
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-RemoveFilter( const std::string& name )
-{
-  auto i = this->m_Filters.find( name );
-  if( i != this->m_Filters.end( ) )
-  {
-    i->second->Disconnect( );
-    this->m_Filters.erase( i );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-SetPrintExecution( bool b )
-{
-  this->m_PrintExecution = b;
-  for( auto i = this->m_Filters.begin( ); i != this->m_Filters.end( ); ++i )
-    i->second->SetPrintExecution( b );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-PrintExecutionOn( )
-{
-  this->SetPrintExecution( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-PrintExecutionOff( )
-{
-  this->SetPrintExecution( true );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-AddInteractor( vtkRenderWindowInteractor* iren )
-{
-  if( iren != NULL )
-  {
-    this->m_Interactors.insert( iren );
-    for( auto f : this->m_Filters )
-      f.second->AddInteractor( iren );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-Connect(
-  const std::string& origin_filter,
-  const std::string& origin_output,
-  const std::string& destination_filter,
-  const std::string& destination_input
-  )
-{
-  // Get filters and check pertinence
-  TFilter* origin = this->GetFilter( origin_filter );
-  TFilter* destination = this->GetFilter( destination_filter );
-  if( origin == NULL || destination == NULL )
-    return( false );
-  if( !( destination->HasInput( destination_input ) ) )
-    return( false );
-  if( !( origin->HasOutput( origin_output ) ) )
-    return( false );
-
-  // Check if there is room for a new connection
-  bool ok = true;
-  if( destination->IsInputMultiple( destination_input ) )
-  {
-    for(
-      unsigned int i = 0;
-      i < destination->GetInputSize( destination_input );
-      ++i
-      )
-      if(
-        destination->GetInput( destination_input, i )->GetSource( ) == origin
-        )
-        ok = false;
-  }
-  else
-    ok = ( destination->GetInput( destination_input ) == NULL );
-  if( ok )
-    destination->AddInput(
-      destination_input,
-      origin->GetOutput( origin_output )
-      );
-  return( ok );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-Connect(
-  TDataObject* input,
-  const std::string& destination_filter,
-  const std::string& destination_input
-  )
-{
-  // Get filters and check pertinence
-  if( input == NULL )
-    return( false );
-  TFilter* destination = this->GetFilter( destination_filter );
-  if( destination == NULL )
-    return( false );
-  if( !( destination->HasInput( destination_input ) ) )
-    return( false );
-
-  // Check if there is room for a new connection
-  bool ok = true;
-  if( destination->IsInputMultiple( destination_input ) )
-  {
-    for(
-      unsigned int i = 0;
-      i < destination->GetInputSize( destination_input );
-      ++i
-      )
-      if(
-        destination->GetInput( destination_input, i )->GetSource( ) ==
-        input->GetSource( )
-        )
-        ok = false;
-  }
-  else
-    ok = ( destination->GetInput( destination_input ) == NULL );
-  if( ok )
-    destination->AddInput(
-      destination_input,
-      input
-      );
-  return( ok );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-Disconnect(
-  const std::string& origin_filter,
-  const std::string& origin_output,
-  const std::string& destination_filter,
-  const std::string& destination_input
-  )
-{
-  // Get filters and check pertinence
-  TFilter* origin = this->GetFilter( origin_filter );
-  TFilter* destination = this->GetFilter( destination_filter );
-  if( origin == NULL || destination == NULL )
-    return( false );
-  if( !( destination->HasInput( destination_input ) ) )
-    return( false );
-  if( !( origin->HasOutput( origin_output ) ) )
-    return( false );
-
-  // Check if there is room for a new connection
-  bool ok = false;
-  unsigned int del_id = 0;
-  for(
-    unsigned int i = 0;
-    i < destination->GetInputSize( destination_input );
-    ++i
-    )
-    if(
-      destination->GetInput( destination_input, i )->GetSource( ) == origin
-      )
-    {
-      ok = true;
-      del_id = i;
-
-    } // fi
-  if( ok )
-    destination->DisconnectInput( destination_input, del_id );
-  return( ok );
-}
-
-// -------------------------------------------------------------------------
-/*
-const cpPlugins::Interface::Workspace::
-TExposedPorts& cpPlugins::Interface::Workspace::
-GetExposedInputs( ) const
-{
-  return( this->m_ExposedInputs );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Interface::Workspace::
-TExposedPorts& cpPlugins::Interface::Workspace::
-GetExposedOutputs( ) const
-{
-  return( this->m_ExposedOutputs );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Pipeline::DataObject* cpPlugins::Interface::Workspace::
-GetExposedOutput( const std::string& name )
-{
-  auto i = this->m_ExposedOutputs.find( name );
-  if( i != this->m_ExposedOutputs.end( ) )
-  {
-    auto f = this->GetFilter( i->second.first );
-    if( f != NULL )
-      return( f->GetOutput( i->second.second ) );
-    else
-      return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-const cpPlugins::Pipeline::DataObject* cpPlugins::Interface::Workspace::
-GetExposedOutput( const std::string& name ) const
-{
-  auto i = this->m_ExposedOutputs.find( name );
-  if( i != this->m_ExposedOutputs.end( ) )
-  {
-    auto f = this->GetFilter( i->second.first );
-    if( f != NULL )
-      return( f->GetOutput( i->second.second ) );
-    else
-      return( NULL );
-  }
-  else
-    return( NULL );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-ExposeInput(
-  const std::string& name,
-  const std::string& filter, const std::string& filter_input
-  )
-{
-  auto i = this->m_ExposedInputs.find( name );
-  if( i == this->m_ExposedInputs.end( ) )
-  {
-    this->m_ExposedInputs[ name ] =
-      std::pair< std::string, std::string >( filter, filter_input );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-ExposeOutput(
-  const std::string& name,
-  const std::string& filter, const std::string& filter_output
-  )
-{
-  auto i = this->m_ExposedOutputs.find( name );
-  if( i == this->m_ExposedOutputs.end( ) )
-  {
-    this->m_ExposedOutputs[ name ] =
-      std::pair< std::string, std::string >( filter, filter_output );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-HideInput( const std::string& name )
-{
-  auto i = this->m_ExposedInputs.find( name );
-  if( i != this->m_ExposedInputs.end( ) )
-    this->m_ExposedInputs.erase( i );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-HideOutput( const std::string& name )
-{
-  auto i = this->m_ExposedOutputs.find( name );
-  if( i != this->m_ExposedOutputs.end( ) )
-    this->m_ExposedOutputs.erase( i );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-RenameExposedInput(
-  const std::string& old_name, const std::string& new_name
-  )
-{
-  auto o = this->m_ExposedInputs.find( old_name );
-  auto n = this->m_ExposedInputs.find( new_name );
-  if( o != this->m_ExposedInputs.end( ) && n == this->m_ExposedInputs.end( ) )
-  {
-    this->m_ExposedInputs[ new_name ] = o->second;
-    this->m_ExposedInputs.erase( o );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-bool cpPlugins::Interface::Workspace::
-RenameExposedOutput(
-  const std::string& old_name, const std::string& new_name
-  )
-{
-  auto o = this->m_ExposedOutputs.find( old_name );
-  auto n = this->m_ExposedOutputs.find( new_name );
-  if(
-    o != this->m_ExposedOutputs.end( ) && n == this->m_ExposedOutputs.end( )
-    )
-  {
-    this->m_ExposedOutputs[ new_name ] = o->second;
-    this->m_ExposedOutputs.erase( o );
-    return( true );
-  }
-  else
-    return( false );
-}
-
-// -------------------------------------------------------------------------
-std::vector< std::pair< std::string, std::string > >
-cpPlugins::Interface::Workspace::
-GetConnections(
-  const std::string& origin, const std::string& destination
-  ) const
-{
-  std::vector< std::pair< std::string, std::string > > conns;
-  auto orig = this->GetFilter( origin );
-  auto dest = this->GetFilter( destination );
-  if( orig != NULL && dest != NULL )
-  {
-    auto outs = orig->GetOutputsNames( );
-    auto ins = dest->GetInputsNames( );
-    for( auto o = outs.begin( ); o != outs.end( ); ++o )
-    {
-      for( auto i = ins.begin( ); i != ins.end( ); ++i )
-      {
-        unsigned int nInputs = dest->GetInputSize( *i );
-        for( unsigned j = 0; j < nInputs; ++j )
-        {
-          auto od = orig->GetOutput( *o );
-          auto id = dest->GetInput( *i, j );
-          if( od != NULL && od == id )
-            conns.push_back(
-              std::pair< std::string, std::string >( *o, *i )
-              );
-
-        } // rof
-
-      } // rof
-
-    } // rof
-
-  } // fi
-  return( conns );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Connect(
-  const std::string& orig_filter, const std::string& dest_filter,
-  const std::string& output_name, const std::string& input_name
-  )
-{
-  auto o = this->GetFilter( orig_filter );
-  auto d = this->GetFilter( dest_filter );
-  if( o != NULL && d != NULL )
-  {
-    try
-    {
-      d->AddInput( input_name, o->GetOutput( output_name ) );
-    }
-    catch( std::exception& err )
-    {
-      throw std::logic_error(
-        std::string( "Error connecting \"" ) +
-        output_name + std::string( "@" ) + orig_filter +
-        std::string( "\" with \"" ) +
-        input_name + std::string( "@" ) + dest_filter +
-        std::string( "\": " ) +
-        err.what( )
-        );
-
-    } // yrt
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Connect(
-  cpPlugins::Pipeline::DataObject* output,
-  const std::string& dest_filter, const std::string& input_name
-  )
-{
-  auto d = this->GetFilter( dest_filter );
-  if( d != NULL )
-    d->AddInput( input_name, output );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Connect(
-  cpPlugins::Pipeline::DataObject* output,
-  const std::string& exposed_input_name
-  )
-{
-  auto i = this->m_ExposedInputs.find( exposed_input_name );
-  if( i != this->m_ExposedInputs.end( ) )
-    this->Connect( output, i->second.first, i->second.second );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Disconnect(
-  const std::string& orig_filter, const std::string& dest_filter,
-  const std::string& output_name, const std::string& input_name
-  )
-{
-  auto orig = this->GetFilter( orig_filter );
-  auto dest = this->GetFilter( dest_filter );
-  if( orig != NULL && dest != NULL )
-  {
-    auto out = orig->GetOutput( output_name );
-    auto in = dest->GetInput( input_name );
-    if( out != NULL && out == in )
-      dest->SetInput(
-        input_name, ( cpPlugins::Pipeline::DataObject* )( NULL )
-        );
-
-  } // fi
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Disconnect(
-  const std::string& dest_filter, const std::string& input_name
-  )
-{
-  throw std::logic_error( "Disconnect 1" );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Disconnect( const std::string& dest_filter )
-{
-  throw std::logic_error( "Disconnect 2" );
-}
-*/
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Update( )
-{
-  for( auto f = this->m_Filters.begin( ); f != this->m_Filters.end( ); ++f )
-    f->second->Update( );
-}
-
-// -------------------------------------------------------------------------
-void cpPlugins::Interface::Workspace::
-Update( const std::string& name )
-{
-  auto filter = this->GetFilter( name );
-  if( filter != NULL )
-    filter->Update( );
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-Workspace( )
-  : Superclass( ),
-    m_PrintExecution( false )
-{
-}
-
-// -------------------------------------------------------------------------
-cpPlugins::Interface::Workspace::
-~Workspace( )
-{
-  /* TODO
-     this->m_ExposedOutputs.clear( );
-     this->m_ExposedInputs.clear( );
-  */
-  this->m_Filters.clear( );
-}
-
-// eof - $RCSfile$