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(); - -}