diff --git a/ViewerManager/View/otbImageViewerManagerViewGUI.cxx b/ViewerManager/View/otbImageViewerManagerViewGUI.cxx
index 4f1e1f7f280ae2ebf78eb086a7506d6f65fafcc8..a94f5f716fa89acc4639d72583aebb401231e178 100644
--- a/ViewerManager/View/otbImageViewerManagerViewGUI.cxx
+++ b/ViewerManager/View/otbImageViewerManagerViewGUI.cxx
@@ -34,13 +34,14 @@ ImageViewerManagerViewGUI
 			      m_UndisplayedLabel("- ")
 {
 
-  //
-  m_VisuViewShowedList =  VisuViewShowedList::New();
-  m_VisuView           =  VisuViewType::New();
-  m_PreviewWidget      =  ImageWidgetType::New();
-  m_pRenderingFuntion  = StandardRenderingFunctionType::New();
-  m_PixelView          =  PixelDescriptionViewType::New();
-  m_CurveWidget        =  CurvesWidgetType::New();
+  m_VisuView            =  VisuViewType::New();
+  m_PreviewWidget       =  ImageWidgetType::New();
+  m_pRenderingFuntion   =  StandardRenderingFunctionType::New();
+  m_PackedWindow        =  PackedWidgetManagerType::New(); 
+  m_SplittedWindow      =  SplittedWidgetManagerType::New(); 
+  m_SplittedManagerList =  SplittedManagerList::New();
+  m_PixelView           =  PixelDescriptionViewType::New();
+  m_CurveWidget         =  CurvesWidgetType::New();
 
   //Get an instance of the model
   m_ImageViewerManagerModel = ImageViewerManagerModel::GetInstance();
@@ -60,20 +61,8 @@ ImageViewerManagerViewGUI
   gPreviewWindow->resizable(gPreviewWindow);
   m_PreviewWidget->resize(gPreviewWindow->x(), gPreviewWindow->y(), gPreviewWindow->w(), gPreviewWindow->h() );
   
-  // Init the widgets : PixelDescription, Full, Scroll, Zoom & Histogram 
-  m_FullWindow       = new Fl_Window(500,500);
-  m_ScrollWindow     = new Fl_Window(200,200);
-  m_ZoomWindow       = new Fl_Window(200,200);
-  m_PixelWindow      = new Fl_Window(200,200);
-  m_HistogramWindow  = new Fl_Window(300,200);
 
-
-  
-  
-  //
-  //m_CurveWidget->resize(0,0,300,200);
-  //m_HistogramWindow->add(m_CurveWidget);
-  m_HistogramWindow->resize(0,0,300,200);
+  //Histogram 
   m_Bhistogram          = HistogramCurveType::New();
   m_Rhistogram          = HistogramCurveType::New();
   m_Ghistogram          = HistogramCurveType::New();
@@ -99,11 +88,8 @@ ImageViewerManagerViewGUI
   m_CurveWidget->SetXAxisLabel("Pixels");
   m_CurveWidget->SetYAxisLabel("Frequency");
     
-  //Add a widget once
-  m_PixelWindow->add(m_PixelView->GetPixelDescriptionWidget());
+  //Widget Manager
 
-  //
-  m_PackedWindow =  PackedWidgetManagerType::New(); 
 }
   
   /**
@@ -163,9 +149,7 @@ ImageViewerManagerViewGUI
       if(m_DisplayStatusList[selectedItem-1])
 	{
 	  this->Display(selectedItem);
-	  m_FullWindow->redraw();
-	  m_ScrollWindow->redraw();
-	  m_ZoomWindow->redraw();
+	  m_SplittedWindow->Refresh();
 	}
 
       //Update Information
@@ -335,105 +319,34 @@ ImageViewerManagerViewGUI
 ::Display(unsigned int selectedItem)
 {
   //- Get the view stored in the model 
-  //- Build the widgets 
-  
-
-  //build the 
   VisuViewPointerType currentVisuView = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pVisuView;
   m_PixelView->SetModel(m_ImageViewerManagerModel->GetPixelModel());
   
-  
-  m_PackedWindow->RegisterFullWidget(currentVisuView->GetFullWidget());
-  m_PackedWindow->RegisterScrollWidget(currentVisuView->GetScrollWidget());
-  m_PackedWindow->RegisterZoomWidget(currentVisuView->GetZoomWidget());
-  m_PackedWindow->RegisterPixelInformationWidget(m_PixelView->GetPixelDescriptionWidget());
-
   //First get the histogram list
-  m_pRenderingFuntion = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFuntion;
-  m_Rhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(m_pRenderingFuntion->GetRedChannelIndex()));
-  m_Ghistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(m_pRenderingFuntion->GetGreenChannelIndex()));
-  m_Bhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(m_pRenderingFuntion->GetBlueChannelIndex()));
-  
-  m_PackedWindow->RegisterHistogramWidget(m_CurveWidget);
-  
-
-  m_PackedWindow->Show();
-
-  
-  
-//   currentVisuView->GetFullWidget()->show();
-//   //m_PixelView->GetPixelDescriptionWidget()->show();
-//   currentVisuView->GetScrollWidget()->show();
-//   currentVisuView->GetZoomWidget()->show();
-
-    
-//   //   //Pixel Description
-
-//    //   m_PixelWindow->label("Pixel Description");
-//    //   m_PixelWindow->resizable(m_PixelView->GetPixelDescriptionWidget());
-//    //   m_PixelWindow->show();
-//     m_PackedWindow->m_PixelInformationGroup->resizable(m_PixelView->GetPixelDescriptionWidget());
-//     m_PixelView->GetPixelDescriptionWidget()->resize(m_PackedWindow->m_PixelInformationGroup->x(), m_PackedWindow->m_PixelInformationGroup->y(),
-// 						     m_PackedWindow->m_PixelInformationGroup->w(),m_PackedWindow->m_PixelInformationGroup->h());
-    
-//     //   //FullWidget
-//     //   m_FullWindow->label("Full Window");
-//     //   m_FullWindow->add(currentVisuView->GetFullWidget());
-//     //   m_FullWindow->resizable(currentVisuView->GetFullWidget());
-//     //   m_FullWindow->show(); 
-    
-//     m_PackedWindow->m_FullGroup->add(currentVisuView->GetFullWidget());
-//     m_PackedWindow->m_FullGroup->resizable(currentVisuView->GetFullWidget());
-//     currentVisuView->GetFullWidget()->resize(m_PackedWindow->m_FullGroup->x(), m_PackedWindow->m_FullGroup->y(),
-// 					     m_PackedWindow->m_FullGroup->w(),m_PackedWindow->m_FullGroup->h());
-    
-//     //   m_FullWindow->redraw();
-    
-//     //   //ScrollWidget
-//     //   m_ScrollWindow->label("Scroll Window");
-//     //   m_ScrollWindow->add((currentVisuView->GetScrollWidget()));
-//     //   m_ScrollWindow->resizable(currentVisuView->GetScrollWidget());
-//     //   m_ScrollWindow->show();
-//     m_PackedWindow->m_QuicklookGroup->add(currentVisuView->GetScrollWidget());
-//     m_PackedWindow->m_QuicklookGroup->resizable(currentVisuView->GetScrollWidget());
-//     currentVisuView->GetScrollWidget()->resize(m_PackedWindow->m_QuicklookGroup->x(),m_PackedWindow->m_QuicklookGroup->y(),
-// 					       m_PackedWindow->m_QuicklookGroup->w(),m_PackedWindow->m_QuicklookGroup->h());
-//     //   m_ScrollWindow->redraw();
-    
-//     //   //Zoom Widget
-//     //   m_ZoomWindow->label("Zoom Window");
-//     //   m_ZoomWindow->add(currentVisuView->GetZoomWidget());
-//     //   m_ZoomWindow->resizable(currentVisuView->GetZoomWidget());
-//     //   m_ZoomWindow->show();
-    
-//     m_PackedWindow->m_ZoomGroup->add(currentVisuView->GetZoomWidget());
-//     m_PackedWindow->m_ZoomGroup->resizable(currentVisuView->GetZoomWidget());
-//     currentVisuView->GetZoomWidget()->resize(m_PackedWindow->m_ZoomGroup->x(),m_PackedWindow->m_ZoomGroup->y(),
-// 					    m_PackedWindow->m_ZoomGroup->w(),m_PackedWindow->m_ZoomGroup->h());
-    
-//     //   m_ZoomWindow->redraw();
-    
-//     // adding histograms rendering
-//     // Get the renderingFunction  
-
-    
-  
-  //     // m_HistogramWindow->show();
-//     m_PackedWindow->m_HistogramsGroup->add(m_CurveWidget);
-//     m_CurveWidget->resize(m_PackedWindow->m_HistogramsGroup->x(),m_PackedWindow->m_HistogramsGroup->y(),
-// 			 m_PackedWindow->m_HistogramsGroup->w(),m_PackedWindow->m_HistogramsGroup->h());
-    
-//     //   m_CurveWidget->redraw();
-    
-    //Display Everything
+  StandardRenderingFunctionType::Pointer pRenderingFuntion = m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pRenderFuntion;
+  m_Rhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(pRenderingFuntion->GetRedChannelIndex()));
+  m_Ghistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(pRenderingFuntion->GetGreenChannelIndex()));
+  m_Bhistogram->SetHistogram(m_ImageViewerManagerModel->GetObjectList().at(selectedItem-1).pLayer->GetHistogramList()->GetNthElement(pRenderingFuntion->GetBlueChannelIndex()));
+  
+  //Edit the Widget Manager : Packed Windows
+  // m_PackedWindow->RegisterFullWidget(currentVisuView->GetFullWidget());
+  // m_PackedWindow->RegisterScrollWidget(currentVisuView->GetScrollWidget());
+  // m_PackedWindow->RegisterZoomWidget(currentVisuView->GetZoomWidget());
+  // m_PackedWindow->RegisterPixelInformationWidget(m_PixelView->GetPixelDescriptionWidget());
+  // m_PackedWindow->RegisterHistogramWidget(m_CurveWidget);
+  // m_PackedWindow->Show();
+
+  //Edit the Widget Manager : Splitted Windows
+  m_SplittedWindow->UnRegisterAll();
+  m_SplittedWindow->RegisterFullWidget(currentVisuView->GetFullWidget());
+  m_SplittedWindow->RegisterScrollWidget(currentVisuView->GetScrollWidget());
+  m_SplittedWindow->RegisterZoomWidget(currentVisuView->GetZoomWidget());
+  m_SplittedWindow->RegisterPixelInformationWidget(m_PixelView->GetPixelDescriptionWidget());
+  m_SplittedWindow->RegisterHistogramWidget(m_CurveWidget);
+  m_SplittedWindow->SetLabel("SplittedView");
+  m_SplittedWindow->Show();
+  m_SplittedWindow->Refresh();
   
-
-  //currentVisuView->GetFullWidget()->show();
-  //m_PixelView->GetPixelDescriptionWidget()->show();
-  //currentVisuView->GetScrollWidget()->show();
-  //currentVisuView->GetZoomWidget()->show();
-  //m_CurveWidget->show();
-    
 }
 
 /**
@@ -463,14 +376,8 @@ void
 ImageViewerManagerViewGUI
 ::Undisplay(unsigned int selectedItem)
 {
-  //   m_FullWindow->hide();
-  //   m_ScrollWindow->hide(); 
-  //   m_ZoomWindow->hide();
-  //   m_PixelWindow->hide(); 
-  //   m_HistogramWindow->hide();
-
-
-  //m_PackedWindow->m_Window->hide();
+  //m_PackedWindow->Hide();
+  m_SplittedWindow->Hide();
 }
 /**
  * Hide all the widget opened
@@ -489,17 +396,11 @@ ImageViewerManagerViewGUI
 	  m_DisplayStatusList[i] = false;
 	}
     }
+ 
   // Close the opened widget
-
-  //packeduWindow->m_Window->hide();
-
-  
-//   m_FullWindow->hide();
-//   m_ScrollWindow->hide(); 
-//   m_ZoomWindow->hide();
-//   m_PixelWindow->hide();
-//   m_HistogramWindow->hide();
-}
+  //m_PackedWindow->Hide();
+  m_SplittedWindow->Hide();
+ }
 
 /**
  * Quit GUI
@@ -508,11 +409,9 @@ void
 ImageViewerManagerViewGUI
 ::Quit()
 {
-  m_FullWindow->hide();
-  m_ScrollWindow->hide(); 
-  m_ZoomWindow->hide();
-  m_PixelWindow->hide();
   guiMainWindow->hide();
+  //m_PackedWindow->Hide();
+  m_SplittedWindow->Hide();
 }
 
 /**
diff --git a/ViewerManager/View/otbImageViewerManagerViewGUI.h b/ViewerManager/View/otbImageViewerManagerViewGUI.h
index 18c7cd3fa2360674d585ed9a7f4529ce1397a918..7fbb134ad76cc8cc56ece904463faf54d8483724 100644
--- a/ViewerManager/View/otbImageViewerManagerViewGUI.h
+++ b/ViewerManager/View/otbImageViewerManagerViewGUI.h
@@ -43,6 +43,7 @@ PURPOSE.  See the above copyright notices for more information.
 #include "otbHistogramCurve.h"
 
 #include "otbPackedWidgetManager.h"
+#include "otbSplittedWidgetManager.h"
 
 #include "otbObjectList.h"
 #include "otbFixedSizeFullImageWidget.h"
@@ -82,18 +83,14 @@ public:
   
   typedef ImageView<VisuModelType>                                VisuViewType;
   typedef VisuViewType::Pointer                                   VisuViewPointerType;
-
-  typedef PixelDescriptionView<PixelDescriptionModelType>         PixelDescriptionViewType;
-
-  typedef ObjectList<VisuViewType>                                VisuViewListType;
-  typedef VisuViewListType::Pointer                               VisuViewListPointerType;
-
-  //typedef ImageWidgetPackedManager                                ImageWidgetPackedManagerType;
-  //typedef std::vector<ImageWidgetPackedManagerType*>            WidgetManagerList; 
   
-  // 
+  
+
+  /* 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;
@@ -101,15 +98,21 @@ public:
   typedef ImageWidgetType::Pointer                                ImageWidgetPointerType;
 
   /** Curves 2D widget */
