Medical Imaging Interaction Toolkit  2018.4.99-389bf124
Medical Imaging Interaction Toolkit
mitkBaseApplication.h
Go to the documentation of this file.
1 /*============================================================================
2 
3 The Medical Imaging Interaction Toolkit (MITK)
4 
5 Copyright (c) German Cancer Research Center (DKFZ)
6 All rights reserved.
7 
8 Use of this source code is governed by a 3-clause BSD license that can be
9 found in the LICENSE file.
10 
11 ============================================================================*/
12 
13 #ifndef mitkBaseApplication_h
14 #define mitkBaseApplication_h
15 
16 #include <MitkAppUtilExports.h>
17 
18 #include <Poco/Util/Application.h>
19 
20 #include <QString>
21 #include <QVariant>
22 
23 class ctkPluginContext;
24 class ctkPluginFramework;
25 
26 class QCoreApplication;
27 class QTranslator;
28 
29 namespace mitk
30 {
75  class MITKAPPUTIL_EXPORT BaseApplication : public Poco::Util::Application
76  {
77  public:
78  // Command line arguments
79 
80  static const QString ARG_APPLICATION;
81  static const QString ARG_CLEAN;
82  static const QString ARG_CONSOLELOG;
83  static const QString ARG_DEBUG;
84  static const QString ARG_FORCE_PLUGIN_INSTALL;
85  static const QString ARG_HOME;
86  static const QString ARG_NEWINSTANCE;
87  static const QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING;
88  static const QString ARG_NO_REGISTRY_CACHE;
89  static const QString ARG_PLUGIN_CACHE;
90  static const QString ARG_PLUGIN_DIRS;
91  static const QString ARG_PRELOAD_LIBRARY;
92  static const QString ARG_PRODUCT;
93  static const QString ARG_PROVISIONING;
94  static const QString ARG_REGISTRY_MULTI_LANGUAGE;
95  static const QString ARG_SPLASH_IMAGE;
96  static const QString ARG_STORAGE_DIR;
97  static const QString ARG_XARGS;
98 
99  // BlueBerry specific plugin framework properties
100 
101  static const QString PROP_APPLICATION;
102  static const QString PROP_FORCE_PLUGIN_INSTALL;
103  static const QString PROP_NEWINSTANCE;
105  static const QString PROP_NO_REGISTRY_CACHE;
106  static const QString PROP_PRODUCT;
107  static const QString PROP_REGISTRY_MULTI_LANGUAGE;
108 
109  BaseApplication(int argc, char **argv);
110  ~BaseApplication() override;
111 
118  void initializeQt();
119 
126  int run() override;
127 
128  void printHelp(const std::string &name, const std::string &value);
129 
134  void setApplicationName(const QString &name);
135  QString getApplicationName() const;
136 
141  void setOrganizationName(const QString &name);
142  QString getOrganizationName() const;
143 
148  void setOrganizationDomain(const QString &name);
149  QString getOrganizationDomain() const;
150 
159  void setSingleMode(bool singleMode);
160  bool getSingleMode() const;
161 
168  void setSafeMode(bool safeMode);
169  bool getSafeMode() const;
170 
182  void setPreloadLibraries(const QStringList &libraryBaseNames);
183 
189  QStringList getPreloadLibraries() const;
190 
203  void setProvisioningFilePath(const QString &filePath);
204 
209  QString getProvisioningFilePath() const;
210 
211  void setProperty(const QString &property, const QVariant &value);
212  QVariant getProperty(const QString &property) const;
213 
214  void installTranslator(QTranslator*);
215 
216  bool isRunning();
217 
218  void sendMessage(const QByteArray);
219 
220  protected:
221  void initialize(Poco::Util::Application &self) override;
222 
223  void uninitialize() override;
224 
225  int getArgc() const;
226  char **getArgv() const;
227 
235  virtual QString getCTKFrameworkStorageDir() const;
236 
248  virtual void initializeCppMicroServices();
249 
260  virtual QCoreApplication *getQApplication() const;
261 
268  virtual void initializeLibraryPaths();
269 
282  int main(const std::vector<std::string> &args) override;
283 
288  void defineOptions(Poco::Util::OptionSet &options) override;
289 
290  QSharedPointer<ctkPluginFramework> getFramework() const;
291  ctkPluginContext *getFrameworkContext() const;
292 
303  QHash<QString, QVariant> getFrameworkProperties() const;
304 
305  /*
306  * Initialize and display the splash screen if an image filename is given
307  *
308  */
309  void initializeSplashScreen(QCoreApplication * application) const;
310 
311 private:
312  struct Impl;
313  Impl* d;
314  };
315 }
316 
317 #endif // MITKBASEAPPLICATION_H
static const QString ARG_DEBUG
int main(int argc, char **argv)
static const QString ARG_CONSOLELOG
static const QString ARG_REGISTRY_MULTI_LANGUAGE
static const QString ARG_CLEAN
static const QString ARG_PLUGIN_CACHE
static const QString ARG_XARGS
DataCollection - Class to facilitate loading/accessing structured data.
static const QString PROP_REGISTRY_MULTI_LANGUAGE
static const QString PROP_APPLICATION
static const QString PROP_NO_REGISTRY_CACHE
static const QString ARG_SPLASH_IMAGE
static const QString ARG_NO_REGISTRY_CACHE
static const QString ARG_PRELOAD_LIBRARY
static const QString ARG_NEWINSTANCE
static const QString ARG_HOME
static const QString ARG_PLUGIN_DIRS
static const QString ARG_FORCE_PLUGIN_INSTALL
#define MITKAPPUTIL_EXPORT
static const QString ARG_PRODUCT
static const QString PROP_PRODUCT
static const QString ARG_APPLICATION
static const QString PROP_NEWINSTANCE
static const QString PROP_NO_LAZY_REGISTRY_CACHE_LOADING
static const QString ARG_PROVISIONING
static const QString ARG_NO_LAZY_REGISTRY_CACHE_LOADING
static const QString ARG_STORAGE_DIR
static const QString PROP_FORCE_PLUGIN_INSTALL