00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2009-11-02 20:38:30 +0100 (Mo, 02 Nov 2009) $ 00006 Version: $Revision: 19650 $ 00007 00008 Copyright (c) German Cancer Research Center, Division of Medical and 00009 Biological Informatics. All rights reserved. 00010 See MITKCopyright.txt or https://www.mitk.org/copyright.html for details. 00011 00012 This software is distributed WITHOUT ANY WARRANTY; without even 00013 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00014 PURPOSE. See the above copyright notices for more information. 00015 00016 =========================================================================*/ 00017 00018 #include "mitkMeasurementSelectionProvider.h" 00019 #include <mitkDataNodeSelection.h> 00020 #include "berrySelectionChangedEvent.h" 00021 00022 namespace mitk 00023 { 00024 00025 00026 00027 MeasurementSelectionProvider::MeasurementSelectionProvider() 00028 : m_CurrentSelection(new DataNodeSelection) 00029 { 00030 } 00031 00032 00033 void MeasurementSelectionProvider::AddSelectionChangedListener(berry::ISelectionChangedListener::Pointer listener) 00034 { 00035 m_RegisteredListeners.AddListener(listener); 00036 } 00037 00038 void MeasurementSelectionProvider::RemoveSelectionChangedListener(berry::ISelectionChangedListener::Pointer listener) 00039 { 00040 m_RegisteredListeners.RemoveListener(listener); 00041 00042 } 00043 00044 berry::ISelection::ConstPointer MeasurementSelectionProvider::GetSelection() const 00045 { 00046 return m_CurrentSelection; 00047 } 00048 00049 00050 void MeasurementSelectionProvider::SetSelection(berry::ISelection::Pointer selection) 00051 { 00052 } 00053 00054 void MeasurementSelectionProvider::FireSelectionChanged(DataNodeSelection::Pointer selection) 00055 { 00056 if(selection.IsNotNull()) 00057 { 00058 m_CurrentSelection = selection; 00059 berry::SelectionChangedEvent::Pointer event( 00060 new berry::SelectionChangedEvent(berry::ISelectionProvider::Pointer(this), m_CurrentSelection)); 00061 m_RegisteredListeners.selectionChanged(event); 00062 } 00063 } 00064 00065 void MeasurementSelectionProvider::FireSelectionChanged(DataNode::Pointer selectedNode) 00066 { 00067 this->FireSelectionChanged(DataNodeSelection::Pointer(new DataNodeSelection(selectedNode))); 00068 } 00069 00070 }