-  typedef Curves2DWidget                            CurvesWidgetType;
-  typedef CurvesWidgetType::Pointer                 CurvesWidgetPointerType;
-  typedef HistogramCurve<HistogramType>             HistogramCurveType;
-  typedef HistogramCurveType::Pointer               HistogramCurvePointerType;
-
+  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*/
   typedef std::vector<bool>                                       BoolVector;
   
-  typedef ObjectList<VisuViewType>                                VisuViewShowedList;
+  /** list in order to store the diplay manager*/
+  typedef ObjectList<PackedWidgetManagerType>                     PackedManagerList;
+  typedef ObjectList<SplittedWidgetManagerType>                   SplittedManagerList;
+
 
   
   /** Method to set the controller*/
@@ -121,11 +124,9 @@ public:
     m_VisuView->SetController(m_ImageViewerManagerController->GetVisuController());
     m_PreviewWidget->SetController(m_ImageViewerManagerController->GetPreviewVisuController());
   }
-    
-
-  /** VisuModel */
+  
+  // Visu  
   itkGetMacro(VisuView,VisuViewPointerType);
-  //itkGetMacro(VisuViewList,VisuViewListPointerType );
   
   itkGetMacro(PreviewWidget,ImageWidgetPointerType );
   
@@ -135,9 +136,8 @@ public:
    // Update the display
   virtual void ImageViewerManagerNotify();
   
