00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Module: $RCSfile$ 00005 Language: C++ 00006 Date: $Date: 2009-05-28 17:19:30 +0200 (Do, 28 Mai 2009) $ 00007 Version: $Revision: 17495 $ 00008 00009 Copyright (c) German Cancer Research Center, Division of Medical and 00010 Biological Informatics. All rights reserved. 00011 See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. 00012 00013 This software is distributed WITHOUT ANY WARRANTY; without even 00014 the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR 00015 PURPOSE. See the above copyright notices for more information. 00016 00017 =========================================================================*/ 00018 00019 #ifndef _QMITKBOUNDINGOBJECTWIDGET_H_INCLUDED 00020 #define _QMITKBOUNDINGOBJECTWIDGET_H_INCLUDED 00021 00022 //includes 00023 #include <qwidget.h> 00024 #include "QmitkExtExports.h" 00025 #include <QComboBox> 00026 #include <mitkDataNode.h> 00027 #include <mitkDataStorage.h> 00028 #include <mitkBoundingObject.h> 00029 #include <mitkBoundingObjectGroup.h> 00030 #include <QTreeWidget> 00031 #include <QPushButton> 00032 00033 class QmitkExt_EXPORT QmitkBoundingObjectWidget : public QWidget 00034 { 00035 Q_OBJECT 00036 00037 public: 00038 QmitkBoundingObjectWidget (QWidget* parent = 0, Qt::WindowFlags f = 0 ); 00039 ~QmitkBoundingObjectWidget (); 00040 00041 void SetDataStorage(mitk::DataStorage* dataStorage); 00042 mitk::DataStorage* GetDataStorage(); 00043 mitk::BoundingObject::Pointer GetSelectedBoundingObject(); 00044 mitk::DataNode::Pointer GetSelectedBoundingObjectNode(); 00045 00046 mitk::DataNode::Pointer GetAllBoundingObjects(); 00047 00048 void setEnabled(bool flag); 00049 00050 signals: 00051 //signal when bo has changed 00052 void BoundingObjectsChanged(const QString&); 00053 00054 protected slots: 00055 void CreateBoundingObject(int type); 00056 void OnDelButtonClicked(); 00057 /* void OnLoadButtonClicked(); 00058 void OnSaveButtonClicked();*/ 00059 void SelectionChanged(); 00060 void OnItemDoubleClicked(QTreeWidgetItem* item, int col); 00061 void OnItemDataChanged(QTreeWidgetItem* item, int col); 00062 00063 protected: 00064 00065 void AddItem(mitk::DataNode* node); 00066 void RemoveItem(); 00067 00068 mitk::DataStorage* m_DataStorage; 00069 QTreeWidget* m_TreeWidget; 00070 QComboBox* m_addComboBox; 00071 QPushButton* m_DelButton; 00072 QPushButton* m_SaveButton; 00073 QPushButton* m_LoadButton; 00074 QTreeWidgetItem* m_lastSelectedItem; 00075 00076 typedef std::map< QTreeWidgetItem*, mitk::DataNode* > ItemNodeMapType; 00077 ItemNodeMapType m_ItemNodeMap; 00078 00079 enum BoundingObjectType{ 00080 CUBOID, 00081 CONE, 00082 ELLIPSOID, 00083 CYLINDER, 00084 }; 00085 00086 }; 00087 #endif