00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-09-12 15:46:48 +0200 (Fr, 12 Sep 2008) $ 00006 Version: $Revision: 15236 $ 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 #ifndef QmitkToolReferenceDataSelectionBox_h_Included 00019 #define QmitkToolReferenceDataSelectionBox_h_Included 00020 00021 #include "mitkToolManager.h" 00022 #include "QmitkExtExports.h" 00023 #include "mitkDataStorage.h" 00024 00025 #include <QWidget> 00026 #include <QVBoxLayout> 00027 00028 class QmitkDataStorageComboBox; 00029 00047 class QmitkExt_EXPORT QmitkToolReferenceDataSelectionBox : public QWidget 00048 { 00049 Q_OBJECT 00050 00051 public: 00052 00063 enum DisplayMode { ListDataIfAllToolsMatch, ListDataIfAnyToolMatches}; 00064 00065 QmitkToolReferenceDataSelectionBox(QWidget* parent = 0, mitk::DataStorage* storage = 0); 00066 virtual ~QmitkToolReferenceDataSelectionBox(); 00067 00068 mitk::DataStorage* GetDataStorage(); 00069 void SetDataStorage(mitk::DataStorage& storage); 00070 00072 void Initialize(mitk::DataStorage*); 00073 00074 void UpdateDataDisplay(); 00075 00076 mitk::ToolManager* GetToolManager(); 00077 void SetToolManager(mitk::ToolManager&); // no NULL pointer allowed here, a manager is required 00078 00079 void OnToolManagerReferenceDataModified(); 00080 00089 void SetToolGroupsForFiltering(const std::string& groups); 00090 00098 void SetDisplayMode( DisplayMode mode ); 00099 00100 00101 signals: 00102 00103 void ReferenceNodeSelected(const mitk::DataNode*); 00104 00105 protected slots: 00106 00107 void OnReferenceDataSelected(const mitk::DataNode* node); 00108 00109 void EnsureOnlyReferenceImageIsVisibile(); 00110 00111 protected: 00112 00113 mitk::DataStorage::SetOfObjects::ConstPointer GetAllPossibleReferenceImages(); 00114 00115 mitk::NodePredicateBase::ConstPointer GetAllPossibleReferenceImagesPredicate(); 00116 00117 mitk::ToolManager::Pointer m_ToolManager; 00118 00119 QmitkDataStorageComboBox* m_ReferenceDataSelectionBox; 00120 00121 bool m_SelfCall; 00122 00123 DisplayMode m_DisplayMode; 00124 std::string m_ToolGroupsForFiltering; 00125 00126 QVBoxLayout* m_Layout; 00127 }; 00128 00129 #endif