-  /// Inherited methods
+  // 
   virtual void OpenImage();
-  //virtual VisuViewPointerType  AddView(VisuModelPointerType renderingLayer);
   
 protected:
   virtual void   CloseImage(); 
@@ -161,7 +161,6 @@ protected:
   virtual void   GrayScaleSet(); 
   virtual void   RGBSet(); 
   virtual void   ComplexSet(); 
-  /*   virtual void ZoomSmallImagesHook(); */
   /*   virtual void Diaporama(); */
   /*   virtual void DiaporamaPrevious(); */
   /*   virtual void DiaporamaNext(); */
@@ -179,14 +178,7 @@ protected:
   /** Constructor */
   ImageViewerManagerViewGUI();
   /** Destructor */
-  virtual ~ImageViewerManagerViewGUI()
-    {
-      
-      delete        m_FullWindow;
-      delete        m_ScrollWindow;
-      delete        m_ZoomWindow;
-      delete        m_PixelWindow;
-    };
+  virtual ~ImageViewerManagerViewGUI(){};
   /**PrintSelf method */
   virtual void PrintSelf(std::ostream& os, itk::Indent indent) const;
 
@@ -195,53 +187,48 @@ private:
   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::string                                    m_TemplateViewerName ;
   std::string                                    m_DisplayedLabel;
   std::string                                    m_UndisplayedLabel ;
