diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/preprocessing.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/preprocessing.png new file mode 100644 index 0000000000..783f0a4d16 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/preprocessing.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.cpp new file mode 100644 index 0000000000..0f5fd8a8da --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.cpp @@ -0,0 +1,47 @@ +/*========================================================================= + + Program: BlueBerry Platform + Language: C++ + Date: $Date: 2009-10-23 02:59:36 +0200 (Fr, 23 Okt 2009) $ + Version: $Revision: 19652 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#include "QmitkReconstructionPerspective.h" + +void QmitkReconstructionPerspective::CreateInitialLayout(berry::IPageLayout::Pointer layout) +{ + std::string editorArea = layout->GetEditorArea(); + + layout->AddStandaloneView("org.mitk.views.datamanager", false, berry::IPageLayout::LEFT, 0.3f, editorArea); + + layout->AddStandaloneView("org.mitk.views.controlvisualizationpropertiesview", + false, berry::IPageLayout::BOTTOM, .2f, "org.mitk.views.datamanager"); + + berry::IFolderLayout::Pointer left = + layout->CreateFolder("org.mitk.leftcontrols", + berry::IPageLayout::BOTTOM, 0.2f, "org.mitk.views.controlvisualizationpropertiesview"); + + left->AddView("org.mitk.views.diffusionpreprocessing"); + left->AddView("org.mitk.views.tensorreconstruction"); + left->AddView("org.mitk.views.qballreconstruction"); + left->AddView("org.mitk.views.odfdetails"); + + + berry::IViewLayout::Pointer lo = layout->GetViewLayout("org.mitk.views.diffusionpreprocessing"); + lo->SetCloseable(false); + lo = layout->GetViewLayout("org.mitk.views.tensorreconstruction"); + lo->SetCloseable(false); + lo = layout->GetViewLayout("org.mitk.views.qballreconstruction"); + lo->SetCloseable(false); + lo = layout->GetViewLayout("org.mitk.views.odfdetails"); + lo->SetCloseable(false); +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.h new file mode 100644 index 0000000000..d696361d69 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkReconstructionPerspective.h @@ -0,0 +1,42 @@ +/*========================================================================= + + Program: BlueBerry Platform + Language: C++ + Date: $Date: 2009-10-23 02:59:36 +0200 (Fr, 23 Okt 2009) $ + Version: $Revision: 19652 $ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + + +#ifndef QMITKReconstructionPERSPECTIVE_H_ +#define QMITKReconstructionPERSPECTIVE_H_ + +#include + +class QmitkReconstructionPerspective : public QObject, public berry::IPerspectiveFactory +{ + Q_OBJECT + Q_INTERFACES(berry::IPerspectiveFactory) + +public: + + QmitkReconstructionPerspective() {} + QmitkReconstructionPerspective(const QmitkReconstructionPerspective& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkReconstructionPerspective() {} + + void CreateInitialLayout(berry::IPageLayout::Pointer layout); +}; + +#endif /* QMITKReconstructionPERSPECTIVE_H_ */ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.cpp new file mode 100644 index 0000000000..8fd7f47a4c --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.cpp @@ -0,0 +1,124 @@ +/*========================================================================= + + Program: BlueBerry Platform + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#include "mitkPluginActivator.h" +#include +#include +#include + +#include "src/QmitkDiffusionImagingAppApplication.h" + +#include "QmitkDiffusionImagingAppIntroPart.h" +#include "QmitkDiffusionImagingAppPerspective.h" +#include "QmitkWelcomePerspective.h" +#include "QmitkReconstructionPerspective.h" + +#include +#include + +mitkPluginActivator* mitkPluginActivator::inst = 0; + +mitkPluginActivator::mitkPluginActivator() + : pluginListener(0) +{ + inst = this; +} + +mitkPluginActivator::~mitkPluginActivator() +{ + delete pluginListener; +} + +mitkPluginActivator* mitkPluginActivator::GetDefault() +{ + return inst; +} + +void mitkPluginActivator::start(ctkPluginContext* context) +{ + berry::AbstractUICTKPlugin::start(context); + + this->context = context; + + BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionImagingAppApplication, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionImagingAppIntroPart, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkDiffusionImagingAppPerspective, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkWelcomePerspective, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkReconstructionPerspective, context) + +// QString collectionFile = GetQtHelpCollectionFile(); + +// berry::QtAssistantUtil::SetHelpCollectionFile(collectionFile); +// berry::QtAssistantUtil::SetDefaultHelpUrl("qthelp://org.mitk.gui.qt.diffusionimagingapp/bundle/index.html"); + + delete pluginListener; + pluginListener = new berry::QCHPluginListener(context); + context->connectPluginListener(pluginListener, SLOT(pluginChanged(ctkPluginEvent)), Qt::DirectConnection); + + // register all QCH files from all the currently installed plugins + pluginListener->processPlugins(); + + +} + +QString mitkPluginActivator::GetQtHelpCollectionFile() const +{ + + if (!helpCollectionFile.isEmpty()) + { + return helpCollectionFile; + } + + QString collectionFilename; + QString na("n/a"); +// if (na != MITK_REVISION) +// collectionFilename = "MitkDiffusionImagingAppQtHelpCollection_" MITK_REVISION ".qhc"; +// else + collectionFilename = "MitkDiffusionImagingAppQtHelpCollection.qhc"; + + QFileInfo collectionFileInfo = context->getDataFile(collectionFilename); + QFileInfo pluginFileInfo = QFileInfo(QUrl(context->getPlugin()->getLocation()).toLocalFile()); + if (!collectionFileInfo.exists() || + pluginFileInfo.lastModified() > collectionFileInfo.lastModified()) + { + // extract the qhc file from the plug-in + QByteArray content = context->getPlugin()->getResource(collectionFilename); + if (content.isEmpty()) + { + BERRY_WARN << "Could not get plug-in resource: " << collectionFilename.toStdString(); + } + else + { + QFile file(collectionFileInfo.absoluteFilePath()); + file.open(QIODevice::WriteOnly); + file.write(content); + file.close(); + } + } + + if (QFile::exists(collectionFileInfo.absoluteFilePath())) + { + helpCollectionFile = collectionFileInfo.absoluteFilePath(); + } + + return helpCollectionFile; + +} + +Q_EXPORT_PLUGIN2(org_mitk_gui_qt_diffusionimagingapp, mitkPluginActivator) + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.h new file mode 100644 index 0000000000..d998dc882a --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/mitkPluginActivator.h @@ -0,0 +1,58 @@ +/*========================================================================= + + Program: BlueBerry Platform + Language: C++ + Date: $Date$ + Version: $Revision$ + + Copyright (c) German Cancer Research Center, Division of Medical and + Biological Informatics. All rights reserved. + See MITKCopyright.txt or http://www.mitk.org/copyright.html for details. + + This software is distributed WITHOUT ANY WARRANTY; without even + the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR + PURPOSE. See the above copyright notices for more information. + + =========================================================================*/ + +#ifndef QMITKDIFFUSIONIMAGINGAPPAPPLICATIONPLUGIN_H_ +#define QMITKDIFFUSIONIMAGINGAPPAPPLICATIONPLUGIN_H_ + +#include +#include +#include + +#include + +class mitkPluginActivator : + public QObject, public berry::AbstractUICTKPlugin +{ + Q_OBJECT + Q_INTERFACES(ctkPluginActivator) + +public: + + mitkPluginActivator(); + ~mitkPluginActivator(); + + static mitkPluginActivator* GetDefault(); + + ctkPluginContext* GetPluginContext() const; + + void start(ctkPluginContext*); + + QString GetQtHelpCollectionFile() const; + + private: + + static mitkPluginActivator* inst; + + ctkPluginContext* context; + berry::QCHPluginListener* pluginListener; + + mutable QString helpCollectionFile; + + +}; // QmitkDiffusionImagingAppApplicationPlugin + +#endif // QMITKDIFFUSIONIMAGINGAPPAPPLICATIONPLUGIN_H_