diff --git a/Legacy/ViewerManager/Controller/otbImageViewerManagerController.cxx b/Legacy/ViewerManager/Controller/otbImageViewerManagerController.cxx
deleted file mode 100644
index 5cfe06f2e5205d76e97eb7a69eae243058953509..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/Controller/otbImageViewerManagerController.cxx
+++ /dev/null
@@ -1,173 +0,0 @@
-
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#include "otbImageViewerManagerController.h"
-#include "otbMsgReporter.h"
-
-namespace otb
-{
-
-ImageViewerManagerController
-::ImageViewerManagerController()
-{
-
-/** NewVisu */
-  // Build a "visu"controller
-  m_VisuController = VisuControllerType::New();
-  m_PreviewVisuController = VisuControllerType::New();
-}
-
-ImageViewerManagerController
-::~ImageViewerManagerController()
-{
-  MsgReporter::GetInstance()->Hide();
-}
-
-
-unsigned int
-ImageViewerManagerController
-::OpenInputImage(const char * filename)
-{
-  unsigned int numberOfOpenedImages = 0;
-  try
-  {
-    std::string strFilename = filename;
-    numberOfOpenedImages = m_Model->OpenImage( strFilename );
-  }
-  catch ( ... )
-  {
-    try
-    {
-      std::string strFilename = filename;
-      numberOfOpenedImages = m_Model->OpenImageList( strFilename );
-    }
-    catch (itk::ExceptionObject & err)
-    {
-      MsgReporter::GetInstance()->SendError(err.GetDescription());
-    }
-  }
-
-  return numberOfOpenedImages;
-}
-
-/**
-*
-*/
-void
-ImageViewerManagerController
-::CloseImage(unsigned int selectedItem)
-{
-  try
-  {
-    m_Model->CloseImage( selectedItem );
-  }
-  catch (itk::ExceptionObject & err)
-  {
-    MsgReporter::GetInstance()->SendError(err.GetDescription());
-  }
-}
-
-void
-ImageViewerManagerController
-::UpdateRGBChannelOrder(int redChoice , int greenChoice, int BlueChoice, unsigned int selectedItem)
-{
-  try
-    {
-
-    m_Model->UpdateRGBChannelOrder(redChoice, greenChoice, BlueChoice, selectedItem);
-  }
-  catch (itk::ExceptionObject & err)
-  {
-    MsgReporter::GetInstance()->SendError(err.GetDescription());
-  }
-}
-
-void
-ImageViewerManagerController
-::UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem)
-{
-  try
-    {
-
-    m_Model->UpdateGrayScaleChannelOrder(choice, selectedItem);
-  }
-  catch (itk::ExceptionObject & err)
-  {
-    MsgReporter::GetInstance()->SendError(err.GetDescription());
-  }
-}
-
-void
-ImageViewerManagerController
-::UpdateAmplitudeChannelOrder(int realChoice, int imChoice, unsigned int selectedItem)
-{
-  try
-    {
-      m_Model->UpdateAmplitudeChannelOrder(realChoice, imChoice, selectedItem);
-    }
-  catch (itk::ExceptionObject & err)
-    {
-      MsgReporter::GetInstance()->SendError(err.GetDescription());
-    }
-}
-
-void
-ImageViewerManagerController
-::UpdatePhaseChannelOrder(int realChoice, int imChoice, unsigned int selectedItem)
-{
-  try
-    {
-      m_Model->UpdatePhaseChannelOrder(realChoice, imChoice, selectedItem);
-    }
-  catch (itk::ExceptionObject & err)
-    {
-      MsgReporter::GetInstance()->SendError(err.GetDescription());
-    }
-}
-
-void
-ImageViewerManagerController
-::Link(unsigned int leftChoice, unsigned int rightChoice, OffsetType offset)
-{
-  try
-    {
-      m_Model->Link(leftChoice, rightChoice, offset);
-    }
-  catch (itk::ExceptionObject & err)
-    {
-      MsgReporter::GetInstance()->SendError(err.GetDescription());
-    }
-}
-
-void
-ImageViewerManagerController
-::UpdateImageViewController(unsigned int selectedItem)
-{
-  try
-    {
-      m_Model->InitializeImageViewController(selectedItem);
-    }
-  catch (itk::ExceptionObject & err)
-    {
-      MsgReporter::GetInstance()->SendError(err.GetDescription());
-    }
-}
-
-
-} // end namespace otb
-
diff --git a/Legacy/ViewerManager/Controller/otbImageViewerManagerController.h b/Legacy/ViewerManager/Controller/otbImageViewerManagerController.h
deleted file mode 100644
index 3566fadd7ad9b3302983e3333081259d7cd4f9d1..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/Controller/otbImageViewerManagerController.h
+++ /dev/null
@@ -1,139 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef __otbImageViewerManagerController_h
-#define __otbImageViewerManagerController_h
-
-#include "otbImageViewerManagerControllerInterface.h"
-#include "otbImageViewerManagerViewGUI.h"
-
-/** NewVisu */
-// #include "otbImageWidgetController.h"
-#include "otbWidgetResizingActionHandler.h"
-
-#include "otbAutoScaleActionHandler.h"
-
-
-#include "otbObjectList.h"
-
-namespace otb
-{
-class ITK_EXPORT ImageViewerManagerController
-      : public ImageViewerManagerControllerInterface
-{
-public:
-  /** Standard class typedefs */
-  typedef ImageViewerManagerController                   Self;
-  typedef ImageViewerManagerControllerInterface          Superclass;
-  typedef itk::SmartPointer<Self>                        Pointer;
-  typedef itk::SmartPointer<const Self>                  ConstPointer;
-
-  typedef ImageViewerManagerViewGUI                      ViewType;
-  typedef ViewType::Pointer                              ViewPointerType;
-  typedef ViewType::VisuViewType                         VisuViewType;
-  typedef ViewType::VisuViewPointerType                  VisuViewPointerType;
-  typedef ViewType::ImageWidgetPointerType               VisuWidgetPointerType;
-  
-  typedef Superclass::ImageType                          InputImageType;
-  typedef Superclass::ImagePointerType                   InputImagePointerType;
-
-  /** NewVisu */
-  typedef ModelType::VisuModelType                                      VisuModelType;        //RenderingImageLayer
-  typedef ModelType::VisuModelPointerType                               VisuModelPointerType; //RenderingImageLayer
-  
-  typedef ObjectList<VisuControllerType>                                VisuControllerListType;
-  
-  typedef WidgetResizingActionHandler<VisuModelType, VisuViewType>       ResizingHandlerType;
-  typedef ResizingHandlerType::Pointer                                  ResizingHandlerPointerType;
-
-  typedef ChangeExtractRegionActionHandler<VisuModelType, VisuViewType>  ChangeExtractRegionHandlerType;
-  typedef ChangeExtractRegionHandlerType::Pointer                       ChangeExtractRegionHandlerPointerType;
-  
-  typedef AutoScaleActionHandler<ViewType::ImageWidgetType>             AutoScaleHandlerType;
-  typedef AutoScaleHandlerType::Pointer                                 AutoScaleHandlerPointerType;
-  
-  /** Standard type macros */
-  itkTypeMacro(ImageViewerManagerController, Superclass);
-  itkNewMacro(Self);
-
-  /** NewVisu */
-  VisuControllerPointerType GetVisuController()
-  {
-    return m_VisuController;
-  }
-   VisuControllerPointerType GetPreviewVisuController()
-  {
-    return m_PreviewVisuController;
-  }
-  
-  void SetView(ViewPointerType pView)
-  {
-    m_View = pView;
-    
-    m_AutoScaleHandler = AutoScaleHandlerType::New();
-    m_AutoScaleHandler->SetPreviewWidget(m_View->GetPreviewWidget());
-    m_PreviewVisuController->AddActionHandler(m_AutoScaleHandler);
-  }
-
-  
-   
-/*   VisuControllerListPointerType GetVisuControllerList() */
-/*   { */
-/*     return m_VisuControllerList; */
-/*   } */
-  
-  
-  //virtual void AddController(VisuModelPointerType  modelRenderingLayer  , VisuViewPointerType visuView);
-
-  virtual unsigned int OpenInputImage(const char * filename);
-  virtual void CloseImage(unsigned int selectedItem);
-  virtual void UpdateRGBChannelOrder(int redChoice , int greenChoice, int BlueChoice, unsigned int selectedItem);
-  virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem );
-  virtual void UpdateAmplitudeChannelOrder(int realChoice , int imChoice , unsigned int selectedItem );
-  virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem);
-  virtual void Link(unsigned int leftChoice, unsigned int rightChoice , OffsetType offset);
-  virtual void UpdateImageViewController(unsigned int selectedItem);
-
-
-protected:
-  /** Constructor */
-  ImageViewerManagerController();
-  /** Destructor */
-  virtual ~ImageViewerManagerController();
-
-private:
-  ImageViewerManagerController(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-
-  /** Pointer to the view */
-  ViewPointerType m_View;
-
-/** NewVisu */
-  VisuControllerPointerType m_VisuController;
-  VisuControllerPointerType m_PreviewVisuController;
-
-  AutoScaleHandlerPointerType   m_AutoScaleHandler;
-
-  VisuControllerListPointerType   m_VisuControllerList;
-  
-  /** Model of the application*/
-      
-};
-} //end namespace otb
-
-#endif
-
diff --git a/Legacy/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h b/Legacy/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h
deleted file mode 100644
index b7383b049570c437bf6fbc0c84c682c8204e0edc..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h
+++ /dev/null
@@ -1,102 +0,0 @@
-
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef __otbImageViewerManagerControllerInterface_h
-#define __otbImageViewerManagerControllerInterface_h
-
-#include "otbImageViewerFullResolutionEventsInterface.h"
-#include "otbImageViewerManagerModel.h"
-
-
-/** NewVisu */
-#include "otbImageWidgetController.h"
-#include "otbImageWidget.h"
-
-#include "otbObjectList.h"
-
-namespace otb
-{
-class ITK_EXPORT  ImageViewerManagerControllerInterface
-      : public ImageViewerFullResolutionEventsInterface
-{
-public:
-  /** Standard class typedefs */
-  typedef ImageViewerManagerControllerInterface     Self;
-  typedef ImageViewerFullResolutionEventsInterface  Superclass;
-  typedef itk::SmartPointer<Self>                   Pointer;
-  typedef itk::SmartPointer<const Self>             ConstPointer;
-  
-
-  typedef ImageViewerManagerModel                   ModelType;
-  typedef ModelType::VisuModelType                  VisuModelType;        //RenderingImageLayer
-  typedef ModelType::VisuModelPointerType           VisuModelPointerType;
-  typedef ModelType::ImageType                      ImageType;
-  typedef ModelType::ImagePointerType               ImagePointerType;
-  typedef ModelType::OffsetType                     OffsetType;
-
-
-/** NewVisu */
-  typedef ImageWidgetController                     VisuControllerType;
-  typedef VisuControllerType::Pointer               VisuControllerPointerType;
-  
-  typedef ObjectList<VisuControllerType>            VisuControllerListType;
-  typedef VisuControllerListType::Pointer           VisuControllerListPointerType;
-  
-  typedef ImageWidgetController                     WidgetControllerType;
-  typedef WidgetControllerType::Pointer             WidgetControllerPointerType;
-  
-  typedef ImageWidget<>                             WidgetType;
-  typedef WidgetType::Pointer                       VisuWidgetPointerType;
-
-  /** Standard type macros */
-  itkTypeMacro(ImageViewerManagerControllerInterface, Superclass);
-
-  /** Users actions */
-  virtual unsigned int OpenInputImage(const char * filename) =0;
-  virtual void CloseImage(unsigned int selectedItem) = 0;
-  virtual void UpdateRGBChannelOrder(int redChoice , int greenChoice, int BlueChoice, unsigned int selectedItem) = 0;
-  virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem) = 0;
-  virtual void UpdateAmplitudeChannelOrder(int realChoice , int imChoice, unsigned int selectedItem) = 0;
-  virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem) = 0;
-  virtual void Link(unsigned int leftChoice, unsigned int rightChoice , OffsetType offset) = 0;
-  virtual void UpdateImageViewController(unsigned int selectedItem) = 0;
-  /** NewVisu */
-  virtual VisuControllerPointerType GetVisuController()=0;
-  virtual VisuControllerPointerType GetPreviewVisuController() = 0;
-
-  
-
-protected:
-  /** Constructor */
-  ImageViewerManagerControllerInterface()
-  {
-    m_Model = ModelType::GetInstance();
-  }
-  /** Destructor */
-  ~ImageViewerManagerControllerInterface() {};
-
-  /** The instance of the model (for commodity) */
-  ModelType * m_Model;
-
-private:
-  ImageViewerManagerControllerInterface(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-};
-} // end namespace otb
-
-#endif
diff --git a/Legacy/ViewerManager/Model/otbImageViewerManagerModel.cxx b/Legacy/ViewerManager/Model/otbImageViewerManagerModel.cxx
deleted file mode 100644
index 588aa499dca6a8a8a360763e14537e9a49ec38f0..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/Model/otbImageViewerManagerModel.cxx
+++ /dev/null
@@ -1,517 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#include "otbImageViewerManagerModel.h"
-#include "otbFltkFilterWatcher.h"
-#include <FL/fl_ask.H>
-#include "itkExceptionObject.h"
-#include "otbMacro.h"
-
-#include "otbImageFileWriter.h"
-#include "otbImageSeriesFileReader.h"
-#include "otbFltkFilterWatcher.h"
-
-
-namespace otb
-{
-
-/** Initialize the singleton */
-ImageViewerManagerModel::Pointer ImageViewerManagerModel::Instance = NULL;
-
-ImageViewerManagerModel::ImageViewerManagerModel()
-{
-  //Set all the boolean to false
-  m_HasChangedChannelOrder = false;
-  m_HasImageOpened = false;
-}
-
-ImageViewerManagerModel
-::~ImageViewerManagerModel(){}
-
-
-/** Manage the singleton */
-ImageViewerManagerModel::Pointer
-ImageViewerManagerModel::GetInstance()
-{
-  if (!Instance)
-  {
-    Instance = ImageViewerManagerModel::New();
-  }
-  return Instance;
-}
-
-void
-ImageViewerManagerModel
-::NotifyListener(ListenerBase * listener)
-{
-  listener->Notify();
-}
-
-unsigned int
-ImageViewerManagerModel
-::OpenImage(std::string filename)
-{
-  /** Reader*/
-  ReaderPointerType  reader = ReaderType::New();
-  reader->SetFileName(filename);
-  reader->GenerateOutputInformation();
-
-  /** Generate the layer*/
-  LayerGeneratorPointerType visuGenerator = LayerGeneratorType::New();
-  visuGenerator->SetImage(reader->GetOutput());
-  FltkFilterWatcher qlwatcher(visuGenerator->GetProgressSource(), 0, 0, 200, 20,"Generating QuickLook ...");
-  visuGenerator->GenerateLayer();
-  RenderingFunctionType::Pointer  rendrerFunction  = visuGenerator->GetRenderingFunction();
-
-  /** Rendering image*/
-  VisuModelPointerType rendering = VisuModelType::New();
-  rendering->AddLayer(visuGenerator->GetLayer());
-
-  rendering->Update();
-
-  /** View*/
-  VisuViewPointerType visuView = this->BuiltVisu(rendering);
-
-  /** Build the pixelDescription View*/
-  PixelDescriptionViewType::Pointer pixelView = PixelDescriptionViewType::New();
-  PixelDescriptionModelPointerType pixelModel = PixelDescriptionModelType::New();
-  pixelModel->SetLayers(rendering->GetLayers());
-  pixelView->SetModel(pixelModel);
-
-  /** Controller*/
-  WidgetControllerPointerType controller = this->BuiltController(rendering, visuView , pixelModel );
-
-  /** Finish Builting the visu*/
-  visuView->SetController(controller);
-
-  /** Build the curve Widget */
-  CurvesWidgetType::Pointer   curveWidget = CurvesWidgetType::New();
-
-  /** Store all the information in the structure*/
-  ObjectsTracked currentComponent;
-
-  currentComponent.fileName   = filename;
-  currentComponent.pLayer     = visuGenerator->GetLayer();
-  currentComponent.pReader    = reader;
-  currentComponent.pRendering = rendering;
-  currentComponent.pVisuView  = visuView;
-  currentComponent.pWidgetController = controller;
-  currentComponent.pRenderFunction  = rendrerFunction;
-  currentComponent.pPixelView   = pixelView;
-  currentComponent.pPixelModel  = pixelModel;
-  currentComponent.pCurveWidget = curveWidget;
-
-  assert(currentComponent.pLayer);
-  assert(currentComponent.pReader);
-  assert(currentComponent.pRendering);
-  assert(currentComponent.pVisuView);
-  assert(currentComponent.pWidgetController);
-  assert(currentComponent.pRenderFunction);
-  assert(currentComponent.pPixelView);
-  assert(currentComponent.pPixelModel);
-  assert(currentComponent.pCurveWidget);
-
-  /** Add the the struct in the list*/
-  m_ObjectTrackedList.push_back(currentComponent);
-
-  m_HasImageOpened = true;
-  this->NotifyAll();
-  m_HasImageOpened = false;
-
-  return 1;
-}
-
-/**
- * Read a series of images, including cropping facilities throught
- * the ImageSeriesFileReader
- */
-unsigned int
-ImageViewerManagerModel
-::OpenImageList(std::string filename)
-{
-  /** Reader*/
-  typedef ImageSeriesFileReader< ImageType > ImageSeriesReaderType;
-  ImageSeriesReaderType::Pointer reader = ImageSeriesReaderType::New();
-  reader->SetFileName(filename);
-  reader->Update();
-
-  for (  unsigned int i = 0; i < reader->GetOutput()->Size(); i++ )
-  {
-    /** Generate the layer*/
-    LayerGeneratorPointerType visuGenerator = LayerGeneratorType::New();
-    visuGenerator->SetImage(reader->GetOutput()->GetNthElement(i));
-    FltkFilterWatcher qlwatcher(visuGenerator->GetProgressSource(), 0, 0, 200, 20,"Generating QuickLook ...");
-    visuGenerator->GenerateLayer();
-    RenderingFunctionType::Pointer  rendrerFunction  = visuGenerator->GetRenderingFunction();
-
-    /** Rendering image*/
-    VisuModelPointerType rendering = VisuModelType::New();
-    rendering->AddLayer(visuGenerator->GetLayer());
-
-    rendering->Update();
-
-    /** View*/
-    VisuViewPointerType visuView = this->BuiltVisu(rendering);
-
-    /** Build the pixelDescription View*/
-    PixelDescriptionViewType::Pointer pixelView = PixelDescriptionViewType::New();
-    PixelDescriptionModelPointerType pixelModel = PixelDescriptionModelType::New();
-    pixelModel->SetLayers(rendering->GetLayers());
-    pixelView->SetModel(pixelModel);
-
-    /** Controller*/
-    WidgetControllerPointerType controller = this->BuiltController(rendering, visuView , pixelModel );
-
-    /** Finish Builting the visu*/
-    visuView->SetController(controller);
-
-    /** Build the curve Widget */
-    CurvesWidgetType::Pointer   curveWidget = CurvesWidgetType::New();
-
-    /** Store all the information in the structure*/
-    ObjectsTracked currentComponent;
-
-    currentComponent.fileName   = reader->GetFileName(i);
-    currentComponent.pLayer     = visuGenerator->GetLayer();
-    currentComponent.pReader    = reader->GetImageFileReader(i);
-    currentComponent.pRendering = rendering;
-    currentComponent.pVisuView  = visuView;
-    currentComponent.pWidgetController = controller;
-    currentComponent.pRenderFunction  = rendrerFunction;
-    currentComponent.pPixelView   = pixelView;
-    currentComponent.pPixelModel  = pixelModel;
-    currentComponent.pCurveWidget = curveWidget;
-
-    assert(currentComponent.pLayer);
-    assert(currentComponent.pReader);
-    assert(currentComponent.pRendering);
-    assert(currentComponent.pVisuView);
-    assert(currentComponent.pWidgetController);
-    assert(currentComponent.pRenderFunction);
-    assert(currentComponent.pPixelView);
-    assert(currentComponent.pPixelModel);
-    assert(currentComponent.pCurveWidget);
-
-    /** Add the the struct in the list*/
-    m_ObjectTrackedList.push_back(currentComponent);
-
-    m_HasImageOpened = true;
-    this->NotifyAll();
-    m_HasImageOpened = false;
-  }
-
-  return reader->GetOutput()->Size();
-}
-
-
-/**
- * Built a part of the visu, create a pointer and add a model to the visu
- */
-ImageViewerManagerModel
-::VisuViewPointerType
-ImageViewerManagerModel
-::BuiltVisu(VisuModelPointerType pRendering)
-{
-  VisuViewPointerType visuView = VisuViewType::New();
-  visuView->SetModel(pRendering);
-
-  return visuView;
-}
-
-/**
- * Add Controller
- */
-ImageViewerManagerModel
-::WidgetControllerPointerType
-ImageViewerManagerModel
-::BuiltController(VisuModelPointerType modelRenderingLayer, VisuViewPointerType visuView, PixelDescriptionModelPointerType pixelModel)
-{
-  WidgetControllerPointerType controller = WidgetControllerType::New();
-
-  // Add the resizing handler
-  ResizingHandlerType::Pointer resizingHandler = ResizingHandlerType::New();
-  resizingHandler->SetModel(modelRenderingLayer);
-  resizingHandler->SetView(visuView);
-  controller->AddActionHandler(resizingHandler);
-
-    // Add the change scaled region handler
-  ChangeScaledRegionHandlerType::Pointer changeScaledHandler =ChangeScaledRegionHandlerType::New();
-  changeScaledHandler->SetModel(modelRenderingLayer);
-  changeScaledHandler->SetView(visuView);
-  controller->AddActionHandler(changeScaledHandler);
-
-  // Add the change extract region handler
-  ChangeRegionHandlerType::Pointer changeHandler =ChangeRegionHandlerType::New();
-  changeHandler->SetModel(modelRenderingLayer);
-  changeHandler->SetView(visuView);
-  controller->AddActionHandler(changeHandler);
-
-  // Add the change scaled handler
-  ChangeScaleHandlerType::Pointer changeScaleHandler =ChangeScaleHandlerType::New();
-  changeScaleHandler->SetModel(modelRenderingLayer );
-  changeScaleHandler->SetView(visuView);
-  controller->AddActionHandler(changeScaleHandler);
-
-  //Pixel Description Handling
-  PixelDescriptionActionHandlerType::Pointer pixelActionHandler = PixelDescriptionActionHandlerType::New();
-  pixelActionHandler->SetView(visuView);
-  pixelActionHandler->SetModel(pixelModel);
-  controller->AddActionHandler(pixelActionHandler);
-
-  // Add the action handler for the arrow key
-  ArrowKeyMoveActionHandlerType::Pointer arrowKeyMoveHandler = ArrowKeyMoveActionHandlerType::New();
-  arrowKeyMoveHandler->SetModel(modelRenderingLayer);
-  arrowKeyMoveHandler->SetView(visuView);
-  controller->AddActionHandler(arrowKeyMoveHandler);
-
-  return controller;
-}
-
-void
-ImageViewerManagerModel
-::CloseImage(unsigned int selectedItem)
-{
-  m_ObjectTrackedList.erase(m_ObjectTrackedList.begin()+selectedItem-1);
-}
-
-void
-ImageViewerManagerModel
-::UpdateRGBChannelOrder(int redChoice , int greenChoice, int blueChoice, unsigned int selectedItem)
-{
-
-  StandardRenderingFunctionType::ChannelListType channels;
-  channels.resize(3);
-  channels[0]=redChoice;
-  channels[1]=greenChoice;
-  channels[2]=blueChoice;
-
-   StandardRenderingFunctionType::Pointer renderFunction;
-   renderFunction = StandardRenderingFunctionType::New();
-
-   renderFunction->SetChannelList(channels);
-
-
-  //Update the layer
-  m_ObjectTrackedList.at(selectedItem-1).pLayer->SetRenderingFunction(renderFunction);
-  m_ObjectTrackedList.at(selectedItem-1).pRenderFunction = renderFunction;
-  //FIXME Initialize should disappear from the renderingFunction
-  renderFunction->Initialize(m_ObjectTrackedList.at(selectedItem-1).pLayer->GetMetaDataDictionary());
-  m_ObjectTrackedList.at(selectedItem-1).pRendering->Update();
-
-  //Notify
-  m_HasChangedChannelOrder = true;
-  this->NotifyAll();
-  m_HasChangedChannelOrder = false;
-}
-
-void
-ImageViewerManagerModel
-::UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem)
-{
-  StandardRenderingFunctionType::ChannelListType channels;
-  channels.resize(3);
-  channels[0]=choice;
-  channels[1]=choice;
-  channels[2]=choice;
-
-  StandardRenderingFunctionType::Pointer renderFunction;
-  renderFunction = StandardRenderingFunctionType::New();
-
-  renderFunction->SetChannelList(channels);
-
-  //Update the layer
-  m_ObjectTrackedList.at(selectedItem-1).pLayer->SetRenderingFunction(renderFunction);
-  m_ObjectTrackedList.at(selectedItem-1).pRenderFunction = renderFunction;
-  //FIXME Initialize should disappear from the renderingFunction
-  renderFunction->Initialize(m_ObjectTrackedList.at(selectedItem-1).pLayer->GetMetaDataDictionary());
-  m_ObjectTrackedList.at(selectedItem-1).pRendering->Update();
-
-  //Notify
-  m_HasChangedChannelOrder = true;
-  this->NotifyAll();
-  m_HasChangedChannelOrder = false;
-}
-
-void
-ImageViewerManagerModel
-::UpdateAmplitudeChannelOrder(int realChoice , int imChoice, unsigned int selectedItem )
-{
-  AmplitudeRenderingFunction::PixelRepresentationFunctionType::ChannelListType channels;
-  channels.push_back(realChoice);
-  channels.push_back(imChoice);
-
-   AmplitudeRenderingFunction::Pointer modulusFunction;
-  modulusFunction = AmplitudeRenderingFunction::New();
-
-  modulusFunction->SetChannelList(channels);
-
-
-  //Update the layer
-  m_ObjectTrackedList.at(selectedItem-1).pLayer->SetRenderingFunction(modulusFunction);
-  m_ObjectTrackedList.at(selectedItem-1).pRenderFunction = modulusFunction;
-  //FIXME Initialize should disappear from the renderinFunction
-  modulusFunction->Initialize(m_ObjectTrackedList.at(selectedItem-1).pLayer->GetMetaDataDictionary());
-  m_ObjectTrackedList.at(selectedItem-1).pRendering->Update();
-
-  //Notify
-  m_HasChangedChannelOrder = true;
-  this->NotifyAll();
-  m_HasChangedChannelOrder = false;
-}
-
-
-void
-ImageViewerManagerModel
-::UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem )
-{
-  PhaseRenderingFunction::PixelRepresentationFunctionType::ChannelListType channels;
-  channels.push_back(realChoice);
-  channels.push_back(imChoice);
-
-  PhaseRenderingFunction::Pointer phaseFunction;
-  phaseFunction = PhaseRenderingFunction::New();
-
-  phaseFunction->SetChannelList(channels);
-
-
-  //Update the layer
-  m_ObjectTrackedList.at(selectedItem-1).pLayer->SetRenderingFunction(phaseFunction);
-  m_ObjectTrackedList.at(selectedItem-1).pRenderFunction = phaseFunction;
-  //FIXME Initialize should disappear from the renderinFunction
-  phaseFunction->Initialize(m_ObjectTrackedList.at(selectedItem-1).pLayer->GetMetaDataDictionary());
-  m_ObjectTrackedList.at(selectedItem-1).pRendering->Update();
-
-  //Notify
-  m_HasChangedChannelOrder = true;
-  this->NotifyAll();
-  m_HasChangedChannelOrder = false;
-}
-
-/**
- *
- */
-void
-ImageViewerManagerModel
-::Link(unsigned int leftChoice, unsigned int rightChoice, OffsetType offset)
-{
-
-  //Create A null offset
-  OffsetType nullOffset;
-  nullOffset.Fill(0);
-
-  //Get the controllers of the selected images
-  WidgetControllerPointerType rightController = m_ObjectTrackedList.at(rightChoice-1).pWidgetController;
-  WidgetControllerPointerType leftController = m_ObjectTrackedList.at(leftChoice-1).pWidgetController;
-
-  //Get the models related to the choosen images
-  VisuModelPointerType rightRenderModel       = m_ObjectTrackedList.at(rightChoice-1).pRendering;
-  VisuModelPointerType leftRenderModel        = m_ObjectTrackedList.at(leftChoice-1).pRendering;
-
-  //Get the views related to the choosen images
-  VisuViewPointerType  pRightVisuView         = m_ObjectTrackedList.at(rightChoice-1).pVisuView; ;
-  VisuViewPointerType  pLeftVisuView          = m_ObjectTrackedList.at(leftChoice-1).pVisuView;
-
-  //Pixel View
-  PixelDescriptionModelPointerType rightPixelModel = m_ObjectTrackedList.at(rightChoice-1).pPixelModel;
-  PixelDescriptionModelPointerType leftPixelModel  = m_ObjectTrackedList.at(leftChoice-1).pPixelModel;
-
-  // Add the resizing handler
-  ResizingHandlerType::Pointer rightResizingHandler = ResizingHandlerType::New();
-  rightResizingHandler->SetModel(rightRenderModel);
-  rightResizingHandler->SetView(pLeftVisuView);
-
-  ResizingHandlerType::Pointer leftResizingHandler = ResizingHandlerType::New();
-  leftResizingHandler->SetModel(leftRenderModel);
-  leftResizingHandler->SetView(pRightVisuView);
-
-  rightController->AddActionHandler( leftResizingHandler);
-  leftController->AddActionHandler(rightResizingHandler);
-
-  // Add the change scaled region handler--
-  ChangeScaledRegionHandlerType::Pointer rightChangeScaledHandler =ChangeScaledRegionHandlerType::New();
-  rightChangeScaledHandler->SetModel(rightRenderModel);
-  rightChangeScaledHandler->SetView(pLeftVisuView);
-  rightChangeScaledHandler->SetOffset(nullOffset-offset);
-
-  ChangeScaledRegionHandlerType::Pointer leftChangeScaledHandler =ChangeScaledRegionHandlerType::New();
-  leftChangeScaledHandler->SetModel(leftRenderModel);
-  leftChangeScaledHandler->SetView(pRightVisuView);
-  leftChangeScaledHandler->SetOffset(offset);
-
-  rightController->AddActionHandler(leftChangeScaledHandler);
-  leftController->AddActionHandler( rightChangeScaledHandler);
-
-  // Add the change extract region handler--
-  ChangeRegionHandlerType::Pointer rightChangeHandler =ChangeRegionHandlerType::New();
-  rightChangeHandler->SetModel(rightRenderModel);
-  rightChangeHandler->SetView(pLeftVisuView);
-  rightChangeHandler->SetOffset(nullOffset-offset);
-
-  ChangeRegionHandlerType::Pointer leftChangeHandler =ChangeRegionHandlerType::New();
-  leftChangeHandler->SetModel(leftRenderModel);
-  leftChangeHandler->SetView(pRightVisuView);
-  leftChangeHandler->SetOffset(offset);
-
-  rightController->AddActionHandler( leftChangeHandler);
-  leftController->AddActionHandler(rightChangeHandler);
-
-  // Add the change scaled handler
-  ChangeScaleHandlerType::Pointer rightChangeScaleHandler =ChangeScaleHandlerType::New();
-  rightChangeScaleHandler->SetModel(rightRenderModel );
-  rightChangeScaleHandler->SetView(pLeftVisuView);
-
-  ChangeScaleHandlerType::Pointer leftChangeScaleHandler =ChangeScaleHandlerType::New();
-  leftChangeScaleHandler->SetModel(leftRenderModel );
-  leftChangeScaleHandler->SetView(pRightVisuView);
-
-  rightController->AddActionHandler( leftChangeScaleHandler);
-  leftController->AddActionHandler(rightChangeScaleHandler);
-
- //Pixel Description Handling--
-  PixelDescriptionActionHandlerType::Pointer rightPixelActionHandler = PixelDescriptionActionHandlerType::New();
-  rightPixelActionHandler->SetView(pLeftVisuView );
-  rightPixelActionHandler->SetModel(rightPixelModel);
-  rightPixelActionHandler->SetOffset(nullOffset-offset);
-
-  PixelDescriptionActionHandlerType::Pointer leftPixelActionHandler = PixelDescriptionActionHandlerType::New();
-  leftPixelActionHandler->SetView(pRightVisuView);
-  leftPixelActionHandler->SetModel(leftPixelModel);
-  leftPixelActionHandler->SetOffset(offset);
-
-  rightController->AddActionHandler(leftPixelActionHandler );
-  leftController->AddActionHandler(rightPixelActionHandler);
-
-}
-
-/**
- *
- */
-void
-ImageViewerManagerModel
-::InitializeImageViewController(unsigned int selectedItem)
-{
-  VisuModelPointerType  render = m_ObjectTrackedList.at(selectedItem-1).pRendering;
-  VisuViewPointerType   view   = m_ObjectTrackedList.at(selectedItem-1).pVisuView;
-  PixelDescriptionModelPointerType pixelModel = m_ObjectTrackedList.at(selectedItem-1).pPixelModel;
-
-  m_ObjectTrackedList.at(selectedItem-1).pWidgetController = this->BuiltController(render, view, pixelModel);
-  m_ObjectTrackedList.at(selectedItem-1).pVisuView->SetController(m_ObjectTrackedList.at(selectedItem-1).pWidgetController);
-}
-
-}
-
-
diff --git a/Legacy/ViewerManager/Model/otbImageViewerManagerModel.h b/Legacy/ViewerManager/Model/otbImageViewerManagerModel.h
deleted file mode 100644
index 8291b016cc08bb10a0c01a8fb16803213889c43b..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/Model/otbImageViewerManagerModel.h
+++ /dev/null
@@ -1,211 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef __otbImageViewerManagerModel_h
-#define __otbImageViewerManagerModel_h
-
-#include "otbMVCModel.h"
-#include "otbListenerBase.h"
-#include "otbImage.h"
-#include "otbVectorImage.h"
-#include "itkRGBAPixel.h"
-#include "otbImageFileReader.h"
-#include "otbObjectList.h"
-
-/** NewVisu */
-#include "otbImageLayer.h"
-#include "otbImageLayerGenerator.h"
-#include "otbImageLayerRenderingModel.h"
-
-#include "otbWidgetResizingActionHandler.h"
-#include "otbChangeScaledExtractRegionActionHandler.h"
-#include "otbChangeExtractRegionActionHandler.h"
-#include "otbChangeScaleActionHandler.h"
-#include "otbArrowKeyMoveActionHandler.h"
-
-#include "otbAmplitudeFunctor.h"
-#include "otbPhaseFunctor.h"
-
-#include "otbPixelDescriptionModel.h"
-#include "otbPixelDescriptionView.h"
-#include "otbPixelDescriptionActionHandler.h"
-#include "otbCurves2DWidget.h"
-
-
-#include "otbImageView.h"
-#include "otbImageWidgetController.h"
-
-namespace otb
-{
-/** \class ImageViewerManagerModel
- *
- *
- *
- */
-
-class ITK_EXPORT ImageViewerManagerModel
-      : public MVCModel<ListenerBase>, public itk::Object
-{
-
-public:
-  /** Standard class typedefs */
-  typedef ImageViewerManagerModel                         Self;
-  typedef MVCModel<ListenerBase>      Superclass;
-  typedef itk::SmartPointer<Self>                         Pointer;
-  typedef itk::SmartPointer<const Self>                   ConstPointer;
-
-  /** Standard type macro */
-  itkTypeMacro(ImageViewerManagerModel, MVCModel);
-
-  /** Images typedefs */
-  typedef double                                                          PixelType;
-
-  /**  Image Type*/
-  typedef VectorImage<PixelType , 2>                                                ImageType;
-  typedef itk::RGBAPixel<unsigned char>                                              RGBPixelType;
-  typedef Image<RGBPixelType, 2>                                                     ViewerImageType;
-  typedef ImageType::Pointer                                                        ImagePointerType;
-
-  /** typedef support for layers */
-  typedef otb::ImageLayer<ImageType, ViewerImageType>                                 LayerType;
-  typedef LayerType::Pointer                                                         LayerPointerType;
-
-  typedef otb::ImageLayerGenerator<LayerType>                                        LayerGeneratorType;
-  typedef LayerGeneratorType::Pointer                                                LayerGeneratorPointerType;
-  typedef LayerGeneratorType::RenderingFunctionType                                  RenderingFunctionType;
-  typedef Function::StandardRenderingFunction<ImageType::PixelType, RGBPixelType>                          StandardRenderingFunctionType;
-
-  typedef Function::StandardRenderingFunction<ImageType::PixelType, RGBPixelType,
-  otb::Function::AmplitudeFunctor<ImageType::PixelType> >                             AmplitudeRenderingFunction;
-  typedef Function::StandardRenderingFunction<ImageType::PixelType, RGBPixelType,
-  otb::Function::PhaseFunctor<ImageType::PixelType> >                                 PhaseRenderingFunction;
-
-  /** typedef support for reader*/
-  typedef ImageFileReader<ImageType>                                                  ReaderType;
-  typedef ReaderType::Pointer                                                         ReaderPointerType;
-
-  /** Typedef support for rendering image*/
-  typedef otb::ImageLayerRenderingModel<ViewerImageType>                              VisuModelType;
-  typedef VisuModelType::Pointer                                                      VisuModelPointerType;
-
-  /** NewVisu */
-  typedef ImageView<VisuModelType>                                                    VisuViewType;
-  typedef VisuViewType::OffsetType                                                    OffsetType;
-  typedef VisuViewType::Pointer                                                       VisuViewPointerType;
-
-  typedef ImageWidgetController                                                       WidgetControllerType;
-  typedef WidgetControllerType::Pointer                                               WidgetControllerPointerType;
-
-  typedef WidgetResizingActionHandler<VisuModelType, VisuViewType>                     ResizingHandlerType;
-  typedef ResizingHandlerType::Pointer                                                ResizingHandlerPointerType;
-  typedef otb::ChangeScaledExtractRegionActionHandler<VisuModelType, VisuViewType>     ChangeScaledRegionHandlerType;
-  typedef otb::ChangeExtractRegionActionHandler<VisuModelType, VisuViewType>           ChangeRegionHandlerType;
-  typedef otb::ChangeScaleActionHandler<VisuModelType, VisuViewType>                   ChangeScaleHandlerType;
-  typedef otb::ArrowKeyMoveActionHandler<VisuModelType, VisuViewType>                  ArrowKeyMoveActionHandlerType;
-
-  typedef otb::PixelDescriptionModel<ViewerImageType>                                 PixelDescriptionModelType;
-  typedef PixelDescriptionModelType::Pointer                                          PixelDescriptionModelPointerType;
-  typedef PixelDescriptionView<PixelDescriptionModelType>                             PixelDescriptionViewType;
-  typedef otb::PixelDescriptionActionHandler<PixelDescriptionModelType, VisuViewType>  PixelDescriptionActionHandlerType;
-
-  typedef Curves2DWidget                                                              CurvesWidgetType;
-
-  /**
-   * Struct embedded in the model
-   */
-  struct _ObjectsTracked
-  {
-    ReaderPointerType                      pReader;
-    LayerPointerType                       pLayer;
-    VisuModelPointerType                   pRendering;
-    WidgetControllerPointerType            pWidgetController;
-    VisuViewPointerType                    pVisuView;
-    RenderingFunctionType::Pointer         pRenderFunction;
-    PixelDescriptionViewType::Pointer      pPixelView;
-    PixelDescriptionModelPointerType       pPixelModel;
-    CurvesWidgetType::Pointer              pCurveWidget;
-    std::string                            fileName;
-  };
-
-  typedef struct _ObjectsTracked                                          ObjectsTracked;
-
-  /**
-   * List of objectTracked, we cannot use ObjectList
-   * for struct cause don't implenement Register method
-   */
-  typedef std::vector<ObjectsTracked>                                    ObjectTrackedList;
-
-  /** Get the unique instanc1e of the model */
-  static Pointer GetInstance();
-
-  virtual unsigned int OpenImage(std::string strfilename);
-  virtual unsigned int OpenImageList(std::string strfilename);
-  virtual void CloseImage(unsigned int selectedItem);
-  virtual void UpdateRGBChannelOrder(int redChoice , int greenChoice, int BlueChoice, unsigned int selectedItem);
-  virtual void UpdateGrayScaleChannelOrder(int choice, unsigned int selectedItem);
-  virtual void UpdateAmplitudeChannelOrder(int realChoice , int imChoice, unsigned int selectedItem );
-  virtual void UpdatePhaseChannelOrder(int realChoice , int imChoice, unsigned int selectedItem );
-  virtual void Link(unsigned int leftChoice, unsigned int rightChoice, OffsetType offset);
-  virtual void InitializeImageViewController(unsigned int selectedItem);
-
-  /** Method needed to Get the list of componenets stored*/
-   ObjectTrackedList GetObjectList()
-    {
-      return m_ObjectTrackedList;
-    }
-
-   /** Boolean Flags */
-   itkGetMacro(HasImageOpened, bool);
-   itkGetMacro(HasChangedChannelOrder, bool);
-
-protected:
-  /** This is protected for the singleton. Use GetInstance() instead. */
-  itkNewMacro(Self);
-
-  /** Constructor */
-  ImageViewerManagerModel();
-
-  /** Destructor */
-  virtual ~ImageViewerManagerModel();
-
-  /** Built Visu & Controller*/
-  virtual VisuViewPointerType BuiltVisu(VisuModelPointerType pRendering);
-  virtual WidgetControllerPointerType BuiltController(VisuModelPointerType modelRenderingLayer, VisuViewPointerType visuView , PixelDescriptionModelType::Pointer pixelModel);
-
-
-private:
-  ImageViewerManagerModel(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-
-  /** Notify a given listener of changes */
-  virtual void NotifyListener(ListenerBase * listener);
-
-  /** The instance singleton */
-  static Pointer Instance;
-
-  /** Boolean flags*/
-  bool   m_HasImageOpened;
-  bool   m_HasChangedChannelOrder;
-
-  /** The manipuleted list*/
-  ObjectTrackedList                          m_ObjectTrackedList;
-};
-
-
-}
-#endif
-
diff --git a/Legacy/ViewerManager/View/otbAutoScaleActionHandler.h b/Legacy/ViewerManager/View/otbAutoScaleActionHandler.h
deleted file mode 100644
index 34e894b68898499bec1b035b77e602befcb8b560..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/View/otbAutoScaleActionHandler.h
+++ /dev/null
@@ -1,103 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-  See OTBCopyright.txt for details.
-
-
-     This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE.  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef __otbAutoScaleActionHandler_h
-#define __otbAutoScaleActionHandler_h
-
-#include "otbImageWidgetActionHandler.h"
-
-namespace otb
-{
-/** \class AutoScaleActionHandler
-*   \brief Implements basic Scroll, Full and Zoom  widgets resizing.
-*
-*   \sa ImageWidgetController
-*   \sa ImageWidgetActionHandler
-*/
-
-template <class TWidgetType>
-class AutoScaleActionHandler
-  : public ImageWidgetActionHandler
-{
-public:
-  /** Standard class typedefs */
-  typedef AutoScaleActionHandler       Self;
-  typedef ImageWidgetActionHandler          Superclass;
-  typedef itk::SmartPointer<Self>           Pointer;
-  typedef itk::SmartPointer<const Self>     ConstPointer;
-  
-  /** Method for creation through the object factory */
-  itkNewMacro(Self);
-  
-  /** Runtime information */
-  itkTypeMacro(AutoScaleActionHandler, ImageWidgetActionHandler);
-
-  /** Preview Typedef typedefs */
-  typedef TWidgetType                         WidgetType;
-  typedef typename WidgetType::Pointer        WidgetPointerType;
-
-   /** Handle widget resizing
-   * \param widgetId The id of the resized widget
-   * \param x new x location
-   * \param y new y location
-   * \param w new width
-   * \param h new height
-   */
-  virtual bool HandleWidgetResize(std::string widgetId, int w, int h)
-  {
-    if(widgetId == m_PreviewWidget->GetIdentifier() )
-      {
-       otbMsgDevMacro(<<"AutoScaleActionHandler::HandleWidgetResize(): handling ("<<widgetId<<", "<<w<<", "<<h<<")");
-       typename WidgetType::SizeType    size = m_PreviewWidget->GetOpenGlBufferedRegion().GetSize();
-       
-       double zoomW = static_cast<double>(w)/static_cast<double>(size[0]);
-       double zoomH = static_cast<double>(h)/static_cast<double>(size[1]);
-       m_PreviewWidget->SetIsotropicZoom(std::min(zoomW, zoomH));
-       
-       return true;
-      }
-    
-    return false;
-  }
-  
-  /** Set/Get the pointer to PreviewWidget */
- itkSetObjectMacro(PreviewWidget, WidgetType);
-
-protected:
-  /** Constructor */
-  AutoScaleActionHandler()
-    {};
-
-  /** Destructor */
-  virtual ~AutoScaleActionHandler(){}
-  /** Printself method */
-  void PrintSelf(std::ostream& os, itk::Indent indent) const
-  {
-    Superclass::PrintSelf(os, indent);
-  }
- 
-private:
-  AutoScaleActionHandler(const Self&);    // purposely not implemented
-  void operator=(const Self&); // purposely not implemented
-  
-  WidgetPointerType              m_PreviewWidget;
-  
-}; // end class
-} // end namespace otb
-#endif
-
-
diff --git a/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.cxx b/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.cxx
deleted file mode 100644
index fbdef671fe11c95cf17417708d45072c16d37336..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.cxx
+++ /dev/null
@@ -1,1311 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULA
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#include <FL/Fl_Text_Buffer.H>
-#include "otbImageViewerManagerViewGUI.h"
-#include "otbMacro.h"
-
-namespace otb
-{
-/**
- * Constructor
- */
-
-ImageViewerManagerViewGUI
-::ImageViewerManagerViewGUI():m_TemplateViewerName(""), m_DisplayedLabel("+ "),
-                           m_UndisplayedLabel("- "), m_DiaporamaCurrentIndex(0)
-{
-
-  m_VisuView               =  VisuViewType::New();
-  m_PreviewWidget          =  ImageWidgetType::New();
-  m_pRenderingFunction      =  StandardRenderingFunctionType::New();
-  m_WidgetManagerList      =  WidgetManagerList::New();
-  m_LinkWidgetManagerList  =  WidgetManagerList::New();
-
-  //Get an instance of the model
-  m_ImageViewerManagerModel = ImageViewerManagerModel::GetInstance();
-  m_ImageViewerManagerModel->RegisterListener(this);
-
-  //Create the component of the GUI
-  this->CreateGUI();
-  bSplitted->activate();
-  bPacked->activate();
-
-  //Create buffer for the guiViewerInformation
-  Fl_Text_Buffer * buffer = new Fl_Text_Buffer();
-  this->guiViewerInformation->buffer(buffer);
-
-  //init the previewWindow
-  m_PreviewWidget->label("PreviewWidget");
-  gPreviewWindow->add(m_PreviewWidget);
-  gPreviewWindow->box(FL_NO_BOX);
-  gPreviewWindow->resizable(gPreviewWindow);
-  m_PreviewWidget->resize(gPreviewWindow->x(), gPreviewWindow->y(), gPreviewWindow->w(), gPreviewWindow->h() );
-
-  //Color Definition
-  m_Red.Fill(0);
-  m_Green.Fill(0);
-  m_Blue.Fill(0);
-  m_Grey.Fill(0.5);
-  m_Red[0]  = 1.;   m_Red[3]   = 0.5;
-  m_Green[1]= 1.;   m_Green[3] = 0.5;
-  m_Blue[2] = 1.;   m_Blue[3]  = 0.5;
-
-  //Slide Show
-  m_WidgetManager  =  PackedWidgetManagerType::New();
-}
-
-void
-ImageViewerManagerViewGUI
-::OpenImage(const char * inputFileName)
-{
-  //Initialize
-  this->Initialize(inputFileName);
-}
-
-/**
- *
- */
-void
-ImageViewerManagerViewGUI
-::OpenImage()
-{
-  std::string pikedFileName="";
-  char * cfname;
-  cfname = fl_file_chooser("Pick an image file", "*.*", pikedFileName.c_str());
-
-  if (cfname == NULL || strlen(cfname)<1)
-    {
-      otbMsgDebugMacro(<<"Empty file name!");
-      return;
-    }
-
-  Fl::check();
-  guiMainWindow->redraw();
-
-  //Initialize
-  this->Initialize(cfname);
-}
-
-
-/**
- *
- */
-void
-ImageViewerManagerViewGUI
-::Initialize(const char * cfname)
-{
-  unsigned int numberOfOpenedImages = m_ImageViewerManagerController->OpenInputImage(cfname);
-  for ( unsigned int i = 0; i < numberOfOpenedImages; i++ )
-  {
-    //Initialise the boolean pair
-    PairType      pair(false, false); //(Not displayed , Packed View)
-
-    //Put a new WidgetManager in the list
-    if(bSplitted->value() && !bPacked->value())
-      {
-        SplittedWidgetManagerType::Pointer widgetManager      =  SplittedWidgetManagerType::New();
-        SplittedWidgetManagerType::Pointer linkwidgetManager  =  SplittedWidgetManagerType::New();
-
-        m_WidgetManagerList->PushBack(widgetManager);
-        m_LinkWidgetManagerList->PushBack(linkwidgetManager);
-        pair.second = true;
-      }
-    else
-      {
-        PackedWidgetManagerType::Pointer widgetManager         =   PackedWidgetManagerType::New();
-        PackedWidgetManagerType::Pointer linkwidgetManager     =   PackedWidgetManagerType::New();
-        m_WidgetManagerList->PushBack(widgetManager);
-        m_LinkWidgetManagerList->PushBack(linkwidgetManager);
-      }
-
-    //Put the status of the last added image
-    m_DisplayStatusList.push_back(pair);
-    m_LinkedDisplayStatusList.push_back(false);
-
-    // Call the Controller
-    //m_ImageViewerManagerController->OpenInputImage(cfname);
-
-    //Update the Progress Bar
-    this->UpdateDiaporamaProgressBar();
-
-    //Update the Link Setup
-    this->UpdateLinkSetupWindow();
-  }
-}
-
-/**
- * Handle the notification of the model
- */
-void
-ImageViewerManagerViewGUI
-::Notify()
-{
-  if(m_ImageViewerManagerModel->GetHasImageOpened())
-    this->AddImageListName();
-
-  //Update the widget when channel order modified
-  if(m_ImageViewerManagerModel->GetHasChangedChannelOrder())
-    {
-      unsigned int selectedItem = guiImageList->value();
-      if (selectedItem == 0)
-       return;        // no image selected, return
-
-      //DipalyPreviewWidget
-      this->DisplayPreviewWidget(selectedItem);
-
-      //Update the widget dispalyed
-      if(m_DisplayStatusList[selectedItem-1].first)
-       {
-         m_WidgetManagerList->GetNthElement(selectedItem-1)->Refresh();
-         this->Display(m_WidgetManagerList, selectedItem);
-       }
-
-      this->UpdateInformation(selectedItem);
-    }
-}
-
-/**
- * CloseImage , Send the notification to the controller then to the model
- */
-void
-ImageViewerManagerViewGUI
-::CloseImage()
-{
-  unsigned int selectedItem = guiImageList->value();
-  if (selectedItem == 0)
-    return;        // no image selected, return
-
-  //Hide if showned
-  if(m_DisplayStatusList[selectedItem-1].first)
-    {
-      this->Undisplay(selectedItem);
-    }
-
-  //Check if the closed image is linked and showed
-  // if it is the case : undisplay it and update the linkSetup
-  if(guiLinkSetupWindow->shown() != 0)
-    {
-      if(guiImageList->size() > 1)
-       {
-         if(m_LinkedDisplayStatusList[selectedItem-1])
-           for(unsigned int i = 0; i<m_LinkedDisplayStatusList.size(); i++)
-             if(m_LinkedDisplayStatusList[i])
-              {
-                m_LinkWidgetManagerList->GetNthElement(i)->Hide();
-                m_LinkedDisplayStatusList[i] = false;
-              }
-       }
-    }
-
-
-  //Erase the item selected
-  m_PreviewWidget->hide();
-  guiImageList->remove(selectedItem);
-
-  //Link when all images are closed
-  if(guiLinkSetupWindow->shown() != 0)
-      if(guiImageList->size()  == 0)
-       this->LinkSetupOk();
-
-  //Erase from the lists
-  m_DisplayStatusList.erase( m_DisplayStatusList.begin()+(selectedItem-1));
-  m_LinkedDisplayStatusList.erase( m_LinkedDisplayStatusList.begin()+(selectedItem-1));
-  m_WidgetManagerList->Erase(selectedItem-1);
-  m_LinkWidgetManagerList->Erase(selectedItem-1);
-
-
-  //Diaporama
-  if(guiDiaporama->shown() != 0)
-    {
-      if(guiImageList->size() > 0)
-       {
-         //If the closed image is the current showed in the diaporama
-         if(selectedItem == m_DiaporamaCurrentIndex+1)
-           {
-             //if the closed image is the last one in the diapo : show the previous
-             if(selectedItem -1 == static_cast<unsigned int>(guiImageList->size()))
-              {
-                this->DiaporamaPrevious();
-              }
-             else
-              {
-                //if the closed image is the first one : show the next one
-                this->UpdateDiaporamaProgressBar();
-                ++m_DiaporamaCurrentIndex;            //Increment to show the next image
-                this->DisplayDiaporama();
-                --m_DiaporamaCurrentIndex;            //Decrement because we remove the first image, so the current display become the first
-              }
-           }
-         else
-           {
-             if(selectedItem < m_DiaporamaCurrentIndex+1)
-              {
-                --m_DiaporamaCurrentIndex;         //Increment the current index because an image before the one displayed is removed
-              }
-             this->UpdateDiaporamaProgressBar();
-           }
-       }
-    }
-
-    //Case all Images closed
-    if(guiDiaporama->shown() != 0)
-    {
-      if(m_DisplayStatusList.size() == 0)
-       {
-         m_DiaporamaCurrentIndex=0;
-         this->DiaporamaQuit();          //If no image to display anymore : quit the diaporamaGUI
-       }
-    }
-
-    //
-    //Udpate the controller of the image linked with the suppressed one
-    if(guiImageList->size() > 0)
-    this->InitializeImageController(selectedItem);
-
-  //Call the controller
-  m_ImageViewerManagerController->CloseImage(selectedItem);
-
-  //Update the Link Setup
-  this->UpdateLinkSetupWindow();
-
-
- }
-
- /**
-  * Show the mainWindow
-  */
- void
- ImageViewerManagerViewGUI
- ::Show()
- {
-   guiMainWindow->show();
- }
-
- /**
-  * Update the filename
-  */
- void
- ImageViewerManagerViewGUI
- ::AddImageListName()
- {
-   //Update the Image List widget
-   unsigned int len     = m_ImageViewerManagerModel->GetObjectList().size();
-   std::string fileName = m_ImageViewerManagerModel->GetObjectList().at(len-1).fileName;
-   int slashIndex       = fileName.find_last_of("/", fileName.size());
-
-   itk::OStringStream oss;
-   oss<<m_UndisplayedLabel;
-   oss<<m_TemplateViewerName<<fileName.substr(slashIndex+1, fileName.size());
-   guiImageList->add(oss.str().c_str());
-   guiImageList->redraw();
- }
-
- /**
-  *
-  */
- void
- ImageViewerManagerViewGUI
- ::SelectAction()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-
-   //Update the radio button
-   if( m_DisplayStatusList[selectedItem-1].second)
-     {
-       bSplitted->value(true);
-       bPacked->value(false);
-     }
-   else
-     {
-       bSplitted->value(false);
-       bPacked->value(true);
-     }
-
-   //DipalyPreviewWidget
-   this->DisplayPreviewWidget(selectedItem);
-
-   //Update SelectedImageInformation
-   this->UpdateInformation(selectedItem);
-
-   //Udpate the ViewerGUISetup
-   this->UpdateViewerSetupWindow(selectedItem);
-
-   //LINK SETUP
-   this->UpdateLinkSetupWindow();
- }
- /**
-  *
-  */
- void
- ImageViewerManagerViewGUI
- ::DisplayPreviewWidget(unsigned int selectedItem)
- {
-   //Build the m_PreviewWidget
-   VisuModelPointerType rendering = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRendering;
-
-   m_PreviewWidget->ClearBuffer();
-   ImageViewerManagerModelType::ViewerImageType * quickLook = rendering->GetRasterizedQuicklook();
-   m_PreviewWidget->ReadBuffer(quickLook, quickLook->GetLargestPossibleRegion());
-
-   double newIsotropicZoom = this->UpdatePreviewWidgetIsotropicZoom(quickLook->GetLargestPossibleRegion().GetSize());
-   m_PreviewWidget->SetIsotropicZoom(newIsotropicZoom);
-   m_PreviewWidget ->show();
-   m_PreviewWidget->redraw();
- }
-
-
- /**
-  * Compute the size of the
-  */
- double
- ImageViewerManagerViewGUI
- ::UpdatePreviewWidgetIsotropicZoom(SizeType size)
- {
-   int h = gPreviewWindow->h();
-   int w = gPreviewWindow->w();
-
-   double zoomW = static_cast<double>(w)/static_cast<double>(size[0]);
-   double zoomH = static_cast<double>(h)/static_cast<double>(size[1]);
-
-   return std::min(zoomW, zoomH);
- }
-
- /**
-  * Show Hide
-  */
- void
- ImageViewerManagerViewGUI
- ::ShowHide()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-   if(guiDiaporama->shown() == 0 && guiLinkSetupWindow->shown() == 0)
-     {
-       //check what to do
-       if(!m_DisplayStatusList[selectedItem-1].first)
-        {
-          //New Display
-          m_DisplayStatusList[selectedItem-1].first = true;
-          this->UpdateImageListShowed(selectedItem, m_DisplayedLabel);
-          this->Display(m_WidgetManagerList, selectedItem);
-        }
-       else
-        {
-          m_DisplayStatusList[selectedItem-1].first = false;
-          this->UpdateImageListShowed(selectedItem, m_UndisplayedLabel);
-          this->Undisplay(selectedItem);
-        }
-     }
- }
-
- /**
-  * Display the three widget
-  */
- void
- ImageViewerManagerViewGUI
- ::Display(WidgetManagerList::Pointer  widgetList, unsigned int selectedItem)
- {
-   //Get the view stored in the model
-   CurvesWidgetType::Pointer         curveWidget         =  m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pCurveWidget;
-   VisuViewPointerType               currentVisuView     =  m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pVisuView;
-
-   //First get the histogram list
-   RenderingFunctionType::Pointer pRenderingFunction = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction;
-
-
-   curveWidget->ClearAllCurves();
-
-   if (pRenderingFunction->GetPixelRepresentationSize() >=3)
-   {
-     HistogramCurveType::Pointer bhistogram = HistogramCurveType::New();
-     bhistogram->SetHistogramColor(m_Blue);
-     bhistogram->SetLabelColor(m_Blue);
-     bhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(2));
-     curveWidget->AddCurve(bhistogram);
-   }
-
-   if (pRenderingFunction->GetPixelRepresentationSize() >=2)
-   {
-     HistogramCurveType::Pointer ghistogram = HistogramCurveType::New();
-     ghistogram->SetHistogramColor(m_Green);
-     ghistogram->SetLabelColor(m_Green);
-     ghistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(1));
-     curveWidget->AddCurve(ghistogram);
-   }
-
-   HistogramCurveType::Pointer rhistogram = HistogramCurveType::New();
-   if (pRenderingFunction->GetPixelRepresentationSize() == 1)
-   {
-     rhistogram->SetHistogramColor(m_Grey);
-     rhistogram->SetLabelColor(m_Grey);
-   }
-   else
-   {
-     rhistogram->SetHistogramColor(m_Red);
-     rhistogram->SetLabelColor(m_Red);
-   }
-   rhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(0));
-   curveWidget->AddCurve(rhistogram);
-
-
-   curveWidget->SetXAxisLabel("Pixels");
-   curveWidget->SetYAxisLabel("Frequency");
-
-   //Get the pixelView
-   PixelDescriptionViewType::Pointer pixelView = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pPixelView;
-
-   //   //Edit the Widget Manager
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->UnRegisterAll();
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->RegisterFullWidget(currentVisuView->GetFullWidget());
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->RegisterScrollWidget(currentVisuView->GetScrollWidget());
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->RegisterZoomWidget(currentVisuView->GetZoomWidget());
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->RegisterPixelDescriptionWidget(pixelView->GetPixelDescriptionWidget());
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->RegisterHistogramWidget(curveWidget);
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->SetLabel(this->CutFileName(selectedItem-1));
-   //   m_WidgetManagerList->GetNthElement(selectedItem-1)->Show();
-
-   //widgetList->GetNthElement(selectedItem-1)->UnRegisterAll();
-   widgetList->GetNthElement(selectedItem-1)->RegisterFullWidget(currentVisuView->GetFullWidget());
-   widgetList->GetNthElement(selectedItem-1)->RegisterScrollWidget(currentVisuView->GetScrollWidget());
-   widgetList->GetNthElement(selectedItem-1)->RegisterZoomWidget(currentVisuView->GetZoomWidget());
-   widgetList->GetNthElement(selectedItem-1)->RegisterPixelDescriptionWidget(pixelView->GetPixelDescriptionWidget());
-   widgetList->GetNthElement(selectedItem-1)->RegisterHistogramWidget(curveWidget);
-   widgetList->GetNthElement(selectedItem-1)->SetLabel(this->CutFileName(selectedItem-1));
-   widgetList->GetNthElement(selectedItem-1)->Show();
- }
-
- /**
-  */
- void
- ImageViewerManagerViewGUI
- ::SplittedViewMode()
- {
-     unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-
-   SplittedWidgetManagerType::Pointer widgetManager  =  SplittedWidgetManagerType::New();
-   m_WidgetManagerList->GetNthElement(selectedItem-1)->Hide();
-   m_WidgetManagerList->SetNthElement(selectedItem-1, widgetManager);
-
-   //Update the list link
-   m_LinkWidgetManagerList->GetNthElement(selectedItem-1)->Hide();
-   m_LinkWidgetManagerList->SetNthElement(selectedItem-1, widgetManager);
-
-   if(m_LinkedDisplayStatusList[selectedItem-1])
-     {
-       this->Display(m_LinkWidgetManagerList, selectedItem);
-     }
-
-   //If the guilink or te guiDiapo is opened don't display and don't change the view mode
-   if(guiDiaporama->shown() == 0 && guiLinkSetupWindow->shown() == 0)
-     {
-       //Update the view mode if the link mode is not updated
-       if(!m_DisplayStatusList[selectedItem-1].first && !m_LinkedDisplayStatusList[selectedItem-1])
-        {
-          m_DisplayStatusList[selectedItem-1].second = true;
-        }
-
-       //If already displayed : update the view mode and display the new viewMode
-       if(m_DisplayStatusList[selectedItem-1].first && !m_LinkedDisplayStatusList[selectedItem-1] )
-        {
-          m_DisplayStatusList[selectedItem-1].second = true;
-          this->Display(m_WidgetManagerList, selectedItem);
-        }
-     }
- }
-
- /**
- *
- */
- void
- ImageViewerManagerViewGUI
- ::PackedViewMode()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-
-   //
-   PackedWidgetManagerType::Pointer widgetManager  =  PackedWidgetManagerType::New();
-   m_WidgetManagerList->GetNthElement(selectedItem-1)->Hide();
-   m_WidgetManagerList->SetNthElement(selectedItem-1, widgetManager);
-
-   //Update the link list
-   m_LinkWidgetManagerList->GetNthElement(selectedItem-1)->Hide();
-   m_LinkWidgetManagerList->SetNthElement(selectedItem-1, widgetManager);
-
-   if(m_LinkedDisplayStatusList[selectedItem-1])
-     {
-       this->Display(m_LinkWidgetManagerList, selectedItem);
-     }
-
-
-   //If the guilink or te guiDiapo is opened don't display and don't change the view mode
-   if(guiDiaporama->shown() == 0 && guiLinkSetupWindow->shown() == 0)
-     {
-       //Update the view mode
-       if(!m_DisplayStatusList[selectedItem-1].first && !m_LinkedDisplayStatusList[selectedItem-1])
-        {
-          m_DisplayStatusList[selectedItem-1].second = false;
-        }
-
-       //If already displayed : update the view mode and display the new viewMode
-       if(m_DisplayStatusList[selectedItem-1].first && !m_LinkedDisplayStatusList[selectedItem-1] )
-        {
-          m_DisplayStatusList[selectedItem-1].second = false;
-          this->Display(m_WidgetManagerList, selectedItem);
-        }
-     }
- }
-
- /**
-  * Update the guiImageList
-  * Put a  "+" if the view is being showed, or a "-" otherwise in the begining of the imageName
-  */
- void
- ImageViewerManagerViewGUI
- ::UpdateImageListShowed(unsigned int selectedItem, std::string status)
- {
-   /* Update the ImageList using the status label "+" or "-" */
-   std::string fileName = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).fileName;
-   int slashIndex = fileName.find_last_of("/", fileName.size());
-
-   itk::OStringStream oss;
-   oss<<status;
-   oss<<m_TemplateViewerName<<fileName.substr(slashIndex+1, fileName.size());
-   guiImageList->text(selectedItem, oss.str().c_str());
-   oss.str("");
- }
-
- /**
-  * Hide all the widget opened
-  */
- void
- ImageViewerManagerViewGUI
- ::Undisplay(unsigned int selectedItem)
- {
-   m_WidgetManagerList->GetNthElement(selectedItem-1)->Hide();
-   m_WidgetManagerList->GetNthElement(selectedItem-1)->UnRegisterAll();
- }
-
- /**
-  * Hide all the widget opened
-  */
- void
- ImageViewerManagerViewGUI
- ::HideAll()
- {
-   //Hide all only if the diaporama and link window are not displayed
-   if(guiDiaporama->shown() == 0 && guiLinkSetupWindow->shown() == 0)
-     this->CloseAllDisplayedImages(true);
- }
-
- /**
-  * Close all the displayed images:
-  * showHideEvent : if true clear the showedlist else don't clear.
-  */
- void
- ImageViewerManagerViewGUI
- ::CloseAllDisplayedImages(bool showHideEvent)
- {
-   // Set the display Label to undislayed
-   for(unsigned int i = 0; i<m_DisplayStatusList.size(); i++)
-     {
-       if(m_DisplayStatusList[i].first)
-        {
-          if(showHideEvent)
-            {
-              this->UpdateImageListShowed(i+1, m_UndisplayedLabel);
-              m_DisplayStatusList[i].first = false;
-            }
-          m_WidgetManagerList->GetNthElement(i)->Hide();
-          m_WidgetManagerList->GetNthElement(i)->UnRegisterAll();
-        }
-     }
- }
-
- /**
-  *
-  */
- void
- ImageViewerManagerViewGUI
- ::ShowTemporaryClosedDisplay()
- {
-   for(unsigned int i = 0; i<m_DisplayStatusList.size(); i++)
-     if(m_DisplayStatusList[i].first )
-       this->Display(m_WidgetManagerList, i+1);
- }
-
-
- /**
-  * Quit GUI
-  */
- void
- ImageViewerManagerViewGUI
- ::Quit()
- {
-   guiMainWindow->hide();
-
-   for(unsigned int i = 0; i<m_DisplayStatusList.size(); i++)
-     if(m_DisplayStatusList[i].first)
-       {
-        m_WidgetManagerList->GetNthElement(i)->Hide();
-        m_WidgetManagerList->GetNthElement(i)->UnRegisterAll();
-       }
-
-   //Quit the Diaporama if shown
-   if(guiDiaporama->shown() != 0 )
-     {
-       guiDiaporama->hide();
-       m_WidgetManager->Hide();
-     }
-
-   //Hide the linkSetupWindow
-   if(guiLinkSetupWindow->shown() != 0)
-     {
-       guiLinkSetupWindow->hide();
-       //Close the  displays linked
-       for(unsigned int i = 0; i<m_LinkedDisplayStatusList.size(); i++)
-        if(m_LinkedDisplayStatusList[i])
-          {
-            m_LinkWidgetManagerList->GetNthElement(i)->Hide();
-          }
-     }
-
- }
-
- /**
-  *
-  */
- void
- ImageViewerManagerViewGUI
- ::UpdateInformation(unsigned int selectedItem)
- {
-   itk::OStringStream oss;
-   oss.str("");
-   std::string selectedImageName = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).fileName;
-   // Clear the info buffer
-   guiViewerInformation->buffer()->remove(0, guiViewerInformation->buffer()->length());
-   oss<<"Filename: "<<selectedImageName<<std::endl;
-   guiViewerInformation->insert(oss.str().c_str());
-   oss.str("");
-   oss<<"Image information:"<<std::endl;
-   guiViewerInformation->insert(oss.str().c_str());
-   oss.str("");
-   oss<<"Number of bands: "<<m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader->GetOutput()->GetNumberOfComponentsPerPixel();
-   oss<<" - Size: "<<m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader->GetOutput()->GetLargestPossibleRegion().GetSize()<<std::endl;
-
-   guiViewerInformation->insert(oss.str().c_str());
-   oss.str("");
-
-   //update band information
-   if(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader->GetOutput()->GetNumberOfComponentsPerPixel()>=3)
-     {
-       //FIXME why this is not using the Describe method of the rendering function?
-//        oss<<"RGB Composition: ";
-//        oss<<" Band 1: "<<m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction->GetRedChannelIndex();
-//        oss<<" Band 2: "<<m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction->GetGreenChannelIndex();
-//        oss<<" Band 3: "<<m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction->GetBlueChannelIndex()<<std::endl;
-     }
-
-   guiViewerInformation->insert(oss.str().c_str());
-   oss.str("");
- }
-
- /**
-  *
-  */
- void
- ImageViewerManagerViewGUI
- ::UpdateViewerSetupWindow(unsigned int selectedItem)
- {
-   ImageViewerManagerModelType::ReaderPointerType reader = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader;
-   unsigned int nbComponent = reader->GetOutput()->GetNumberOfComponentsPerPixel();
-
-   // Constrain min and max
-   guiGrayscaleChannelChoice->range(1, nbComponent);
-
-   guiRedChannelChoice->range(1, nbComponent);
-   guiGreenChannelChoice->range(1, nbComponent);
-   guiBlueChannelChoice->range(1, nbComponent);
-
-   guiRealChannelChoice->range(1, nbComponent);
-   guiImaginaryChannelChoice->range(1, nbComponent);
-
-   guiViewerSetupWindow->redraw();
-
-   switch(nbComponent){
-   case 1 :
-     this->GrayScaleSet();
-     break;
-   case 4 :
-     this->RGBSet();
-     break;
-   case 3 :
-     this->RGBSet();
-     break;
-   case 2:
-     this->ComplexSet();
-     break;
-   default :
-     break;
-   }
-
-   guiViewerSetupName->value(this->CutFileName(selectedItem-1));
-
- }
-
- /**
-  * RGBSet();
-  */
- void
- ImageViewerManagerViewGUI
- ::RGBSet()
- {
-   otbMsgDevMacro( << "RGBSet");
-
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-
-   ImageViewerManagerModelType::ReaderPointerType reader = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader;
-   unsigned int nbComponent = reader->GetOutput()->GetNumberOfComponentsPerPixel();
-
-   guiViewerSetupColorMode->set();
-   guiViewerSetupComplexMode->clear();
-   guiViewerSetupGrayscaleMode->clear();
-   guiGrayscaleChannelChoice->deactivate();
-   guiRealChannelChoice->deactivate();
-   guiImaginaryChannelChoice->deactivate();
-   bAmplitude->deactivate();
-   bPhase->deactivate();
-
-   guiRedChannelChoice->activate();
-   guiGreenChannelChoice->activate();
-   guiBlueChannelChoice->activate();
-
-   assert(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction.GetPointer());
-
-   RenderingFunctionType::Pointer renderingFunction = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction;
-
-   // Get the current channel list (may have been already set by the user in case of a re-opening of the viewer)
-   ChannelListType channels = renderingFunction->GetChannelList();
-
-   unsigned int i = 0;
-   while (channels.size() < 3)
-   {
-     channels.push_back(i);
-     ++i;
-   }
-
-   guiRedChannelChoice->value(std::min(channels[0] + 1, nbComponent));
-   guiGreenChannelChoice->value(std::min(channels[1] + 1, nbComponent));
-   guiBlueChannelChoice->value(std::min(channels[2] + 1, nbComponent));
-
- }
-
- /**
-  * GrayScale();
-  */
- void
- ImageViewerManagerViewGUI
- ::GrayScaleSet()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-       // no image selected, return
-       return;
-     }
-   ImageViewerManagerModelType::ReaderPointerType reader = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader;
-   unsigned int nbComponent = reader->GetOutput()->GetNumberOfComponentsPerPixel();
-
-   guiViewerSetupGrayscaleMode->set();
-   guiViewerSetupComplexMode->clear();
-   guiViewerSetupColorMode->clear();
-
-   guiRealChannelChoice->deactivate();
-   guiImaginaryChannelChoice->deactivate();
-   bAmplitude->deactivate();
-   bPhase->deactivate();
-   guiRedChannelChoice->deactivate();
-   guiGreenChannelChoice->deactivate();
-   guiBlueChannelChoice->deactivate();
-
-   guiGrayscaleChannelChoice->activate();
-
-   assert(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction.GetPointer());
-
-   RenderingFunctionType::Pointer renderingFunction = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction;
-
-   ChannelListType channels = renderingFunction->GetChannelList();
-   if (channels.size() < 1)
-   {
-     channels.push_back(0);
-   }
-
-   guiGrayscaleChannelChoice->value(std::min(channels[0] + 1, nbComponent));
- }
-
-
- void
- ImageViewerManagerViewGUI
- ::ComplexSet()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-   {
-     // no image selected, return
-     return;
-   }
-   ImageViewerManagerModelType::ReaderPointerType reader = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pReader;
-   unsigned int nbComponent = reader->GetOutput()->GetNumberOfComponentsPerPixel();
-
-   guiViewerSetupComplexMode->set();
-   guiViewerSetupColorMode->clear();
-   guiViewerSetupGrayscaleMode->clear();
-   guiGrayscaleChannelChoice->deactivate();
-   guiRedChannelChoice->deactivate();
-   guiGreenChannelChoice->deactivate();
-   guiBlueChannelChoice->deactivate();
-   guiRealChannelChoice->activate();
-   guiImaginaryChannelChoice->activate();
-   bAmplitude->activate();
-   bPhase->activate();
-
-
-   assert(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction.GetPointer());
-   RenderingFunctionType::Pointer renderingFunction = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFunction;
-
-   ChannelListType channels = renderingFunction->GetChannelList();
-   unsigned int i=0;
-   while (channels.size() < 2)
-   {
-     channels.push_back(i);
-     ++i;
-   }
-
-   guiRealChannelChoice->value(std::min(channels[0] + 1, nbComponent));
-   guiImaginaryChannelChoice->value(std::min(channels[1] + 1, nbComponent));
- }
-
-
- /**
-  * ViewerSetup();
-  */
- void
- ImageViewerManagerViewGUI
- ::ViewerSetup()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-   {
-     // no image selected, return
-     return;
-   }
-   guiViewerSetupWindow->show();
- }
-
- void
- ImageViewerManagerViewGUI
- ::ViewerSetupOk()
- {
-   unsigned int selectedItem = guiImageList->value();
-   if (selectedItem == 0)
-     {
-     // no image selected, return
-     return;
-     }
-
-   if (guiViewerSetupColorMode->value())
-     {
-     int redChoice = static_cast<int>(guiRedChannelChoice->value() - 1);
-     int greenChoice = static_cast<int>(guiGreenChannelChoice->value() - 1);
-     int blueChoice = static_cast<int>(guiBlueChannelChoice->value() - 1);
-     m_ImageViewerManagerController->UpdateRGBChannelOrder(redChoice, greenChoice, blueChoice, selectedItem);
-     }
-   else if (guiViewerSetupGrayscaleMode->value())
-     {
-     int choice = static_cast<int>(guiGrayscaleChannelChoice->value() - 1);
-     m_ImageViewerManagerController->UpdateGrayScaleChannelOrder(choice, selectedItem);
-     }
-   else if (guiViewerSetupComplexMode->value())
-     {
-     int realChoice = static_cast<int>(guiRealChannelChoice->value() - 1);
-     int imagChoice = static_cast<int>(guiImaginaryChannelChoice->value() - 1);
-     if (bAmplitude->value())
-            {
-             m_ImageViewerManagerController->UpdateAmplitudeChannelOrder(realChoice, imagChoice, selectedItem);
-            }
-       else
-            {
-            m_ImageViewerManagerController->UpdatePhaseChannelOrder(realChoice, imagChoice, selectedItem);
-            }
-     }
- }
-
- void
- ImageViewerManagerViewGUI
- ::ViewerSetupCancel()
- {
-   guiViewerSetupWindow->hide();
- }
-
-
- void
- ImageViewerManagerViewGUI
- ::Diaporama()
- {
-   if (guiImageList->size()  == 0 || guiDiaporama->shown())
-   {
-     // no image selected, return
-     return;
-   }
-
-   if(guiLinkSetupWindow->shown() == 0)
-     {
-       guiDiaporama->show();
-
-
-       //Close the showed image without clearing the ShowedList
-       this->CloseAllDisplayedImages(false);
-
-       //Show the diaporama widget
-       this->DisplayDiaporama();
-       UpdateDiaporamaProgressBar();
-     }
- }
-
-
- /**
-  * Cut a path to get only the imageName
-  */
- const char *
- ImageViewerManagerViewGUI
- ::CutFileName(unsigned int selectedItem)
- {
-   std::string fileName     = m_ImageViewerManagerModel->GetObjectList().at(selectedItem).fileName;
-   int slashIndex           =  fileName.find_last_of("/", fileName.size());
-   std::string  fileNameCut = fileName.substr(slashIndex+1, fileName.size());
-
-   return fileNameCut.c_str();
- }
-
- void
- ImageViewerManagerViewGUI
- ::DisplayDiaporama()
- {
-   //Get the view stored in the model
-  CurvesWidgetType::Pointer         curveWidget         =  m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pCurveWidget;
-  VisuViewPointerType               currentVisuView     =  m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pVisuView;
-
-  //First get the histogram list
-  RenderingFunctionType::Pointer pRenderingFunction = m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pRenderFunction;
-
-  HistogramCurveType::Pointer rhistogram = HistogramCurveType::New();
-  HistogramCurveType::Pointer ghistogram = HistogramCurveType::New();
-  HistogramCurveType::Pointer bhistogram = HistogramCurveType::New();
-
-  //Color Definition
-  HistogramCurveType::ColorType                 Red;
-  HistogramCurveType::ColorType                 Green;
-  HistogramCurveType::ColorType                 Blue;
-  Red.Fill(0);
-  Green.Fill(0);
-  Blue.Fill(0);
-  Red[0]  = 1.;   Red[3]   = 0.5;
-  Green[1]= 1.;   Green[3] = 0.5;
-  Blue[2] = 1.;   Blue[3]  = 0.5;
-
-  ghistogram->SetHistogramColor(Green);
-  ghistogram->SetLabelColor(Green);
-  bhistogram->SetHistogramColor(Blue);
-  bhistogram->SetLabelColor(Blue);
-  rhistogram->SetHistogramColor(Red);
-  rhistogram->SetLabelColor(Red);
-
-  rhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pLayer->GetHistogramList()->GetNthElement(0));
-  ghistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pLayer->GetHistogramList()->GetNthElement(1));
-  bhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pLayer->GetHistogramList()->GetNthElement(2));
-
-  curveWidget->ClearAllCurves();
-  curveWidget->AddCurve(bhistogram);
-  curveWidget->AddCurve(ghistogram);
-  curveWidget->AddCurve(rhistogram);
-  curveWidget->SetXAxisLabel("Pixels");
-  curveWidget->SetYAxisLabel("Frequency");
-
-  //Get the pixelView
-  PixelDescriptionViewType::Pointer pixelView = m_ImageViewerManagerModel->GetObjectList().at(m_DiaporamaCurrentIndex).pPixelView;
-
-  //Edit the Widget Manager
-  m_WidgetManager->UnRegisterAll();
-  m_WidgetManager->RegisterFullWidget(currentVisuView->GetFullWidget());
-  m_WidgetManager->RegisterScrollWidget(currentVisuView->GetScrollWidget());
-  m_WidgetManager->RegisterZoomWidget(currentVisuView->GetZoomWidget());
-  m_WidgetManager->RegisterPixelDescriptionWidget(pixelView->GetPixelDescriptionWidget());
-  m_WidgetManager->RegisterHistogramWidget(curveWidget);
-  m_WidgetManager->SetLabel(this->CutFileName(m_DiaporamaCurrentIndex));
-  m_WidgetManager->Refresh();
-  m_WidgetManager->Show();
-
-}
-void
-ImageViewerManagerViewGUI
-::DiaporamaNext()
-{
-  if (m_DiaporamaCurrentIndex < static_cast<unsigned int>(guiImageList->size())-1)
-  {
-    ++m_DiaporamaCurrentIndex;
-    this->DisplayDiaporama();
-  }
-  this->UpdateDiaporamaProgressBar();
-}
-
-void
-ImageViewerManagerViewGUI
-::DiaporamaPrevious()
-{
-  if (m_DiaporamaCurrentIndex>0)
-  {
-    --m_DiaporamaCurrentIndex;
-    this->DisplayDiaporama();
-  }
-  this->UpdateDiaporamaProgressBar();
-}
-
-
-void
-ImageViewerManagerViewGUI
-::UpdateDiaporamaProgressBar()
-{
-  itk::OStringStream oss;
-  oss.str("");
-  oss<<m_DiaporamaCurrentIndex+1<<"/"<<guiImageList->size();
-  guiDiaporamaProgressBar->copy_label(oss.str().c_str());
-  guiDiaporamaProgressBar->minimum(1.);
-  guiDiaporamaProgressBar->maximum(static_cast<float>(guiImageList->size()));
-  guiDiaporamaProgressBar->value(static_cast<float>(m_DiaporamaCurrentIndex));
-}
-
-void
-ImageViewerManagerViewGUI
-::DiaporamaQuit()
-{
-  guiDiaporama->hide();
-  m_WidgetManager->Hide();
-  m_WidgetManager->UnRegisterAll();
-  this->ShowTemporaryClosedDisplay();
-}
-
-/**
- *
- */
-
-void
-ImageViewerManagerViewGUI
-::LinkSetup()
-{
-  unsigned int selectedItem = guiImageList->value();
-  if (selectedItem == 0)
-  {
-    // no image selected, return
-    return;
-  }
-  if(guiDiaporama->shown() == 0 )
-    guiLinkSetupWindow->show();
-}
-
-
-/**
- *
- */
-void
-ImageViewerManagerViewGUI
-::UpdateLinkSetupWindow()
-{
-  itk::OStringStream oss;
-  oss.str("");
-  guiLinkListLeft->clear();
-  guiLinkListRight->clear();
-  guiLinkListLeft->value(0);
-  guiLinkListRight->value(0);
-
-  //Fill the guiLinkList
-
-  for (int i = 0; i < guiImageList->size(); i++)
-    {
-      oss.str("");
-      oss<<this->CutFileName(i);
-      guiLinkListRight->add(oss.str().c_str());
-      guiLinkListLeft->add(oss.str().c_str());
-    }
-
-  guiLinkXOffset->value("0");
-  guiLinkYOffset->value("0");
-
-  guiLinkListLeft->redraw();
-  guiLinkListRight->redraw();
-}
-
-/**
-*
-*/
-void
-ImageViewerManagerViewGUI
-::LinkSetupSave()
-{
-  unsigned int leftChoice = guiLinkListLeft->value();
-  unsigned int rightChoice = guiLinkListRight->value();
-
-  if(leftChoice == 0 || rightChoice == 0)
-    return;
-  else
-    {
-      //Fill the offset
-      OffsetType                      offSet;
-      offSet[0] = atoi(guiLinkXOffset->value());
-      offSet[1] = atoi(guiLinkYOffset->value());
-
-      //Update a list to
-
-      //Call the controller
-      this->m_ImageViewerManagerController->Link(leftChoice, rightChoice, offSet);
-
-      //Close the temporary Showed images without clearing the showed list
-      this->CloseAllDisplayedImages(false);
-
-      //Add the linked image to the list
-      m_LinkedDisplayStatusList[leftChoice-1] = true;
-      m_LinkedDisplayStatusList[rightChoice-1] = true;
-
-      //store  the images linked together
-      UIntPairType        linkPair(leftChoice, rightChoice);
-      m_LinkedImageList.push_back(linkPair);
-
-      //Diplay the Linked images
-      this->Display(m_LinkWidgetManagerList, leftChoice);
-      this->Display(m_LinkWidgetManagerList, rightChoice);
-    }
-}
-
-/**
-*
-*/
-void
-ImageViewerManagerViewGUI
-::LinkSetupOk()
-{
-  guiLinkSetupWindow->hide();
-
-  //Close the  displays linked
-  for(unsigned int i = 0; i<m_LinkedDisplayStatusList.size(); i++)
-    {
-      if(m_LinkedDisplayStatusList[i])
-       {
-         m_LinkWidgetManagerList->GetNthElement(i)->Hide();
-         m_LinkedDisplayStatusList[i] = false;
-       }
-    }
-  //Display temporary closed displays if any
-  if(guiImageList->size()>0)
-    this->ShowTemporaryClosedDisplay();
-}
-
-/**
- *
- */
-void
-ImageViewerManagerViewGUI
-::LinkSetupRemove()
-{
-  //Close the  displays linked
-  for(unsigned int i = 0; i<m_LinkedDisplayStatusList.size(); i++)
-    if(m_LinkedDisplayStatusList[i])
-      {
-       m_LinkWidgetManagerList->GetNthElement(i)->Hide();
-       m_LinkedDisplayStatusList[i] = false;
-      }
-}
-
-/**
- *
- */
-void
-ImageViewerManagerViewGUI
-::InitializeImageController(unsigned int selectedItem)
-{
-  std::vector<unsigned int>  tempElementToRemove;
-
-  for(unsigned int i = 0; i< m_LinkedImageList.size(); i++ )
-    {
-      if(m_LinkedImageList[i].first == selectedItem || m_LinkedImageList[i].second == selectedItem)
-       {
-
-         if(m_LinkedImageList[i].first == selectedItem )
-           m_ImageViewerManagerController->UpdateImageViewController(m_LinkedImageList[i].second);
-
-         if(m_LinkedImageList[i].second == selectedItem)
-           m_ImageViewerManagerController->UpdateImageViewController(m_LinkedImageList[i].first);
-
-         tempElementToRemove.push_back(i);
-       }
-    }
-
-  //Remove element from the list
-  unsigned counter = 0;
-  for(unsigned int p = 0; p < tempElementToRemove.size(); p ++ )
-    {
-      m_LinkedImageList.erase(m_LinkedImageList.begin()+tempElementToRemove[p] - counter); // counter because the size of the list is decreasing after each iteration
-      counter++;
-    }
-
-  m_LinkedImageList.clear();
-}
-
-
-/**
- * PrintSelf Method
- */
-void
-ImageViewerManagerViewGUI
-::PrintSelf(std::ostream& os, itk::Indent indent) const
-{
-  Superclass::PrintSelf(os, indent);
-}
-} // End namespace otb
-
diff --git a/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.h b/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.h
deleted file mode 100644
index 39d1bae2b8bb9b9859a6f2b5fd5b5b3b53124212..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/View/otbImageViewerManagerViewGUI.h
+++ /dev/null
@@ -1,241 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#ifndef __otbImageViewerManagerViewGUI_h
-#define __otbImageViewerManagerViewGUI_h
-
-#include "otbListenerBase.h"
-
-// Disabling deprecation warning
-#ifdef _MSC_VER
-#pragma warning(push)
-#pragma warning(disable:4996)
-#endif
-#include "otbImageViewerManagerViewGroup.h"
-//#include "otbImageWidgetPackedManager.h"
-#ifdef _MSC_VER
-#pragma warning(pop)
-#endif
-
-#include <FL/Fl_Group.H>
-#include "otbImageViewerManagerModel.h"
-#include "otbImageViewerManagerControllerInterface.h"
-
-#include "otbImageView.h"
-#include "otbImageWidget.h"
-#include "otbPixelDescriptionView.h"
-
-#include "otbCurves2DWidget.h"
-#include "otbHistogramCurve.h"
-
-#include "otbWidgetManager.h"
-#include "otbPackedWidgetManager.h"
-#include "otbSplittedWidgetManager.h"
-
-#include "otbObjectList.h"
-#include "otbFixedSizeFullImageWidget.h"
-#include <FL/Fl_File_Chooser.H>
-
-namespace otb
-{
-/** \class ImageViewerManagerViewGUI
- *
- */
-  class ITK_EXPORT ImageViewerManagerViewGUI
-    : public ListenerBase, public ImageViewerManagerViewGroup, public itk::Object
-{
-public:
-  /** Standard typedefs */
-  typedef ImageViewerManagerViewGUI                  Self;
-  typedef itk::Object          Superclass;
-  typedef itk::SmartPointer<Self>                    Pointer;
-  typedef itk::SmartPointer<const Self>              ConstPointer;
-
-  /** Type macro */
-  itkNewMacro(Self);
-
-  /** Creation through object factory macro */
-  itkTypeMacro(ImageViewerManagerViewGUI, Object);
-
-  /** Controller */
-  typedef ImageViewerManagerControllerInterface::Pointer  ImageViewerManagerControllerInterfacePointerType;
-
-  /** Model*/
-  typedef ImageViewerManagerModel                                 ImageViewerManagerModelType;
-  typedef ImageViewerManagerModelType::VisuModelType              VisuModelType;  //rendreing Image
-  typedef ImageViewerManagerModelType::VisuModelPointerType       VisuModelPointerType;  //rendreing Image
-  typedef ImageViewerManagerModelType::PixelDescriptionModelType  PixelDescriptionModelType;  //rendreing Image
-  typedef ImageViewerManagerModelType::LayerType::HistogramType   HistogramType;
-  typedef ImageViewerManagerModelType::OffsetType                 OffsetType;
-  typedef ImageViewerManagerModelType::RenderingFunctionType      RenderingFunctionType;
-  typedef ImageViewerManagerModelType::StandardRenderingFunctionType StandardRenderingFunctionType;
-  typedef StandardRenderingFunctionType::ChannelListType          ChannelListType;
-  typedef ImageView<VisuModelType>                                VisuViewType;
-  typedef VisuViewType::Pointer                                   VisuViewPointerType;
-
-  /* Method to display the Widget : Packed or Splitted */
-  typedef PackedWidgetManager                                     PackedWidgetManagerType;
-  typedef PackedWidgetManagerType::Pointer                        PackedWidgetManagerPointerType;
-  typedef SplittedWidgetManager                                   SplittedWidgetManagerType;
-  typedef SplittedWidgetManagerType::Pointer                      SplittedWidgetManagerPointerType;
-
-  /** Widget for the preview*/
-  typedef ImageWidget<>                                           ImageWidgetType;
-  typedef ImageWidgetType::SizeType                               SizeType;
-  typedef ImageWidgetType::Pointer                                ImageWidgetPointerType;
-
-  /** Curves 2D widget */
-  typedef Curves2DWidget                                           CurvesWidgetType;
-  typedef CurvesWidgetType::Pointer                                CurvesWidgetPointerType;
-  typedef HistogramCurve<HistogramType>                            HistogramCurveType;
-  typedef HistogramCurveType::Pointer                              HistogramCurvePointerType;
-
-  /** Pixel Description View*/
-  typedef PixelDescriptionView<PixelDescriptionModelType>         PixelDescriptionViewType;
-
-  /** vector to store the status of images : diplayed or not displayed*/
-  //---> Note : if the packed view is selected : 2nd boolean false, Splitted view : 2nd boolean true
-  typedef std::pair<bool, bool>                                   PairType;
-  typedef std::pair<unsigned int , unsigned int>                   UIntPairType;
-  typedef std::vector<PairType>                                   BoolVector;
-  typedef std::vector<UIntPairType>                               UIntPairVector;
-
-  /** list in order to store the diplay manager*/
-  typedef WidgetManager                                           WidgetManagerType;
-  typedef ObjectList<WidgetManagerType>                           WidgetManagerList;
-
-
-  /** Method to set the controller*/
-  itkGetObjectMacro(ImageViewerManagerController, ImageViewerManagerControllerInterface);
-
-  void SetImageViewerManagerController(ImageViewerManagerControllerInterface *pController)
-  {
-    m_ImageViewerManagerController = pController;
-    m_VisuView->SetController(m_ImageViewerManagerController->GetVisuController());
-    m_PreviewWidget->SetController(m_ImageViewerManagerController->GetPreviewVisuController());
-  }
-
-  // Visu
-  itkGetMacro(VisuView, VisuViewPointerType);
-  itkGetMacro(PreviewWidget, ImageWidgetPointerType );
-
-  // Show()
-  virtual void Show();
-
-  // Update the display
-  virtual void Notify();
-
-  //
-  virtual void OpenImage(const char * inputFileName);
-
-protected:
-  virtual void   OpenImage();
-  virtual void   Initialize(const char * cfname);
-  virtual void   CloseImage();
-  virtual void   ViewerSetup();
-  virtual void   ViewerSetupOk();
-  virtual void   ViewerSetupCancel();
-
-  virtual void   AddImageListName();
-  virtual void   Quit();
-  virtual void   SelectAction();
-  virtual double UpdatePreviewWidgetIsotropicZoom(SizeType size);
-  virtual void   ShowHide();
-  virtual void   CloseAllDisplayedImages(bool showHideEvent);
-  virtual void   ShowTemporaryClosedDisplay();
-  virtual void   HideAll();
-  virtual void   Display(WidgetManagerList::Pointer  widgetList, unsigned int selectedItem);
-  virtual void   Undisplay(unsigned int selectedItem);
-  virtual void   UpdateImageListShowed(unsigned int selectedItem, std::string status);
-  virtual void   GrayScaleSet();
-  virtual void   RGBSet();
-  virtual void   ComplexSet();
-  virtual void   Diaporama();
-  virtual void   DisplayDiaporama();
-  virtual void   DiaporamaNext();
-  virtual void   DiaporamaPrevious();
-  virtual void   DiaporamaQuit();
-
-  virtual void   UpdateInformation(unsigned int selectedItem);
-  virtual void   UpdateViewerSetupWindow(unsigned int selectedItem);
-  virtual void   DisplayPreviewWidget(unsigned int selectedItem);
-  virtual void   SplittedViewMode();
-  virtual void   PackedViewMode();
-  virtual void   UpdateDiaporamaProgressBar();
-
-  virtual const char * CutFileName(unsigned int selectedItem);
-
-  virtual void LinkSetup();
-  virtual void LinkSetupSave();
-  virtual void UpdateLinkSetupWindow();
-  virtual void LinkSetupOk();
-  virtual void LinkSetupRemove();
-  virtual void InitializeImageController(unsigned int selectedItem );
-
-  /** Constructor */
-  ImageViewerManagerViewGUI();
-  /** Destructor */
-  virtual ~ImageViewerManagerViewGUI(){};
-  /**PrintSelf method */
-  virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
-
-private:
-  ImageViewerManagerViewGUI(const Self&); //purposely not implemented
-  void operator=(const Self&); //purposely not implemented
-
-  /** Pointer to the model */
-  ImageViewerManagerModel::Pointer               m_ImageViewerManagerModel;
-
-  /** Pointer to the controller */
-  ImageViewerManagerControllerInterface::Pointer m_ImageViewerManagerController;
-
-  //
-  BoolVector                                     m_DisplayStatusList;
-  std::vector<bool>                              m_LinkedDisplayStatusList;
-  UIntPairVector                                 m_LinkedImageList;
-  std::string                                    m_TemplateViewerName;
-  std::string                                    m_DisplayedLabel;
-  std::string                                    m_UndisplayedLabel;
-
-  //Widget Manager
-  WidgetManagerList::Pointer                     m_WidgetManagerList;
-  WidgetManagerList::Pointer                     m_LinkWidgetManagerList;
-
-  //SlideShow widget Manager
-  PackedWidgetManagerType::Pointer               m_WidgetManager;
-
-  VisuViewPointerType                            m_VisuView;
-
-  /**ImageWidget for my preview*/
-  ImageWidgetPointerType                         m_PreviewWidget;
-
-
-  /** Histogram */
-  StandardRenderingFunctionType::Pointer        m_pRenderingFunction;
-  HistogramCurveType::ColorType                 m_Red;
-  HistogramCurveType::ColorType                 m_Green;
-  HistogramCurveType::ColorType                 m_Blue;
-  HistogramCurveType::ColorType                 m_Grey;
-
-  /** Store the component number of a pixel*/
-  unsigned int                                  m_DiaporamaCurrentIndex;
-
-};
-}// End namespace otb
-
-#endif
-
diff --git a/Legacy/ViewerManager/View/otbImageViewerManagerViewGroup.fl b/Legacy/ViewerManager/View/otbImageViewerManagerViewGroup.fl
deleted file mode 100644
index 1456990099769fc9d1022e53cf2f27122ebc544b..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/View/otbImageViewerManagerViewGroup.fl
+++ /dev/null
@@ -1,289 +0,0 @@
-# data file for the Fltk User Interface Designer (fluid)
-version 1.0109 
-i18n_type 1 
-i18n_include "otbI18n.h" 
-i18n_function otbGetTextMacro 
-header_name {.h} 
-code_name {.cxx}
-class ImageViewerManagerViewGroup {open
-} {
-  Function {CreateGUI()} {open return_type void
-  } {
-    Fl_Window guiMainWindow {
-      label otbImageViewerManagerView
-      callback {this->Quit()} open
-      xywh {366 65 610 460} type Double box UP_BOX color 52 selection_color 7 labelcolor 187 resizable visible
-    } {
-      Fl_Text_Display guiViewerInformation {
-        label Information
-        tooltip {Selected image viewer information} xywh {15 324 575 126} box EMBOSSED_BOX color 54 selection_color 55 labelcolor 186 textcolor 187
-      }
-      Fl_Browser guiImageList {
-        label {Viewers List}
-        callback {SelectAction();}
-        tooltip {List of opened image viewer (showed image viewer are prefixed with +, and hidden with -)} xywh {25 35 230 275} type Hold box EMBOSSED_BOX selection_color 20 labelcolor 186 align 1 textcolor 187
-      }
-      Fl_Group gPreviewWindow {open
-        xywh {280 38 195 189} resizable
-      } {}
-      Fl_Group gBottom {open
-        xywh {260 231 225 73}
-      } {
-        Fl_Button guiShowHide {
-          label {Show / Hide}
-          callback {ShowHide();}
-          tooltip {Show or hide the selected image viewer} xywh {260 257 105 33} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x20 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button guiHideAll {
-          label {Hide all}
-          callback {HideAll();}
-          tooltip {Hide all the viewers} xywh {373 257 100 33} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x20 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Group gBlanck1 {open
-          xywh {475 254 10 41} resizable
-        } {}
-        Fl_Round_Button bPacked {
-          label {Packed View}
-          callback {PackedViewMode();
-//bPacked->value(1);
-//if(bSplitted->value())
-// bPacked->deactivate();
-//else
-// bPacked->value(1);}
-          tooltip {Toggle Packed  mode} xywh {380 238 105 15} type Radio down_box ROUND_DOWN_BOX value 1 labelcolor 187 deactivate
-        }
-        Fl_Round_Button bSplitted {
-          label {Splitted View}
-          callback {SplittedViewMode();
-//bSplitted->value(1);
-//if(bPacked->value())
-// bSplitted->deactivate();
-//else
-// bSplitted->value(1);}
-          tooltip {Toggle Splitted mode} xywh {275 237 105 15} type Radio down_box ROUND_DOWN_BOX labelcolor 187 deactivate
-        }
-      }
-      Fl_Group gRight {open
-        xywh {480 31 115 277}
-      } {
-        Fl_Button guiOpenImage {
-          label {Open image}
-          callback {OpenImage();}
-          tooltip {Open an image in a new image viewer} xywh {489 46 95 24} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x6f color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button guiCloseImage {
-          label {Close image}
-          callback {CloseImage();}
-          tooltip {Close the selected image} xywh {489 88 95 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x63 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button guiViewerSetup {
-          label {Viewer setup}
-          callback {ViewerSetup();}
-          tooltip {Set up the selected viewer} xywh {489 129 95 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x76 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button guiLinkSetup {
-          label {Link setup}
-          callback {LinkSetup();}
-          tooltip {Add or remove links with the selected viewer} xywh {489 172 95 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x6c color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button guiQuit {
-          label Quit
-          callback {Quit();}
-          tooltip {Quit the viewer manager} xywh {490 258 95 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x71 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Button {} {
-          label Slideshow
-          callback {Diaporama();}
-          tooltip {Launch the slideshow mode} xywh {490 215 95 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0x64 color 23 selection_color 23 labelcolor 186
-        }
-        Fl_Group gBlanck2 {open
-          xywh {500 288 75 12} resizable
-        } {}
-      }
-    }
-    Fl_Window guiViewerSetupWindow {
-      label {Viewer setup} open
-      xywh {885 215 705 230} type Double box UP_BOX color 52 selection_color 7 labelcolor 187 visible
-    } {
-      Fl_Round_Button guiViewerSetupGrayscaleMode {
-        label {Grayscale mode}
-        callback {GrayScaleSet();}
-        tooltip {Swith the image viewer mode to grayscale} xywh {22 18 140 24} box ROUND_UP_BOX down_box ROUND_DOWN_BOX value 1 color 23 selection_color 22 labelcolor 186
-      }
-      Fl_Round_Button guiViewerSetupColorMode {
-        label {RGB composition mode}
-        callback {RGBSet();}
-        tooltip {Switch the image viewer mode to RGB composition} xywh {460 17 184 24} box ROUND_UP_BOX down_box ROUND_DOWN_BOX color 23 selection_color 22 labelcolor 186
-      }
-      Fl_Spinner guiGrayscaleChannelChoice {
-        label {Channel index}
-        tooltip {Select the band to view in grayscale mode} xywh {118 73 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1
-      }
-      Fl_Spinner guiRedChannelChoice {
-        label {Red channel}
-        tooltip {Select band for red channel in RGB composition} xywh {602 51 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1 deactivate
-      }
-      Fl_Spinner guiGreenChannelChoice {
-        label {Green channel}
-        tooltip {Select band for green channel in RGB composition} xywh {602 73 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1 deactivate
-      }
-      Fl_Spinner guiBlueChannelChoice {
-        label {Blue channel}
-        tooltip {Select band for blue channel in RGB composition} xywh {602 95 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1 deactivate
-      }
-      Fl_Return_Button guiViewerSetupOk {
-        label Ok
-        callback {ViewerSetupOk();}
-        tooltip {Save changes and leave viewer set up interface} xywh {353 180 80 30} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0xff0d color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Input guiViewerSetupName {
-        label {Viewer name}
-        tooltip {Set a new name for the selected viewer} xywh {205 136 305 24} box EMBOSSED_BOX color 54 selection_color 55 labelcolor 186 textcolor 187
-      }
-      Fl_Button guiViewerSetupCancel {
-        label Cancel
-        callback {ViewerSetupCancel();}
-        tooltip {Leave viewer set up interface without saving changes} xywh {240 180 80 30} box ROUND_UP_BOX down_box ROUND_DOWN_BOX color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Round_Button guiViewerSetupComplexMode {
-        label {Complex composition mode}
-        callback {ComplexSet();}
-        tooltip {Switch the image viewer mode to complex composition} xywh {215 17 210 26} box ROUND_UP_BOX down_box ROUND_DOWN_BOX color 23 selection_color 22 labelcolor 186
-      }
-      Fl_Spinner guiRealChannelChoice {
-        label {Real channel index}
-        tooltip {Select band for real channel in complex composition} xywh {375 74 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1 deactivate
-      }
-      Fl_Spinner guiImaginaryChannelChoice {
-        label {Imaginary channel index}
-        tooltip {Select band for imaginary channel in complex composition} xywh {375 96 57 24} box EMBOSSED_BOX color 7 selection_color 55 labelcolor 187 value 1 deactivate
-      }
-      Fl_Round_Button bAmplitude {
-        label Amplitude
-        callback {bPhase->clear();}
-        tooltip {Toggle modulus mode} xywh {235 50 80 15} down_box ROUND_DOWN_BOX value 1 labelcolor 187 deactivate
-      }
-      Fl_Round_Button bPhase {
-        label Phase
-        callback {bAmplitude->clear();}
-        tooltip {Toggle phase mode} xywh {325 50 80 15} down_box ROUND_DOWN_BOX labelcolor 187 deactivate
-      }
-    }
-    Fl_Window guiLinkSetupWindow {
-      label {Link Images} open
-      xywh {397 582 560 220} type Double box UP_BOX color 52 selection_color 7 labelcolor 187 resizable visible
-    } {
-      Fl_Input guiLinkXOffset {
-        label {X offset}
-        tooltip {Set the x offset of the link} xywh {210 127 35 23} box EMBOSSED_BOX selection_color 55 labelcolor 186 textcolor 187
-      }
-      Fl_Input guiLinkYOffset {
-        label {Y offset}
-        tooltip {Set the Y offset of the link} xywh {320 127 35 23} box EMBOSSED_BOX selection_color 55 labelcolor 186 textcolor 187
-      }
-      Fl_Button guiSaveLink {
-        label Apply
-        callback {LinkSetupSave();}
-        tooltip {Save the current link} xywh {84 175 90 30} box ROUND_UP_BOX color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Browser guiLinkListLeft {
-        label {First image}
-        tooltip {List of image viewers already linked with the selected image viewer} xywh {10 25 235 75} type Hold box EMBOSSED_BOX color 54 selection_color 20 labelcolor 186 align 1 textcolor 187
-      }
-      Fl_Button guiLinkRemove {
-        label Remove
-        callback {LinkSetupRemove();}
-        tooltip {Remove the selected link} xywh {190 175 90 30} box ROUND_UP_BOX down_box ROUND_DOWN_BOX color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Button guiLinkClear {
-        label Clear
-        callback {LinkSetupClear();}
-        tooltip {Clear all links for the selected image viewer} xywh {294 175 90 30} box ROUND_UP_BOX down_box ROUND_DOWN_BOX color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Return_Button guiLinkOk {
-        label Quit
-        callback {LinkSetupOk();}
-        tooltip {Leave the link set up interface} xywh {400 175 90 30} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0xff0d color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Browser guiLinkListRight {
-        label {Second image}
-        tooltip {List of image viewers already linked with the selected image viewer} xywh {307 25 235 75} type Hold box EMBOSSED_BOX color 54 selection_color 20 labelcolor 186 align 1 textcolor 187
-      }
-    }
-    Fl_Window guiDiaporama {
-      label Slideshow
-      xywh {652 599 390 90} type Double box UP_BOX color 52 selection_color 7 labelcolor 187 hide
-    } {
-      Fl_Progress guiDiaporamaProgressBar {
-        label Progress
-        tooltip {Position in diaporama} xywh {37 14 310 25} box ROUND_UP_BOX selection_color 20 labelcolor 186
-      }
-      Fl_Button {} {
-        label Previous
-        callback {DiaporamaPrevious();}
-        tooltip {Previous image in diaporama} xywh {20 55 105 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0xff55 color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Button {} {
-        label Next
-        callback {DiaporamaNext();}
-        tooltip {Next image in diaporama} xywh {140 55 105 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0xff56 color 23 selection_color 23 labelcolor 186
-      }
-      Fl_Return_Button {} {
-        label Quit
-        callback {DiaporamaQuit();}
-        tooltip {Leave diaporama mode} xywh {262 55 105 25} box ROUND_UP_BOX down_box ROUND_DOWN_BOX shortcut 0xff1b color 23 selection_color 23 labelcolor 186
-      }
-    }
-  }
-  Function {ImageViewerManagerViewGroup()} {} {}
-  Function {~ImageViewerManagerViewGroup()} {open return_type virtual
-  } {}
-  Function {OpenImage()} {open return_type {virtual void}
-  } {}
-  Function {CloseImage()} {open return_type {virtual void}
-  } {}
-  Function {ViewerSetup()} {open return_type {virtual void}
-  } {}
-  Function {ViewerSetupOk()} {open return_type {virtual void}
-  } {}
-  Function {LinkSetup()} {open return_type {virtual void}
-  } {}
-  Function {LinkSetupRemove()} {open return_type {virtual void}
-  } {}
-  Function {LinkSetupClear()} {open return_type {virtual void}
-  } {}
-  Function {LinkSetupOk()} {open return_type {virtual void}
-  } {}
-  Function {LinkSetupSave()} {open return_type {virtual void}
-  } {}
-  Function {Quit()} {open return_type {virtual void}
-  } {}
-  Function {SelectAction()} {open return_type {virtual void}
-  } {}
-  Function {ShowHide()} {open return_type {virtual void}
-  } {}
-  Function {GrayScaleSet()} {open return_type {virtual void}
-  } {}
-  Function {RGBSet()} {open return_type {virtual void}
-  } {}
-  Function {ViewerSetupCancel()} {open return_type {virtual void}
-  } {}
-  Function {ZoomSmallImagesHook()} {open return_type {virtual void}
-  } {}
-  Function {DiaporamaPrevious()} {open return_type {virtual void}
-  } {}
-  Function {DiaporamaNext()} {open return_type {virtual void}
-  } {}
-  Function {DiaporamaQuit()} {open return_type {virtual void}
-  } {}
-  Function {Diaporama()} {open return_type {virtual void}
-  } {}
-  Function {HideAll()} {open return_type {virtual void}
-  } {}
-  Function {ComplexSet()} {open return_type {virtual void}
-  } {}
-  Function {SplittedViewMode()} {open return_type {virtual void}
-  } {}
-  Function {PackedViewMode()} {open return_type {virtual void}
-  } {}
-} 
diff --git a/Legacy/ViewerManager/otbImageViewerManager.cxx b/Legacy/ViewerManager/otbImageViewerManager.cxx
deleted file mode 100644
index 661900fda80ccb8ea3500c167e942aa043553e13..0000000000000000000000000000000000000000
--- a/Legacy/ViewerManager/otbImageViewerManager.cxx
+++ /dev/null
@@ -1,88 +0,0 @@
-/*=========================================================================
-
-  Program:   ORFEO Toolbox
-  Language:  C++
-  Date:      $Date$
-  Version:   $Revision$
-
-
-  Copyright (c) Centre National d'Etudes Spatiales. All rights reserved.
-See OTBCopyright.txt for details.
-
-
-    This software is distributed WITHOUT ANY WARRANTY; without even
-     the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
-     PURPOSE,  See the above copyright notices for more information.
-
-=========================================================================*/
-#include "otbImageViewerManagerViewGUI.h"
-#include "otbImageViewerManagerModel.h"
-#include "otbImageViewerManagerController.h"
-#include "otbCommandLineArgumentParser.h"
-#include "otbMsgReporter.h"
-
-#include "otbI18n.h"
-
-int main(int argc, char* argv[])
-{
-
-    otbI18nMacro();
-
-  // Parse command line parameters
-//   typedef otb::CommandLineArgumentParser ParserType;
-//   ParserType::Pointer parser = ParserType::New();
-
-//   //parser->AddInputImage(false); //Optionnal parameter
-//   parser->AddOptionNParams("--InputImage","Input Images","-in", false);
-
-//   typedef otb::CommandLineArgumentParseResult ParserResultType;
-//   ParserResultType::Pointer  parseResult = ParserResultType::New();
-
-//   try
-//   {
-//     parser->ParseCommandLine(argc, argv, parseResult);
-//   }
-//   catch ( itk::ExceptionObject & err )
-//   {
-//     std::string descriptionException = err.GetDescription();
-//     if (descriptionException.find("ParseCommandLine(): Help Parser") != std::string::npos)
-//     {
-//       std::cout << "WARNING : output file pixels are converted in 'unsigned char'" << std::endl;
-//       return EXIT_SUCCESS;
-//     }
-//     if (descriptionException.find("ParseCommandLine(): Version Parser") != std::string::npos)
-//     {
-//       return EXIT_SUCCESS;
-//     }
-//     return EXIT_FAILURE;
-//   }
-
-  typedef otb::ImageViewerManagerController ControllerType;
-  typedef otb::ImageViewerManagerViewGUI ViewType;
-
-  ControllerType::Pointer controller = ControllerType::New();
-  ViewType::Pointer view = ViewType::New();
-  controller->SetView(view);
-  view->SetImageViewerManagerController(controller);
-  //otb::MsgReporter::GetInstance()->SetTitle("Image Viewer Manager application");
-
-  //
-  view->Show();
-  for (int i = 1; i<argc; ++i)
-    {
-      view->OpenImage(argv[i]);
-    }
-
-//   if ( parseResult->IsOptionInputImagePresent() )
-//     {
-//       for(int i = 0; i<parseResult->GetNumberOfParameters("--InputImage"); i++ )
-//        {
-//          view->OpenImage(parseResult->GetParameterString("--InputImage", i).c_str());
-//        }
-//     }
-  Fl::check();
-
-  otbGenericMsgDebugMacro(<<"Running GUI ...");
-  Fl::run();
-
-}