00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date: 2008-09-14 14:16:02 +0200 (So, 14 Sep 2008) $ 00006 Version: $Revision: 15245 $ 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 QmitkToolWorkingDataSelectionListBox_h_Included 00019 #define QmitkToolWorkingDataSelectionListBox_h_Included 00020 00021 // mmueller 00022 #include <QListWidget> 00023 #include "QmitkExtExports.h" 00024 00025 #include "mitkToolManager.h" 00026 #include "mitkProperties.h" 00027 00046 class QmitkExt_EXPORT QmitkToolWorkingDataSelectionBox : public QListWidget 00047 { 00048 Q_OBJECT 00049 00050 public: 00051 00062 enum DisplayMode { ListDataIfAllToolsMatch, ListDataIfAnyToolMatches}; 00063 00064 QmitkToolWorkingDataSelectionBox(QWidget* parent = 0, mitk::DataStorage* storage = 0); 00065 virtual ~QmitkToolWorkingDataSelectionBox(); 00066 00067 mitk::DataStorage* GetDataStorage(); 00068 void SetDataStorage(mitk::DataStorage& storage); 00069 00073 void UpdateDataDisplay(); 00074 00078 mitk::ToolManager* GetToolManager(); 00079 00083 void SetToolManager(mitk::ToolManager&); // no NULL pointer allowed here, a manager is required 00084 00090 mitk::ToolManager::DataVectorType GetAllNodes( bool onlyDerivedFromOriginal = true ); 00091 00097 mitk::ToolManager::DataVectorType GetSelectedNodes(); 00098 00103 mitk::DataNode* GetSelectedNode(); 00104 00109 void OnToolManagerWorkingDataModified(); 00110 00115 void OnToolManagerReferenceDataModified(); 00116 00117 signals: 00118 00119 void WorkingNodeSelected(const mitk::DataNode*); 00120 00121 protected slots: 00122 00123 void OnWorkingDataSelectionChanged(); 00124 00125 protected: 00126 00127 typedef std::map< QListWidgetItem*, mitk::DataNode* > ItemNodeMapType; 00128 00129 mitk::ToolManager::Pointer m_ToolManager; 00130 00131 ItemNodeMapType m_Node; 00132 00133 bool m_SelfCall; 00134 00135 mitk::DataNode* m_LastSelectedReferenceData; 00136 00137 std::string m_ToolGroupsForFiltering; 00138 00139 bool m_DisplayOnlyDerivedNodes; 00140 }; 00141 00142 #endif 00143