diff --git a/Plugins/PluginList.cmake b/Plugins/PluginList.cmake index e4fab2431d..fea3835632 100644 --- a/Plugins/PluginList.cmake +++ b/Plugins/PluginList.cmake @@ -1,114 +1,115 @@ # Plug-ins must be ordered according to their dependencies set(MITK_PLUGINS org.blueberry.core.runtime:ON org.blueberry.core.expressions:OFF org.blueberry.core.commands:OFF org.blueberry.core.jobs:OFF org.blueberry.ui.qt:OFF org.blueberry.ui.qt.help:ON org.blueberry.ui.qt.log:ON org.blueberry.ui.qt.objectinspector:OFF #org.blueberry.test:ON #org.blueberry.uitest:ON #Testing/org.blueberry.core.runtime.tests:ON #Testing/org.blueberry.osgi.tests:ON org.mitk.core.services:ON org.mitk.gui.common:ON org.mitk.planarfigure:ON org.mitk.core.ext:OFF org.mitk.core.jobs:OFF org.mitk.gui.qt.application:ON org.mitk.gui.qt.coreapplication:OFF org.mitk.gui.qt.ext:OFF org.mitk.gui.qt.extapplication:OFF org.mitk.gui.qt.common:ON org.mitk.gui.qt.stdmultiwidgeteditor:ON org.mitk.gui.qt.common.legacy:OFF org.mitk.gui.qt.cmdlinemodules:OFF org.mitk.gui.qt.diffusionimagingapp:OFF org.mitk.gui.qt.datamanager:ON org.mitk.gui.qt.datamanagerlight:OFF org.mitk.gui.qt.datastorageviewertest:OFF org.mitk.gui.qt.properties:ON org.mitk.gui.qt.basicimageprocessing:OFF + org.mitk.gui.qt.bonesegmentation:ON org.mitk.gui.qt.dicom:OFF org.mitk.gui.qt.dicominspector:OFF org.mitk.gui.qt.diffusionimaging:OFF org.mitk.gui.qt.diffusionimaging.connectomics:OFF org.mitk.gui.qt.diffusionimaging.denoising:OFF org.mitk.gui.qt.diffusionimaging.fiberfox:OFF org.mitk.gui.qt.diffusionimaging.fiberprocessing:OFF org.mitk.gui.qt.diffusionimaging.ivim:OFF org.mitk.gui.qt.diffusionimaging.odfpeaks:OFF org.mitk.gui.qt.diffusionimaging.partialvolume:OFF org.mitk.gui.qt.diffusionimaging.preprocessing:OFF org.mitk.gui.qt.diffusionimaging.reconstruction:OFF org.mitk.gui.qt.diffusionimaging.registration:OFF org.mitk.gui.qt.diffusionimaging.tbss:OFF org.mitk.gui.qt.diffusionimaging.tractography:OFF org.mitk.gui.qt.diffusionimaging.python:OFF org.mitk.gui.qt.dosevisualization:OFF org.mitk.gui.qt.geometrytools:OFF org.mitk.gui.qt.igtexamples:OFF org.mitk.gui.qt.igttracking:OFF org.mitk.gui.qt.lasercontrol:OFF org.mitk.gui.qt.openigtlink:OFF org.mitk.gui.qt.imagecropper:OFF org.mitk.gui.qt.imagenavigator:ON org.mitk.gui.qt.viewnavigator:OFF org.mitk.gui.qt.materialeditor:OFF org.mitk.gui.qt.measurementtoolbox:OFF org.mitk.gui.qt.moviemaker:OFF org.mitk.gui.qt.pointsetinteraction:OFF org.mitk.gui.qt.pointsetinteractionmultispectrum:OFF org.mitk.gui.qt.python:OFF org.mitk.gui.qt.remeshing:OFF org.mitk.gui.qt.segmentation:OFF org.mitk.gui.qt.aicpregistration:OFF org.mitk.gui.qt.renderwindowmanager:OFF org.mitk.gui.qt.toftutorial:OFF org.mitk.gui.qt.tofutil:OFF org.mitk.gui.qt.tubegraph:OFF org.mitk.gui.qt.ugvisualization:OFF org.mitk.gui.qt.photoacoustics.pausviewer:OFF org.mitk.gui.qt.photoacoustics.pausmotioncompensation:OFF org.mitk.gui.qt.photoacoustics.imageprocessing:OFF org.mitk.gui.qt.photoacoustics.simulation:OFF org.mitk.gui.qt.photoacoustics.spectralunmixing:OFF org.mitk.gui.qt.ultrasound:OFF org.mitk.gui.qt.volumevisualization:OFF org.mitk.gui.qt.eventrecorder:OFF org.mitk.gui.qt.xnat:OFF org.mitk.gui.qt.igt.app.echotrack:OFF org.mitk.gui.qt.spectrocamrecorder:OFF org.mitk.gui.qt.classificationsegmentation:OFF org.mitk.gui.qt.overlaymanager:OFF org.mitk.gui.qt.igt.app.hummelprotocolmeasurements:OFF org.mitk.gui.qt.multilabelsegmentation:OFF org.mitk.matchpoint.core.helper:OFF org.mitk.gui.qt.matchpoint.algorithm.browser:OFF org.mitk.gui.qt.matchpoint.algorithm.control:OFF org.mitk.gui.qt.matchpoint.algorithm.batch:OFF org.mitk.gui.qt.matchpoint.mapper:OFF org.mitk.gui.qt.matchpoint.framereg:OFF org.mitk.gui.qt.matchpoint.visualizer:OFF org.mitk.gui.qt.matchpoint.evaluator:OFF org.mitk.gui.qt.matchpoint.manipulator:OFF org.mitk.gui.qt.preprocessing.resampling:OFF org.mitk.gui.qt.radiomics:OFF org.mitk.gui.qt.cest:OFF org.mitk.gui.qt.fit.demo:OFF org.mitk.gui.qt.fit.inspector:OFF org.mitk.gui.qt.fit.genericfitting:OFF org.mitk.gui.qt.pharmacokinetics.mri:OFF org.mitk.gui.qt.pharmacokinetics.pet:OFF org.mitk.gui.qt.pharmacokinetics.simulation:OFF org.mitk.gui.qt.pharmacokinetics.curvedescriptor:OFF org.mitk.gui.qt.pharmacokinetics.concentration.mri:OFF ) diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/CMakeLists.txt b/Plugins/org.mitk.gui.qt.bonesegmentation/CMakeLists.txt new file mode 100644 index 0000000000..537a83c7a2 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/CMakeLists.txt @@ -0,0 +1,7 @@ +project(org_mitk_gui_qt_bonesegmentation) + +mitk_create_plugin( + EXPORT_DIRECTIVE BONESEGMENTATION_EXPORT + EXPORTED_INCLUDE_SUFFIXES src + MODULE_DEPENDS MitkQtWidgetsExt +) diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/Manual.dox b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/Manual.dox new file mode 100644 index 0000000000..d556a8b7b1 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/Manual.dox @@ -0,0 +1,17 @@ +/** +\page org_mitk_gui_qt_bonesegmentation The Bonesegmentation + +\imageMacro{icon.png,"Icon of Bonesegmentation",2.00} + +\tableofcontents + +\section org_mitk_gui_qt_bonesegmentationOverview Overview +Describe the features of your awesome plugin here + + +*/ diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/icon.xpm b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/icon.xpm new file mode 100644 index 0000000000..9057c20bc6 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/UserManual/icon.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static const char * icon_xpm[] = { +"16 16 2 1", +" c #FF0000", +". c #000000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/doxygen/modules.dox b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/doxygen/modules.dox new file mode 100644 index 0000000000..6d9975611f --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/documentation/doxygen/modules.dox @@ -0,0 +1,16 @@ +/** + \defgroup org_mitk_gui_qt_bonesegmentation org.mitk.gui.qt.bonesegmentation + \ingroup MITKPlugins + + \brief Describe your plugin here. + +*/ + +/** + \defgroup org_mitk_gui_qt_bonesegmentation_internal Internal + \ingroup org_mitk_gui_qt_bonesegmentation + + \brief This subcategory includes the internal classes of the org.mitk.gui.qt.bonesegmentation plugin. Other + plugins must not rely on these classes. They contain implementation details and their interface + may change at any time. We mean it. +*/ diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/files.cmake b/Plugins/org.mitk.gui.qt.bonesegmentation/files.cmake new file mode 100644 index 0000000000..49d48068ad --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/files.cmake @@ -0,0 +1,42 @@ +set(SRC_CPP_FILES + +) + +set(INTERNAL_CPP_FILES + org_mitk_gui_qt_bonesegmentation_Activator.cpp + QmitkBoneSegmentation.cpp +) + +set(UI_FILES + src/internal/QmitkBoneSegmentationControls.ui +) + +set(MOC_H_FILES + src/internal/org_mitk_gui_qt_bonesegmentation_Activator.h + src/internal/QmitkBoneSegmentation.h +) + +# list of resource files which can be used by the plug-in +# system without loading the plug-ins shared library, +# for example the icon used in the menu and tabs for the +# plug-in views in the workbench +set(CACHED_RESOURCE_FILES + resources/icon.xpm + plugin.xml +) + +# list of Qt .qrc files which contain additional resources +# specific to this plugin +set(QRC_FILES + +) + +set(CPP_FILES ) + +foreach(file ${SRC_CPP_FILES}) + set(CPP_FILES ${CPP_FILES} src/${file}) +endforeach(file ${SRC_CPP_FILES}) + +foreach(file ${INTERNAL_CPP_FILES}) + set(CPP_FILES ${CPP_FILES} src/internal/${file}) +endforeach(file ${INTERNAL_CPP_FILES}) diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/manifest_headers.cmake b/Plugins/org.mitk.gui.qt.bonesegmentation/manifest_headers.cmake new file mode 100644 index 0000000000..d85840cc19 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/manifest_headers.cmake @@ -0,0 +1,5 @@ +set(Plugin-Name "Bonesegmentation") +set(Plugin-Version "0.1") +set(Plugin-Vendor "DKFZ") +set(Plugin-ContactAddress "") +set(Require-Plugin org.mitk.gui.qt.common) diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/plugin.xml b/Plugins/org.mitk.gui.qt.bonesegmentation/plugin.xml new file mode 100644 index 0000000000..ed64c14a41 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/plugin.xml @@ -0,0 +1,11 @@ + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/resources/icon.xpm b/Plugins/org.mitk.gui.qt.bonesegmentation/resources/icon.xpm new file mode 100644 index 0000000000..9057c20bc6 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/resources/icon.xpm @@ -0,0 +1,21 @@ +/* XPM */ +static const char * icon_xpm[] = { +"16 16 2 1", +" c #FF0000", +". c #000000", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" ", +" "}; diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp new file mode 100644 index 0000000000..4ede16b008 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp @@ -0,0 +1,143 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + + +// Blueberry +#include +#include + +// Qmitk +#include "QmitkBoneSegmentation.h" + +// Qt +#include + +// mitk image +#include +#include +// #include "BetData.h" + +const std::string QmitkBoneSegmentation::VIEW_ID = "org.mitk.views.bonesegmentation"; + +void QmitkBoneSegmentation::SetFocus() +{ + m_Controls.buttonPerformImageProcessing->setFocus(); +} + +void QmitkBoneSegmentation::CreateQtPartControl(QWidget *parent) +{ + // create GUI widgets from the Qt Designer's .ui file + m_Controls.setupUi(parent); + connect(m_Controls.buttonPerformImageProcessing, &QPushButton::clicked, this, &QmitkBoneSegmentation::StartPythonProcess); + + m_process = new QProcess(); + connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus )),this, SLOT(doSomethingWhenItsDone())); + m_Controls.buttonPerformImageProcessing->setText("Start Bone Segmentation"); +} + +void QmitkBoneSegmentation::doSomethingWhenItsDone() +{ + MITK_INFO << "Ended calculation thread."; + //m_Controls.m_StartButton->setText("Start Bone Segmentation"); + //m_Controls.m_StartButton->setEnabled(true); + + mitk::IOUtil::Load("/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_output.nrrd", *GetDataStorage()); + + if( remove( "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd" ) != 0 ) + MITK_WARN << "Error deleting file" ; + else + MITK_INFO << "File successfully deleted" ; + + if( remove( "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_output.nrrd" ) != 0 ) + MITK_WARN << "Error deleting file" ; + else + MITK_INFO << "File successfully deleted" ; +} + +void QmitkBoneSegmentation::StartPythonProcess() +{ + MITK_INFO << "[START] StartPythonProcess()"; + //m_Controls.m_StartButton->setText("Segmentation running... This can take a few minutes."); + //m_Controls.m_StartButton->setEnabled(false); + + QList nodes = this->GetDataManagerSelection(); + if (nodes.empty()) + return; + + + mitk::DataNode::Pointer node = nodes.front(); //TODO = m_Controls.m_ImageBox->GetSelectedNode(); + mitk::Image::Pointer mitk_image = dynamic_cast(node->GetData()); + + mitk::IOUtil::Save(mitk_image, "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"); + + QString programCall("python"); // + QString::fromStdString(GetPythonFile("segment.py")) + " /media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"); + QStringList arguments = QStringList() << QString::fromStdString(GetPythonFile("segment.py")) + << "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"; + //QStringList arguments; // = {QString::fromStdString(GetPythonFile("segment.py")), "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"}; + + MITK_INFO << programCall; + + m_process->start(programCall, arguments); + MITK_INFO << "[END] StartPythonProcess()"; +} + +void QmitkBoneSegmentation::OnSelectionChanged(berry::IWorkbenchPart::Pointer /*source*/, + const QList &nodes) +{ + // iterate all selected objects, adjust warning visibility + foreach (mitk::DataNode::Pointer node, nodes) + { + if (node.IsNotNull() && dynamic_cast(node->GetData())) + { + m_Controls.labelWarning->setVisible(false); + m_Controls.buttonPerformImageProcessing->setEnabled(true); + return; + } + } + + m_Controls.labelWarning->setVisible(true); + m_Controls.buttonPerformImageProcessing->setEnabled(false); +} + +std::string QmitkBoneSegmentation::GetPythonFile(std::string filename) +{ + std::string out = filename; //""; + //std::string exec_dir = QCoreApplication::applicationDirPath().toStdString(); + //for (auto dir : mitk::bet::relative_search_dirs) + //{ + // if ( ist::FileExists( ist::GetCurrentWorkingDirectory() + dir + filename) ) + // { + // out = ist::GetCurrentWorkingDirectory() + dir + filename; + // return out; + // } + // if ( ist::FileExists( exec_dir + dir + filename) ) + // { + // out = exec_dir + dir + filename; + // return out; + // } + //} + //for (auto dir : mitk::bet::absolute_search_dirs) + //{ + // if ( ist::FileExists( dir + filename) ) + // { + // out = dir + filename; + // return out; + // } + //} + + MITK_WARN << out; + return out; +} diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp.autosave b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp.autosave new file mode 100644 index 0000000000..c746cba0f6 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.cpp.autosave @@ -0,0 +1,142 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + + +// Blueberry +#include +#include + +// Qmitk +#include "QmitkBoneSegmentation.h" + +// Qt +#include + +// mitk image +#include +#include +// #include "BetData.h" + +const std::string QmitkBoneSegmentation::VIEW_ID = "org.mitk.views.bonesegmentation"; + +void QmitkBoneSegmentation::SetFocus() +{ + m_Controls.buttonPerformImageProcessing->setFocus(); +} + +void QmitkBoneSegmentation::CreateQtPartControl(QWidget *parent) +{ + // create GUI widgets from the Qt Designer's .ui file + m_Controls.setupUi(parent); + connect(m_Controls.buttonPerformImageProcessing, &QPushButton::clicked, this, &QmitkBoneSegmentation::StartPythonProcess); + + m_process = new QProcess(); + connect(m_process, SIGNAL(finished(int, QProcess::ExitStatus )),this, SLOT(doSomethingWhenItsDone())); + m_Controls.buttonPerformImageProcessing->setText("Start Bone Segmentation"); +} + +void QmitkBoneSegmentation::doSomethingWhenItsDone() +{ + MITK_INFO << "Ended calculation thread."; + //m_Controls.m_StartButton->setText("Start Bone Segmentation"); + //m_Controls.m_StartButton->setEnabled(true); + + mitk::IOUtil::Load("/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_output.nrrd", *GetDataStorage()); + + if( remove( "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd" ) != 0 ) + MITK_WARN << "Error deleting file" ; + else + MITK_INFO << "File successfully deleted" ; + + if( remove( "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_output.nrrd" ) != 0 ) + MITK_WARN << "Error deleting file" ; + else + MITK_INFO << "File successfully deleted" ; +} + +void QmitkBoneSegmentation::StartPythonProcess() +{ + MITK_INFO << "[START] StartPythonProcess()"; + //m_Controls.m_StartButton->setText("Segmentation running... This can take a few minutes."); + //m_Controls.m_StartButton->setEnabled(false); + + QList nodes = this->GetDataManagerSelection(); + if (nodes.empty()) + return; + + mitk::DataNode::Pointer node = nodes.front(); //TODO = m_Controls.m_ImageBox->GetSelectedNode(); + mitk::Image::Pointer mitk_image = dynamic_cast(node->GetData()); + + mitk::IOUtil::Save(mitk_image, "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"); + + QString programCall("python"); // + QString::fromStdString(GetPythonFile("segment.py")) + " /media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"); + QStringList arguments = QStringList() << QString::fromStdString(GetPythonFile("segment.py")) + << "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"; + //QStringList arguments; // = {QString::fromStdString(GetPythonFile("segment.py")), "/media/kleina/Data/Data/bone_seg_ijcars/nrrd/temp_CT_1.nrrd"}; + + MITK_INFO << programCall; + + m_process->start(programCall, arguments); + MITK_INFO << "[END] StartPythonProcess()"; +} + +void QmitkBoneSegmentation::OnSelectionChanged(berry::IWorkbenchPart::Pointer /*source*/, + const QList &nodes) +{ + // iterate all selected objects, adjust warning visibility + foreach (mitk::DataNode::Pointer node, nodes) + { + if (node.IsNotNull() && dynamic_cast(node->GetData())) + { + m_Controls.labelWarning->setVisible(false); + m_Controls.buttonPerformImageProcessing->setEnabled(true); + return; + } + } + + m_Controls.labelWarning->setVisible(true); + m_Controls.buttonPerformImageProcessing->setEnabled(false); +} + +std::string QmitkBoneSegmentation::GetPythonFile(std::string filename) +{ + std::string out = filename; //""; + //std::string exec_dir = QCoreApplication::applicationDirPath().toStdString(); + //for (auto dir : mitk::bet::relative_search_dirs) + //{ + // if ( ist::FileExists( ist::GetCurrentWorkingDirectory() + dir + filename) ) + // { + // out = ist::GetCurrentWorkingDirectory() + dir + filename; + // return out; + // } + // if ( ist::FileExists( exec_dir + dir + filename) ) + // { + // out = exec_dir + dir + filename; + // return out; + // } + //} + //for (auto dir : mitk::bet::absolute_search_dirs) + //{ + // if ( ist::FileExists( dir + filename) ) + // { + // out = dir + filename; + // return out; + // } + //} + + MITK_WARN << out; + return out; +} diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.h b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.h new file mode 100644 index 0000000000..77400c269d --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentation.h @@ -0,0 +1,64 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + + +#ifndef QmitkBoneSegmentation_h +#define QmitkBoneSegmentation_h + +#include + +#include + +#include "ui_QmitkBoneSegmentationControls.h" + +#include +#include +/** + \brief QmitkBoneSegmentation + + \warning This class is not yet documented. Use "git blame" and ask the author to provide basic documentation. + + \sa QmitkAbstractView + \ingroup ${plugin_target}_internal +*/ +class QmitkBoneSegmentation : public QmitkAbstractView +{ + // this is needed for all Qt objects that should have a Qt meta-object + // (everything that derives from QObject and wants to have signal/slots) + Q_OBJECT + +public: + static const std::string VIEW_ID; + std::string GetPythonFile(std::string filename); + +protected slots: + void StartPythonProcess(); + void doSomethingWhenItsDone(); + +protected: + virtual void CreateQtPartControl(QWidget *parent) override; + + virtual void SetFocus() override; + + /// \brief called by QmitkFunctionality when DataManager's selection has changed + virtual void OnSelectionChanged(berry::IWorkbenchPart::Pointer source, + const QList &nodes) override; + + QProcess* m_process; + Ui::QmitkBoneSegmentationControls m_Controls; +}; + +#endif // QmitkBoneSegmentation_h diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentationControls.ui b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentationControls.ui new file mode 100644 index 0000000000..c65b6542d6 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/QmitkBoneSegmentationControls.ui @@ -0,0 +1,64 @@ + + + QmitkBoneSegmentationControls + + + + 0 + 0 + 222 + 161 + + + + + 0 + 0 + + + + QmitkTemplate + + + + + + QLabel { color: rgb(255, 0, 0) } + + + Please select an image! + + + + + + + Do image processing + + + Do Something + + + + + + + Qt::Vertical + + + QSizePolicy::Expanding + + + + 20 + 220 + + + + + + + + + + diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.cpp b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.cpp new file mode 100644 index 0000000000..7432c1ad7b --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.cpp @@ -0,0 +1,29 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + + +#include "org_mitk_gui_qt_bonesegmentation_Activator.h" +#include "QmitkBoneSegmentation.h" + +namespace mitk +{ + void org_mitk_gui_qt_bonesegmentation_Activator::start(ctkPluginContext *context) + { + BERRY_REGISTER_EXTENSION_CLASS(QmitkBoneSegmentation, context) + } + + void org_mitk_gui_qt_bonesegmentation_Activator::stop(ctkPluginContext *context) { Q_UNUSED(context) } +} diff --git a/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.h b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.h new file mode 100644 index 0000000000..1003010ac9 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.bonesegmentation/src/internal/org_mitk_gui_qt_bonesegmentation_Activator.h @@ -0,0 +1,38 @@ +/*=================================================================== + +The Medical Imaging Interaction Toolkit (MITK) + +Copyright (c) German Cancer Research Center, +Division of Medical and Biological Informatics. +All rights reserved. + +This software is distributed WITHOUT ANY WARRANTY; without +even the implied warranty of MERCHANTABILITY or FITNESS FOR +A PARTICULAR PURPOSE. + +See LICENSE.txt or http://www.mitk.org for details. + +===================================================================*/ + + +#ifndef org_mitk_gui_qt_bonesegmentation_Activator_h +#define org_mitk_gui_qt_bonesegmentation_Activator_h + +#include + +namespace mitk +{ + class org_mitk_gui_qt_bonesegmentation_Activator : public QObject, public ctkPluginActivator + { + Q_OBJECT + Q_PLUGIN_METADATA(IID "org_mitk_gui_qt_bonesegmentation") + Q_INTERFACES(ctkPluginActivator) + + public: + void start(ctkPluginContext *context); + void stop(ctkPluginContext *context); + + }; // org_mitk_gui_qt_bonesegmentation_Activator +} + +#endif // org_mitk_gui_qt_bonesegmentation_Activator_h