diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake b/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake index 2e7ff6628c..7397938053 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/files.cmake @@ -1,57 +1,60 @@ set(SRC_CPP_FILES ) set(INTERNAL_CPP_FILES QmitkMeasurementView.cpp QmitkPlanarFiguresTableModel.cpp QmitkImageStatisticsView.cpp + QmitkImageStatisticsReloadedView.cpp QmitkImageStatisticsCalculationThread.cpp mitkPluginActivator.cpp ) set(UI_FILES src/internal/QmitkImageStatisticsViewControls.ui + src/internal/QmitkImageStatisticsReloadedViewControls.ui ) set(MOC_H_FILES src/internal/QmitkMeasurementView.h src/internal/QmitkPlanarFiguresTableModel.h src/internal/QmitkImageStatisticsView.h + src/internal/QmitkImageStatisticsReloadedView.h src/internal/QmitkImageStatisticsCalculationThread.h src/internal/mitkPluginActivator.h ) set(CACHED_RESOURCE_FILES resources/angle.png resources/arrow.png resources/circle.png resources/four-point-angle.png resources/lena.xpm resources/line.png resources/measurement.svg resources/path.png resources/polygon.png resources/rectangle.png resources/stats.png resources/text.png resources/bar-chart.svg plugin.xml ) set(QRC_FILES resources/measurement.qrc resources/QmitkImageStatisticsView.qrc ) 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.measurementtoolbox/plugin.xml b/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml index 5b85110301..f3fa93b868 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/plugin.xml @@ -1,42 +1,53 @@ <?xml version="1.0" encoding="UTF-8"?> <?eclipse version="3.0"?> <plugin> <extension point="org.blueberry.ui.views"> <view id="org.mitk.views.measurement" name="Measurement" category="Quantification" icon="resources/measurement.svg" class="QmitkMeasurementView" > <description>Measure distance and areas in the image</description> <keywordReference id="org.mitk.views.measurement.Keyword"/> </view> </extension> <extension point="org.blueberry.ui.views"> <view id="org.mitk.views.imagestatistics" name="Statistics" category="Quantification" class="QmitkImageStatisticsView" icon="resources/bar-chart.svg" > <description>Calculate the statistic of image regions</description> <keywordReference id="org.mitk.views.imagestatistics.Keyword"/> </view> </extension> + + <extension point="org.blueberry.ui.views"> + <view id="org.mitk.views.imagestatisticsReloaded" + name="Statistics reloaded" + category="Quantification" + class="QmitkImageStatisticsReloadedView" + icon="resources/lena.xpm" > + <description>Calculate the statistic of image regions</description> + <keywordReference id="org.mitk.views.imagestatisticsReloaded.Keyword"/> + </view> + </extension> <extension point="org.blueberry.ui.keywords"> <keyword label="Planar Figure" id="org.mitk.views.measurement.Keyword"/> <keyword label="Measurement" id="org.mitk.views.measurement.Keyword"/> <keyword label="Circle" id="org.mitk.views.measurement.Keyword"/> <keyword label="Line" id="org.mitk.views.measurement.Keyword"/> <keyword label="Length" id="org.mitk.views.measurement.Keyword"/> <keyword label="Area" id="org.mitk.views.measurement.Keyword"/> <keyword label="Mean" id="org.mitk.views.imagestatistics.Keyword"/> <keyword label="Statistic" id="org.mitk.views.imagestatistics.Keyword"/> <keyword label="Grey Value" id="org.mitk.views.imagestatistics.Keyword"/> <keyword label="Variance" id="org.mitk.views.imagestatistics.Keyword"/> <keyword label="Std Dev" id="org.mitk.views.imagestatistics.Keyword"/> </extension> </plugin> diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp new file mode 100644 index 0000000000..a3e6e7f330 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.cpp @@ -0,0 +1,79 @@ +/*=================================================================== + +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 "QmitkImageStatisticsReloadedView.h" + +// berry includes +#include <berryIWorkbenchPage.h> +#include <berryWorkbenchPlugin.h> +#include <berryQtPreferences.h> + +const std::string QmitkImageStatisticsReloadedView::VIEW_ID = "org.mitk.views.imagestatisticsReloaded"; + +QmitkImageStatisticsReloadedView::QmitkImageStatisticsReloadedView(QObject* /*parent*/, const char* /*name*/) +: m_Controls( nullptr ) +{ +} + +QmitkImageStatisticsReloadedView::~QmitkImageStatisticsReloadedView() +{ +} + +void QmitkImageStatisticsReloadedView::CreateQtPartControl(QWidget *parent) +{ + if (m_Controls == nullptr) + { + m_Controls = new Ui::QmitkImageStatisticsReloadedViewControls; + m_Controls->setupUi(parent); + CreateConnections(); + } +} + +void QmitkImageStatisticsReloadedView::CreateConnections() +{ +} + +void QmitkImageStatisticsReloadedView::PartClosed(const berry::IWorkbenchPartReference::Pointer& ) +{ +} + +void QmitkImageStatisticsReloadedView::OnSelectionChanged( berry::IWorkbenchPart::Pointer /*part*/, + const QList<mitk::DataNode::Pointer> &nodes ) +{ + +} + +void QmitkImageStatisticsReloadedView::Activated() +{ +} + +void QmitkImageStatisticsReloadedView::Deactivated() +{ +} + +void QmitkImageStatisticsReloadedView::Visible() +{ + +} + +void QmitkImageStatisticsReloadedView::Hidden() +{ + +} + +void QmitkImageStatisticsReloadedView::SetFocus() +{ +} \ No newline at end of file diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h new file mode 100644 index 0000000000..3b6e41d97f --- /dev/null +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedView.h @@ -0,0 +1,77 @@ +/*=================================================================== + +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 QmitkImageStatisticsReloadedView_H__INCLUDED +#define QmitkImageStatisticsReloadedView_H__INCLUDED + +#include "ui_QmitkImageStatisticsReloadedViewControls.h" + +// Qmitk includes +#include <QmitkAbstractView.h> +#include <mitkILifecycleAwarePart.h> +#include <berryIPartListener.h> + +/*! +\brief QmitkImageStatisticsView is a bundle that allows statistics calculation from images. Three modes +are supported: 1. Statistics of one image, 2. Statistics of an image and a segmentation, 3. Statistics +of an image and a Planar Figure. The statistics calculation is realized in a separate thread to keep the +gui accessible during calculation. + +\ingroup Plugins/org.mitk.gui.qt.measurementtoolbox +*/ +class QmitkImageStatisticsReloadedView : public QmitkAbstractView, public mitk::ILifecycleAwarePart, public berry::IPartListener +{ + Q_OBJECT + +public: + + /*! + \brief default constructor */ + QmitkImageStatisticsReloadedView(QObject *parent = nullptr, const char *name = nullptr); + /*! + \brief default destructor */ + virtual ~QmitkImageStatisticsReloadedView(); + /*! + \brief method for creating the widget containing the application controls, like sliders, buttons etc. */ + virtual void CreateQtPartControl(QWidget *parent) override; + /*! + \brief method for creating the connections of main and control widget */ + virtual void CreateConnections(); + /*! + \brief Is called from the selection mechanism once the data manager selection has changed*/ + void OnSelectionChanged(berry::IWorkbenchPart::Pointer part, const QList<mitk::DataNode::Pointer> &selectedNodes) override; + + static const std::string VIEW_ID; + +protected: + virtual void Activated() override; + virtual void Deactivated() override; + virtual void Visible() override; + virtual void Hidden() override; + + virtual void SetFocus() override; + + /** \brief Is called right before the view closes (before the destructor) */ + virtual void PartClosed(const berry::IWorkbenchPartReference::Pointer&) override; + + /** \brief Required for berry::IPartListener */ + virtual Events::Types GetPartEventTypes() const override { return Events::CLOSED; } + + // member variables + Ui::QmitkImageStatisticsReloadedViewControls *m_Controls; + +}; +#endif // QmitkImageStatisticsView_H__INCLUDED diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui new file mode 100644 index 0000000000..80ef24ee28 --- /dev/null +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/QmitkImageStatisticsReloadedViewControls.ui @@ -0,0 +1,78 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ui version="4.0"> + <class>QmitkImageStatisticsReloadedViewControls</class> + <widget class="QWidget" name="QmitkImageStatisticsReloadedViewControls"> + <property name="enabled"> + <bool>true</bool> + </property> + <property name="geometry"> + <rect> + <x>0</x> + <y>0</y> + <width>548</width> + <height>853</height> + </rect> + </property> + <property name="windowTitle"> + <string>Form</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout_4"> + <item> + <widget class="QGroupBox" name="groupBox_statistics"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="title"> + <string>Statistics</string> + </property> + <layout class="QVBoxLayout" name="verticalLayout"> + <property name="leftMargin"> + <number>9</number> + </property> + <property name="rightMargin"> + <number>9</number> + </property> + <property name="bottomMargin"> + <number>9</number> + </property> + </layout> + </widget> + </item> + <item> + <widget class="QGroupBox" name="groupBox_histogram"> + <property name="enabled"> + <bool>false</bool> + </property> + <property name="minimumSize"> + <size> + <width>400</width> + <height>450</height> + </size> + </property> + <property name="title"> + <string>Histogram</string> + </property> + <property name="checkable"> + <bool>false</bool> + </property> + <layout class="QVBoxLayout" name="verticalLayout_3"/> + </widget> + </item> + <item> + <spacer name="verticalSpacer"> + <property name="orientation"> + <enum>Qt::Vertical</enum> + </property> + <property name="sizeHint" stdset="0"> + <size> + <width>20</width> + <height>40</height> + </size> + </property> + </spacer> + </item> + </layout> + </widget> + <resources/> + <connections/> +</ui> diff --git a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp index a48d1c5ae9..259a13aeeb 100644 --- a/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp +++ b/Plugins/org.mitk.gui.qt.measurementtoolbox/src/internal/mitkPluginActivator.cpp @@ -1,39 +1,41 @@ /*=================================================================== 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 "mitkPluginActivator.h" #include "QmitkMeasurementView.h" #include "QmitkImageStatisticsView.h" +#include "QmitkImageStatisticsReloadedView.h" ctkPluginContext* mitk::PluginActivator::m_Context = nullptr; ctkPluginContext* mitk::PluginActivator::GetContext() { return m_Context; } void mitk::PluginActivator::start(ctkPluginContext* context) { BERRY_REGISTER_EXTENSION_CLASS(QmitkMeasurementView, context) BERRY_REGISTER_EXTENSION_CLASS(QmitkImageStatisticsView, context) + BERRY_REGISTER_EXTENSION_CLASS(QmitkImageStatisticsReloadedView, context) m_Context = context; } void mitk::PluginActivator::stop(ctkPluginContext* context) { Q_UNUSED(context) m_Context = nullptr; }