-  VisuViewShowedList::Pointer                    m_VisuViewShowedList;
-  
-  /** FL_Windows*/
-  Fl_Window*                                     m_FullWindow;
-  Fl_Window*                                     m_ScrollWindow;
-  Fl_Window*                                     m_ZoomWindow;
-  Fl_Window*                                     m_PixelWindow;
-  Fl_Window*                                     m_HistogramWindow;
-
+  //VisuViewShowedList::Pointer                    m_VisuViewShowedList;
   
+  //Widget Manager
   PackedWidgetManagerType::Pointer               m_PackedWindow;
-  //WidgetManagerList                              m_DisplayedWidgetList;
+  SplittedWidgetManagerType::Pointer             m_SplittedWindow;
+  SplittedManagerList::Pointer                   m_SplittedManagerList;                
+  PackedManagerList::Pointer                     m_PackedManagerList;                
   
   /** Curve widget */
-  CurvesWidgetPointerType                              m_CurveWidget;
+  CurvesWidgetPointerType                        m_CurveWidget;
   HistogramCurveType::Pointer                    m_Bhistogram;
   HistogramCurveType::Pointer                    m_Ghistogram;
   HistogramCurveType::Pointer                    m_Rhistogram;
 
-  unsigned int                                   m_NbComponent;
+
   /** NewVisu */
   VisuViewPointerType                            m_VisuView;
   
   /**ImageWidget for my preview*/
   ImageWidgetPointerType                         m_PreviewWidget;
 
-  /**view associated to the pixelDescription*/
+  /** view associated to the pixelDescription*/
   PixelDescriptionViewType::Pointer             m_PixelView ;
 
-
-
-  //Histogram 
-  StandardRenderingFunctionType::Pointer  m_pRenderingFuntion;
-  HistogramCurveType::ColorType    m_Red;
-  HistogramCurveType::ColorType    m_Green;
-  HistogramCurveType::ColorType    m_Blue;
-  
+  /** Histogram */
+  StandardRenderingFunctionType::Pointer        m_pRenderingFuntion;
+  HistogramCurveType::ColorType                 m_Red;
+  HistogramCurveType::ColorType                 m_Green;
+  HistogramCurveType::ColorType                 m_Blue;
   
+  /** Store the component number of a pixel*/
+  unsigned int                                   m_NbComponent;
 
 };
 }// End namespace otb