diff --git a/Modules/Bundles/CMakeLists.txt b/Modules/Bundles/CMakeLists.txt index 8be5368bc8..6b0ca6eaae 100644 --- a/Modules/Bundles/CMakeLists.txt +++ b/Modules/Bundles/CMakeLists.txt @@ -1,63 +1,64 @@ IF(MITK_USE_BLUEBERRY) SET(MITK_DEFAULT_SUBPROJECTS MITK-Plugins) SET(_mitk_bundles_default ) IF(QT4_FOUND) LIST(APPEND _mitk_bundles_default "org.mitk.gui.qt.imagenavigator") # BlueBerry depends on CTK which depends on Qt, so we # need the Qt include direcotries INCLUDE(${QT_USE_FILE}) ENDIF() SET(PLUGIN_EXCLUDE_LIST org.mitk.core.ext org.mitk.gui.qt.volumetry org.mitk.core.jobs org.mitk.diffusionimaging org.mitk.gui.qt.diffusionimaging + org.mitk.gui.qt.diffusionimagingapp org.mitk.gui.qt.ext org.mitk.gui.qt.extapplication org.mitk.gui.qt.datamanager org.mitk.gui.qt.regiongrowing org.mitk.gui.qt.segmentation org.mitk.planarfigure org.mitk.gui.qt.igtnavigationtoolmanager org.mitk.gui.qt.igttrackingtoolbox org.mitk.gui.qt.igttutorial org.mitk.gui.qt.igttoolpairnavigation org.mitk.gui.qt.basicimageprocessing org.mitk.gui.qt.colourimageprocessing org.mitk.gui.qt.navigationdataplayer org.mitk.gui.qt.tofutil org.mitk.gui.qt.toftutorial org.mitk.gui.qt.imagenavigator org.mitk.gui.qt.moviemaker org.mitk.gui.qt.deformableregistration org.mitk.gui.qt.rigidregistration org.mitk.gui.qt.imagestatistics org.mitk.gui.qt.materialeditor org.mitk.gui.qt.simpleexample org.mitk.gui.qt.ugvisualization org.mitk.gui.qt.measurement org.mitk.gui.qt.simplemeasurement org.mitk.gui.qt.imagecropper org.mitk.gui.qt.pointbasedregistration ) MACRO_COLLECT_PLUGINS(OUTPUT_DIR ${CMAKE_RUNTIME_OUTPUT_DIRECTORY}/ExtBundles CACHE_PLUGIN_SOURCE_DIRS MITK_MODULES_PLUGIN_SOURCE_DIRS CACHE_PLUGIN_OUTPUT_DIRS MITK_MODULES_PLUGIN_OUTPUT_DIRS CACHE_PLUGIN_TARGETS MITK_MODULES_ENABLED_PLUGINS BUNDLE_LIST_PATH "${MITK_BINARY_DIR}/Bundles/MITKModulesBundleList.cmake" CMAKE_CACHE_PREFIX "MITK" PLUGIN_DEFAULT_ON ${_mitk_bundles_default} PLUGIN_EXCLUDES ${PLUGIN_EXCLUDE_LIST} ${MITK_BUILD_ALL_PLUGINS_OPTION}) ENDIF(MITK_USE_BLUEBERRY) diff --git a/Modules/Bundles/PluginList.cmake b/Modules/Bundles/PluginList.cmake index 0961de3728..75059c9933 100644 --- a/Modules/Bundles/PluginList.cmake +++ b/Modules/Bundles/PluginList.cmake @@ -1,34 +1,35 @@ SET(MITK_EXT_PLUGINS org.mitk.core.ext:ON org.mitk.core.jobs:OFF org.mitk.planarfigure:ON org.mitk.diffusionimaging:OFF org.mitk.gui.qt.ext:ON org.mitk.gui.qt.extapplication:ON org.mitk.gui.qt.datamanager:ON org.mitk.gui.qt.segmentation:OFF org.mitk.gui.qt.diffusionimaging:OFF + org.mitk.gui.qt.diffusionimagingapp:OFF org.mitk.gui.qt.igtnavigationtoolmanager:OFF org.mitk.gui.qt.igttoolpairnavigation:OFF org.mitk.gui.qt.igttrackingtoolbox:OFF org.mitk.gui.qt.regiongrowing:OFF org.mitk.gui.qt.navigationdataplayer:OFF org.mitk.gui.qt.basicimageprocessing:OFF org.mitk.gui.qt.igttutorial:OFF org.mitk.gui.qt.colourimageprocessing:OFF org.mitk.gui.qt.tofutil:OFF org.mitk.gui.qt.toftutorial:OFF org.mitk.gui.qt.imagenavigator:OFF org.mitk.gui.qt.moviemaker:OFF org.mitk.gui.qt.deformableregistration:OFF org.mitk.gui.qt.rigidregistration:OFF org.mitk.gui.qt.imagestatistics:OFF org.mitk.gui.qt.volumetry:OFF org.mitk.gui.qt.materialeditor:OFF org.mitk.gui.qt.simpleexample:OFF org.mitk.gui.qt.ugvisualization:OFF org.mitk.gui.qt.measurement:OFF org.mitk.gui.qt.simplemeasurement:OFF org.mitk.gui.qt.imagecropper:OFF org.mitk.gui.qt.pointbasedregistration:ON ) diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/CMakeLists.txt b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/CMakeLists.txt new file mode 100644 index 0000000000..51376a0831 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/CMakeLists.txt @@ -0,0 +1,18 @@ +SET (QT_USE_QTWEBKIT TRUE) +INCLUDE(${QT_USE_FILE}) + +IF(QT_QTWEBKIT_FOUND) + ADD_DEFINITIONS(-DQT_WEBKIT) +ENDIF(QT_QTWEBKIT_FOUND) + +# The project name must correspond to the directory name of your plug-in +# and must not contain periods. +PROJECT(org_mitk_gui_qt_diffusionimagingapp) + +MACRO_CREATE_MITK_CTK_PLUGIN( + EXPORT_DIRECTIVE DIFFUSIONIMAGING_APP_EXPORT + EXPORTED_INCLUDE_SUFFIXES src + MODULE_DEPENDENCIES MitkQM Qmitk +) + +TARGET_LINK_LIBRARIES(${PLUGIN_TARGET} ${QT_LIBRARIES}) diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/MitkDiffusionImagingAppQtHelpCollectionProject.qhcp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/MitkDiffusionImagingAppQtHelpCollectionProject.qhcp new file mode 100644 index 0000000000..de37e2f00b --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/MitkDiffusionImagingAppQtHelpCollectionProject.qhcp @@ -0,0 +1,22 @@ + + + + MITK 3M3 Help + assistant-logo.png + qthelp://org.mitk.gui.qt.diffusionimagingapp/bundle/index.html + assistant-icon.png + false + false + true + Mitk3M3 + + About MITK 3M3 Help + + + about-logo.png + + + + + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Crosshair_Modes.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Crosshair_Modes.png new file mode 100644 index 0000000000..ffc2717c6f Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Crosshair_Modes.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI.png new file mode 100644 index 0000000000..a31fbfb5c2 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI_Commented.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI_Commented.png new file mode 100644 index 0000000000..22ca0a4211 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/GUI_Commented.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Open_Perspective.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Open_Perspective.png new file mode 100644 index 0000000000..5d48dea11e Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Open_Perspective.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/QmitkDiffusionImagingAppUserManual.dox b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/QmitkDiffusionImagingAppUserManual.dox new file mode 100644 index 0000000000..f1924cff96 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/QmitkDiffusionImagingAppUserManual.dox @@ -0,0 +1,139 @@ +/** +\mainpage The Main Application + +Welcome to the MITK 3M3 application, build with the Medical Imaging Toolkit ( http://mitk.org/ ). + +Available sections: + - \ref Qmitk3mApplicationUserManualOverview + - \ref Qmitk3mApplicationUserManualUserInterface + - \ref Qmitk3mApplicationUserManualPerspectives + \isHtml- \ref Qmitk3mApplicationUserManualPerspectivesList + \isHtmlend + +\section Qmitk3mApplicationUserManualOverview About MITK and MITK 3M3 + +\image html Welcome.png "The MITK 3M3 Welcome screen" + +MITK is an open-source framework that was originally developed as a common framework for Ph.D. students in the Division of Medical and Biological Informatics (MBI) at the German Cancer Research Center. MITK aims at supporting the development of leading-edge medical imaging software with a high degree of interaction. + +MITK re-uses virtually anything from VTK and ITK. Thus, it is not at all a competitor to VTK or ITK, but an extension, which tries to ease the combination of both and to add features not supported by VTK or ITK. + +Research institutes, medical professionals and companies alike can use MITK as a basic framework for their research and even commercial (thorough code research needed) software due to the BSD-like software license. + +Research institutes will profit from the high level of integration of ITK and VTK enhanced with data management, advanced visualization and interaction functionality in a single framework that is supported by a wide variety of researchers and developers. You will not have to reinvent the wheel over and over and can concentrate on your work. + +Medical Professionals will profit from MITK and the MITK 3M3 application by using its basic functionalities for research projects. But nonetheless they will be better off, unless they are programmers themselves, to cooperate with a research institute developing with MITK to get the functionalitiy they need. MITK and the presented MITK 3M3 application are not certified medical products and may be used in a research setting only. They must not be used in patient care. + +MITK 3M3 is a demonstration of the capabilites of the MITK framework and has been created in a joint effort by the Division of Medical and Biological Informatics (MBI) at the German Cancer Research Center and mint medical. + +\section Qmitk3mApplicationUserManualUserInterface The User Interface + +The layout of the MITK 3M3 application is designed to give a clear distinction between the different work areas. The following figure gives an overview of the main sections of the user interface. + +\image html GUI_Commented.png "The MITK 3M3 User Interface" + +The datamanager and the \ref Qmitk3mApplicationUserManualPerspectives have their own help sections. This document explains the use of: + - The \ref Qmitk3mApplicationUserManualMultiWidget + - The \ref Qmitk3mApplicationUserManualMenu + - The \ref Qmitk3mApplicationUserManualLevelWindow + - The \ref Qmitk3mApplicationUserManualMemoryUsage + +\section Qmitk3mApplicationUserManualMultiWidget Four Window View + +\subsection Qmitk3mApplicationUserManualMultiWidgetOverview Overview + +The four window view is the heart of the MITK 3M3 image viewing. The standard layout is three 2D windows and one 3D window, with the transversal window in the top left quarter, the sagittal window in the top right quarter, the coronal window in the lower left quarter and the 3D window in the lower right quarter. The different planes form a crosshair that can be seen in the 3D window. + +Once you select a point within the picture informations about it are displayed at the bottom of the screen. + +\subsection Qmitk3mApplicationUserManualMultiWidgetNavigation Navigation + +Left click in any of the 2D windows centers the crosshair on that point. Pressing the right mouse button and moving the mouse zooms in and out. By scrolling with the mouse wheel you can navigate through the slices of the active window and pressing the mouse wheel while moving the mouse moves the image section. + +In the 3D window you can rotate the object by pressing the left mouse button and moving the mouse, zoom either with the right mouse button as in 2D or with the mouse wheel, and pan the object by moving the mouse while the mouse wheel is pressed. Placing the cursor within the 3D window and holding the "F" key allows free flight into the 3D view. + +\subsection Qmitk3mApplicationUserManualMultiWidgetCustomizingViews Customizing + +By moving the cursor to the upper right corner of any window you can activate the window menu. It consists of three buttons. + +\image html Crosshair_Modes.png "Crosshair" + +The crosshair button allows you toggle the crosshair, reset the view and change the behaviour of the planes. + +Activating either of the rotation modes allows you to rotate the planes visible in a 2D window by moving the mouse cursor close to them and click and dragging once it changes to indicate that rotation can be done. + +The swivel mode is recommended only for advanced users as the planes can be moved freely by clicking and dragging anywhere within a 2D window. + + +The middle button expands the corresponding window to fullscreen within the four window view. + +\image html Views_Choices.png "Layout Choices" + +The right button allows you to choose between many different layouts of the four window view to use the one most suited to your task. + +\section Qmitk3mApplicationUserManualMenu Menu + +\subsection Qmitk3mApplicationUserManualFile File +This dialog allows you to save, load and clear entire projects, this includes any nodes in the data manager. + +\subsection Qmitk3mApplicationUserManualEdit Edit +This dialog supports undo and redo operations as well as the image navigator, which gives you sliders to navigate through the data quickly. + +\subsection Qmitk3mApplicationUserManualWindow Window + +This dialog allows you to open a new window, change between perspectives and reset your current one to default settings. + +\image html Open_Perspective.png "Open Perspective" + +If you want to use an operation of a certain perspective within another perspective the "Show View" menu allows to select a specific function that is opened and can be moved within the working areas according to your wishes. Be aware that not every function works with every perspective in a meaningful way. + +\image html Show_Views.png "Show View" + +The Preferences dialog allows you to adjust and save your custom settings. + +\image html Window_Dropdown.png "Preferences" + +\subsection Qmitk3mApplicationUserManualHelp Help +This dialog contains this help, the welcome screen and information about MITK 3M3. + +\section Qmitk3mApplicationUserManualLevelWindow Levelwindow + +Once an image is loaded the levelwindow appears to the right hand side of the four window view. With this tool you can adjust the range of grey values displayed and the gradient between them. Moving the lower boundary up results in any pixels having a value lower than that boundary to be displayed as black. Lowering the upper boundary causes all pixels having a value higher than it to be displayed as white. + +The pixels with a value between the lower and upper boundary are displayed in different shades of grey. This way a smaller levelwindow results in higher contrasts while cutting of the information outside its range whereas a larger levelwindow displays more information at the cost of contrast and detail. + +You can pick the levelwindow with the mouse to move it up and down, while moving the mouse cursor to the left or right to change its size. Picking one of the boundaries with a left click allows you to change the size symmetrically. Holding CTRL and clicking a boundary adjusts only that value. + +\section Qmitk3mApplicationUserManualMemoryUsage System Load Indicator + +The are in the lower right hand corner of the screen gives information about the memory currently required by the MITK 3M3 application. Keep in mind that image processing is a highly memory intensive task and monitor the indicator to avoid your system freezing while constantly swapping to the hard drive. + +\section Qmitk3mApplicationUserManualPerspectives Perspectives + + The different tasks that arise in medical imaging need very different approaches. To acknowledge this circumstance MITK supplies a framework that can be build uppon by very different solutions to those tasks. These solutions are called perspectives, each of them works independently of others although they might be used in sequence to achieve the solution of more difficult problems. + +The welcome screen gives an overview and a short description of the perpectives currently supported in MITK 3M3. More information is supplied by their respective help entries. + +It is also possible to switch between the perspectives either using the perspective switcher (as seen in \ref Qmitk3mApplicationUserManualUserInterface) or the "Window"->"Open Perspective" dialog. + + +See \ref Qmitk3mApplicationUserManualMenu for more information about switching perspectives. +\isHtml +\section Qmitk3mApplicationUserManualPerspectivesList List of perspectives in MITK 3M3 + +MITK 3M3 features the following perspectives: + + - \subpage org.basicimageprocessing + - \subpage org.datamanager + - \subpage org.dicom + - \subpage org.diffusion + - \subpage org.measure + - The Registration perspective with + - \subpage org.deform.registration + - \subpage org.pointbased.reg + - \subpage org.rigid.regis + - \subpage org.segment + - \subpage org_vesseltreeseg + - \subpage org.volvis +\isHtmlend +*/ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Show_Views.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Show_Views.png new file mode 100644 index 0000000000..722ed00d39 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Show_Views.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Top_Right_Corner_Menu.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Top_Right_Corner_Menu.png new file mode 100644 index 0000000000..865400cc98 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Top_Right_Corner_Menu.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Views_Choices.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Views_Choices.png new file mode 100644 index 0000000000..26c6c332d8 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Views_Choices.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Welcome.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Welcome.png new file mode 100644 index 0000000000..5d457e766c Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Welcome.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Window_Dropdown.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Window_Dropdown.png new file mode 100644 index 0000000000..b3af19556e Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/Window_Dropdown.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_black.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_black.png new file mode 100644 index 0000000000..a6fefe17d6 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_black.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_default.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_default.png new file mode 100644 index 0000000000..4848e4f3c9 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/UserManual/theme_default.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/about-logo.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/about-logo.png new file mode 100644 index 0000000000..bee986bb1c Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/about-logo.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/assistant-icon.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/assistant-icon.png new file mode 100644 index 0000000000..169d1d439b Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/assistant-icon.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/doxygen/modules.dox b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/doxygen/modules.dox new file mode 100644 index 0000000000..1c0369f27b --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/documentation/doxygen/modules.dox @@ -0,0 +1,16 @@ +/** + \defgroup org_mitk_diffusionimagingapp org.mitk.diffusionimagingapp Plugin + \ingroup MITKPlugins + + \brief Describe your plugin here. + +*/ + +/** + \defgroup org_mitk_diffusionimagingapp_internal Internal + \ingroup org_mitk_diffusionimagingapp + + \brief This subcategory includes the internal classes of the org.mitk.diffusionimagingapp 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/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/files.cmake b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/files.cmake new file mode 100644 index 0000000000..9a69bc2ada --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/files.cmake @@ -0,0 +1,62 @@ +SET(SRC_CPP_FILES + QmitkDiffusionImagingAppApplication.cpp + QmitkDiffusionImagingAppWorkbenchAdvisor.cpp +) + +SET(INTERNAL_CPP_FILES + QmitkDiffusionImagingAppApplicationPlugin.cpp + QmitkDiffusionImagingAppIntroPart.cpp + QmitkDiffusionImagingAppPerspective.cpp + QmitkWelcomePerspective.cpp +) + +SET(UI_FILES + src/internal/QmitkWelcomeScreenViewControls.ui +) + +SET(MOC_H_FILES + src/internal/QmitkDiffusionImagingAppIntroPart.h + src/internal/QmitkDiffusionImagingAppApplicationPlugin.h + src/QmitkDiffusionImagingAppApplication.h + src/internal/QmitkDiffusionImagingAppPerspective.h + src/internal/QmitkWelcomePerspective.h +) + +SET(CACHED_RESOURCE_FILES +# 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 + plugin.xml + resources/mintLogo.png +) + +SET(QRC_FILES +# uncomment the following line if you want to use Qt resources + resources/welcome/QmitkWelcomeScreenView.qrc + resources/org_mitk_gui_qt_diffusionimagingapp.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}) + + +#----------- Qt Help Collection Project -------------# + +IF (BLUEBERRY_USE_QT_HELP) + SET(_plugin_qhcp_input "${CMAKE_CURRENT_SOURCE_DIR}/documentation/MitkDiffusionImagingAppQtHelpCollectionProject.qhcp") + SET(_plugin_qhcp_output "${PLUGIN_OUTPUT_DIR}/resources/MitkDiffusionImagingAppQtHelpCollection_${MBI_WC_REVISION_HASH}.qhc") + ADD_CUSTOM_COMMAND(OUTPUT ${_plugin_qhcp_output} + COMMAND ${QT_COLLECTIONGENERATOR_EXECUTABLE} ${_plugin_qhcp_input} -o ${_plugin_qhcp_output} + DEPENDS ${_plugin_qhcp_input} + ) + + SET(FILE_DEPENDENCIES ${_plugin_qhcp_output}) +ENDIF() diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/manifest_headers.cmake b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/manifest_headers.cmake new file mode 100644 index 0000000000..3a70a59d77 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/manifest_headers.cmake @@ -0,0 +1,8 @@ +set(Plugin-Name "Diffusion Imaging Application Bundle") +set(Plugin-Version "1.0") +set(Plugin-Vendor "DKFZ, Medical and Biological Informatics") +set(Plugin-ContactAddress "http://www.mitk.org") +set(Require-Plugin org.mitk.gui.qt.ext) +set(Plugin-Activator QmitkDiffusionImagingAppApplicationPlugin) + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml new file mode 100644 index 0000000000..82eb16711a --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/plugin.xml @@ -0,0 +1,25 @@ + + + + + + + + + + + + + + + + + + + + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/ImageProcessing_48.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/ImageProcessing_48.png new file mode 100644 index 0000000000..27dc941ac4 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/ImageProcessing_48.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/Measurement_48.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/Measurement_48.png new file mode 100644 index 0000000000..b986ef5a84 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/Measurement_48.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/RigidRegistration.xpm b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/RigidRegistration.xpm new file mode 100644 index 0000000000..51a5f9c4bb --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/RigidRegistration.xpm @@ -0,0 +1,231 @@ +/* XPM */ +static char *RigidRegistration___[] = { +/* columns rows colors chars-per-pixel */ +"48 48 177 2", +" c #6F5F67", +". c #735C62", +"X c #5B6B74", +"o c #577076", +"O c #587177", +"+ c #5C747B", +"@ c #5D797F", +"# c #796167", +"$ c #71636B", +"% c #7F656B", +"& c #696872", +"* c #63747C", +"= c #9B4E61", +"- c #8A5662", +"; c #A84D63", +": c #A55367", +"> c #AA5167", +", c #A55569", +"< c #AB5368", +"1 c #A45A6C", +"2 c #AA5A6D", +"3 c #AC5E71", +"4 c #81656C", +"5 c #8F6F77", +"6 c #906D76", +"7 c #8F7078", +"8 c #94767D", +"9 c #9B727C", +"0 c #AE6375", +"q c #B3687A", +"w c #547B85", +"e c #5E7B82", +"r c #5E7D8C", +"t c #657981", +"y c #6C7F87", +"u c #6C7F88", +"i c #7B7486", +"p c #707388", +"a c #887A83", +"s c #9E7F87", +"d c #3E8B9E", +"f c #3B92A7", +"g c #3696AD", +"h c #3F98AE", +"j c #5E8088", +"k c #548797", +"l c #558698", +"z c #598B9C", +"x c #60858E", +"c c #6E848B", +"v c #73868E", +"b c #7A828D", +"n c #6C8391", +"m c #6A8F97", +"M c #7D8792", +"N c #758C94", +"B c #7B8D95", +"V c #748F9B", +"C c #7A8E9A", +"Z c #6D919A", +"A c #7A9097", +"S c #72939B", +"D c #7C949B", +"F c #7E989E", +"G c #548FA3", +"H c #4399AE", +"J c #4C9AAD", +"K c #5293A5", +"L c #5C95A5", +"P c #5597A9", +"I c #5499AA", +"U c #5B9BAB", +"Y c #459EB3", +"T c #5A9EB0", +"R c #6597A2", +"E c #6994A5", +"W c #6D9AA5", +"Q c #659CAB", +"! c #6C9CAB", +"~ c #7296A5", +"^ c #7499A3", +"/ c #7A9CA5", +"( c #779BA9", +") c #45A0B7", +"_ c #4BA1B6", +"` c #47A2B8", +"' c #4AA3B9", +"] c #4FA8BE", +"[ c #56A1B4", +"{ c #5CA1B3", +"} c #52A6BA", +"| c #5CA6B8", +" . c #54A8BC", +".. c #5CA9BC", +"X. c #68A0AF", +"o. c #7DA1A9", +"O. c #63A1B3", +"+. c #6EA7B7", +"@. c #62A7B9", +"#. c #63ABBD", +"$. c #6BADBE", +"%. c #74A2B0", +"&. c #78A7B3", +"*. c #70AEBE", +"=. c #5AAEC2", +"-. c #67B5C8", +";. c #74B1C0", +":. c #7EB5C2", +">. c #7FBCCB", +",. c #9F888D", +"<. c #828C96", +"1. c #928A92", +"2. c #9C8990", +"3. c #82959D", +"4. c #8A959F", +"5. c #81989F", +"6. c #A2848B", +"7. c #A2888E", +"8. c #AE8E96", +"9. c #A99297", +"0. c #AD9399", +"q. c #B2999F", +"w. c #8497A0", +"e. c #8E96A1", +"r. c #829CA2", +"t. c #8A9DA5", +"y. c #8C9FA8", +"u. c #9097A2", +"i. c #9B9EA8", +"p. c #B59EA4", +"a. c #8AA0A7", +"s. c #83A4AC", +"d. c #8DA2AA", +"f. c #91A4AC", +"g. c #98A0AA", +"h. c #91A8AF", +"j. c #80A7B6", +"k. c #87A9B1", +"l. c #8CAAB2", +"z. c #94ACB3", +"x. c #9AACB4", +"c. c #87B2BD", +"v. c #95B1B7", +"b. c #98B1B7", +"n. c #94B2B9", +"m. c #98B2B8", +"M. c #9FB8BF", +"N. c #A0B5BC", +"B. c #A1B9BF", +"V. c #BCB1B8", +"C. c #CAB3B9", +"Z. c #8FBAC5", +"A. c #93BCC7", +"S. c #9EBAC1", +"D. c #A3BDC3", +"F. c #A8BEC5", +"G. c #9DC0C9", +"H. c #83C2D1", +"J. c #A7C0C6", +"K. c #A8C1C7", +"L. c #A4C3CA", +"P. c #AEC7CD", +"I. c #A5CFDB", +"U. c #B6CDD4", +"Y. c #B9D1D7", +"T. c #BAD5DB", +"R. c #BFD9DF", +"E. c #B0D8E2", +"W. c #BEDFE7", +"Q. c #C2C1C9", +"!. c #DBC4CA", +"~. c #DDC8CE", +"^. c #E0C9CF", +"/. c #C3DDE3", +"(. c #C7E0E7", +"). c #CEE7ED", +"_. c None", +/* pixels */ +"3 3 3 3 3 3 3 3 3 ; : = = = = = = = = < 3 2 2 2 2 2 2 2 ; , , , , , , , , : _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s . . . . . . . . 4 6.p.p.p.p.p.p.p.p.8 7.,.7.,.,.,.,.,.1 _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s # . . . . . . . 4 6.p.p.p.p.p.p.p.p.8 ,.,.,.,.,.,.,.,.1 _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s # . . . . . . . % 6.p.p.p.p.p.p.p.p.8 ,.,.,.,.,.,.,.,.1 _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s . . . . . . . . % s p.p.p.p.p.p.p.p.8 ,.,.,.,.,.,.,.,.1 _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.,.# . . . . . . . % 6.p.p.p.p.p.p.p.p.8 ,.,.,.,.,.,.,.D 1 _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s # . . . . . . . % s p.p.p.p.p.p.p.q.8 ,.,.,.7.1.L U I i _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s # . . . . . . . % ,.p.p.p.p.p.p.p.p.8 ,.,.S P U F r.r.K _._._._._._._._._._.", +"0 C.C.C.C.C.C.C.C.s . . . . . . . . % 6.p.p.p.p.p.p.p.p.a L P W o.5.5.r.r.U _._._._._._._._._._.", +"< s s s s s s s s 9 6 8 5 5 5 7 5 5 5 6 7 5 5 5 7 7 n I K ^ r.r.F a.a.F a.F H _._._._._._._._._.", +"q !.!.!.!.!.!.!.!.6.9.p.q.p.p.p.q.p.6.4 # . . $ k I &.m.A 3.r.r.a.F r.r.F r.J _._._._._._._._._.", +"q ^.^.^.^.^.^.^.^.6.9.p.p.p.p.p.p.p.7.4 . * K T v.b.b.b.h.t.r.r.r.r.r.r./ r.o.f _._._._._._._._.", +"q ^.^.^.^.^.^.^.^.6.0.p.p.p.p.p.p.p.,.k K %.m.m.m.m.b.m.b.a.F r.r.r.r.r.r.r.r.H _._._._._._._._.", +"q ^.^.^.^.^.^.^.^.6.q.p.p.p.p.p.g.O.{ S A m.m.m.m.m.m.m.b.d.w.r.r.r.r.r.r.r.r.R _._._._._._._._.", +"q ^.^.^.^.^.^.^.^.7.8.p.p.p.%.{ X.r.r.r.v z.m.m.m.b.m.m.b.b.t.5.r.r.r.5./ B Z ^ ` _._._._._._._.", +"q ^.^.^.^.^.^.^.^.7.8.i.O.O.( r.r.r.r.r.N F b.m.m.m.m.m.b.b.d.r.r.r.5.5.t.4.v.P.;._._._._._._._.", +"q ^.^.^.^.^.~.~.~.E T X.a.5.a.F r.r.r.r.5.v b.b.m.b.m.m.m.b.v.5.3.5.d.h.D.P.P.P.P._ _._._._._._.", +"q ^.^.^.^.^.Q.*.$.A.P.r.F / F a.r.r.r.r.r.N a.b.m.m.m.m.m.z.d.f.f.x.P.P.P.P.P.P.P.#._._._._._._.", +"< 8.0.0.^ [ *.P.P.P.P.a.5.a.r.r./ r.r.r.r.5.B b.m.m.b.a.3.3.5.5.5.P.P.P.P.P.P.P.P.L.' _._._._._.", +"0 q.( @.Z.P.P.P.P.P.P.J.D F r.r.r.r.r.r.r.r.w.h.z.r.w.r.5.r.r.r.5.h.P.P.P.P.P.P.P.P..._._._._._.", +"0 C.x.:.P.P.P.P.P.P.P.P.t.5.r.r.r.r.r.r.r.r.t.d.d.d.r.r.r.r.r.r.a.5.P.P.P.P.P.P.P.P.Z._._._._._.", +"0 C.C.@.P.P.P.P.P.P.P.P.m.4.r.r.r.r.r.5.a.d.d.d.r.r.r.r.r.r.r.r.5.5.m.P.P.P.P.P.P.P.P.} _._._._.", +"0 C.C.j.G.P.P.P.P.P.P.P.P.5.5.r.r.5.3.3.d.h.b.a.a.r.r.r.r.r.r.r.F 5.a.P.P.P.P.P.P.P.l.{ _._._._.", +"0 C.C.C.#.P.P.P.P.P.P.P.P.h.5.5.3.3.r.v.b.b.m.h.d.r.r.r.r.r.r.r.a.5.3.L.P.P.P.M.s.^ Z S H _._._.", +"0 C.C.C.+.L.P.P.P.P.P.P.m.t.<.3.d.m.n.m.m.m.b.m.d.r.r.r.r.r.r.r.r.r.5.d.P.h.o.Z S F r.r.I _._._.", +"0 C.C.C.C.$.P.P.P.P.f.3.t.m.h.5.m.m.m.b.m.m.m.m.d.d.r.r.r.r.r.r.r.r.r.3.3.b D 5.r.r.r.r./ Y _._.", +"0 C.C.C.C.@.P.D.h.3.d.P.).)./.<.v.m.m.m.m.b.m.m.b.d.w.r.r.r.r.r.5.4.5.3.A r.r.r.r.r.r.r.r.J _._.", +"2 0.0.0.0.e.Q t.m.R.).).).).).f./ m.m.m.m.m.m.m.b.r.t.5.r.r.5.D 3.f.P.m.M r.r.r./ r.r.r.r.^ H _.", +"= 4 4 4 4 4 T ).).).).).).).).U.3.b.m.m.m.m.m.b.b.z.v 5.D 5.d.M.P.P.P.P.5.D r.r.r.r.r.r.r.r.H _.", +"= . . . . . r I.).).).).).).).).h.d.m.m.b.m.m.m.z.N X * d.P.P.P.P.P.P.P.b.M r.r.r.r.r.r.r.r.R _.", +"= . . . . . . | ).).).).).).).).K.d.m.m.m.m.r.c + t N t P.P.P.P.P.P.P.P.P.<.F r.r.r.r.r.r.r.r.H ", +"= . . . . . . z (.).).).).).).).).f.h.z.A * * c 5.r.r.* f.P.P.P.P.P.P.P.P.e.S r.r.r.r.r.F S Z Y ", +"= . . . . . $.).).).).).).).).m.3.y * B r.r.r.r.r.N A P.P.P.P.P.P.P.P.K.Z a./ 5.S m S k.B...", +"= . . . . . . P ).).).).).(.F.x.f.3.D r.r.r.r.r.r.F a.v M.P.P.P.P.P.P.P.P.s.N S Z o.v.P.P.P...", +"= . . . . . . . & >.).).Y.N.h.h.m.P.d.N r.r.r.r.F a.o.5.S f.P.P.P.P.P.P.P.x./ _.s.M.P.P.P.P.P...", +"= . . . . . . . . T F.x.y.h.F.P.P.P.N.c r.r.r.r.o.F a.5.5.4.J.P.P.P.K.h.d.4.J.k.b.P.P.P.P.P.P...", +"= - - - - - - - - p ~ x.P.P.P.P.P.P.P.A N r.r.r.5.r.r.r.r.A d.P.m.g.4.z.U.).).P.o.P.P.P.P.P.P.#.", +"_._._._._._._._._._.[ P.P.P.P.P.P.P.P.m.N r.r.r.r.r.r.F r.F S D a.N.(.).).).).).o.B.P.P.P.P.P...", +"_._._._._._._._._._.Y G.P.P.P.P.P.P.P.P.S F r.r.r.r.r.D S Z ^ l.).).).).).).).).S.s.P.P.P.P.P...", +"_._._._._._._._._._._.#.P.P.P.P.P.P.P.P.l.Z r.r.5.S Z o.l.K.m.o.).).).).).).).).(./ P.P.P.P.P...", +"_._._._._._._._._._._.` K.P.P.P.P.P.P.P.P.Z A Z Z s.M.P.P.P.P./ P.).).).).).).).).n.h.P.P.P.L.' ", +"_._._._._._._._._._._._.;.P.P.P.P.P.P.P.l.W ^ k.K.P.P.P.P.P.P.l.l.).).).).).).).).T.^ P.Z...` _.", +"_._._._._._._._._._._._.` P.P.P.P.S.s.m j @ S P.P.P.P.P.P.P.P.P.^ T.).).).).).).).)..._ _._._._.", +"_._._._._._._._._._._._._.:.P.n.o.x e + o o j v.P.P.P.P.P.P.P.P.k.n.).).).).).E.-.] _._._._._._.", +"_._._._._._._._._._._._._.` Z j @ o o o o o + / P.P.P.P.P.P.P.P.J.^ /.).).H.=._ _._._._._._._._.", +"_._._._._._._._._._._._._.g w o o o o o o o o x M.P.P.P.P.P.P.P.P.s.c.-.] _._._._._._._._._._._.", +"_._._._._._._._._._._._._._.d o o o o o o o O e o.P.P.P.P.P.P.P.;.[ _._._._._._._._._._._._._._.", +"_._._._._._._._._._._._._._.f d d d d d d d d d h ............' _._._._._._._._._._._._._._._._." +}; diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/app-icon.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/app-icon.png new file mode 100644 index 0000000000..169d1d439b Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/app-icon.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/diffusionimaging.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/diffusionimaging.png new file mode 100644 index 0000000000..dd5215d698 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/diffusionimaging.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_dicom.xpm b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_dicom.xpm new file mode 100644 index 0000000000..d35e45238c --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_dicom.xpm @@ -0,0 +1,71 @@ +/* XPM */ +static char *Dicom___[] = { +/* columns rows colors chars-per-pixel */ +"48 48 17 1", +" c #00AAD1", +". c #00A9D2", +"X c #00A8D3", +"o c #00A9D3", +"O c #00AAD2", +"+ c #00ABD2", +"@ c #00AAD3", +"# c #00ABD3", +"$ c #00ACD3", +"% c #00A9D4", +"& c #00A9D5", +"* c #00AAD4", +"= c #00ABD4", +"- c #00AAD5", +"; c #00ABD5", +": c #00ACD4", +"> c None", +/* pixels */ +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>*>>>>>>>>>>>>>>>>>>", +">o@@@@*@>>>>@o>>>>>*Oo*#>>*@%O@o>>>>@@%>>>>>@@>>", +">O@>>>@@@>>>@o>>o.@>>>>>>@O=>>*@#>>>Oo@>>>>+o@o>", +">O@>>>>>#@>>@o>>+@>>>>>>>*->>>>>@o>>@@@>>>>@@@+>", +">O@>>>>>%@>>@o>##>>>>>>>o@>>>>>>*%>>@@@.>>>@-@#>", +">O@>>>>>o@>>@o>@@>>>>>>>=@>>>>>>+@>>O@**>>:@>@@>", +">O@>>>>>@@>>@o>@@>>>>>>>o*>>>>>>#@>>OX>@>>@O>@@>", +">O@>>>>>OO>>@o>@@>>>>>>>#@>>>>>>@O>>@+>@O>@@>o*>", +">O@>>>>>==>>@o>+@>>>>>>>*.>>>>>>@@>>@@> O+@>>#@>", +">O@>>>>*@>>>@o>>@%>>>>>>>O@>>>>#@->>@>>>***>>@*>", +">O#@$=@@&>>>@o>>+@@O*=O>>=@.o #O@>>O@>>>@@>>>@@>", +">O***@->>>>>#->>>>OO@oo>>>>@O+@@>>>;@>>>oO>>>@O>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>", +">>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>>" +}; diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_vesseltreesegmentation.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_vesseltreesegmentation.png new file mode 100644 index 0000000000..825792fe64 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/icon_vesseltreesegmentation.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/mintLogo.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/mintLogo.png new file mode 100644 index 0000000000..377094bb86 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/mintLogo.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/org_mitk_gui_qt_diffusionimagingapp.qrc b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/org_mitk_gui_qt_diffusionimagingapp.qrc new file mode 100644 index 0000000000..086feb2a7e --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/org_mitk_gui_qt_diffusionimagingapp.qrc @@ -0,0 +1,6 @@ + + + app-icon.png + mintLogo.png + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/segmentation.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/segmentation.png new file mode 100644 index 0000000000..0b6181225b Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/segmentation.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/volvis.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/volvis.png new file mode 100644 index 0000000000..37347e5a12 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/volvis.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/QmitkWelcomeScreenView.qrc b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/QmitkWelcomeScreenView.qrc new file mode 100644 index 0000000000..5b5b3284bb --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/QmitkWelcomeScreenView.qrc @@ -0,0 +1,12 @@ + + + style.css + function.js + pics/background.jpg + pics/popup_bttn_close.png + pics/dti.jpg + pics/dti_animated.gif + pics/experimental.png + mitkdiffusionimagingappwelcomeview.html + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/function.js b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/function.js new file mode 100644 index 0000000000..54b297e68d --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/function.js @@ -0,0 +1,263 @@ +// If you want to create a new button you have to add some data (strings) to the following five arrays. +// Make sure that you add your data at the same position in each array. +// The buttons will be generated in order to the array's index. e.g. data at array's index '0' will generate the first button. + +// enter the name of your module here +var moduleNames = new Array("Diffusion Viewer", + "MITK Homepage"); + +// add the MITK-link to your module +var moduleLinks = new Array("mitk://mitk.perspectives/org.mitk.diffusionimagingapp.perspectives.diffusionimagingapp?dataset=/opt/dti-atlas/Fornix/rois_01.mitk", + "http://www.mitk.org"); + +// add the filename of your icon for the module. Place the picture in subdirectory "pics". +// The picture's width should be 136 pixel; the height 123 pixel. +var picFilenames = new Array("dti.jpg", + "dti.jpg"); + +// if you want to create an animated icon, add the name of your animated gif (placed in subdirectory "pics"). Otherwise enter an empty string "". +// The animation's width should be 136 pixel; the height 123 pixel. +var aniFilenames = new Array("dti_animated.gif", + "dti_animated.gif"); + +// if your module is not stable, you can mark it as experimental. +// just set true for experimental or false for stable. +var experimental = new Array(false, + false); + +// add the description for your module. The description is displayed in a PopUp-window. +var moduleDescriptions = new Array("View and navigate through the datasets of the Springer DTI Atlas", + "Download current Diffusion Application from mitk.org"); + +var bttns = new Array(); + +var d = document, da = d.all; + +// holds id of current mouseover-HTML-element +var currentTarget; + +// get the id of current mouseover-HTML-element +d.onmouseover = function(o){ + var e = da ? event.srcElement : o.target; + currentTarget = e.id; +} + + +// build-function called by onload-event in HTML-document +function createButtons(){ + + for (i=0; i < moduleNames.length; i++){ + bttns[i] = new Button(moduleNames[i],moduleLinks[i], picFilenames[i], aniFilenames[i],moduleDescriptions[i]); + bttns[i].createButton(); + } + + for (i=0; i < moduleNames.length; i++){ + + if(experimental[i]){ + setExperimental(i); + } + } + + createClearFloat(); +} + +// Class Button +function Button(moduleName, moduleLink, picFilename, aniFilename, moduleDescr){ + + // Properties + this.bttnID = "bttn" + moduleName; + this.modName = moduleName; + this.modLink = moduleLink; + this.picPath = "pics/" + picFilename; + this.aniPath = "pics/" + aniFilename; + this.modDescr = moduleDescr; + + // Methods + this.createButton = function(){ + + // get DIV-wrapper for Button and append it to HTML-document + bttnWrapper = this.createWrapper(); + document.getElementById("bttnField").appendChild(bttnWrapper); + + // get link-element for picture and append it to DIV-wrapper + bttnPicLink = this.createPicLink(); + bttnWrapper.appendChild(bttnPicLink); + + // set HTML attributes for button-element + bttn = document.createElement("img"); + bttn.src = this.picPath; + bttn.id = this.bttnID; + bttn.className = "modBttn"; + bttn.height = 123; + bttn.width = 136; + bttn.onmouseover = function(){startAni(this.id);}; + bttn.onmouseout = function(){stopAni(this.id);}; + + // append button to link-element + bttnPicLink.appendChild(bttn); + + // create text-link and add it to DIV-wrapper + bttnTxtLink = document.createElement("a"); + bttnTxtLink.href = this.modLink; + bttnTxtLink.className = "txtLink"; + bttnTxtLink.appendChild(document.createTextNode(this.modName)); + bttnWrapper.appendChild(bttnTxtLink); + + // create pop-up link for module description + bttnPopUpLink = document.createElement("a"); + modName = this.modName; + modDescr = this.modDescr; + bttnPopUpLink.onclick = function(){showPopUpWindow();}; + bttnPopUpLink.className = "popUpLink"; + bttnPopUpLink.id = "popup" + this.modName; + bttnPopUpLink.appendChild(document.createTextNode("more info >>")); + bttnWrapper.appendChild(document.createElement("br")); + bttnWrapper.appendChild(bttnPopUpLink); + + return bttn; + } + + this.createWrapper = function(){ + bttnWrapper = document.createElement("div"); + bttnWrapper.id = "wrapper" + this.modName; + bttnWrapper.className = "bttnWrap"; + + return bttnWrapper; + } + + this.createPicLink = function(){ + picLink = document.createElement("a"); + picLink.href = this.modLink; + picLink.id = "link" + this.modName; + + return picLink; + } + +} + + +function showPopUpWindow(){ + + // modules position in array? + modulePos = getPos(currentTarget,"popup"); + + // get reference to anchor-element in HTML-document + popUpAnchor = document.getElementById("popupAnchor"); + + // check if a popUp is open + if(popUpAnchor.hasChildNodes()){ + // if a popUp is open, remove it! + popUpAnchor.removeChild(document.getElementById("popup")); + } + + // create new container for popUp + container = document.createElement("div"); + container.id = "popup"; + container.align = "right"; + + // append popUp-container to HTML-document + popUpAnchor.appendChild(container); + + // create close-button and append it to popUp-container + bttnClose = document.createElement("img"); + bttnClose.src = "pics/popup_bttn_close.png"; + bttnClose.id = "bttnClose"; + bttnClose.onclick = function(){closeInfoWindow();}; + container.appendChild(bttnClose); + + // create container for content-elements + contHeadline = document.createElement("div"); + contHeadline.id = "contHeadline"; + contDescription = document.createElement("div"); + contDescription.id = "contDescription"; + contModLink = document.createElement("div"); + contModLink.id = "contModLink"; + + // append content-container to popUp-container + container.appendChild(contHeadline); + container.appendChild(contDescription); + container.appendChild(contModLink); + + // create text-elements with content + headline = document.createTextNode(moduleNames[modulePos] + " Module"); + description = document.createTextNode(moduleDescriptions[modulePos]); + moduleLink = document.createElement("a"); + moduleLink.href = moduleLinks[modulePos] ; + moduleLink.className = 'moduleLink'; + moduleLinkTxt = document.createTextNode("Click here to enter the " + moduleNames[modulePos].toLowerCase() + " mode"); + moduleLink.appendChild(moduleLinkTxt); + + // append text-elements to their container + contHeadline.appendChild(headline); + contDescription.appendChild(description); + contModLink.appendChild(moduleLink); +} + +function getPos(id,prefix){ + + if(prefix == "popup"){ + targetID = id.slice(5); + }else{ + if(prefix == "bttn"){ + targetID = id.slice(4); + } + } + + for(i=0; i < moduleNames.length; i++ ){ + if(moduleNames[i] == targetID){ + return i; + } + } +} + +function setExperimental(modPos){ + linkID = "link" + moduleNames[modPos]; + + expPic = document.createElement("img"); + expPic.src = "pics/experimental.png"; + expPic.className = "expPic"; + //alert(bttns[modPos].bttnID); + expPic.onmouseover = function(){startAni(bttns[modPos].bttnID);changeToHover(bttns[modPos].bttnID);}; + expPic.onmouseout = function(){stopAni(bttns[modPos].bttnID);changeToNormal(bttns[modPos].bttnID);}; + + document.getElementById(linkID).appendChild(expPic); +} + +function changeToHover(targetId){ + bttn = document.getElementById(targetId); + bttn.className = "modBttnHover"; +} + +function changeToNormal(targetId){ + bttn = document.getElementById(targetId); + bttn.className = "modBttn"; +} + +// function to close PopUp-window +function closeInfoWindow(){ + popUpAnchor = document.getElementById("popupAnchor"); + popUpAnchor.removeChild(document.getElementById("popup")); +} + +function createClearFloat(){ + cf = document.createElement("div"); + cf.className = "clearfloat"; + document.getElementById("bttnField").appendChild(cf); +} + +startAni = function(targetId){ + modulePos = getPos(targetId,"bttn"); + + if(aniFilenames[modulePos] != ''){ + bttn = document.getElementById(targetId); + bttn.src = "pics/" + aniFilenames[modulePos]; + } +} + +stopAni = function(targetId){ + modulePos = getPos(targetId,"bttn"); + + bttn = document.getElementById(targetId); + bttn.src = "pics/" + picFilenames[modulePos]; +} + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/mitkdiffusionimagingappwelcomeview.html b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/mitkdiffusionimagingappwelcomeview.html new file mode 100644 index 0000000000..5586dba0f4 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/mitkdiffusionimagingappwelcomeview.html @@ -0,0 +1,36 @@ + + + + + + Springer DTI Atlas - MITK Diffusion Imaging App + + + + + + +
+ + +
+ +

