From e7a083a1697c6225545436070b00c35e5389a186 Mon Sep 17 00:00:00 2001
From: Otmane Lahlou <otmane.lahlou@c-s.fr>
Date: Fri, 3 Apr 2009 10:50:38 +0200
Subject: [PATCH] ENH : add a method to initialize the controller of a view
 when a linked image is suppressed (udpate the other linked image )

---
 .../otbImageViewerManagerController.cxx          | 15 +++++++++++++++
 .../Controller/otbImageViewerManagerController.h | 16 +---------------
 .../otbImageViewerManagerControllerInterface.h   |  1 +
 .../Model/otbImageViewerManagerModel.cxx         | 16 ++++++++++++++++
 ViewerManager/Model/otbImageViewerManagerModel.h |  1 +
 5 files changed, 34 insertions(+), 15 deletions(-)

diff --git a/ViewerManager/Controller/otbImageViewerManagerController.cxx b/ViewerManager/Controller/otbImageViewerManagerController.cxx
index 84d62e368b..323d11f049 100644
--- a/ViewerManager/Controller/otbImageViewerManagerController.cxx
+++ b/ViewerManager/Controller/otbImageViewerManagerController.cxx
@@ -142,5 +142,20 @@ ImageViewerManagerController
     }
 }
 
+void
+ImageViewerManagerController
+::UdapteImageViewController(unsigned int selectedItem)
+{
+  try
+    {
+      m_Model->InitializeImageViewController(selectedItem);
+    }
+  catch (itk::ExceptionObject & err)
+    {
+      MsgReporter::GetInstance()->SendError(err.GetDescription());
+    }
+}
+
+
 } // end namespace otb
 
diff --git a/ViewerManager/Controller/otbImageViewerManagerController.h b/ViewerManager/Controller/otbImageViewerManagerController.h
index e8e400c54b..e26ba5b535 100644
--- a/ViewerManager/Controller/otbImageViewerManagerController.h
+++ b/ViewerManager/Controller/otbImageViewerManagerController.h
@@ -107,21 +107,7 @@ public:
   virtual void UpdateModulusChannelOrder(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 SaveOutput(); */
-/*   virtual void ResetModel(); */
-/*   virtual void ClearFeatures(); */
-/*   virtual void CreateFeature(FeatureType featureType); */
-/*   virtual void ClearSelectedChannels(); */
-/*   virtual void SetOutputFileName( const char * name ); */
-/*   virtual void AddInputChannels(std::vector<unsigned int> list); */
-/*   virtual void ChangeFilterStatus(int id); */
-/*   virtual void ViewedRegionChanged(); */
-/*   virtual void PixelClicked(const IndexType & index); */
-/*   virtual void AddToOutputListOrder(int id); */
-/*   virtual void RemoveFromOutputListOrder(int id); */
+  virtual void UdapteImageViewController(unsigned int selectedItem);
 
 
 protected:
diff --git a/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h b/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h
index 920385de97..cbd37d9eaa 100644
--- a/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h
+++ b/ViewerManager/Controller/otbImageViewerManagerControllerInterface.h
@@ -75,6 +75,7 @@ public:
   virtual void UpdateModulusChannelOrder(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 UdapteImageViewController(unsigned int selectedItem) = 0;
   /** NewVisu */
   virtual VisuControllerPointerType GetVisuController()=0;
   virtual VisuControllerPointerType GetPreviewVisuController() = 0;
diff --git a/ViewerManager/Model/otbImageViewerManagerModel.cxx b/ViewerManager/Model/otbImageViewerManagerModel.cxx
index b890804293..59cbc07509 100644
--- a/ViewerManager/Model/otbImageViewerManagerModel.cxx
+++ b/ViewerManager/Model/otbImageViewerManagerModel.cxx
@@ -123,6 +123,7 @@ ImageViewerManagerModel
   m_HasImageOpened = false;
   
 }
+
 /**
  * Built a part of the visu, create a pointer and add a model to the visu
  */
@@ -358,6 +359,21 @@ ImageViewerManagerModel
 
 }
 
+/**
+ *
+ */
+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/ViewerManager/Model/otbImageViewerManagerModel.h b/ViewerManager/Model/otbImageViewerManagerModel.h
index 92462cc30d..ff4f102775 100644
--- a/ViewerManager/Model/otbImageViewerManagerModel.h
+++ b/ViewerManager/Model/otbImageViewerManagerModel.h
@@ -155,6 +155,7 @@ public:
   virtual void UpdateModulusChannelOrder(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()
-- 
GitLab