NifTK  16.4.1 - 0798f20
CMIC's Translational Medical Imaging Platform
uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h
Go to the documentation of this file.
1 /*=============================================================================
2 
3  NifTK: A software platform for medical image computing.
4 
5  Copyright (c) University College London (UCL). All rights reserved.
6 
7  This software is distributed WITHOUT ANY WARRANTY; without even
8  the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR
9  PURPOSE.
10 
11  See LICENSE.txt in the top level directory for details.
12 
13 =============================================================================*/
14 
15 #ifndef niftkPluginActivator_h
16 #define niftkPluginActivator_h
17 
18 #include "../niftkBaseApplicationPluginActivator.h"
19 
20 #include <ctkServiceTracker.h>
21 
22 #include <itkImage.h>
23 
24 #include <berryIPreferences.h>
25 #include <mitkIDataStorageService.h>
26 
28 
29 
30 namespace mitk
31 {
32 class DataNode;
33 class DataStorage;
34 }
35 
36 
37 namespace niftk
38 {
39 
48 
55 {
56  Q_OBJECT
57  Q_INTERFACES(ctkPluginActivator)
58 #if QT_VERSION >= QT_VERSION_CHECK(5, 0, 0)
59  Q_PLUGIN_METADATA(IID "uk_ac_ucl_cmic_commonapps")
60 #endif
61 
62 public:
63 
65  virtual ~PluginActivator();
66 
67  static PluginActivator* GetInstance();
68 
69  virtual void start(ctkPluginContext* context) override;
70 
71  virtual void stop(ctkPluginContext* context) override;
72 
73 protected:
74 
78  virtual void OnLookupTablePropertyChanged(const itk::Object *caller, const itk::EventObject &event);
79 
82 
85 
87  void RegisterLevelWindowProperty(const QString& preferencesNodeName, mitk::DataNode *constNode);
88 
90  void RegisterImageRenderingModeProperties(const QString& preferencesNodeName, mitk::DataNode *constNode);
91 
93  void RegisterInterpolationProperty(const QString& preferencesNodeName, mitk::DataNode *constNode);
94 
96  void RegisterBinaryImageProperties(const QString& preferencesNodeName, mitk::DataNode *constNode);
97 
99  void BlankDepartmentalLogo();
100 
102  virtual void NodeAdded(const mitk::DataNode *node);
103 
105  virtual void NodeRemoved(const mitk::DataNode *node);
106 
108  virtual QString GetHelpHomePageURL() const { return QString(); }
109 
110 private:
111 
113  QVariant ParsePropertyValue(const QString& propertyValue);
114 
116  void SetNodeProperty(mitk::DataNode* node, const QString& propertyName, const QVariant& propertyValue, const QString& rendererName = QString());
117 
119  void NodeAddedProxy(const mitk::DataNode *node);
120 
122  void NodeRemovedProxy(const mitk::DataNode *node);
123 
125  niftk::LookupTableProviderService* GetLookupTableProvider();
126 
128  const mitk::DataStorage* GetDataStorage();
129 
131  berry::IPreferences::Pointer GetPreferencesNode(const QString& preferencesNodeName);
132 
134  template<typename TPixel, unsigned int VImageDimension>
135  void
136  ITKGetStatistics(
137  const itk::Image<TPixel, VImageDimension> *itkImage,
138  float &min,
139  float &max,
140  float &mean,
141  float &stdDev);
142 
143 
144  void LoadDataFromDisk(const QStringList& args, bool globalReinit);
145  void startNewInstance(const QStringList& args, const QStringList &files);
146 
147 private Q_SLOTS:
148 
149  void handleIPCMessage(const QByteArray &msg);
150 
151 private:
152 
153  ctkServiceTracker<mitk::IDataStorageService*>* m_DataStorageServiceTracker;
154 
155  bool m_InDataStorageChanged;
156 
157  static PluginActivator* s_Instance;
158 
159  std::map<mitk::BaseProperty*, mitk::DataNode*> m_PropertyToNodeMap;
160  std::map<mitk::DataNode*, unsigned long int> m_NodeToLowestOpacityObserverMap;
161  std::map<mitk::DataNode*, unsigned long int> m_NodeToHighestOpacityObserverMap;
162 };
163 
164 }
165 
166 #endif
void UnregisterDataStorageListener()
Deliberately not virtual method that ddisconnects this class from DataStorage so that we can receive ...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:234
void RegisterImageRenderingModeProperties(const QString &preferencesNodeName, mitk::DataNode *constNode)
Deliberately not virtual method thats called by derived classes, to register an initial "Image Render...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:574
Service to provide lookup tables.
Definition: niftkLookupTableProviderService.h:38
PluginActivator()
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.cxx:25
virtual ~PluginActivator()
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.cxx:32
virtual void NodeRemoved(const mitk::DataNode *node)
Called each time a data node is removed, and derived classes can override it.
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:303
void RegisterInterpolationProperty(const QString &preferencesNodeName, mitk::DataNode *constNode)
Deliberately not virtual method thats called by derived classes, to register an initial value for Tex...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:626
Definition: ReceptorMemberCommandTest.cxx:25
static PluginActivator * GetInstance()
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.cxx:38
const QString IMAGE_INITIALISATION_RANGE_UPPER_BOUND_NAME
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:47
void BlankDepartmentalLogo()
Deliberately not virtual method thats called by derived classes, to set the departmental logo to blan...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:255
Abstract class that implements QT and CTK specific functionality to launch the application as a plugi...
Definition: niftkBaseApplicationPluginActivator.h:32
virtual void start(ctkPluginContext *context) override
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.cxx:52
void RegisterBinaryImageProperties(const QString &preferencesNodeName, mitk::DataNode *constNode)
Deliberately not virtual method that registers initial property values of "outline binary"=true and "...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:684
virtual void OnLookupTablePropertyChanged(const itk::Object *caller, const itk::EventObject &event)
Called when the user toggles the opacity control properties.
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:521
const QString IMAGE_INITIALISATION_RANGE_LOWER_BOUND_NAME
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:46
virtual void NodeAdded(const mitk::DataNode *node)
Called each time a data node is added, and derived classes can override it.
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:279
virtual QString GetHelpHomePageURL() const
Derived classes should provide a URL for which help page to use as the 'home' page.
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:108
Plugin activator for the uk.ac.ucl.cmic.common plugin.
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.h:25
void RegisterLevelWindowProperty(const QString &preferencesNodeName, mitk::DataNode *constNode)
Deliberately not virtual method thats called by derived classes, to register an initial LevelWindow p...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:377
cl_event event
Definition: glew.h:3231
const QString IMAGE_INITIALISATION_PERCENTAGE_NAME
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:44
virtual void stop(ctkPluginContext *context) override
Definition: uk.ac.ucl.cmic.common/src/internal/niftkPluginActivator.cxx:59
const QString IMAGE_INITIALISATION_METHOD_NAME
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:40
void RegisterDataStorageListener()
Deliberately not virtual method that connects this class to DataStorage so that we can receive NodeAd...
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.cxx:217
Definition: niftkExceptionObject.h:21
const QString IMAGE_INITIALISATION_PERCENTAGE
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:43
const QString IMAGE_INITIALISATION_LEVELWINDOW
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:42
const QString IMAGE_INITIALISATION_RANGE
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:45
const QString IMAGE_INITIALISATION_MIDAS
Definition: uk.ac.ucl.cmic.commonapps/src/internal/niftkPluginActivator.h:41