00001 /*========================================================================= 00002 00003 Program: Medical Imaging & Interaction Toolkit 00004 Language: C++ 00005 Date: $Date$ 00006 Version: $Revision: 18127 $ 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 QMITKDATAMANAGERVIEW_H_ 00019 #define QMITKDATAMANAGERVIEW_H_ 00020 00021 // Own includes 00022 #include <berryIPartListener.h> 00023 #include <berryISelection.h> 00024 #include <berryISelectionProvider.h> 00025 #include <berryIPreferencesService.h> 00026 #include <berryIBerryPreferences.h> 00027 #include <berryISelectionListener.h> 00028 00030 #include <berryQtViewPart.h> 00031 #include <QmitkDataNodeSelectionProvider.h> 00032 #include <QmitkDnDFrameWidget.h> 00033 00034 #include <berryIWorkbenchPartReference.h> 00035 #include <berryIPartListener.h> 00036 #include <berryIPreferencesService.h> 00037 00038 #include <mitkDataStorage.h> 00039 #include "mitkQtCommonDll.h" 00040 #include "mitkQtDataManagerDll.h" 00041 00042 // Forward declarations 00043 class QMenu; 00044 class QAction; 00045 class QComboBox; 00046 class QWidgetAction; 00047 class QSlider; 00048 class QModelIndex; 00049 class QTreeView; 00050 class QPushButton; 00051 class QToolBar; 00052 class QMenu; 00053 00054 class QmitkDataStorageTreeModel; 00062 class MITK_QT_DATAMANAGER QmitkDataManagerView : public QObject, public berry::QtViewPart 00063 { 00064 Q_OBJECT 00065 00066 public: 00067 00068 static const std::string VIEW_ID; // = "org.mitk.extapp.defaultperspective" 00072 QmitkDataManagerView(); 00076 virtual ~QmitkDataManagerView(); 00080 std::vector<mitk::DataNode*> GetSelectedNodes() const; 00081 public slots: 00085 void OpacityChanged(int value); 00090 void OpacityActionChanged(); 00094 void ColorChanged(); 00098 void ColorActionChanged(); 00102 void TextureInterpolationChanged(); 00106 void TextureInterpolationToggled ( bool checked ); 00110 void SurfaceRepresentationMenuAboutToShow (); 00114 void SurfaceRepresentationActionToggled ( bool checked ); 00118 void NodeTableViewContextMenuRequested( const QPoint & index ); 00122 void SaveSelectedNodes( bool checked = false ); 00126 void RemoveSelectedNodes( bool checked = false ); 00130 void ReinitSelectedNodes( bool checked = false ); 00134 void MakeAllNodesInvisible ( bool checked = false ); 00138 void ShowOnlySelectedNodes ( bool checked = false ); 00142 void ToggleVisibilityOfSelectedNodes ( bool checked = false ); 00146 void ShowInfoDialogForSelectedNodes ( bool checked = false ); 00150 void Load ( bool checked = false ); 00154 void GlobalReinit ( bool checked = false ); 00158 void OnPreferencesChanged(const berry::IBerryPreferences*); 00164 void ContextMenuActionTriggered( bool ); 00165 00169 virtual void SelectionChanged(berry::IWorkbenchPart::Pointer part 00170 , berry::ISelection::ConstPointer selection); 00171 00173 void OtsuFilter( bool checked = false ); 00174 00176 void NodeTreeViewRowsInserted ( const QModelIndex & parent, int start, int end ); 00177 00179 void NodeSelectionChanged( const QItemSelection & selected, const QItemSelection & deselected ); 00180 00181 protected: 00185 virtual void CreateQtPartControl(QWidget* parent); 00186 void SetFocus(); 00187 mitk::DataStorage::Pointer GetDataStorage() const; 00191 void FileOpen( const char * fileName, mitk::DataNode* parentNode ); 00192 protected: 00193 QWidget* m_Parent; 00194 QmitkDnDFrameWidget* m_DndFrameWidget; 00195 00199 QmitkDataStorageTreeModel* m_NodeTreeModel; 00203 QmitkDataNodeSelectionProvider::Pointer m_SelectionProvider; 00207 berry::IBerryPreferences::Pointer m_DataManagerPreferencesNode; 00211 std::map<QAction*, berry::IConfigurationElement::Pointer> m_ConfElements; 00215 QTreeView* m_NodeTreeView; 00219 QMenu* m_NodeMenu; 00220 00223 QAction* m_GlobalReinitAction; 00225 QAction* m_SaveAction; 00227 QAction* m_RemoveAction; 00229 QAction* m_ReinitAction; 00231 QSlider* m_OpacitySlider; 00233 QWidgetAction* m_OpacityAction; 00235 QPushButton* m_ColorButton; 00237 QWidgetAction* m_ColorAction; 00239 QAction* m_TextureInterpolation; 00241 QAction* m_SurfaceRepresentation; 00243 QAction* m_ShowOnlySelectedNodes; 00245 QAction* m_ToggleSelectedVisibility; 00247 QAction* m_ActionShowInfoDialog; 00248 00250 QAction* m_OtsuFilterAction; 00252 berry::ISelectionListener::Pointer m_SelectionListener; 00254 friend struct berry::SelectionChangedAdapter<QmitkDataManagerView>; 00255 00256 private: 00258 void ReinitMultiWidgetEditor(); 00259 }; 00260 00261 #endif /*QMITKDATAMANAGERVIEW_H_*/