Welcome to the MITK Diffusion Imaging App!

+ + +
+ +
+ This viewer will allow you to view and navigate through all datasets shown in the Springer DTI Atlas. The application was developed by the German Cancer Research Center (DKFZ) on the basis of the well established, free open source software toolkit MITK, which comes with a huge appliance repository, putting over 20 years of experience and research work at your command. +
+ +
+ + +
+ +
+ +
+ + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/background.jpg b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/background.jpg new file mode 100644 index 0000000000..c93f36df92 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/background.jpg differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti.jpg b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti.jpg new file mode 100644 index 0000000000..2a368ea235 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti.jpg differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti_animated.gif b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti_animated.gif new file mode 100644 index 0000000000..dcfd99498d Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/dti_animated.gif differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/experimental.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/experimental.png new file mode 100644 index 0000000000..b05093ea2e Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/experimental.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg.png new file mode 100644 index 0000000000..9fef73a742 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_bottom.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_bottom.png new file mode 100644 index 0000000000..f181fb97e2 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_bottom.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_middle.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_middle.png new file mode 100644 index 0000000000..fd477da298 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_middle.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_top.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_top.png new file mode 100644 index 0000000000..99424cbbb7 Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bg_top.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bttn_close.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bttn_close.png new file mode 100644 index 0000000000..279e340beb Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/popup_bttn_close.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/shadow.png b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/shadow.png new file mode 100644 index 0000000000..83eda7b89e Binary files /dev/null and b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/pics/shadow.png differ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/style.css b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/style.css new file mode 100644 index 0000000000..edc5605bb4 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/resources/welcome/style.css @@ -0,0 +1,174 @@ +@charset "utf-8"; + +body{ + margin:0px 0px; + padding: 0px 0px; +} + +h1{ + margin:0px 0px; + padding: 0px 0px; + font-family:"Times New Roman", Times, serif; + color:#333; +} + +img{border:none;} + +#screen{ + width:100%; + min-height:1060px; + height:100%; + padding-top:15px; + background-color:#888888; + background-image:url(pics/background.jpg); + background-repeat:repeat-x; +} + +#welcome{ + min-width:150px; + max-width:690px; + margin: 0 auto; + padding-left:5px; + font-family:"Times New Roman", Times, serif; + color:#333; +} + +#welcomeText{ + margin-top:15px; + margin-bottom:15px; + z-index:1; +} + +#bttnField{ + min-width:150px; + max-width:690px; + margin: 0 auto; + padding-left:5px; +} + +.bttnWrap{ + position:relative; + float:left; + width:140px; + height:190px; + margin-right:32px; + margin-top:5px; + z-index:2; +} + +.modBttn{ + margin-bottom:8px; + border: solid 2px #000; + -webkit-box-shadow: 5px 5px 6px rgba(0,0,0,0.6); +} + +.modBttn:hover{ + border: solid 2px #FFF; + cursor:pointer; + -webkit-box-shadow: none; +} + +.modBttnHover{ + margin-bottom:8px; + border: solid 2px #FFF; + cursor:pointer; + -webkit-box-shadow: none; +} + +.txtLink{ + font-family:"Times New Roman", Times, serif; + font-size:16px; + font-weight:bold; + text-decoration:none; + cursor:pointer; + color:#333; +} + +.txtLink:hover{ + text-decoration:underline; +} + +.popUpLink{ + font-family:"Times New Roman", Times, serif; + font-size:14px; + font-weight:normal; + line-height:16px; + color:#333; +} + +.popUpLink:hover{ + text-decoration:underline; + cursor:pointer; +} + +#popup{ + position:fixed; + max-width:690px; + min-width:150px; + background-color:#000000; + opacity: 0.8; + -webkit-border-radius: 1em; + z-index:3; + font-family:Arial, Helvetica, sans-serif; + color:#FFF; +} + +#bttnClose{ + position:relative; + right:10px; + top:10px; + cursor:pointer; +} + +#contHeadline{ + max-width:690px; + min-width:150px; + margin-left:10px; + margin-right:10px; + font-weight:bold; + font-size:14px; + text-align:left; +} + +#contDescription{ + max-width:690px; + min-width:150px; + margin-top:15px; + margin-bottom:15px; + margin-left:10px; + margin-right:10px; + line-height:21px; + font-family:Arial, Helvetica, sans-serif; + font-weight:normal; + font-size:14px; + text-align:left; +} + +#contModLink{ + max-width:690px; + min-width:150px; + height:50px; + margin-left:10px; + margin-right:10px; + text-align:left; +} + +.moduleLink{ + font-family:Arial, Helvetica, sans-serif; + color:#FFF; +} + +.expPic{ + margin-top:-126px; +} + +.clearfloat{clear:both;} + + + + + + + + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.cpp new file mode 100644 index 0000000000..fb0987da02 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.cpp @@ -0,0 +1,38 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +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 "QmitkDiffusionImagingAppApplication.h" + +#include + +#include "QmitkDiffusionImagingAppWorkbenchAdvisor.h" + +int QmitkDiffusionImagingAppApplication::Start() +{ + berry::Display* display = berry::PlatformUI::CreateDisplay(); + + int code = berry::PlatformUI::CreateAndRunWorkbench(display, new QmitkDiffusionImagingAppWorkbenchAdvisor()); + + // exit the application with an appropriate return code + return code == berry::PlatformUI::RETURN_RESTART + ? EXIT_RESTART : EXIT_OK; +} + +void QmitkDiffusionImagingAppApplication::Stop() +{ + +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.h new file mode 100644 index 0000000000..89d15a0bdb --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppApplication.h @@ -0,0 +1,42 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +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 QMITKDiffusionImagingAppAPPLICATION_H_ +#define QMITKDiffusionImagingAppAPPLICATION_H_ + +#include + +class QmitkDiffusionImagingAppApplication : public QObject, public berry::IApplication +{ + Q_OBJECT + Q_INTERFACES(berry::IApplication) + +public: + + QmitkDiffusionImagingAppApplication() {} + QmitkDiffusionImagingAppApplication(const QmitkDiffusionImagingAppApplication& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkDiffusionImagingAppApplication() {} + + int Start(); + void Stop(); +}; + +#endif /*QMITKDiffusionImagingAppAPPLICATION_H_*/ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.cpp new file mode 100644 index 0000000000..19a6cf319b --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.cpp @@ -0,0 +1,99 @@ +/*========================================================================= + + Program: BlueBerry Platform + Language: C++ + Date: $Date: 2009-10-23 02:59:36 +0200 (Fri, 23 Oct 2009) $ + 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 "QmitkDiffusionImagingAppWorkbenchAdvisor.h" + +#include "internal/QmitkDiffusionImagingAppApplicationPlugin.h" + +#include +#include +#include +#include +#include + +#include + +const std::string QmitkDiffusionImagingAppWorkbenchAdvisor::WELCOME_PERSPECTIVE_ID = "org.mitk.diffusionimagingapp.perspectives.welcome"; + + +void +QmitkDiffusionImagingAppWorkbenchAdvisor::Initialize(berry::IWorkbenchConfigurer::Pointer configurer) +{ + berry::QtWorkbenchAdvisor::Initialize(configurer); + + configurer->SetSaveAndRestore(true); + + // TODO This should go into the products plugin_customization.ini file (when + // the product and branding support is finished, see bug 2146). + // This will not work anymore, if bug 2822 is fixed. + berry::IPreferencesService::Pointer prefService = berry::Platform::GetServiceRegistry().GetServiceById(berry::IPreferencesService::ID); + prefService->GetSystemPreferences()->Put(berry::WorkbenchPreferenceConstants::PREFERRED_SASH_LAYOUT, berry::WorkbenchPreferenceConstants::RIGHT); + + QString collectionFile = QmitkDiffusionImagingAppApplicationPlugin::GetDefault()->GetQtHelpCollectionFile(); + if (!collectionFile.isEmpty()) + { +// berry::QtAssistantUtil::SetHelpCollectionFile(collectionFile); +// berry::QtAssistantUtil::SetDefaultHelpUrl("qthelp://org.mitk.gui.qt.diffusionimagingapp/bundle/index.html"); + + typedef std::vector BundleContainer; + BundleContainer bundles = berry::Platform::GetBundles(); + berry::QtAssistantUtil::RegisterQCHFiles(bundles); + } + +} + +berry::WorkbenchWindowAdvisor* +QmitkDiffusionImagingAppWorkbenchAdvisor::CreateWorkbenchWindowAdvisor( + berry::IWorkbenchWindowConfigurer::Pointer configurer) +{ + std::vector perspExcludeList; + perspExcludeList.push_back( std::string("org.mitk.diffusionimagingapp.perspectives.welcome") ); + perspExcludeList.push_back( std::string("org.mitk.perspectives.diffusionimaginginternal") ); + perspExcludeList.push_back( std::string("org.mitk.perspectives.publicdiffusionimaging") ); + perspExcludeList.push_back( std::string("org.mitk.extapp.defaultperspective") ); + perspExcludeList.push_back( std::string("org.mitk.coreapp.defaultperspective") ); + + std::vector viewExcludeList; + viewExcludeList.push_back( std::string("org.mitk.views.partialvolumeanalysis") ); + viewExcludeList.push_back( std::string("org.mitk.views.globalfibertracking") ); + viewExcludeList.push_back( std::string("org.mitk.views.tractbasedspatialstatistics") ); + viewExcludeList.push_back( std::string("org.mitk.views.fibertracking") ); + viewExcludeList.push_back( std::string("org.mitk.views.ivim") ); + viewExcludeList.push_back( std::string("org.mitk.views.qballreconstruction") ); + viewExcludeList.push_back( std::string("org.mitk.views.diffusiondicomimport") ); + viewExcludeList.push_back( std::string("org.mitk.views.diffusionpreprocessing") ); + viewExcludeList.push_back( std::string("org.mitk.views.diffusionquantification") ); + viewExcludeList.push_back( std::string("org.mitk.views.tensorreconstruction") ); + viewExcludeList.push_back( std::string("org.mitk.views.perspectiveswitcher") ); + + configurer->SetShowPerspectiveBar(false); + configurer->SetInitialSize(berry::Point(1000,770)); + + QmitkExtWorkbenchWindowAdvisor* advisor = new QmitkExtWorkbenchWindowAdvisor(this, configurer); + advisor->SetPerspectiveExcludeList(perspExcludeList); + advisor->SetViewExcludeList(viewExcludeList); + advisor->ShowViewToolbar(false); + advisor->ShowVersionInfo(false); + advisor->SetProductName("MITK Diffusioin Imaging App"); + advisor->SetWindowIcon(":/org.mitk.gui.qt.diffusionimagingapp/app-icon.png"); + return advisor; +} + +std::string QmitkDiffusionImagingAppWorkbenchAdvisor::GetInitialWindowPerspectiveId() +{ + return WELCOME_PERSPECTIVE_ID; +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.h new file mode 100644 index 0000000000..a166b59cef --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/QmitkDiffusionImagingAppWorkbenchAdvisor.h @@ -0,0 +1,40 @@ +/*========================================================================= + + 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 QMITKDIFFUSIONIMAGINGAPPWORKBENCHADVISOR_H_ +#define QMITKDIFFUSIONIMAGINGAPPWORKBENCHADVISOR_H_ + +#include + +class QmitkDiffusionImagingAppWorkbenchAdvisor : public berry::QtWorkbenchAdvisor +{ + +public: + + static const std::string WELCOME_PERSPECTIVE_ID; // = "org.mitk.qt.diffusionimagingapp.defaultperspective" + + void Initialize(berry::IWorkbenchConfigurer::Pointer configurer); + + berry::WorkbenchWindowAdvisor* CreateWorkbenchWindowAdvisor( + berry::IWorkbenchWindowConfigurer::Pointer configurer); + + std::string GetInitialWindowPerspectiveId(); + +}; + +#endif /* QMITKDIFFUSIONIMAGINGAPPWORKBENCHADVISOR_H_ */ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplication.h~bug-8511-DTI-atlas-app b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplication.h~bug-8511-DTI-atlas-app new file mode 100644 index 0000000000..8debb63dad --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplication.h~bug-8511-DTI-atlas-app @@ -0,0 +1,41 @@ +/*========================================================================= + +Program: Medical Imaging & Interaction Toolkit +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 QMITKDiffusionImagingAppAPPLICATION_H_ +#define QMITKDiffusionImagingAppAPPLICATION_H_ + +#include + +class QmitkDiffusionImagingAppApplication : public QObject, public berry::IApplication +{ + Q_OBJECT + +public: + + QmitkDiffusionImagingAppApplication() {} + QmitkDiffusionImagingAppApplication(const QmitkDiffusionImagingAppApplication& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkDiffusionImagingAppApplication() {} + + int Start(); + void Stop(); +}; + +#endif /*QMITKDiffusionImagingAppAPPLICATION_H_*/ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.cpp new file mode 100644 index 0000000000..74fb68831a --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.cpp @@ -0,0 +1,122 @@ +/*========================================================================= + + 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 "QmitkDiffusionImagingAppApplicationPlugin.h" +#include +#include +#include + +#include "src/QmitkDiffusionImagingAppApplication.h" + +#include "src/internal/QmitkDiffusionImagingAppIntroPart.h" +#include "src/internal/QmitkDiffusionImagingAppPerspective.h" +#include "src/internal/QmitkWelcomePerspective.h" + +#include +#include + +QmitkDiffusionImagingAppApplicationPlugin* QmitkDiffusionImagingAppApplicationPlugin::inst = 0; + +QmitkDiffusionImagingAppApplicationPlugin::QmitkDiffusionImagingAppApplicationPlugin() + : pluginListener(0) +{ + inst = this; +} + +QmitkDiffusionImagingAppApplicationPlugin::~QmitkDiffusionImagingAppApplicationPlugin() +{ + delete pluginListener; +} + +QmitkDiffusionImagingAppApplicationPlugin* QmitkDiffusionImagingAppApplicationPlugin::GetDefault() +{ + return inst; +} + +void QmitkDiffusionImagingAppApplicationPlugin::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) + +// 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 QmitkDiffusionImagingAppApplicationPlugin::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, QmitkDiffusionImagingAppApplicationPlugin) + + diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.h new file mode 100644 index 0000000000..22babe8d7e --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppApplicationPlugin.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 QmitkDiffusionImagingAppApplicationPlugin : + public QObject, public berry::AbstractUICTKPlugin +{ + Q_OBJECT + Q_INTERFACES(ctkPluginActivator) + +public: + + QmitkDiffusionImagingAppApplicationPlugin(); + ~QmitkDiffusionImagingAppApplicationPlugin(); + + static QmitkDiffusionImagingAppApplicationPlugin* GetDefault(); + + ctkPluginContext* GetPluginContext() const; + + void start(ctkPluginContext*); + + QString GetQtHelpCollectionFile() const; + + private: + + static QmitkDiffusionImagingAppApplicationPlugin* inst; + + ctkPluginContext* context; + berry::QCHPluginListener* pluginListener; + + mutable QString helpCollectionFile; + + +}; // QmitkDiffusionImagingAppApplicationPlugin + +#endif // QMITKDIFFUSIONIMAGINGAPPAPPLICATIONPLUGIN_H_ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.cpp new file mode 100644 index 0000000000..ca6162f731 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.cpp @@ -0,0 +1,282 @@ +/*========================================================================= + + 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 "QmitkDiffusionImagingAppIntroPart.h" + +#include "mitkNodePredicateDataType.h" +#include +#include +#include +#include +#include +#include +#include + +#include + +#include +#include +#include +#ifdef QT_WEBKIT +#include +#include +#endif +#include +#include +#include +#include +#include + + + +#include "QmitkStdMultiWidgetEditor.h" +#include "QmitkDiffusionImagingAppApplicationPlugin.h" +#include "mitkDataStorageEditorInput.h" + +#include "mitkBaseDataIOFactory.h" +#include "mitkSceneIO.h" +#include "mitkProgressBar.h" +#include "mitkDataNodeFactory.h" +#include "mitkNodePredicateNot.h" +#include "mitkNodePredicateProperty.h" + +QmitkDiffusionImagingAppIntroPart::QmitkDiffusionImagingAppIntroPart() + : m_Controls(NULL) +{ + berry::IPreferences::Pointer workbenchPrefs = QmitkDiffusionImagingAppApplicationPlugin::GetDefault()->GetPreferencesService()->GetSystemPreferences(); + workbenchPrefs->PutBool(berry::WorkbenchPreferenceConstants::SHOW_INTRO, true); + workbenchPrefs->Flush(); +} + +QmitkDiffusionImagingAppIntroPart::~QmitkDiffusionImagingAppIntroPart() +{ + // if the workbench is not closing (that means, welcome screen was closed explicitly), set "Show_intro" false + if (!this->GetIntroSite()->GetPage()->GetWorkbenchWindow()->GetWorkbench()->IsClosing()) + { + berry::IPreferences::Pointer workbenchPrefs = QmitkDiffusionImagingAppApplicationPlugin::GetDefault()->GetPreferencesService()->GetSystemPreferences(); + workbenchPrefs->PutBool(berry::WorkbenchPreferenceConstants::SHOW_INTRO, false); + workbenchPrefs->Flush(); + } + else + { + berry::IPreferences::Pointer workbenchPrefs = QmitkDiffusionImagingAppApplicationPlugin::GetDefault()->GetPreferencesService()->GetSystemPreferences(); + workbenchPrefs->PutBool(berry::WorkbenchPreferenceConstants::SHOW_INTRO, true); + workbenchPrefs->Flush(); + } + + // if workbench is not closing (Just welcome screen closing), open last used perspective + if (this->GetIntroSite()->GetPage()->GetPerspective()->GetId() + == "org.mitk.diffusionimagingapp.perspectives.welcome" && !this->GetIntroSite()->GetPage()->GetWorkbenchWindow()->GetWorkbench()->IsClosing()) + { + berry::IPerspectiveDescriptor::Pointer perspective = this->GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->GetPerspectiveRegistry()->FindPerspectiveWithId("org.mitk.diffusionimagingapp.perspectives.diffusionimagingapp"); + if (perspective) + { + this->GetIntroSite()->GetPage()->SetPerspective(perspective); + } + } + +} + + +void QmitkDiffusionImagingAppIntroPart::CreateQtPartControl(QWidget* parent) +{ + if (!m_Controls) + { + // create GUI widgets + m_Controls = new Ui::QmitkWelcomeScreenViewControls; + m_Controls->setupUi(parent); +#ifdef QT_WEBKIT + + // create a QWebView as well as a QWebPage and QWebFrame within the QWebview + m_view = new QWebView(parent); + m_view->page()->setLinkDelegationPolicy(QWebPage::DelegateAllLinks); + + QUrl urlQtResource(QString("qrc:/org.mitk.gui.qt.welcomescreen/mitkdiffusionimagingappwelcomeview.html"), QUrl::TolerantMode ); + m_view->load( urlQtResource ); + + // adds the webview as a widget + parent->layout()->addWidget(m_view); + this->CreateConnections(); +#else + parent->layout()->addWidget(new QLabel("

Please install Qt with the WebKit option to see cool pictures!

")); +#endif + } +} + +#ifdef QT_WEBKIT +void QmitkDiffusionImagingAppIntroPart::CreateConnections() +{ + if ( m_Controls ) + { + connect( (QObject*)(m_view->page()), SIGNAL(linkClicked(const QUrl& )), this, SLOT(DelegateMeTo(const QUrl& )) ); + } +} + + +void QmitkDiffusionImagingAppIntroPart::DelegateMeTo(const QUrl& showMeNext) +{ + QString scheme = showMeNext.scheme(); + QByteArray urlHostname = showMeNext.encodedHost(); + QByteArray urlPath = showMeNext.encodedPath(); + QByteArray dataset = showMeNext.encodedQueryItemValue("dataset"); + + if (scheme.isEmpty()) MITK_INFO << " empty scheme of the to be delegated link" ; + + // if the scheme is set to mitk, it is to be tested which action should be applied + if (scheme.contains(QString("mitk")) ) + { + if(urlPath.isEmpty() ) MITK_INFO << " mitk path is empty " ; + + // searching for the perspective keyword within the host name + if(urlHostname.contains(QByteArray("perspectives")) ) + { + // the simplified method removes every whitespace + // ( whitespace means any character for which the standard C++ isspace() method returns true) + urlPath = urlPath.simplified(); + QString tmpPerspectiveId(urlPath.data()); + tmpPerspectiveId.replace(QString("/"), QString("") ); + std::string perspectiveId = tmpPerspectiveId.toStdString(); + + // is working fine as long as the perspective id is valid, if not the application crashes + GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() ); + + mitk::DataStorageEditorInput::Pointer editorInput; + editorInput = new mitk::DataStorageEditorInput(); + berry::IEditorPart::Pointer editor = GetIntroSite()->GetPage()->OpenEditor(editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID); + + + QmitkStdMultiWidgetEditor::Pointer multiWidgetEditor; + mitk::DataStorage::Pointer dataStorage; + + if (editor.Cast().IsNull()) + { + editorInput = new mitk::DataStorageEditorInput(); + dataStorage = editorInput->GetDataStorageReference()->GetDataStorage(); + } + else + { + multiWidgetEditor = editor.Cast(); + multiWidgetEditor->GetStdMultiWidget()->RequestUpdate(); + dataStorage = multiWidgetEditor->GetEditorInput().Cast()->GetDataStorageReference()->GetDataStorage(); + } + + bool dsmodified = false; + + QString *fileName = new QString(dataset.data()); + + if ( fileName->right(5) == ".mitk" ) + { + mitk::SceneIO::Pointer sceneIO = mitk::SceneIO::New(); + + bool clearDataStorageFirst(false); + mitk::ProgressBar::GetInstance()->AddStepsToDo(2); + dataStorage = sceneIO->LoadScene( fileName->toLocal8Bit().constData(), dataStorage, clearDataStorageFirst ); + dsmodified = true; + mitk::ProgressBar::GetInstance()->Progress(2); + } + else + { + mitk::DataNodeFactory::Pointer nodeReader = mitk::DataNodeFactory::New(); + try + { + nodeReader->SetFileName(fileName->toLocal8Bit().data()); + nodeReader->Update(); + for ( unsigned int i = 0 ; i < nodeReader->GetNumberOfOutputs( ); ++i ) + { + mitk::DataNode::Pointer node; + node = nodeReader->GetOutput(i); + if ( node->GetData() != NULL ) + { + dataStorage->Add(node); + dsmodified = true; + } + } + } + catch(...) + { + + } + } + + + + if(dsmodified) + { + // get all nodes that have not set "includeInBoundingBox" to false + mitk::NodePredicateNot::Pointer pred + = mitk::NodePredicateNot::New(mitk::NodePredicateProperty::New("includeInBoundingBox" + , mitk::BoolProperty::New(false))); + + mitk::DataStorage::SetOfObjects::ConstPointer rs = dataStorage->GetSubset(pred); + // calculate bounding geometry of these nodes + mitk::TimeSlicedGeometry::Pointer bounds = dataStorage->ComputeBoundingGeometry3D(rs); + // initialize the views to the bounding geometry + mitk::RenderingManager::GetInstance()->InitializeViews(bounds); + } + + + + + + } + // searching for the load + if(urlHostname.contains(QByteArray("perspectives")) ) + { + // the simplified method removes every whitespace + // ( whitespace means any character for which the standard C++ isspace() method returns true) + urlPath = urlPath.simplified(); + QString tmpPerspectiveId(urlPath.data()); + tmpPerspectiveId.replace(QString("/"), QString("") ); + std::string perspectiveId = tmpPerspectiveId.toStdString(); + + // is working fine as long as the perspective id is valid, if not the application crashes + GetIntroSite()->GetWorkbenchWindow()->GetWorkbench()->ShowPerspective(perspectiveId, GetIntroSite()->GetWorkbenchWindow() ); + + mitk::DataStorageEditorInput::Pointer editorInput; + editorInput = new mitk::DataStorageEditorInput(); + GetIntroSite()->GetPage()->OpenEditor(editorInput, QmitkStdMultiWidgetEditor::EDITOR_ID); + } + else + { + MITK_INFO << "Unkown mitk action keyword (see documentation for mitk links)" ; + } + } + // if the scheme is set to http, by default no action is performed, if an external webpage needs to be + // shown it should be implemented below + else if (scheme.contains(QString("http")) ) + { + m_view->load(showMeNext ) ; + } + else if(scheme.contains("qrc")) + { + m_view->load(showMeNext); + } + +} + +#endif + +void QmitkDiffusionImagingAppIntroPart::StandbyStateChanged(bool standby) +{ + +} + + +void QmitkDiffusionImagingAppIntroPart::SetFocus() +{ + +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.h new file mode 100644 index 0000000000..b49accd2c4 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppIntroPart.h @@ -0,0 +1,95 @@ +/*========================================================================= + + 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 QMITKDIFFUSIONIMAGINGAPPINTROPART_H_ +#define QMITKDIFFUSIONIMAGINGAPPINTROPART_H_ + +#include + +#include +#include + + +/** + * \ingroup org_mitk_gui_qt_welcomescreen_internal + * \brief QmitkWelcomeScreenView + * The WelcomeView Module is an helpful feature to people new to MITK. The main idea is to provide first + * information about the particular working modes of the 3 M-3 application suited to specific medical working task. + * Links to external documentation or information pages such as the mitk.org homepage are thinkable but have + * not been implemented yet. The WelcomeView is realized by making use of the QTWebKit Module. The Qt WebKit module + * provides an HTML browser engine that makes it easy to embed web content into native applications, and to enhance + * web content with native controls. + * For the welcome view of the application the QWebView, QWebPage classes have been used. The shown WelcomeView + * html start page is styled by an external css stylesheet. The required resources as well as the html pages are integrated + * into the QtResource system. The QT resource system allows the storage of files like html pages, css pages, jpgs etc. + * as binaries within the executable. + * This minimizes the risk of loosing resource files as well as the risk of getting files deleted. In order to use the Qt + * resource system the resource files have to be added to the associated qrt resource file list. + * Due to time issues the html pages of the welcome view do make use of jpegs with hotspots to switch + * into the particular working modes. < + * Nevertheless the foundation is set to design more complex html pages. The Q::WebPage gives options to set a + * LinkDelegationPolicy. The used policy defines how links to external or internal resources are handled. To fit our needs + * the delegate all links policy is used. This requires all external as well as internal links of the html pages to be handle + * explicitly. In order to change mitk working modes (perspectives) a mitk url scheme has been designed. The url scheme + * is set to mitk. The url host provides information about what's next to do. In our case, the case of switching to a + * particular working mode the host is set to perspectives. The followed path provides information about the perspective id. + * (e.g. mitk//::mitk.perspectives/org.mitk.qt.defaultperspective) The the generic design of the mitk url scheme allows to * execute other task depending on the mitk url host. + * \sa QmitkWelcomePage Editor + */ + +class QWebView ; + +class QmitkDiffusionImagingAppIntroPart : public berry::QtIntroPart +{ + +// this is needed for all Qt objects that should have a MOC object (everything that derives from QObject) + Q_OBJECT + +public: + + QmitkDiffusionImagingAppIntroPart(); + QmitkDiffusionImagingAppIntroPart(const QmitkDiffusionImagingAppIntroPart& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkDiffusionImagingAppIntroPart(); + + + virtual void CreateQtPartControl(QWidget *parent); + + void StandbyStateChanged(bool standby); + + void SetFocus(); +#ifdef QT_WEBKIT + + virtual void CreateConnections(); + + +protected slots: + + + void DelegateMeTo(const QUrl& ShowMeNext); +#endif +protected: + + Ui::QmitkWelcomeScreenViewControls* m_Controls; + QWebView* m_view; +}; + +#endif /* QMITKDIFFUSIONIMAGINGAPPINTROPART_H_ */ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.cpp new file mode 100644 index 0000000000..9b0facb860 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.cpp @@ -0,0 +1,86 @@ +/*========================================================================= + + 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 "QmitkDiffusionImagingAppPerspective.h" +#include "berryIViewLayout.h" + +void QmitkDiffusionImagingAppPerspective::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.diffusionimaginginternal.leftcontrols", + berry::IPageLayout::BOTTOM, 0.2f, "org.mitk.views.controlvisualizationpropertiesview"); + +// layout->AddStandaloneView("org.mitk.views.perspectiveswitcher", +// false, berry::IPageLayout::BOTTOM, 0.99f, "org.mitk.diffusionimaginginternal.leftcontrols"); + + //////////////////////////////////////// + // public views go here + //////////////////////////////////////// + left->AddView("org.mitk.views.fiberbundleoperations"); + berry::IViewLayout::Pointer lo = layout->GetViewLayout("org.mitk.views.fiberbundleoperations"); + lo->SetCloseable(false); + +// left->AddView("org.mitk.views.diffusionpreprocessing"); +// berry::IViewLayout::Pointer lo = layout->GetViewLayout("org.mitk.views.diffusionpreprocessing"); +// lo->SetCloseable(true); + +// left->AddView("org.mitk.views.tensorreconstruction"); +// lo = layout->GetViewLayout("org.mitk.views.tensorreconstruction"); +// lo->SetCloseable(true); + +// left->AddView("org.mitk.views.qballreconstruction"); +// lo = layout->GetViewLayout("org.mitk.views.qballreconstruction"); +// lo->SetCloseable(true); + +// left->AddView("org.mitk.views.diffusionquantification"); +// lo = layout->GetViewLayout("org.mitk.views.diffusionquantification"); +// lo->SetCloseable(true); + +// left->AddView("org.mitk.views.diffusiondicomimport"); +// lo = layout->GetViewLayout("org.mitk.views.diffusiondicomimport"); +// lo->SetCloseable(true); + + //////////////////////////////////////// + // end public views + //////////////////////////////////////// + + +// berry::IFolderLayout::Pointer right = +// layout->CreateFolder("org.mitk.diffusionimaginginternal.rightcontrols", berry::IPageLayout::RIGHT, 0.5f, editorArea); + + //////////////////////////////////////// + // internal views go here + //////////////////////////////////////// +// right->AddView("org.mitk.views.globalfibertracking"); +// right->AddView("org.mitk.views.partialvolumeanalysis"); +// right->AddView("org.mitk.views.ivim"); +// right->AddView("org.mitk.views.tractbasedspatialstatistics"); +// right->AddView("org.mitk.views.fibertracking"); + + //////////////////////////////////////// + // end internal views + //////////////////////////////////////// + +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.h new file mode 100644 index 0000000000..0bbb807407 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkDiffusionImagingAppPerspective.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 QMITKDIFFUSIONIMAGINGAPPPERSPECTIVE_H_ +#define QMITKDIFFUSIONIMAGINGAPPPERSPECTIVE_H_ + +#include + +class QmitkDiffusionImagingAppPerspective : public QObject, public berry::IPerspectiveFactory +{ + Q_OBJECT + Q_INTERFACES(berry::IPerspectiveFactory) + +public: + + QmitkDiffusionImagingAppPerspective() {} + QmitkDiffusionImagingAppPerspective(const QmitkDiffusionImagingAppPerspective& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkDiffusionImagingAppPerspective() {} + + void CreateInitialLayout(berry::IPageLayout::Pointer layout); +}; + +#endif /* QMITKDIFFUSIONIMAGINGAPPPERSPECTIVE_H_ */ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.cpp b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.cpp new file mode 100644 index 0000000000..6a59624ce5 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.cpp @@ -0,0 +1,22 @@ +/*========================================================================= + + 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 "QmitkWelcomePerspective.h" + +void QmitkWelcomePerspective::CreateInitialLayout(berry::IPageLayout::Pointer /*layout*/) +{ +} diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.h b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.h new file mode 100644 index 0000000000..2239700630 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomePerspective.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 QMITKWelcomePERSPECTIVE_H_ +#define QMITKWelcomePERSPECTIVE_H_ + +#include + +class QmitkWelcomePerspective : public QObject, public berry::IPerspectiveFactory +{ + Q_OBJECT + Q_INTERFACES(berry::IPerspectiveFactory) + +public: + + QmitkWelcomePerspective() {} + QmitkWelcomePerspective(const QmitkWelcomePerspective& other) + { + Q_UNUSED(other) + throw std::runtime_error("Copy constructor not implemented"); + } + ~QmitkWelcomePerspective() {} + + void CreateInitialLayout(berry::IPageLayout::Pointer /*layout*/); +}; + +#endif /* QMITKWelcomePERSPECTIVE_H_ */ diff --git a/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomeScreenViewControls.ui b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomeScreenViewControls.ui new file mode 100644 index 0000000000..4a7cda1314 --- /dev/null +++ b/Modules/Bundles/org.mitk.gui.qt.diffusionimagingapp/src/internal/QmitkWelcomeScreenViewControls.ui @@ -0,0 +1,34 @@ + + + QmitkWelcomeScreenViewControls + + + + 0 + 0 + 458 + 398 + + + + + 0 + 0 + + + + QmitkTemplate + + + + 0 + + + + + + + + + +