diff --git a/Documentation/doxygen.conf.in b/Documentation/doxygen.conf.in
index e51c74f93f..22ac1ad644 100644
--- a/Documentation/doxygen.conf.in
+++ b/Documentation/doxygen.conf.in
@@ -1,2432 +1,2432 @@
 # Doxyfile 1.8.8
 
 # This file describes the settings to be used by the documentation system
 # doxygen (www.doxygen.org) for a project.
 #
 # All text after a double hash (##) is considered a comment and is placed in
 # front of the TAG it is preceding.
 #
 # All text after a single hash (#) is considered a comment and will be ignored.
 # The format is:
 # TAG = value [value, ...]
 # For lists, items can also be appended using:
 # TAG += value [value, ...]
 # Values that contain spaces should be placed between quotes (\" \").
 
 #---------------------------------------------------------------------------
 # Project related configuration options
 #---------------------------------------------------------------------------
 
 # This tag specifies the encoding used for all characters in the config file
 # that follow. The default is UTF-8 which is also the encoding used for all text
 # before the first occurrence of this tag. Doxygen uses libiconv (or the iconv
 # built into libc) for the transcoding. See http://www.gnu.org/software/libiconv
 # for the list of possible encodings.
 # The default value is: UTF-8.
 
 DOXYFILE_ENCODING      = UTF-8
 
 # The PROJECT_NAME tag is a single word (or a sequence of words surrounded by
 # double-quotes, unless you are using Doxywizard) that should identify the
 # project for which the documentation is generated. This name is used in the
 # title of most generated pages and in a few other places.
 # The default value is: My Project.
 
 PROJECT_NAME           = "Medical Imaging Interaction Toolkit"
 
 # The PROJECT_NUMBER tag can be used to enter a project or revision number. This
 # could be handy for archiving the generated documentation or if some version
 # control system is used.
 
 PROJECT_NUMBER         = @MITK_VERSION_STRING@
 
 # Using the PROJECT_BRIEF tag one can provide an optional one line description
 # for a project that appears at the top of each page and should give viewer a
 # quick idea about the purpose of the project. Keep the description short.
 
 PROJECT_BRIEF          = "Medical Imaging Interaction Toolkit"
 
 # With the PROJECT_LOGO tag one can specify an logo or icon that is included in
 # the documentation. The maximum height of the logo should not exceed 55 pixels
 # and the maximum width should not exceed 200 pixels. Doxygen will copy the logo
 # to the output directory.
 
 PROJECT_LOGO           =
 
 # The OUTPUT_DIRECTORY tag is used to specify the (relative or absolute) path
 # into which the generated documentation will be written. If a relative path is
 # entered, it will be relative to the location where doxygen was started. If
 # left blank the current directory will be used.
 
 OUTPUT_DIRECTORY       = "@MITK_DOXYGEN_OUTPUT_DIR@"
 
 # If the CREATE_SUBDIRS tag is set to YES, then doxygen will create 4096 sub-
 # directories (in 2 levels) under the output directory of each output format and
 # will distribute the generated files over these directories. Enabling this
 # option can be useful when feeding doxygen a huge amount of source files, where
 # putting all generated files in the same directory would otherwise causes
 # performance problems for the file system.
 # The default value is: NO.
 
 CREATE_SUBDIRS         = NO
 
 # If the ALLOW_UNICODE_NAMES tag is set to YES, doxygen will allow non-ASCII
 # characters to appear in the names of generated files. If set to NO, non-ASCII
 # characters will be escaped, for example _xE3_x81_x84 will be used for Unicode
 # U+3044.
 # The default value is: NO.
 
 ALLOW_UNICODE_NAMES    = NO
 
 # The OUTPUT_LANGUAGE tag is used to specify the language in which all
 # documentation generated by doxygen is written. Doxygen will use this
 # information to generate all constant output in the proper language.
 # Possible values are: Afrikaans, Arabic, Armenian, Brazilian, Catalan, Chinese,
 # Chinese-Traditional, Croatian, Czech, Danish, Dutch, English (United States),
 # Esperanto, Farsi (Persian), Finnish, French, German, Greek, Hungarian,
 # Indonesian, Italian, Japanese, Japanese-en (Japanese with English messages),
 # Korean, Korean-en (Korean with English messages), Latvian, Lithuanian,
 # Macedonian, Norwegian, Persian (Farsi), Polish, Portuguese, Romanian, Russian,
 # Serbian, Serbian-Cyrillic, Slovak, Slovene, Spanish, Swedish, Turkish,
 # Ukrainian and Vietnamese.
 # The default value is: English.
 
 OUTPUT_LANGUAGE        = English
 
 # If the BRIEF_MEMBER_DESC tag is set to YES doxygen will include brief member
 # descriptions after the members that are listed in the file and class
 # documentation (similar to Javadoc). Set to NO to disable this.
 # The default value is: YES.
 
 BRIEF_MEMBER_DESC      = YES
 
 # If the REPEAT_BRIEF tag is set to YES doxygen will prepend the brief
 # description of a member or function before the detailed description
 #
 # Note: If both HIDE_UNDOC_MEMBERS and BRIEF_MEMBER_DESC are set to NO, the
 # brief descriptions will be completely suppressed.
 # The default value is: YES.
 
 REPEAT_BRIEF           = YES
 
 # This tag implements a quasi-intelligent brief description abbreviator that is
 # used to form the text in various listings. Each string in this list, if found
 # as the leading text of the brief description, will be stripped from the text
 # and the result, after processing the whole list, is used as the annotated
 # text. Otherwise, the brief description is used as-is. If left blank, the
 # following values are used ($name is automatically replaced with the name of
 # the entity):The $name class, The $name widget, The $name file, is, provides,
 # specifies, contains, represents, a, an and the.
 
 ABBREVIATE_BRIEF       =
 
 # If the ALWAYS_DETAILED_SEC and REPEAT_BRIEF tags are both set to YES then
 # doxygen will generate a detailed section even if there is only a brief
 # description.
 # The default value is: NO.
 
 ALWAYS_DETAILED_SEC    = NO
 
 # If the INLINE_INHERITED_MEMB tag is set to YES, doxygen will show all
 # inherited members of a class in the documentation of that class as if those
 # members were ordinary class members. Constructors, destructors and assignment
 # operators of the base classes will not be shown.
 # The default value is: NO.
 
 INLINE_INHERITED_MEMB  = NO
 
 # If the FULL_PATH_NAMES tag is set to YES doxygen will prepend the full path
 # before files name in the file list and in the header files. If set to NO the
 # shortest path that makes the file name unique will be used
 # The default value is: YES.
 
 FULL_PATH_NAMES        = NO
 
 # The STRIP_FROM_PATH tag can be used to strip a user-defined part of the path.
 # Stripping is only done if one of the specified strings matches the left-hand
 # part of the path. The tag can be used to show relative paths in the file list.
 # If left blank the directory from which doxygen is run is used as the path to
 # strip.
 #
 # Note that you can specify absolute paths here, but also relative paths, which
 # will be relative from the directory where doxygen is started.
 # This tag requires that the tag FULL_PATH_NAMES is set to YES.
 
 STRIP_FROM_PATH        =
 
 # The STRIP_FROM_INC_PATH tag can be used to strip a user-defined part of the
 # path mentioned in the documentation of a class, which tells the reader which
 # header file to include in order to use a class. If left blank only the name of
 # the header file containing the class definition is used. Otherwise one should
 # specify the list of include paths that are normally passed to the compiler
 # using the -I flag.
 
 STRIP_FROM_INC_PATH    =
 
 # If the SHORT_NAMES tag is set to YES, doxygen will generate much shorter (but
 # less readable) file names. This can be useful is your file systems doesn't
 # support long names like on DOS, Mac, or CD-ROM.
 # The default value is: NO.
 
 SHORT_NAMES            = NO
 
 # If the JAVADOC_AUTOBRIEF tag is set to YES then doxygen will interpret the
 # first line (until the first dot) of a Javadoc-style comment as the brief
 # description. If set to NO, the Javadoc-style will behave just like regular Qt-
 # style comments (thus requiring an explicit @brief command for a brief
 # description.)
 # The default value is: NO.
 
 JAVADOC_AUTOBRIEF      = NO
 
 # If the QT_AUTOBRIEF tag is set to YES then doxygen will interpret the first
 # line (until the first dot) of a Qt-style comment as the brief description. If
 # set to NO, the Qt-style will behave just like regular Qt-style comments (thus
 # requiring an explicit \brief command for a brief description.)
 # The default value is: NO.
 
 QT_AUTOBRIEF           = NO
 
 # The MULTILINE_CPP_IS_BRIEF tag can be set to YES to make doxygen treat a
 # multi-line C++ special comment block (i.e. a block of //! or /// comments) as
 # a brief description. This used to be the default behavior. The new default is
 # to treat a multi-line C++ comment block as a detailed description. Set this
 # tag to YES if you prefer the old behavior instead.
 #
 # Note that setting this tag to YES also means that rational rose comments are
 # not recognized any more.
 # The default value is: NO.
 
 MULTILINE_CPP_IS_BRIEF = NO
 
 # If the INHERIT_DOCS tag is set to YES then an undocumented member inherits the
 # documentation from any documented member that it re-implements.
 # The default value is: YES.
 
 INHERIT_DOCS           = YES
 
 # If the SEPARATE_MEMBER_PAGES tag is set to YES, then doxygen will produce a
 # new page for each member. If set to NO, the documentation of a member will be
 # part of the file/class/namespace that contains it.
 # The default value is: NO.
 
 SEPARATE_MEMBER_PAGES  = NO
 
 # The TAB_SIZE tag can be used to set the number of spaces in a tab. Doxygen
 # uses this value to replace tabs by spaces in code fragments.
 # Minimum value: 1, maximum value: 16, default value: 4.
 
 TAB_SIZE               = 8
 
 # This tag can be used to specify a number of aliases that act as commands in
 # the documentation. An alias has the form:
 # name=value
 # For example adding
 # "sideeffect=@par Side Effects:\n"
 # will allow you to put the command \sideeffect (or @sideeffect) in the
 # documentation, which will result in a user-defined paragraph with heading
 # "Side Effects:". You can put \n's in the value part of an alias to insert
 # newlines.
 
 ALIASES                = "FIXME=\par Fix Me's:\n" \
                          "BlueBerry=\if BLUEBERRY" \
                          "endBlueBerry=\endif" \
                          "bundlemainpage{1}=\page \1" \
                          "embmainpage{1}=\page \1" \
                          "github{2}=<a href=\"https://github.com/MITK/MITK/blob/master/\1\">\2</a>" \
                          "deprecatedSince{1}=\xrefitem deprecatedSince\1 \"\" \"Functions deprecated as of \1\" \deprecated (as of \1) " \
                          "minimumCMakeVersion=@MITK_CMAKE_MINIMUM_REQUIRED_VERSION@" \
                          "minimumQt5Version=@MITK_QT5_MINIMUM_VERSION@" \
                          "imageMacro{3}=\image html \1 \2 \n \image latex \1 \2 width=\3cm" \
                          "developersguidemainpage{1}=\page \1 " \
                          "usersguidemainpage{1}=\page \1 " \
                          "nondependentPluginLink{3}= \ref \1 \"\3\" "
 
 # Set the OPTIMIZE_OUTPUT_FOR_C tag to YES if your project consists of C sources
 # only. Doxygen will then generate output that is more tailored for C. For
 # instance, some of the names that are used will be different. The list of all
 # members will be omitted, etc.
 # The default value is: NO.
 
 OPTIMIZE_OUTPUT_FOR_C  = NO
 
 # Set the OPTIMIZE_OUTPUT_JAVA tag to YES if your project consists of Java or
 # Python sources only. Doxygen will then generate output that is more tailored
 # for that language. For instance, namespaces will be presented as packages,
 # qualified scopes will look different, etc.
 # The default value is: NO.
 
 OPTIMIZE_OUTPUT_JAVA   = NO
 
 # Set the OPTIMIZE_FOR_FORTRAN tag to YES if your project consists of Fortran
 # sources. Doxygen will then generate output that is tailored for Fortran.
 # The default value is: NO.
 
 OPTIMIZE_FOR_FORTRAN   = NO
 
 # Set the OPTIMIZE_OUTPUT_VHDL tag to YES if your project consists of VHDL
 # sources. Doxygen will then generate output that is tailored for VHDL.
 # The default value is: NO.
 
 OPTIMIZE_OUTPUT_VHDL   = NO
 
 # Doxygen selects the parser to use depending on the extension of the files it
 # parses. With this tag you can assign which parser to use for a given
 # extension. Doxygen has a built-in mapping, but you can override or extend it
 # using this tag. The format is ext=language, where ext is a file extension, and
 # language is one of the parsers supported by doxygen: IDL, Java, Javascript,
 # C#, C, C++, D, PHP, Objective-C, Python, Fortran (fixed format Fortran:
 # FortranFixed, free formatted Fortran: FortranFree, unknown formatted Fortran:
 # Fortran. In the later case the parser tries to guess whether the code is fixed
 # or free formatted code, this is the default for Fortran type files), VHDL. For
 # instance to make doxygen treat .inc files as Fortran files (default is PHP),
 # and .f files as C (default is Fortran), use: inc=Fortran f=C.
 #
 # Note For files without extension you can use no_extension as a placeholder.
 #
 # Note that for custom extensions you also need to set FILE_PATTERNS otherwise
 # the files are not read by doxygen.
 
 EXTENSION_MAPPING      = cmake=c++
 
 # If the MARKDOWN_SUPPORT tag is enabled then doxygen pre-processes all comments
 # according to the Markdown format, which allows for more readable
 # documentation. See http://daringfireball.net/projects/markdown/ for details.
 # The output of markdown processing is further processed by doxygen, so you can
 # mix doxygen, HTML, and XML commands with Markdown formatting. Disable only in
 # case of backward compatibilities issues.
 # The default value is: YES.
 
 MARKDOWN_SUPPORT       = YES
 
 # When enabled doxygen tries to link words that correspond to documented
 # classes, or namespaces to their corresponding documentation. Such a link can
 # be prevented in individual cases by by putting a % sign in front of the word
 # or globally by setting AUTOLINK_SUPPORT to NO.
 # The default value is: YES.
 
 AUTOLINK_SUPPORT       = YES
 
 # If you use STL classes (i.e. std::string, std::vector, etc.) but do not want
 # to include (a tag file for) the STL sources as input, then you should set this
 # tag to YES in order to let doxygen match functions declarations and
 # definitions whose arguments contain STL classes (e.g. func(std::string);
 # versus func(std::string) {}). This also make the inheritance and collaboration
 # diagrams that involve STL classes more complete and accurate.
 # The default value is: NO.
 
 BUILTIN_STL_SUPPORT    = YES
 
 # If you use Microsoft's C++/CLI language, you should set this option to YES to
 # enable parsing support.
 # The default value is: NO.
 
 CPP_CLI_SUPPORT        = NO
 
 # Set the SIP_SUPPORT tag to YES if your project consists of sip (see:
 # http://www.riverbankcomputing.co.uk/software/sip/intro) sources only. Doxygen
 # will parse them like normal C++ but will assume all classes use public instead
 # of private inheritance when no explicit protection keyword is present.
 # The default value is: NO.
 
 SIP_SUPPORT            = NO
 
 # For Microsoft's IDL there are propget and propput attributes to indicate
 # getter and setter methods for a property. Setting this option to YES will make
 # doxygen to replace the get and set methods by a property in the documentation.
 # This will only work if the methods are indeed getting or setting a simple
 # type. If this is not the case, or you want to show the methods anyway, you
 # should set this option to NO.
 # The default value is: YES.
 
 IDL_PROPERTY_SUPPORT   = YES
 
 # If member grouping is used in the documentation and the DISTRIBUTE_GROUP_DOC
 # tag is set to YES, then doxygen will reuse the documentation of the first
 # member in the group (if any) for the other members of the group. By default
 # all members of a group must be documented explicitly.
 # The default value is: NO.
 
 DISTRIBUTE_GROUP_DOC   = YES
 
 # Set the SUBGROUPING tag to YES to allow class member groups of the same type
 # (for instance a group of public functions) to be put as a subgroup of that
 # type (e.g. under the Public Functions section). Set it to NO to prevent
 # subgrouping. Alternatively, this can be done per class using the
 # \nosubgrouping command.
 # The default value is: YES.
 
 SUBGROUPING            = YES
 
 # When the INLINE_GROUPED_CLASSES tag is set to YES, classes, structs and unions
 # are shown inside the group in which they are included (e.g. using \ingroup)
 # instead of on a separate page (for HTML and Man pages) or section (for LaTeX
 # and RTF).
 #
 # Note that this feature does not work in combination with
 # SEPARATE_MEMBER_PAGES.
 # The default value is: NO.
 
 INLINE_GROUPED_CLASSES = NO
 
 # When the INLINE_SIMPLE_STRUCTS tag is set to YES, structs, classes, and unions
 # with only public data fields or simple typedef fields will be shown inline in
 # the documentation of the scope in which they are defined (i.e. file,
 # namespace, or group documentation), provided this scope is documented. If set
 # to NO, structs, classes, and unions are shown on a separate page (for HTML and
 # Man pages) or section (for LaTeX and RTF).
 # The default value is: NO.
 
 INLINE_SIMPLE_STRUCTS  = NO
 
 # When TYPEDEF_HIDES_STRUCT tag is enabled, a typedef of a struct, union, or
 # enum is documented as struct, union, or enum with the name of the typedef. So
 # typedef struct TypeS {} TypeT, will appear in the documentation as a struct
 # with name TypeT. When disabled the typedef will appear as a member of a file,
 # namespace, or class. And the struct will be named TypeS. This can typically be
 # useful for C code in case the coding convention dictates that all compound
 # types are typedef'ed and only the typedef is referenced, never the tag name.
 # The default value is: NO.
 
 TYPEDEF_HIDES_STRUCT   = NO
 
 # The size of the symbol lookup cache can be set using LOOKUP_CACHE_SIZE. This
 # cache is used to resolve symbols given their name and scope. Since this can be
 # an expensive process and often the same symbol appears multiple times in the
 # code, doxygen keeps a cache of pre-resolved symbols. If the cache is too small
 # doxygen will become slower. If the cache is too large, memory is wasted. The
 # cache size is given by this formula: 2^(16+LOOKUP_CACHE_SIZE). The valid range
 # is 0..9, the default is 0, corresponding to a cache size of 2^16=65536
 # symbols. At the end of a run doxygen will report the cache usage and suggest
 # the optimal cache size from a speed point of view.
 # Minimum value: 0, maximum value: 9, default value: 0.
 
 LOOKUP_CACHE_SIZE      = 0
 
 #---------------------------------------------------------------------------
 # Build related configuration options
 #---------------------------------------------------------------------------
 
 # If the EXTRACT_ALL tag is set to YES doxygen will assume all entities in
 # documentation are documented, even if no documentation was available. Private
 # class members and static file members will be hidden unless the
 # EXTRACT_PRIVATE respectively EXTRACT_STATIC tags are set to YES.
 # Note: This will also disable the warnings about undocumented members that are
 # normally produced when WARNINGS is set to YES.
 # The default value is: NO.
 
 EXTRACT_ALL            = YES
 
 # If the EXTRACT_PRIVATE tag is set to YES all private members of a class will
 # be included in the documentation.
 # The default value is: NO.
 
 EXTRACT_PRIVATE        = NO
 
 # If the EXTRACT_PACKAGE tag is set to YES all members with package or internal
 # scope will be included in the documentation.
 # The default value is: NO.
 
 EXTRACT_PACKAGE        = NO
 
 # If the EXTRACT_STATIC tag is set to YES all static members of a file will be
 # included in the documentation.
 # The default value is: NO.
 
 EXTRACT_STATIC         = YES
 
 # If the EXTRACT_LOCAL_CLASSES tag is set to YES classes (and structs) defined
 # locally in source files will be included in the documentation. If set to NO
 # only classes defined in header files are included. Does not have any effect
 # for Java sources.
 # The default value is: YES.
 
 EXTRACT_LOCAL_CLASSES  = @MITK_DOXYGEN_INTERNAL_DOCS@
 
 # This flag is only useful for Objective-C code. When set to YES local methods,
 # which are defined in the implementation section but not in the interface are
 # included in the documentation. If set to NO only methods in the interface are
 # included.
 # The default value is: NO.
 
 EXTRACT_LOCAL_METHODS  = NO
 
 # If this flag is set to YES, the members of anonymous namespaces will be
 # extracted and appear in the documentation as a namespace called
 # 'anonymous_namespace{file}', where file will be replaced with the base name of
 # the file that contains the anonymous namespace. By default anonymous namespace
 # are hidden.
 # The default value is: NO.
 
 EXTRACT_ANON_NSPACES   = NO
 
 # If the HIDE_UNDOC_MEMBERS tag is set to YES, doxygen will hide all
 # undocumented members inside documented classes or files. If set to NO these
 # members will be included in the various overviews, but no documentation
 # section is generated. This option has no effect if EXTRACT_ALL is enabled.
 # The default value is: NO.
 
 HIDE_UNDOC_MEMBERS     = NO
 
 # If the HIDE_UNDOC_CLASSES tag is set to YES, doxygen will hide all
 # undocumented classes that are normally visible in the class hierarchy. If set
 # to NO these classes will be included in the various overviews. This option has
 # no effect if EXTRACT_ALL is enabled.
 # The default value is: NO.
 
 HIDE_UNDOC_CLASSES     = NO
 
 # If the HIDE_FRIEND_COMPOUNDS tag is set to YES, doxygen will hide all friend
 # (class|struct|union) declarations. If set to NO these declarations will be
 # included in the documentation.
 # The default value is: NO.
 
 HIDE_FRIEND_COMPOUNDS  = @MITK_DOXYGEN_HIDE_FRIEND_COMPOUNDS@
 
 # If the HIDE_IN_BODY_DOCS tag is set to YES, doxygen will hide any
 # documentation blocks found inside the body of a function. If set to NO these
 # blocks will be appended to the function's detailed documentation block.
 # The default value is: NO.
 
 HIDE_IN_BODY_DOCS      = NO
 
 # The INTERNAL_DOCS tag determines if documentation that is typed after a
 # \internal command is included. If the tag is set to NO then the documentation
 # will be excluded. Set it to YES to include the internal documentation.
 # The default value is: NO.
 
 INTERNAL_DOCS          = @MITK_DOXYGEN_INTERNAL_DOCS@
 
 # If the CASE_SENSE_NAMES tag is set to NO then doxygen will only generate file
 # names in lower-case letters. If set to YES upper-case letters are also
 # allowed. This is useful if you have classes or files whose names only differ
 # in case and if your file system supports case sensitive file names. Windows
 # and Mac users are advised to set this option to NO.
 # The default value is: system dependent.
 
 CASE_SENSE_NAMES       = YES
 
 # If the HIDE_SCOPE_NAMES tag is set to NO then doxygen will show members with
 # their full class and namespace scopes in the documentation. If set to YES the
 # scope will be hidden.
 # The default value is: NO.
 
 HIDE_SCOPE_NAMES       = NO
 
 # If the SHOW_INCLUDE_FILES tag is set to YES then doxygen will put a list of
 # the files that are included by a file in the documentation of that file.
 # The default value is: YES.
 
 SHOW_INCLUDE_FILES     = YES
 
 # If the SHOW_GROUPED_MEMB_INC tag is set to YES then Doxygen will add for each
 # grouped member an include statement to the documentation, telling the reader
 # which file to include in order to use the member.
 # The default value is: NO.
 
 SHOW_GROUPED_MEMB_INC  = NO
 
 # If the FORCE_LOCAL_INCLUDES tag is set to YES then doxygen will list include
 # files with double quotes in the documentation rather than with sharp brackets.
 # The default value is: NO.
 
 FORCE_LOCAL_INCLUDES   = NO
 
 # If the INLINE_INFO tag is set to YES then a tag [inline] is inserted in the
 # documentation for inline members.
 # The default value is: YES.
 
 INLINE_INFO            = YES
 
 # If the SORT_MEMBER_DOCS tag is set to YES then doxygen will sort the
 # (detailed) documentation of file and class members alphabetically by member
 # name. If set to NO the members will appear in declaration order.
 # The default value is: YES.
 
 SORT_MEMBER_DOCS       = YES
 
 # If the SORT_BRIEF_DOCS tag is set to YES then doxygen will sort the brief
 # descriptions of file, namespace and class members alphabetically by member
 # name. If set to NO the members will appear in declaration order. Note that
 # this will also influence the order of the classes in the class list.
 # The default value is: NO.
 
 SORT_BRIEF_DOCS        = NO
 
 # If the SORT_MEMBERS_CTORS_1ST tag is set to YES then doxygen will sort the
 # (brief and detailed) documentation of class members so that constructors and
 # destructors are listed first. If set to NO the constructors will appear in the
 # respective orders defined by SORT_BRIEF_DOCS and SORT_MEMBER_DOCS.
 # Note: If SORT_BRIEF_DOCS is set to NO this option is ignored for sorting brief
 # member documentation.
 # Note: If SORT_MEMBER_DOCS is set to NO this option is ignored for sorting
 # detailed member documentation.
 # The default value is: NO.
 
 SORT_MEMBERS_CTORS_1ST = NO
 
 # If the SORT_GROUP_NAMES tag is set to YES then doxygen will sort the hierarchy
 # of group names into alphabetical order. If set to NO the group names will
 # appear in their defined order.
 # The default value is: NO.
 
 SORT_GROUP_NAMES       = NO
 
 # If the SORT_BY_SCOPE_NAME tag is set to YES, the class list will be sorted by
 # fully-qualified names, including namespaces. If set to NO, the class list will
 # be sorted only by class name, not including the namespace part.
 # Note: This option is not very useful if HIDE_SCOPE_NAMES is set to YES.
 # Note: This option applies only to the class list, not to the alphabetical
 # list.
 # The default value is: NO.
 
 SORT_BY_SCOPE_NAME     = YES
 
 # If the STRICT_PROTO_MATCHING option is enabled and doxygen fails to do proper
 # type resolution of all parameters of a function it will reject a match between
 # the prototype and the implementation of a member function even if there is
 # only one candidate or it is obvious which candidate to choose by doing a
 # simple string match. By disabling STRICT_PROTO_MATCHING doxygen will still
 # accept a match between prototype and implementation in such cases.
 # The default value is: NO.
 
 STRICT_PROTO_MATCHING  = NO
 
 # The GENERATE_TODOLIST tag can be used to enable ( YES) or disable ( NO) the
 # todo list. This list is created by putting \todo commands in the
 # documentation.
 # The default value is: YES.
 
 GENERATE_TODOLIST      = @MITK_DOXYGEN_GENERATE_TODOLIST@
 
 # The GENERATE_TESTLIST tag can be used to enable ( YES) or disable ( NO) the
 # test list. This list is created by putting \test commands in the
 # documentation.
 # The default value is: YES.
 
 GENERATE_TESTLIST      = YES
 
 # The GENERATE_BUGLIST tag can be used to enable ( YES) or disable ( NO) the bug
 # list. This list is created by putting \bug commands in the documentation.
 # The default value is: YES.
 
 GENERATE_BUGLIST       = @MITK_DOXYGEN_GENERATE_BUGLIST@
 
 # The GENERATE_DEPRECATEDLIST tag can be used to enable ( YES) or disable ( NO)
 # the deprecated list. This list is created by putting \deprecated commands in
 # the documentation.
 # The default value is: YES.
 
 GENERATE_DEPRECATEDLIST= @MITK_DOXYGEN_GENERATE_DEPRECATEDLIST@
 
 # The ENABLED_SECTIONS tag can be used to enable conditional documentation
 # sections, marked by \if <section_label> ... \endif and \cond <section_label>
 # ... \endcond blocks.
 
 ENABLED_SECTIONS       = @MITK_DOXYGEN_ENABLED_SECTIONS@
 
 # The MAX_INITIALIZER_LINES tag determines the maximum number of lines that the
 # initial value of a variable or macro / define can have for it to appear in the
 # documentation. If the initializer consists of more lines than specified here
 # it will be hidden. Use a value of 0 to hide initializers completely. The
 # appearance of the value of individual variables and macros / defines can be
 # controlled using \showinitializer or \hideinitializer command in the
 # documentation regardless of this setting.
 # Minimum value: 0, maximum value: 10000, default value: 30.
 
 MAX_INITIALIZER_LINES  = 0
 
 # Set the SHOW_USED_FILES tag to NO to disable the list of files generated at
 # the bottom of the documentation of classes and structs. If set to YES the list
 # will mention the files that were used to generate the documentation.
 # The default value is: YES.
 
 SHOW_USED_FILES        = YES
 
 # Set the SHOW_FILES tag to NO to disable the generation of the Files page. This
 # will remove the Files entry from the Quick Index and from the Folder Tree View
 # (if specified).
 # The default value is: YES.
 
 SHOW_FILES             = YES
 
 # Set the SHOW_NAMESPACES tag to NO to disable the generation of the Namespaces
 # page. This will remove the Namespaces entry from the Quick Index and from the
 # Folder Tree View (if specified).
 # The default value is: YES.
 
 SHOW_NAMESPACES        = YES
 
 # The FILE_VERSION_FILTER tag can be used to specify a program or script that
 # doxygen should invoke to get the current version for each file (typically from
 # the version control system). Doxygen will invoke the program by executing (via
 # popen()) the command command input-file, where command is the value of the
 # FILE_VERSION_FILTER tag, and input-file is the name of an input file provided
 # by doxygen. Whatever the program writes to standard output is used as the file
 # version. For an example see the documentation.
 
 FILE_VERSION_FILTER    =
 
 # The LAYOUT_FILE tag can be used to specify a layout file which will be parsed
 # by doxygen. The layout file controls the global structure of the generated
 # output files in an output format independent way. To create the layout file
 # that represents doxygen's defaults, run doxygen with the -l option. You can
 # optionally specify a file name after the option, if omitted DoxygenLayout.xml
 # will be used as the name of the layout file.
 #
 # Note that if you run doxygen from a directory containing a file called
 # DoxygenLayout.xml, doxygen will parse it automatically even if the LAYOUT_FILE
 # tag is left empty.
 
 LAYOUT_FILE            = "@MITK_SOURCE_DIR@/Documentation/MITKDoxygenLayout.xml"
 
 # The CITE_BIB_FILES tag can be used to specify one or more bib files containing
 # the reference definitions. This must be a list of .bib files. The .bib
 # extension is automatically appended if omitted. This requires the bibtex tool
 # to be installed. See also http://en.wikipedia.org/wiki/BibTeX for more info.
 # For LaTeX the style of the bibliography can be controlled using
 # LATEX_BIB_STYLE. To use this feature you need bibtex and perl available in the
 # search path. See also \cite for info how to create references.
 
 CITE_BIB_FILES         =
 
 #---------------------------------------------------------------------------
 # Configuration options related to warning and progress messages
 #---------------------------------------------------------------------------
 
 # The QUIET tag can be used to turn on/off the messages that are generated to
 # standard output by doxygen. If QUIET is set to YES this implies that the
 # messages are off.
 # The default value is: NO.
 
 QUIET                  = YES
 
 # The WARNINGS tag can be used to turn on/off the warning messages that are
 # generated to standard error ( stderr) by doxygen. If WARNINGS is set to YES
 # this implies that the warnings are on.
 #
 # Tip: Turn warnings on while writing the documentation.
 # The default value is: YES.
 
 WARNINGS               = YES
 
 # If the WARN_IF_UNDOCUMENTED tag is set to YES, then doxygen will generate
 # warnings for undocumented members. If EXTRACT_ALL is set to YES then this flag
 # will automatically be disabled.
 # The default value is: YES.
 
 WARN_IF_UNDOCUMENTED   = YES
 
 # If the WARN_IF_DOC_ERROR tag is set to YES, doxygen will generate warnings for
 # potential errors in the documentation, such as not documenting some parameters
 # in a documented function, or documenting parameters that don't exist or using
 # markup commands wrongly.
 # The default value is: YES.
 
 WARN_IF_DOC_ERROR      = YES
 
 # This WARN_NO_PARAMDOC option can be enabled to get warnings for functions that
 # are documented, but have no documentation for their parameters or return
 # value. If set to NO doxygen will only warn about wrong or incomplete parameter
 # documentation, but not about the absence of documentation.
 # The default value is: NO.
 
 WARN_NO_PARAMDOC       = NO
 
 # The WARN_FORMAT tag determines the format of the warning messages that doxygen
 # can produce. The string should contain the $file, $line, and $text tags, which
 # will be replaced by the file and line number from which the warning originated
 # and the warning text. Optionally the format may contain $version, which will
 # be replaced by the version of the file (if it could be obtained via
 # FILE_VERSION_FILTER)
 # The default value is: $file:$line: $text.
 
 WARN_FORMAT            = "$file:$line: $text"
 
 # The WARN_LOGFILE tag can be used to specify a file to which warning and error
 # messages should be written. If left blank the output is written to standard
 # error (stderr).
 
 WARN_LOGFILE           =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the input files
 #---------------------------------------------------------------------------
 
 # The INPUT tag is used to specify the files and/or directories that contain
 # documented source files. You may enter file names like myfile.cpp or
 # directories like /usr/src/myproject. Separate the files or directories with
 # spaces.
 # Note: If this tag is empty the current directory is searched.
 
 
 INPUT                  = @MITK_SOURCE_DIR@ \
                          @MITK_BINARY_DIR@ \
                          @MITK_DOXYGEN_ADDITIONAL_INPUT_DIRS@
 
 
 # This tag can be used to specify the character encoding of the source files
 # that doxygen parses. Internally doxygen uses the UTF-8 encoding. Doxygen uses
 # libiconv (or the iconv built into libc) for the transcoding. See the libiconv
 # documentation (see: http://www.gnu.org/software/libiconv) for the list of
 # possible encodings.
 # The default value is: UTF-8.
 
 INPUT_ENCODING         = UTF-8
 
 # If the value of the INPUT tag contains directories, you can use the
 # FILE_PATTERNS tag to specify one or more wildcard patterns (like *.cpp and
 # *.h) to filter out the source-files in the directories. If left blank the
 # following patterns are tested:*.c, *.cc, *.cxx, *.cpp, *.c++, *.java, *.ii,
 # *.ixx, *.ipp, *.i++, *.inl, *.idl, *.ddl, *.odl, *.h, *.hh, *.hxx, *.hpp,
 # *.h++, *.cs, *.d, *.php, *.php4, *.php5, *.phtml, *.inc, *.m, *.markdown,
 # *.md, *.mm, *.dox, *.py, *.f90, *.f, *.for, *.tcl, *.vhd, *.vhdl, *.ucf,
 # *.qsf, *.as and *.js.
 
 FILE_PATTERNS          = *.h \
                          *.dox \
                          *.md
 
 # The RECURSIVE tag can be used to specify whether or not subdirectories should
 # be searched for input files as well.
 # The default value is: NO.
 
 RECURSIVE              = YES
 
 # The EXCLUDE tag can be used to specify files and/or directories that should be
 # excluded from the INPUT source files. This way you can easily exclude a
 # subdirectory from a directory tree whose root is specified with the INPUT tag.
 #
 # Note that relative paths are relative to the directory from which doxygen is
 # run.
 
 EXCLUDE                = "@MITK_SOURCE_DIR@/Utilities/IpFunc/" \
                          "@MITK_SOURCE_DIR@/Utilities/IpSegmentation/" \
                          "@MITK_SOURCE_DIR@/Utilities/qtsingleapplication/" \
                          "@MITK_SOURCE_DIR@/Applications/PluginGenerator/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/snippets/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/doxygen/standalone/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/test/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/examples/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/src/util/jsoncpp.cpp" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/third_party" \
                          "@MITK_SOURCE_DIR@/CMake/PackageDepends" \
                          "@MITK_SOURCE_DIR@/CMakeExternals" \
                          "@MITK_SOURCE_DIR@/Licenses" \
                          "@MITK_BINARY_DIR@/Documentation/Doxygen" \
                          "@MITK_BINARY_DIR@/bin/" \
                          "@MITK_BINARY_DIR@/PT/" \
                          "@MITK_BINARY_DIR@/GP/" \
                          "@MITK_BINARY_DIR@/_CPack_Packages/" \
                          @MITK_DOXYGEN_ADDITIONAL_EXCLUDE_DIRS@
 
 # The EXCLUDE_SYMLINKS tag can be used to select whether or not files or
 # directories that are symbolic links (a Unix file system feature) are excluded
 # from the input.
 # The default value is: NO.
 
 EXCLUDE_SYMLINKS       = NO
 
 # If the value of the INPUT tag contains directories, you can use the
 # EXCLUDE_PATTERNS tag to specify one or more wildcard patterns to exclude
 # certain files from those directories.
 #
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories for example use the pattern */test/*
 
 EXCLUDE_PATTERNS       = README* \
                          moc_* \
                          ui_* \
                          qrc_* \
                          wrap_* \
                          Register* \
                          */files.cmake \
                          */.git/* \
                          *_p.h \
                          *Private.* \
                          */Internal/* \
                          */internal/* \
                          */Snippets/* \
                          */snippets/* \
                          */testing/* \
                          */Testing/* \
                          */test/* \
                          */resource/* \
                          "@MITK_BINARY_DIR@/*.cmake" \
                          @MITK_DOXYGEN_EXCLUDE_PATTERNS@
 
 # The EXCLUDE_SYMBOLS tag can be used to specify one or more symbol names
 # (namespaces, classes, functions, etc.) that should be excluded from the
 # output. The symbol name can be a fully qualified name, a word, or if the
 # wildcard * is used, a substring. Examples: ANamespace, AClass,
 # AClass::ANamespace, ANamespace::*Test
 #
 # Note that the wildcards are matched against the file with absolute path, so to
 # exclude all test directories use the pattern */test/*
 
 EXCLUDE_SYMBOLS        =
 
 # The EXAMPLE_PATH tag can be used to specify one or more files or directories
 # that contain example code fragments that are included (see the \include
 # command).
 
 EXAMPLE_PATH           = "@MITK_SOURCE_DIR@/Examples/" \
                          "@MITK_SOURCE_DIR@/Examples/Tutorial/" \
                          "@MITK_SOURCE_DIR@/Examples/Plugins/" \
                          "@MITK_SOURCE_DIR@/Examples/QtFreeRender/" \
                          "@MITK_SOURCE_DIR@/Modules/Core/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/doc/snippets/" \
                          "@MITK_SOURCE_DIR@/Modules/CppMicroServices/core/examples/" \
                          "@MITK_SOURCE_DIR@/Modules/OpenCL/Documentation/doxygen/snippets/" \
                          "@MITK_SOURCE_DIR@/Modules/IGT/Tutorial/" \
                          "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.common/src/" \
                          "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.qt.igtexamples/" \
                          "@MITK_SOURCE_DIR@/Plugins/org.mitk.gui.qt.igttracking/"
 
 # If the value of the EXAMPLE_PATH tag contains directories, you can use the
 # EXAMPLE_PATTERNS tag to specify one or more wildcard pattern (like *.cpp and
 # *.h) to filter out the source-files in the directories. If left blank all
 # files are included.
 
 EXAMPLE_PATTERNS       =
 
 # If the EXAMPLE_RECURSIVE tag is set to YES then subdirectories will be
 # searched for input files to be used with the \include or \dontinclude commands
 # irrespective of the value of the RECURSIVE tag.
 # The default value is: NO.
 
 EXAMPLE_RECURSIVE      = YES
 
 # The IMAGE_PATH tag can be used to specify one or more files or directories
 # that contain images that are to be included in the documentation (see the
 # \image command).
 
 IMAGE_PATH             = "@MITK_SOURCE_DIR@/Documentation/Doxygen/" \
                          "@MITK_SOURCE_DIR@"
 
 # The INPUT_FILTER tag can be used to specify a program that doxygen should
 # invoke to filter for each input file. Doxygen will invoke the filter program
 # by executing (via popen()) the command:
 #
 # <filter> <input-file>
 #
 # where <filter> is the value of the INPUT_FILTER tag, and <input-file> is the
 # name of an input file. Doxygen will then use the output that the filter
 # program writes to standard output. If FILTER_PATTERNS is specified, this tag
 # will be ignored.
 #
 # Note that the filter must not add or remove lines; it is applied before the
 # code is scanned, but not when the output code is generated. If lines are added
 # or removed, the anchors will not be placed correctly.
 
 INPUT_FILTER           =
 
 # The FILTER_PATTERNS tag can be used to specify filters on a per file pattern
 # basis. Doxygen will compare the file name with each pattern and apply the
 # filter if there is a match. The filters are a list of the form: pattern=filter
 # (like *.cpp=my_cpp_filter). See INPUT_FILTER for further information on how
 # filters are used. If the FILTER_PATTERNS tag is empty or if none of the
 # patterns match the file name, INPUT_FILTER is applied.
 
 FILTER_PATTERNS        = *.cmake=@CMakeDoxygenFilter_EXECUTABLE@
 
 # If the FILTER_SOURCE_FILES tag is set to YES, the input filter (if set using
 # INPUT_FILTER ) will also be used to filter the input files that are used for
 # producing the source files to browse (i.e. when SOURCE_BROWSER is set to YES).
 # The default value is: NO.
 
 FILTER_SOURCE_FILES    = NO
 
 # The FILTER_SOURCE_PATTERNS tag can be used to specify source filters per file
 # pattern. A pattern will override the setting for FILTER_PATTERN (if any) and
 # it is also possible to disable source filtering for a specific pattern using
 # *.ext= (so without naming a filter).
 # This tag requires that the tag FILTER_SOURCE_FILES is set to YES.
 
 FILTER_SOURCE_PATTERNS =
 
 # If the USE_MDFILE_AS_MAINPAGE tag refers to the name of a markdown file that
 # is part of the input, its contents will be placed on the main page
 # (index.html). This can be useful if you have a project on for instance GitHub
 # and want to reuse the introduction page also for the doxygen output.
 
 USE_MDFILE_AS_MAINPAGE =
 
 #---------------------------------------------------------------------------
 # Configuration options related to source browsing
 #---------------------------------------------------------------------------
 
 # If the SOURCE_BROWSER tag is set to YES then a list of source files will be
 # generated. Documented entities will be cross-referenced with these sources.
 #
 # Note: To get rid of all source code in the generated output, make sure that
 # also VERBATIM_HEADERS is set to NO.
 # The default value is: NO.
 
 SOURCE_BROWSER         = YES
 
 # Setting the INLINE_SOURCES tag to YES will include the body of functions,
 # classes and enums directly into the documentation.
 # The default value is: NO.
 
 INLINE_SOURCES         = NO
 
 # Setting the STRIP_CODE_COMMENTS tag to YES will instruct doxygen to hide any
 # special comment blocks from generated source code fragments. Normal C, C++ and
 # Fortran comments will always remain visible.
 # The default value is: YES.
 
 STRIP_CODE_COMMENTS    = YES
 
 # If the REFERENCED_BY_RELATION tag is set to YES then for each documented
 # function all documented functions referencing it will be listed.
 # The default value is: NO.
 
 REFERENCED_BY_RELATION = YES
 
 # If the REFERENCES_RELATION tag is set to YES then for each documented function
 # all documented entities called/used by that function will be listed.
 # The default value is: NO.
 
 REFERENCES_RELATION    = YES
 
 # If the REFERENCES_LINK_SOURCE tag is set to YES and SOURCE_BROWSER tag is set
 # to YES, then the hyperlinks from functions in REFERENCES_RELATION and
 # REFERENCED_BY_RELATION lists will link to the source code. Otherwise they will
 # link to the documentation.
 # The default value is: YES.
 
 REFERENCES_LINK_SOURCE = YES
 
 # If SOURCE_TOOLTIPS is enabled (the default) then hovering a hyperlink in the
 # source code will show a tooltip with additional information such as prototype,
 # brief description and links to the definition and documentation. Since this
 # will make the HTML file larger and loading of large files a bit slower, you
 # can opt to disable this feature.
 # The default value is: YES.
 # This tag requires that the tag SOURCE_BROWSER is set to YES.
 
 SOURCE_TOOLTIPS        = YES
 
 # If the USE_HTAGS tag is set to YES then the references to source code will
 # point to the HTML generated by the htags(1) tool instead of doxygen built-in
 # source browser. The htags tool is part of GNU's global source tagging system
 # (see http://www.gnu.org/software/global/global.html). You will need version
 # 4.8.6 or higher.
 #
 # To use it do the following:
 # - Install the latest version of global
 # - Enable SOURCE_BROWSER and USE_HTAGS in the config file
 # - Make sure the INPUT points to the root of the source tree
 # - Run doxygen as normal
 #
 # Doxygen will invoke htags (and that will in turn invoke gtags), so these
 # tools must be available from the command line (i.e. in the search path).
 #
 # The result: instead of the source browser generated by doxygen, the links to
 # source code will now point to the output of htags.
 # The default value is: NO.
 # This tag requires that the tag SOURCE_BROWSER is set to YES.
 
 USE_HTAGS              = NO
 
 # If the VERBATIM_HEADERS tag is set the YES then doxygen will generate a
 # verbatim copy of the header file for each class for which an include is
 # specified. Set to NO to disable this.
 # See also: Section \class.
 # The default value is: YES.
 
 VERBATIM_HEADERS       = YES
 
 #---------------------------------------------------------------------------
 # Configuration options related to the alphabetical class index
 #---------------------------------------------------------------------------
 
 # If the ALPHABETICAL_INDEX tag is set to YES, an alphabetical index of all
 # compounds will be generated. Enable this if the project contains a lot of
 # classes, structs, unions or interfaces.
 # The default value is: YES.
 
 ALPHABETICAL_INDEX     = YES
 
 # The COLS_IN_ALPHA_INDEX tag can be used to specify the number of columns in
 # which the alphabetical index list will be split.
 # Minimum value: 1, maximum value: 20, default value: 5.
 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
 COLS_IN_ALPHA_INDEX    = 3
 
 # In case all classes in a project start with a common prefix, all classes will
 # be put under the same header in the alphabetical index. The IGNORE_PREFIX tag
 # can be used to specify a prefix (or a list of prefixes) that should be ignored
 # while generating the index headers.
 # This tag requires that the tag ALPHABETICAL_INDEX is set to YES.
 
 IGNORE_PREFIX          =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the HTML output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_HTML tag is set to YES doxygen will generate HTML output
 # The default value is: YES.
 
 GENERATE_HTML          = YES
 
 # The HTML_OUTPUT tag is used to specify where the HTML docs will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
 # it.
 # The default directory is: html.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_OUTPUT            = html
 
 # The HTML_FILE_EXTENSION tag can be used to specify the file extension for each
 # generated HTML page (for example: .htm, .php, .asp).
 # The default value is: .html.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_FILE_EXTENSION    = .html
 
 # The HTML_HEADER tag can be used to specify a user-defined HTML header file for
 # each generated HTML page. If the tag is left blank doxygen will generate a
 # standard header.
 #
 # To get valid HTML the header file that includes any scripts and style sheets
 # that doxygen needs, which is dependent on the configuration options used (e.g.
 # the setting GENERATE_TREEVIEW). It is highly recommended to start with a
 # default header using
 # doxygen -w html new_header.html new_footer.html new_stylesheet.css
 # YourConfigFile
 # and then modify the file new_header.html. See also section "Doxygen usage"
 # for information on how to generate the default header that doxygen normally
 # uses.
 # Note: The header is subject to change so you typically have to regenerate the
 # default header when upgrading to a newer version of doxygen. For a description
 # of the possible markers and block names see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_HEADER            =
 
 # The HTML_FOOTER tag can be used to specify a user-defined HTML footer for each
 # generated HTML page. If the tag is left blank doxygen will generate a standard
 # footer. See HTML_HEADER for more information on how to generate a default
 # footer and what special commands can be used inside the footer. See also
 # section "Doxygen usage" for information on how to generate the default footer
 # that doxygen normally uses.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_FOOTER            =
 
 # The HTML_STYLESHEET tag can be used to specify a user-defined cascading style
 # sheet that is used by each HTML page. It can be used to fine-tune the look of
 # the HTML output. If left blank doxygen will generate a default style sheet.
 # See also section "Doxygen usage" for information on how to generate the style
 # sheet that doxygen normally uses.
 # Note: It is recommended to use HTML_EXTRA_STYLESHEET instead of this tag, as
 # it is more robust and this tag (HTML_STYLESHEET) will in the future become
 # obsolete.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_STYLESHEET        =
 
 # The HTML_EXTRA_STYLESHEET tag can be used to specify additional user-defined
 # cascading style sheets that are included after the standard style sheets
 # created by doxygen. Using this option one can overrule certain style aspects.
 # This is preferred over using HTML_STYLESHEET since it does not replace the
 # standard style sheet and is therefor more robust against future updates.
 # Doxygen will copy the style sheet files to the output directory.
 # Note: The order of the extra stylesheet files is of importance (e.g. the last
 # stylesheet in the list overrules the setting of the previous ones in the
 # list). For an example see the documentation.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_EXTRA_STYLESHEET  = @MITK_DOXYGEN_STYLESHEET@
 
 # The HTML_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the HTML output directory. Note
 # that these files will be copied to the base HTML output directory. Use the
 # $relpath^ marker in the HTML_HEADER and/or HTML_FOOTER files to load these
 # files. In the HTML_STYLESHEET file, use the file name only. Also note that the
 # files will be copied as-is; there are no commands or markers available.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_EXTRA_FILES       = "@MITK_SOURCE_DIR@/Documentation/Doxygen/mitkLogo.jpg"
 
 # The HTML_COLORSTYLE_HUE tag controls the color of the HTML output. Doxygen
 # will adjust the colors in the stylesheet and background images according to
 # this color. Hue is specified as an angle on a colorwheel, see
 # http://en.wikipedia.org/wiki/Hue for more information. For instance the value
 # 0 represents red, 60 is yellow, 120 is green, 180 is cyan, 240 is blue, 300
 # purple, and 360 is red again.
 # Minimum value: 0, maximum value: 359, default value: 220.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_COLORSTYLE_HUE    = 220
 
 # The HTML_COLORSTYLE_SAT tag controls the purity (or saturation) of the colors
 # in the HTML output. For a value of 0 the output will use grayscales only. A
 # value of 255 will produce the most vivid colors.
 # Minimum value: 0, maximum value: 255, default value: 100.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_COLORSTYLE_SAT    = 100
 
 # The HTML_COLORSTYLE_GAMMA tag controls the gamma correction applied to the
 # luminance component of the colors in the HTML output. Values below 100
 # gradually make the output lighter, whereas values above 100 make the output
 # darker. The value divided by 100 is the actual gamma applied, so 80 represents
 # a gamma of 0.8, The value 220 represents a gamma of 2.2, and 100 does not
 # change the gamma.
 # Minimum value: 40, maximum value: 240, default value: 80.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_COLORSTYLE_GAMMA  = 80
 
 # If the HTML_TIMESTAMP tag is set to YES then the footer of each generated HTML
 # page will contain the date and time when the page was generated. Setting this
 # to NO can help when comparing the output of multiple runs.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_TIMESTAMP         = YES
 
 # If the HTML_DYNAMIC_SECTIONS tag is set to YES then the generated HTML
 # documentation will contain sections that can be hidden and shown after the
 # page has loaded.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_DYNAMIC_SECTIONS  = @MITK_DOXYGEN_HTML_DYNAMIC_SECTIONS@
 
 # With HTML_INDEX_NUM_ENTRIES one can control the preferred number of entries
 # shown in the various tree structured indices initially; the user can expand
 # and collapse entries dynamically later on. Doxygen will expand the tree to
 # such a level that at most the specified number of entries are visible (unless
 # a fully collapsed tree already exceeds this amount). So setting the number of
 # entries 1 will produce a full collapsed tree by default. 0 is a special value
 # representing an infinite number of entries and will result in a full expanded
 # tree by default.
 # Minimum value: 0, maximum value: 9999, default value: 100.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 HTML_INDEX_NUM_ENTRIES = 100
 
 # If the GENERATE_DOCSET tag is set to YES, additional index files will be
 # generated that can be used as input for Apple's Xcode 3 integrated development
 # environment (see: http://developer.apple.com/tools/xcode/), introduced with
 # OSX 10.5 (Leopard). To create a documentation set, doxygen will generate a
 # Makefile in the HTML output directory. Running make will produce the docset in
 # that directory and running make install will install the docset in
 # ~/Library/Developer/Shared/Documentation/DocSets so that Xcode will find it at
 # startup. See http://developer.apple.com/tools/creatingdocsetswithdoxygen.html
 # for more information.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_DOCSET        = NO
 
 # This tag determines the name of the docset feed. A documentation feed provides
 # an umbrella under which multiple documentation sets from a single provider
 # (such as a company or product suite) can be grouped.
 # The default value is: Doxygen generated docs.
 # This tag requires that the tag GENERATE_DOCSET is set to YES.
 
 DOCSET_FEEDNAME        = "Doxygen generated docs"
 
 # This tag specifies a string that should uniquely identify the documentation
 # set bundle. This should be a reverse domain-name style string, e.g.
 # com.mycompany.MyDocSet. Doxygen will append .docset to the name.
 # The default value is: org.doxygen.Project.
 # This tag requires that the tag GENERATE_DOCSET is set to YES.
 
 DOCSET_BUNDLE_ID       = org.doxygen.Project
 
 # The DOCSET_PUBLISHER_ID tag specifies a string that should uniquely identify
 # the documentation publisher. This should be a reverse domain-name style
 # string, e.g. com.mycompany.MyDocSet.documentation.
 # The default value is: org.doxygen.Publisher.
 # This tag requires that the tag GENERATE_DOCSET is set to YES.
 
 DOCSET_PUBLISHER_ID    = org.doxygen.Publisher
 
 # The DOCSET_PUBLISHER_NAME tag identifies the documentation publisher.
 # The default value is: Publisher.
 # This tag requires that the tag GENERATE_DOCSET is set to YES.
 
 DOCSET_PUBLISHER_NAME  = Publisher
 
 # If the GENERATE_HTMLHELP tag is set to YES then doxygen generates three
 # additional HTML index files: index.hhp, index.hhc, and index.hhk. The
 # index.hhp is a project file that can be read by Microsoft's HTML Help Workshop
 # (see: http://www.microsoft.com/en-us/download/details.aspx?id=21138) on
 # Windows.
 #
 # The HTML Help Workshop contains a compiler that can convert all HTML output
 # generated by doxygen into a single compiled HTML file (.chm). Compiled HTML
 # files are now used as the Windows 98 help format, and will replace the old
 # Windows help format (.hlp) on all Windows platforms in the future. Compressed
 # HTML files also contain an index, a table of contents, and you can search for
 # words in the documentation. The HTML workshop also contains a viewer for
 # compressed HTML files.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_HTMLHELP      = NO
 
 # The CHM_FILE tag can be used to specify the file name of the resulting .chm
 # file. You can add a path in front of the file if the result should not be
 # written to the html output directory.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 CHM_FILE               =
 
 # The HHC_LOCATION tag can be used to specify the location (absolute path
 # including file name) of the HTML help compiler ( hhc.exe). If non-empty
 # doxygen will try to run the HTML help compiler on the generated index.hhp.
 # The file has to be specified with full path.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 HHC_LOCATION           =
 
 # The GENERATE_CHI flag controls if a separate .chi index file is generated (
 # YES) or that it should be included in the master .chm file ( NO).
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 GENERATE_CHI           = NO
 
 # The CHM_INDEX_ENCODING is used to encode HtmlHelp index ( hhk), content ( hhc)
 # and project file content.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 CHM_INDEX_ENCODING     =
 
 # The BINARY_TOC flag controls whether a binary table of contents is generated (
 # YES) or a normal table of contents ( NO) in the .chm file. Furthermore it
 # enables the Previous and Next buttons.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 BINARY_TOC             = NO
 
 # The TOC_EXPAND flag can be set to YES to add extra items for group members to
 # the table of contents of the HTML help documentation and to the tree view.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTMLHELP is set to YES.
 
 TOC_EXPAND             = NO
 
 # If the GENERATE_QHP tag is set to YES and both QHP_NAMESPACE and
 # QHP_VIRTUAL_FOLDER are set, an additional index file will be generated that
 # can be used as input for Qt's qhelpgenerator to generate a Qt Compressed Help
 # (.qch) of the generated HTML documentation.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_QHP           = @MITK_DOXYGEN_GENERATE_QHP@
 
 # If the QHG_LOCATION tag is specified, the QCH_FILE tag can be used to specify
 # the file name of the resulting .qch file. The path specified is relative to
 # the HTML output folder.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QCH_FILE               = @MITK_DOXYGEN_QCH_FILE@
 
 # The QHP_NAMESPACE tag specifies the namespace to use when generating Qt Help
 # Project output. For more information please see Qt Help Project / Namespace
 # (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#namespace).
 # The default value is: org.doxygen.Project.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHP_NAMESPACE          = "org.mitk"
 
 # The QHP_VIRTUAL_FOLDER tag specifies the namespace to use when generating Qt
 # Help Project output. For more information please see Qt Help Project / Virtual
 # Folders (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#virtual-
 # folders).
 # The default value is: doc.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHP_VIRTUAL_FOLDER     = MITK
 
 # If the QHP_CUST_FILTER_NAME tag is set, it specifies the name of a custom
 # filter to add. For more information please see Qt Help Project / Custom
 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
 # filters).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHP_CUST_FILTER_NAME   =
 
 # The QHP_CUST_FILTER_ATTRS tag specifies the list of the attributes of the
 # custom filter to add. For more information please see Qt Help Project / Custom
 # Filters (see: http://qt-project.org/doc/qt-4.8/qthelpproject.html#custom-
 # filters).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHP_CUST_FILTER_ATTRS  =
 
 # The QHP_SECT_FILTER_ATTRS tag specifies the list of the attributes this
 # project's filter section matches. Qt Help Project / Filter Attributes (see:
 # http://qt-project.org/doc/qt-4.8/qthelpproject.html#filter-attributes).
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHP_SECT_FILTER_ATTRS  =
 
 # The QHG_LOCATION tag can be used to specify the location of Qt's
 # qhelpgenerator. If non-empty doxygen will try to run qhelpgenerator on the
 # generated .qhp file.
 # This tag requires that the tag GENERATE_QHP is set to YES.
 
 QHG_LOCATION           = @QT_HELPGENERATOR_EXECUTABLE@
 
 # If the GENERATE_ECLIPSEHELP tag is set to YES, additional index files will be
 # generated, together with the HTML files, they form an Eclipse help plugin. To
 # install this plugin and make it available under the help contents menu in
 # Eclipse, the contents of the directory containing the HTML and XML files needs
 # to be copied into the plugins directory of eclipse. The name of the directory
 # within the plugins directory should be the same as the ECLIPSE_DOC_ID value.
 # After copying Eclipse needs to be restarted before the help appears.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_ECLIPSEHELP   = NO
 
 # A unique identifier for the Eclipse help plugin. When installing the plugin
 # the directory name containing the HTML and XML files should also have this
 # name. Each documentation set should have its own identifier.
 # The default value is: org.doxygen.Project.
 # This tag requires that the tag GENERATE_ECLIPSEHELP is set to YES.
 
 ECLIPSE_DOC_ID         = org.doxygen.Project
 
 # If you want full control over the layout of the generated HTML pages it might
 # be necessary to disable the index and replace it with your own. The
 # DISABLE_INDEX tag can be used to turn on/off the condensed index (tabs) at top
 # of each HTML page. A value of NO enables the index and the value YES disables
 # it. Since the tabs in the index contain the same information as the navigation
 # tree, you can set this option to YES if you also set GENERATE_TREEVIEW to YES.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 DISABLE_INDEX          = NO
 
 # The GENERATE_TREEVIEW tag is used to specify whether a tree-like index
 # structure should be generated to display hierarchical information. If the tag
 # value is set to YES, a side panel will be generated containing a tree-like
 # index structure (just like the one that is generated for HTML Help). For this
 # to work a browser that supports JavaScript, DHTML, CSS and frames is required
 # (i.e. any modern browser). Windows users are probably better off using the
 # HTML help feature. Via custom stylesheets (see HTML_EXTRA_STYLESHEET) one can
 # further fine-tune the look of the index. As an example, the default style
 # sheet generated by doxygen has an example that shows how to put an image at
 # the root of the tree instead of the PROJECT_NAME. Since the tree basically has
 # the same information as the tab index, you could consider setting
 # DISABLE_INDEX to YES when enabling this option.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 GENERATE_TREEVIEW      = YES
 
 # The ENUM_VALUES_PER_LINE tag can be used to set the number of enum values that
 # doxygen will group on one line in the generated HTML documentation.
 #
 # Note that a value of 0 will completely suppress the enum values from appearing
 # in the overview section.
 # Minimum value: 0, maximum value: 20, default value: 4.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 ENUM_VALUES_PER_LINE   = 4
 
 # If the treeview is enabled (see GENERATE_TREEVIEW) then this tag can be used
 # to set the initial width (in pixels) of the frame in which the tree is shown.
 # Minimum value: 0, maximum value: 1500, default value: 250.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 TREEVIEW_WIDTH         = 300
 
 # When the EXT_LINKS_IN_WINDOW option is set to YES doxygen will open links to
 # external symbols imported via tag files in a separate window.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 EXT_LINKS_IN_WINDOW    = NO
 
 # Use this tag to change the font size of LaTeX formulas included as images in
 # the HTML documentation. When you change the font size after a successful
 # doxygen run you need to manually remove any form_*.png images from the HTML
 # output directory to force them to be regenerated.
 # Minimum value: 8, maximum value: 50, default value: 10.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 FORMULA_FONTSIZE       = 10
 
 # Use the FORMULA_TRANPARENT tag to determine whether or not the images
 # generated for formulas are transparent PNGs. Transparent PNGs are not
 # supported properly for IE 6.0, but are supported on all modern browsers.
 #
 # Note that when changing this option you need to delete any form_*.png files in
 # the HTML output directory before the changes have effect.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 FORMULA_TRANSPARENT    = YES
 
 # Enable the USE_MATHJAX option to render LaTeX formulas using MathJax (see
 # http://www.mathjax.org) which uses client side Javascript for the rendering
 # instead of using prerendered bitmaps. Use this if you do not have LaTeX
 # installed or if you want to formulas look prettier in the HTML output. When
 # enabled you may also need to install MathJax separately and configure the path
 # to it using the MATHJAX_RELPATH option.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 USE_MATHJAX            = YES
 
 # When MathJax is enabled you can set the default output format to be used for
 # the MathJax output. See the MathJax site (see:
 # http://docs.mathjax.org/en/latest/output.html) for more details.
 # Possible values are: HTML-CSS (which is slower, but has the best
 # compatibility), NativeMML (i.e. MathML) and SVG.
 # The default value is: HTML-CSS.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_FORMAT         = HTML-CSS
 
 # When MathJax is enabled you need to specify the location relative to the HTML
 # output directory using the MATHJAX_RELPATH option. The destination directory
 # should contain the MathJax.js script. For instance, if the mathjax directory
 # is located at the same level as the HTML output directory, then
 # MATHJAX_RELPATH should be ../mathjax. The default value points to the MathJax
 # Content Delivery Network so you can quickly see the result without installing
 # MathJax. However, it is strongly recommended to install a local copy of
 # MathJax from http://www.mathjax.org before deployment.
 # The default value is: http://cdn.mathjax.org/mathjax/latest.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_RELPATH        = http://www.mathjax.org/mathjax
 
 # The MATHJAX_EXTENSIONS tag can be used to specify one or more MathJax
 # extension names that should be enabled during MathJax rendering. For example
 # MATHJAX_EXTENSIONS = TeX/AMSmath TeX/AMSsymbols
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_EXTENSIONS     =
 
 # The MATHJAX_CODEFILE tag can be used to specify a file with javascript pieces
 # of code that will be used on startup of the MathJax code. See the MathJax site
 # (see: http://docs.mathjax.org/en/latest/output.html) for more details. For an
 # example see the documentation.
 # This tag requires that the tag USE_MATHJAX is set to YES.
 
 MATHJAX_CODEFILE       =
 
 # When the SEARCHENGINE tag is enabled doxygen will generate a search box for
 # the HTML output. The underlying search engine uses javascript and DHTML and
 # should work on any modern browser. Note that when using HTML help
 # (GENERATE_HTMLHELP), Qt help (GENERATE_QHP), or docsets (GENERATE_DOCSET)
 # there is already a search function so this one should typically be disabled.
 # For large projects the javascript based search engine can be slow, then
 # enabling SERVER_BASED_SEARCH may provide a better solution. It is possible to
 # search using the keyboard; to jump to the search box use <access key> + S
 # (what the <access key> is depends on the OS and browser, but it is typically
 # <CTRL>, <ALT>/<option>, or both). Inside the search box use the <cursor down
 # key> to jump into the search results window, the results can be navigated
 # using the <cursor keys>. Press <Enter> to select an item or <escape> to cancel
 # the search. The filter options can be selected when the cursor is inside the
 # search box by pressing <Shift>+<cursor down>. Also here use the <cursor keys>
 # to select a filter and <Enter> or <escape> to activate or cancel the filter
 # option.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_HTML is set to YES.
 
 SEARCHENGINE           = YES
 
 # When the SERVER_BASED_SEARCH tag is enabled the search engine will be
 # implemented using a web server instead of a web client using Javascript. There
 # are two flavors of web server based searching depending on the EXTERNAL_SEARCH
 # setting. When disabled, doxygen will generate a PHP script for searching and
 # an index file used by the script. When EXTERNAL_SEARCH is enabled the indexing
 # and searching needs to be provided by external tools. See the section
 # "External Indexing and Searching" for details.
 # The default value is: NO.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 SERVER_BASED_SEARCH    = NO
 
 # When EXTERNAL_SEARCH tag is enabled doxygen will no longer generate the PHP
 # script for searching. Instead the search results are written to an XML file
 # which needs to be processed by an external indexer. Doxygen will invoke an
 # external search engine pointed to by the SEARCHENGINE_URL option to obtain the
 # search results.
 #
 # Doxygen ships with an example indexer ( doxyindexer) and search engine
 # (doxysearch.cgi) which are based on the open source search engine library
 # Xapian (see: http://xapian.org/).
 #
 # See the section "External Indexing and Searching" for details.
 # The default value is: NO.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 EXTERNAL_SEARCH        = NO
 
 # The SEARCHENGINE_URL should point to a search engine hosted by a web server
 # which will return the search results when EXTERNAL_SEARCH is enabled.
 #
 # Doxygen ships with an example indexer ( doxyindexer) and search engine
 # (doxysearch.cgi) which are based on the open source search engine library
 # Xapian (see: http://xapian.org/). See the section "External Indexing and
 # Searching" for details.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 SEARCHENGINE_URL       =
 
 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the unindexed
 # search data is written to a file for indexing by an external tool. With the
 # SEARCHDATA_FILE tag the name of this file can be specified.
 # The default file is: searchdata.xml.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 SEARCHDATA_FILE        = searchdata.xml
 
 # When SERVER_BASED_SEARCH and EXTERNAL_SEARCH are both enabled the
 # EXTERNAL_SEARCH_ID tag can be used as an identifier for the project. This is
 # useful in combination with EXTRA_SEARCH_MAPPINGS to search through multiple
 # projects and redirect the results back to the right project.
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 EXTERNAL_SEARCH_ID     =
 
 # The EXTRA_SEARCH_MAPPINGS tag can be used to enable searching through doxygen
 # projects other than the one defined by this configuration file, but that are
 # all added to the same external search index. Each project needs to have a
 # unique id set via EXTERNAL_SEARCH_ID. The search mapping then maps the id of
 # to a relative location where the documentation can be found. The format is:
 # EXTRA_SEARCH_MAPPINGS = tagname1=loc1 tagname2=loc2 ...
 # This tag requires that the tag SEARCHENGINE is set to YES.
 
 EXTRA_SEARCH_MAPPINGS  =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the LaTeX output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_LATEX tag is set to YES doxygen will generate LaTeX output.
 # The default value is: YES.
 
 GENERATE_LATEX         = NO
 
 # The LATEX_OUTPUT tag is used to specify where the LaTeX docs will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
 # it.
 # The default directory is: latex.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_OUTPUT           = latex
 
 # The LATEX_CMD_NAME tag can be used to specify the LaTeX command name to be
 # invoked.
 #
 # Note that when enabling USE_PDFLATEX this option is only used for generating
 # bitmaps for formulas in the HTML output, but not in the Makefile that is
 # written to the output directory.
 # The default file is: latex.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_CMD_NAME         = latex
 
 # The MAKEINDEX_CMD_NAME tag can be used to specify the command name to generate
 # index for LaTeX.
 # The default file is: makeindex.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 MAKEINDEX_CMD_NAME     = makeindex
 
 # If the COMPACT_LATEX tag is set to YES doxygen generates more compact LaTeX
 # documents. This may be useful for small projects and may help to save some
 # trees in general.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 COMPACT_LATEX          = NO
 
 # The PAPER_TYPE tag can be used to set the paper type that is used by the
 # printer.
 # Possible values are: a4 (210 x 297 mm), letter (8.5 x 11 inches), legal (8.5 x
 # 14 inches) and executive (7.25 x 10.5 inches).
 # The default value is: a4.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 PAPER_TYPE             = a4
 
 # The EXTRA_PACKAGES tag can be used to specify one or more LaTeX package names
 # that should be included in the LaTeX output. To get the times font for
 # instance you can specify
 # EXTRA_PACKAGES=times
 # If left blank no extra packages will be included.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 EXTRA_PACKAGES         = amssymb
 
 # The LATEX_HEADER tag can be used to specify a personal LaTeX header for the
 # generated LaTeX document. The header should contain everything until the first
 # chapter. If it is left blank doxygen will generate a standard header. See
 # section "Doxygen usage" for information on how to let doxygen write the
 # default header to a separate file.
 #
 # Note: Only use a user-defined header if you know what you are doing! The
 # following commands have a special meaning inside the header: $title,
 # $datetime, $date, $doxygenversion, $projectname, $projectnumber,
 # $projectbrief, $projectlogo. Doxygen will replace $title with the empy string,
 # for the replacement values of the other commands the user is refered to
 # HTML_HEADER.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_HEADER           =
 
 # The LATEX_FOOTER tag can be used to specify a personal LaTeX footer for the
 # generated LaTeX document. The footer should contain everything after the last
 # chapter. If it is left blank doxygen will generate a standard footer. See
 # LATEX_HEADER for more information on how to generate a default footer and what
 # special commands can be used inside the footer.
 #
 # Note: Only use a user-defined footer if you know what you are doing!
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_FOOTER           =
 
 # The LATEX_EXTRA_FILES tag can be used to specify one or more extra images or
 # other source files which should be copied to the LATEX_OUTPUT output
 # directory. Note that the files will be copied as-is; there are no commands or
 # markers available.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_EXTRA_FILES      =
 
 # If the PDF_HYPERLINKS tag is set to YES, the LaTeX that is generated is
 # prepared for conversion to PDF (using ps2pdf or pdflatex). The PDF file will
 # contain links (just like the HTML output) instead of page references. This
 # makes the output suitable for online browsing using a PDF viewer.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 PDF_HYPERLINKS         = NO
 
 # If the USE_PDFLATEX tag is set to YES, doxygen will use pdflatex to generate
 # the PDF file directly from the LaTeX files. Set this option to YES to get a
 # higher quality PDF documentation.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 USE_PDFLATEX           = NO
 
 # If the LATEX_BATCHMODE tag is set to YES, doxygen will add the \batchmode
 # command to the generated LaTeX files. This will instruct LaTeX to keep running
 # if errors occur, instead of asking the user for help. This option is also used
 # when generating formulas in HTML.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_BATCHMODE        = NO
 
 # If the LATEX_HIDE_INDICES tag is set to YES then doxygen will not include the
 # index chapters (such as File Index, Compound Index, etc.) in the output.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_HIDE_INDICES     = NO
 
 # If the LATEX_SOURCE_CODE tag is set to YES then doxygen will include source
 # code with syntax highlighting in the LaTeX output.
 #
 # Note that which sources are shown also depends on other settings such as
 # SOURCE_BROWSER.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_SOURCE_CODE      = NO
 
 # The LATEX_BIB_STYLE tag can be used to specify the style to use for the
 # bibliography, e.g. plainnat, or ieeetr. See
 # http://en.wikipedia.org/wiki/BibTeX and \cite for more info.
 # The default value is: plain.
 # This tag requires that the tag GENERATE_LATEX is set to YES.
 
 LATEX_BIB_STYLE        = plain
 
 #---------------------------------------------------------------------------
 # Configuration options related to the RTF output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_RTF tag is set to YES doxygen will generate RTF output. The
 # RTF output is optimized for Word 97 and may not look too pretty with other RTF
 # readers/editors.
 # The default value is: NO.
 
 GENERATE_RTF           = NO
 
 # The RTF_OUTPUT tag is used to specify where the RTF docs will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
 # it.
 # The default directory is: rtf.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_OUTPUT             = rtf
 
 # If the COMPACT_RTF tag is set to YES doxygen generates more compact RTF
 # documents. This may be useful for small projects and may help to save some
 # trees in general.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
 COMPACT_RTF            = NO
 
 # If the RTF_HYPERLINKS tag is set to YES, the RTF that is generated will
 # contain hyperlink fields. The RTF file will contain links (just like the HTML
 # output) instead of page references. This makes the output suitable for online
 # browsing using Word or some other Word compatible readers that support those
 # fields.
 #
 # Note: WordPad (write) and others do not support links.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_HYPERLINKS         = NO
 
 # Load stylesheet definitions from file. Syntax is similar to doxygen's config
 # file, i.e. a series of assignments. You only have to provide replacements,
 # missing definitions are set to their default value.
 #
 # See also section "Doxygen usage" for information on how to generate the
 # default style sheet that doxygen normally uses.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_STYLESHEET_FILE    =
 
 # Set optional variables used in the generation of an RTF document. Syntax is
 # similar to doxygen's config file. A template extensions file can be generated
 # using doxygen -e rtf extensionFile.
 # This tag requires that the tag GENERATE_RTF is set to YES.
 
 RTF_EXTENSIONS_FILE    =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the man page output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_MAN tag is set to YES doxygen will generate man pages for
 # classes and files.
 # The default value is: NO.
 
 GENERATE_MAN           = NO
 
 # The MAN_OUTPUT tag is used to specify where the man pages will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
 # it. A directory man3 will be created inside the directory specified by
 # MAN_OUTPUT.
 # The default directory is: man.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_OUTPUT             = man
 
 # The MAN_EXTENSION tag determines the extension that is added to the generated
 # man pages. In case the manual section does not start with a number, the number
 # 3 is prepended. The dot (.) at the beginning of the MAN_EXTENSION tag is
 # optional.
 # The default value is: .3.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_EXTENSION          = .3
 
 # The MAN_SUBDIR tag determines the name of the directory created within
 # MAN_OUTPUT in which the man pages are placed. If defaults to man followed by
 # MAN_EXTENSION with the initial . removed.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_SUBDIR             =
 
 # If the MAN_LINKS tag is set to YES and doxygen generates man output, then it
 # will generate one additional man file for each entity documented in the real
 # man page(s). These additional files only source the real man page, but without
 # them the man command would be unable to find the correct page.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_MAN is set to YES.
 
 MAN_LINKS              = NO
 
 #---------------------------------------------------------------------------
 # Configuration options related to the XML output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_XML tag is set to YES doxygen will generate an XML file that
 # captures the structure of the code including all documentation.
 # The default value is: NO.
 
 GENERATE_XML           = NO
 
 # The XML_OUTPUT tag is used to specify where the XML pages will be put. If a
 # relative path is entered the value of OUTPUT_DIRECTORY will be put in front of
 # it.
 # The default directory is: xml.
 # This tag requires that the tag GENERATE_XML is set to YES.
 
 XML_OUTPUT             = xml
 
 # If the XML_PROGRAMLISTING tag is set to YES doxygen will dump the program
 # listings (including syntax highlighting and cross-referencing information) to
 # the XML output. Note that enabling this will significantly increase the size
 # of the XML output.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_XML is set to YES.
 
 XML_PROGRAMLISTING     = YES
 
 #---------------------------------------------------------------------------
 # Configuration options related to the DOCBOOK output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_DOCBOOK tag is set to YES doxygen will generate Docbook files
 # that can be used to generate PDF.
 # The default value is: NO.
 
 GENERATE_DOCBOOK       = NO
 
 # The DOCBOOK_OUTPUT tag is used to specify where the Docbook pages will be put.
 # If a relative path is entered the value of OUTPUT_DIRECTORY will be put in
 # front of it.
 # The default directory is: docbook.
 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
 
 DOCBOOK_OUTPUT         = docbook
 
 # If the DOCBOOK_PROGRAMLISTING tag is set to YES doxygen will include the
 # program listings (including syntax highlighting and cross-referencing
 # information) to the DOCBOOK output. Note that enabling this will significantly
 # increase the size of the DOCBOOK output.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_DOCBOOK is set to YES.
 
 DOCBOOK_PROGRAMLISTING = NO
 
 #---------------------------------------------------------------------------
 # Configuration options for the AutoGen Definitions output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_AUTOGEN_DEF tag is set to YES doxygen will generate an AutoGen
 # Definitions (see http://autogen.sf.net) file that captures the structure of
 # the code including all documentation. Note that this feature is still
 # experimental and incomplete at the moment.
 # The default value is: NO.
 
 GENERATE_AUTOGEN_DEF   = NO
 
 #---------------------------------------------------------------------------
 # Configuration options related to the Perl module output
 #---------------------------------------------------------------------------
 
 # If the GENERATE_PERLMOD tag is set to YES doxygen will generate a Perl module
 # file that captures the structure of the code including all documentation.
 #
 # Note that this feature is still experimental and incomplete at the moment.
 # The default value is: NO.
 
 GENERATE_PERLMOD       = NO
 
 # If the PERLMOD_LATEX tag is set to YES doxygen will generate the necessary
 # Makefile rules, Perl scripts and LaTeX code to be able to generate PDF and DVI
 # output from the Perl module output.
 # The default value is: NO.
 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
 PERLMOD_LATEX          = NO
 
 # If the PERLMOD_PRETTY tag is set to YES the Perl module output will be nicely
 # formatted so it can be parsed by a human reader. This is useful if you want to
 # understand what is going on. On the other hand, if this tag is set to NO the
 # size of the Perl module output will be much smaller and Perl will parse it
 # just the same.
 # The default value is: YES.
 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
 PERLMOD_PRETTY         = YES
 
 # The names of the make variables in the generated doxyrules.make file are
 # prefixed with the string contained in PERLMOD_MAKEVAR_PREFIX. This is useful
 # so different doxyrules.make files included by the same Makefile don't
 # overwrite each other's variables.
 # This tag requires that the tag GENERATE_PERLMOD is set to YES.
 
 PERLMOD_MAKEVAR_PREFIX =
 
 #---------------------------------------------------------------------------
 # Configuration options related to the preprocessor
 #---------------------------------------------------------------------------
 
 # If the ENABLE_PREPROCESSING tag is set to YES doxygen will evaluate all
 # C-preprocessor directives found in the sources and include files.
 # The default value is: YES.
 
 ENABLE_PREPROCESSING   = YES
 
 # If the MACRO_EXPANSION tag is set to YES doxygen will expand all macro names
 # in the source code. If set to NO only conditional compilation will be
 # performed. Macro expansion can be done in a controlled way by setting
 # EXPAND_ONLY_PREDEF to YES.
 # The default value is: NO.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 MACRO_EXPANSION        = YES
 
 # If the EXPAND_ONLY_PREDEF and MACRO_EXPANSION tags are both set to YES then
 # the macro expansion is limited to the macros specified with the PREDEFINED and
 # EXPAND_AS_DEFINED tags.
 # The default value is: NO.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 EXPAND_ONLY_PREDEF     = NO
 
 # If the SEARCH_INCLUDES tag is set to YES the includes files in the
 # INCLUDE_PATH will be searched if a #include is found.
 # The default value is: YES.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 SEARCH_INCLUDES        = YES
 
 # The INCLUDE_PATH tag can be used to specify one or more directories that
 # contain include files that are not input files but should be processed by the
 # preprocessor.
 # This tag requires that the tag SEARCH_INCLUDES is set to YES.
 
 INCLUDE_PATH           =
 
 # You can use the INCLUDE_FILE_PATTERNS tag to specify one or more wildcard
 # patterns (like *.h and *.hpp) to filter out the header-files in the
 # directories. If left blank, the patterns specified with FILE_PATTERNS will be
 # used.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 INCLUDE_FILE_PATTERNS  =
 
 # The PREDEFINED tag can be used to specify one or more macro names that are
 # defined before the preprocessor is started (similar to the -D option of e.g.
 # gcc). The argument of the tag is a list of macros of the form: name or
 # name=definition (no spaces). If the definition and the "=" are omitted, "=1"
 # is assumed. To prevent a macro definition from being undefined via #undef or
 # recursively expanded use the := operator instead of the = operator.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 PREDEFINED             = itkNotUsed(x)= \
                          "itkSetMacro(name,type)=virtual void Set##name (type _arg);" \
                          "itkGetMacro(name,type)=virtual type Get##name ();" \
                          "itkGetConstMacro(name,type)=virtual type Get##name () const;" \
                          "itkSetStringMacro(name)=virtual void Set##name (const char* _arg);" \
                          "itkGetStringMacro(name)=virtual const char* Get##name () const;" \
                          "itkSetClampMacro(name,type,min,max)=virtual void Set##name (type _arg);" \
                          "itkSetObjectMacro(name,type)=virtual void Set##name (type* _arg);" \
                          "itkGetObjectMacro(name,type)=virtual type* Get##name ();" \
                          "itkSetConstObjectMacro(name,type)=virtual void Set##name ( const type* _arg);" \
                          "itkGetConstObjectMacro(name,type)=virtual const type* Get##name ();" \
                          "itkGetConstReferenceMacro(name,type)=virtual const type& Get##name ();" \
                          "itkGetConstReferenceObjectMacro(name,type)=virtual const type::Pointer& Get##name () const;" \
                          "itkBooleanMacro(name)=virtual void name##On (); virtual void name##Off ();" \
                          "itkSetVector2Macro(name,type)=virtual void Set##name (type _arg1, type _arg2) virtual void Set##name (type _arg[2]);" \
                          "itkGetVector2Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2) const; virtual void Get##name (type _arg[2]) const;" \
                          "itkSetVector3Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3) virtual void Set##name (type _arg[3]);" \
                          "itkGetVector3Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3) const; virtual void Get##name (type _arg[3]) const;" \
                          "itkSetVector4Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4) virtual void Set##name (type _arg[4]);" \
                          "itkGetVector4Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3, type& _arg4) const; virtual void Get##name (type _arg[4]) const;" \
                          "itkSetVector6Macro(name,type)=virtual void Set##name (type _arg1, type _arg2, type _arg3, type _arg4, type _arg5, type _arg6) virtual void Set##name (type _arg[6]);" \
                          "itkGetVector6Macro(name,type)=virtual type* Get##name () const; virtual void Get##name (type& _arg1, type& _arg2, type& _arg3, type& _arg4, type& _arg5, type& _arg6) const; virtual void Get##name (type _arg[6]) const;" \
                          "itkSetVectorMacro(name,type,count)=virtual void Set##name(type data[]);" \
                          "itkGetVectorMacro(name,type,count)=virtual type* Get##name () const;" \
                          "itkNewMacro(type)=static Pointer New();" \
                          "itkFactorylessNewMacro(type)=static Pointer New();" \
                          "itkCloneMacro(type)=Pointer Clone() const;" \
                          "itkTypeMacro(thisClass,superclass)=virtual const char *GetClassName() const;" \
                          "itkConceptMacro(name,concept)=enum { name = 0 };" \
                          "ITK_NUMERIC_LIMITS=std::numeric_limits" \
                          "ITK_TYPENAME=typename" \
                          "FEM_ABSTRACT_CLASS(thisClass,parentClass)=public: /** Standard Self typedef.*/ typedef thisClass Self; /** Standard Superclass typedef. */ typedef parentClass Superclass; /** Pointer or SmartPointer to an object. */ typedef Self* Pointer; /** Const pointer or SmartPointer to an object. */ typedef const Self* ConstPointer; private:" \
                          "FEM_CLASS(thisClass,parentClass)=FEM_ABSTRACT_CLASS(thisClass,parentClass) public: /** Create a new object from the existing one  */ virtual Baseclass::Pointer Clone() const; /** Class ID for FEM object factory */ static const int CLID; /** Virtual function to access the class ID */ virtual int ClassID() const { return CLID; /** Object creation in an itk compatible way */ static Self::Pointer New() { return new Self(); } private:" \
                          FREEVERSION \
                          ERROR_CHECKING \
                          HAS_TIFF \
                          HAS_JPEG \
                          HAS_NETLIB \
                          HAS_PNG \
                          HAS_ZLIB \
                          HAS_GLUT \
                          HAS_QT \
                          VCL_USE_NATIVE_STL=1 \
                          VCL_USE_NATIVE_COMPLEX=1 \
                          VCL_HAS_BOOL=1 \
                          VXL_BIG_ENDIAN=1 \
                          VXL_LITTLE_ENDIAN=0 \
                          VNL_DLL_DATA= \
                          size_t=vcl_size_t \
                          "US_PREPEND_NAMESPACE(x)=us::x" \
                          "US_BEGIN_NAMESPACE= namespace us {" \
                          "US_END_NAMESPACE=}" \
                          "US_BASECLASS_NAME=itk::LightObject" \
                          US_EXPORT= \
                          "DEPRECATED(func)=func" \
                          @US_PLATFORM@
 
 # If the MACRO_EXPANSION and EXPAND_ONLY_PREDEF tags are set to YES then this
 # tag can be used to specify a list of macro names that should be expanded. The
 # macro definition that is found in the sources will be used. Use the PREDEFINED
 # tag if you want to use a different macro definition that overrules the
 # definition found in the source code.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 EXPAND_AS_DEFINED      =
 
 # If the SKIP_FUNCTION_MACROS tag is set to YES then doxygen's preprocessor will
 # remove all references to function-like macros that are alone on a line, have
 # an all uppercase name, and do not end with a semicolon. Such function macros
 # are typically used for boiler-plate code, and will confuse the parser if not
 # removed.
 # The default value is: YES.
 # This tag requires that the tag ENABLE_PREPROCESSING is set to YES.
 
 SKIP_FUNCTION_MACROS   = YES
 
 #---------------------------------------------------------------------------
 # Configuration options related to external references
 #---------------------------------------------------------------------------
 
 # The TAGFILES tag can be used to specify one or more tag files. For each tag
 # file the location of the external documentation should be added. The format of
 # a tag file without this location is as follows:
 # TAGFILES = file1 file2 ...
 # Adding location for the tag files is done as follows:
 # TAGFILES = file1=loc1 "file2 = loc2" ...
 # where loc1 and loc2 can be relative or absolute paths or URLs. See the
 # section "Linking to external documentation" for more information about the use
 # of tag files.
 # Note: Each tag file must have a unique name (where the name does NOT include
 # the path). If a tag file is not located in the directory in which doxygen is
 # run, you must also specify the path to the tagfile here.
 
 TAGFILES               =
 
 # When a file name is specified after GENERATE_TAGFILE, doxygen will create a
 # tag file that is based on the input files it reads. See section "Linking to
 # external documentation" for more information about the usage of tag files.
 
 GENERATE_TAGFILE       = @MITK_DOXYGEN_TAGFILE_NAME@
 
 # If the ALLEXTERNALS tag is set to YES all external class will be listed in the
 # class index. If set to NO only the inherited external classes will be listed.
 # The default value is: NO.
 
 ALLEXTERNALS           = NO
 
 # If the EXTERNAL_GROUPS tag is set to YES all external groups will be listed in
 # the modules index. If set to NO, only the current project's groups will be
 # listed.
 # The default value is: YES.
 
 EXTERNAL_GROUPS        = NO
 
 # If the EXTERNAL_PAGES tag is set to YES all external pages will be listed in
 # the related pages index. If set to NO, only the current project's pages will
 # be listed.
 # The default value is: YES.
 
 EXTERNAL_PAGES         = YES
 
 #---------------------------------------------------------------------------
 # Configuration options related to the dot tool
 #---------------------------------------------------------------------------
 
 # If the CLASS_DIAGRAMS tag is set to YES doxygen will generate a class diagram
 # (in HTML and LaTeX) for classes with base or super classes. Setting the tag to
 # NO turns the diagrams off. Note that this option also works with HAVE_DOT
 # disabled, but it is recommended to install and use dot, since it yields more
 # powerful graphs.
 # The default value is: YES.
 
 CLASS_DIAGRAMS         = YES
 
 # You can include diagrams made with dia in doxygen documentation. Doxygen will
 # then run dia to produce the diagram and insert it in the documentation. The
 # DIA_PATH tag allows you to specify the directory where the dia binary resides.
 # If left empty dia is assumed to be found in the default search path.
 
 DIA_PATH               =
 
 # If set to YES, the inheritance and collaboration graphs will hide inheritance
 # and usage relations if the target is undocumented or is not a class.
 # The default value is: YES.
 
 HIDE_UNDOC_RELATIONS   = YES
 
 # If you set the HAVE_DOT tag to YES then doxygen will assume the dot tool is
 # available from the path. This tool is part of Graphviz (see:
 # http://www.graphviz.org/), a graph visualization toolkit from AT&T and Lucent
 # Bell Labs. The other options in this section have no effect if this option is
 # set to NO
 # The default value is: NO.
 
 HAVE_DOT               = @HAVE_DOT@
 
 # The DOT_NUM_THREADS specifies the number of dot invocations doxygen is allowed
 # to run in parallel. When set to 0 doxygen will base this on the number of
 # processors available in the system. You can set it explicitly to a value
 # larger than 0 to get control over the balance between CPU load and processing
 # speed.
 # Minimum value: 0, maximum value: 32, default value: 0.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_NUM_THREADS        = @MITK_DOXYGEN_DOT_NUM_THREADS@
 
 # When you want a differently looking font in the dot files that doxygen
 # generates you can specify the font name using DOT_FONTNAME. You need to make
 # sure dot is able to find the font, which can be done by putting it in a
 # standard location or by setting the DOTFONTPATH environment variable or by
 # setting DOT_FONTPATH to the directory containing the font.
 # The default value is: Helvetica.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_FONTNAME           = Helvetica
 
 # The DOT_FONTSIZE tag can be used to set the size (in points) of the font of
 # dot graphs.
 # Minimum value: 4, maximum value: 24, default value: 10.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_FONTSIZE           = 10
 
 # By default doxygen will tell dot to use the default font as specified with
 # DOT_FONTNAME. If you specify a different font using DOT_FONTNAME you can set
 # the path where dot can find it using this tag.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_FONTPATH           =
 
 # If the CLASS_GRAPH tag is set to YES then doxygen will generate a graph for
 # each documented class showing the direct and indirect inheritance relations.
 # Setting this tag to YES will force the CLASS_DIAGRAMS tag to NO.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 CLASS_GRAPH            = YES
 
 # If the COLLABORATION_GRAPH tag is set to YES then doxygen will generate a
 # graph for each documented class showing the direct and indirect implementation
 # dependencies (inheritance, containment, and class references variables) of the
 # class with other documented classes.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 COLLABORATION_GRAPH    = YES
 
 # If the GROUP_GRAPHS tag is set to YES then doxygen will generate a graph for
 # groups, showing the direct groups dependencies.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 GROUP_GRAPHS           = YES
 
 # If the UML_LOOK tag is set to YES doxygen will generate inheritance and
 # collaboration diagrams in a style similar to the OMG's Unified Modeling
 # Language.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 UML_LOOK               = @MITK_DOXYGEN_UML_LOOK@
 
 # If the UML_LOOK tag is enabled, the fields and methods are shown inside the
 # class node. If there are many fields or methods and many nodes the graph may
 # become too big to be useful. The UML_LIMIT_NUM_FIELDS threshold limits the
 # number of items for each type to make the size more manageable. Set this to 0
 # for no limit. Note that the threshold may be exceeded by 50% before the limit
 # is enforced. So when you set the threshold to 10, up to 15 fields may appear,
 # but if the number exceeds 15, the total amount of fields shown is limited to
 # 10.
 # Minimum value: 0, maximum value: 100, default value: 10.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 UML_LIMIT_NUM_FIELDS   = 10
 
 # If the TEMPLATE_RELATIONS tag is set to YES then the inheritance and
 # collaboration graphs will show the relations between templates and their
 # instances.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 TEMPLATE_RELATIONS     = YES
 
 # If the INCLUDE_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are set to
 # YES then doxygen will generate a graph for each documented file showing the
 # direct and indirect include dependencies of the file with other documented
 # files.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 INCLUDE_GRAPH          = NO
 
 # If the INCLUDED_BY_GRAPH, ENABLE_PREPROCESSING and SEARCH_INCLUDES tags are
 # set to YES then doxygen will generate a graph for each documented file showing
 # the direct and indirect include dependencies of the file with other documented
 # files.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 INCLUDED_BY_GRAPH      = NO
 
 # If the CALL_GRAPH tag is set to YES then doxygen will generate a call
 # dependency graph for every global function or class method.
 #
 # Note that enabling this option will significantly increase the time of a run.
 # So in most cases it will be better to enable call graphs for selected
 # functions only using the \callgraph command.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 CALL_GRAPH             = NO
 
 # If the CALLER_GRAPH tag is set to YES then doxygen will generate a caller
 # dependency graph for every global function or class method.
 #
 # Note that enabling this option will significantly increase the time of a run.
 # So in most cases it will be better to enable caller graphs for selected
 # functions only using the \callergraph command.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 CALLER_GRAPH           = NO
 
 # If the GRAPHICAL_HIERARCHY tag is set to YES then doxygen will graphical
 # hierarchy of all classes instead of a textual one.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 GRAPHICAL_HIERARCHY    = NO
 
 # If the DIRECTORY_GRAPH tag is set to YES then doxygen will show the
 # dependencies a directory has on other directories in a graphical way. The
 # dependency relations are determined by the #include relations between the
 # files in the directories.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DIRECTORY_GRAPH        = YES
 
 # The DOT_IMAGE_FORMAT tag can be used to set the image format of the images
 # generated by dot.
 # Note: If you choose svg you need to set HTML_FILE_EXTENSION to xhtml in order
 # to make the SVG files visible in IE 9+ (other browsers do not have this
 # requirement).
 # Possible values are: png, jpg, gif and svg.
 # The default value is: png.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_IMAGE_FORMAT       = png
 
 # If DOT_IMAGE_FORMAT is set to svg, then this option can be set to YES to
 # enable generation of interactive SVG images that allow zooming and panning.
 #
 # Note that this requires a modern browser other than Internet Explorer. Tested
 # and working are Firefox, Chrome, Safari, and Opera.
 # Note: For IE 9+ you need to set HTML_FILE_EXTENSION to xhtml in order to make
 # the SVG files visible. Older versions of IE do not have SVG support.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 INTERACTIVE_SVG        = NO
 
 # The DOT_PATH tag can be used to specify the path where the dot tool can be
 # found. If left blank, it is assumed the dot tool can be found in the path.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_PATH               = "@DOXYGEN_DOT_PATH@"
 
 # The DOTFILE_DIRS tag can be used to specify one or more directories that
 # contain dot files that are included in the documentation (see the \dotfile
 # command).
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOTFILE_DIRS           =
 
 # The MSCFILE_DIRS tag can be used to specify one or more directories that
 # contain msc files that are included in the documentation (see the \mscfile
 # command).
 
 MSCFILE_DIRS           =
 
 # The DIAFILE_DIRS tag can be used to specify one or more directories that
 # contain dia files that are included in the documentation (see the \diafile
 # command).
 
 DIAFILE_DIRS           =
 
 # When using plantuml, the PLANTUML_JAR_PATH tag should be used to specify the
 # path where java can find the plantuml.jar file. If left blank, it is assumed
 # PlantUML is not used or called during a preprocessing step. Doxygen will
 # generate a warning when it encounters a \startuml command in this case and
 # will not generate output for the diagram.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 PLANTUML_JAR_PATH      =
 
 # The DOT_GRAPH_MAX_NODES tag can be used to set the maximum number of nodes
 # that will be shown in the graph. If the number of nodes in a graph becomes
 # larger than this value, doxygen will truncate the graph, which is visualized
 # by representing a node as a red box. Note that doxygen if the number of direct
 # children of the root node in a graph is already larger than
 # DOT_GRAPH_MAX_NODES then the graph will not be shown at all. Also note that
 # the size of a graph can be further restricted by MAX_DOT_GRAPH_DEPTH.
 # Minimum value: 0, maximum value: 10000, default value: 50.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
-DOT_GRAPH_MAX_NODES    = 50
+DOT_GRAPH_MAX_NODES    = 120
 
 # The MAX_DOT_GRAPH_DEPTH tag can be used to set the maximum depth of the graphs
 # generated by dot. A depth value of 3 means that only nodes reachable from the
 # root by following a path via at most 3 edges will be shown. Nodes that lay
 # further from the root node will be omitted. Note that setting this option to 1
 # or 2 may greatly reduce the computation time needed for large code bases. Also
 # note that the size of a graph can be further restricted by
 # DOT_GRAPH_MAX_NODES. Using a depth of 0 means no depth restriction.
 # Minimum value: 0, maximum value: 1000, default value: 0.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 MAX_DOT_GRAPH_DEPTH    = 0
 
 # Set the DOT_TRANSPARENT tag to YES to generate images with a transparent
 # background. This is disabled by default, because dot on Windows does not seem
 # to support this out of the box.
 #
 # Warning: Depending on the platform used, enabling this option may lead to
 # badly anti-aliased labels on the edges of a graph (i.e. they become hard to
 # read).
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_TRANSPARENT        = NO
 
 # Set the DOT_MULTI_TARGETS tag to YES allow dot to generate multiple output
 # files in one run (i.e. multiple -o and -T options on the command line). This
 # makes dot run faster, but since only newer versions of dot (>1.8.10) support
 # this, this feature is disabled by default.
 # The default value is: NO.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_MULTI_TARGETS      = NO
 
 # If the GENERATE_LEGEND tag is set to YES doxygen will generate a legend page
 # explaining the meaning of the various boxes and arrows in the dot generated
 # graphs.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 GENERATE_LEGEND        = YES
 
 # If the DOT_CLEANUP tag is set to YES doxygen will remove the intermediate dot
 # files that are used to generate the various graphs.
 # The default value is: YES.
 # This tag requires that the tag HAVE_DOT is set to YES.
 
 DOT_CLEANUP            = YES
diff --git a/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h b/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h
index 34730d9443..c7ab29a8e2 100755
--- a/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h
+++ b/Plugins/org.blueberry.core.commands/src/berryINamedHandleStateIds.h
@@ -1,48 +1,48 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYINAMEDHANDLESTATEIDS_H_
 #define BERRYINAMEDHANDLESTATEIDS_H_
 
 #include <QString>
 
 namespace berry {
 
 /**
  * <p>
  * State identifiers that are understood by named handle objects that implement
  * {@link IObjectWithState}.
  * </p>
  * <p>
  * Clients may implement or extend this class.
  * </p>
  *
  */
 struct INamedHandleStateIds {
 
   /**
    * The state id used for overriding the description of a named handle
-   * object. This state's value must return a {@link String}.
+   * object. This state's value must return a \c String .
    */
   static const QString DESCRIPTION; // = "DESCRIPTION";
 
   /**
    * The state id used for overriding the name of a named handle object. This
-   * state's value must return a {@link String}.
+   * state's value must return a \c String .
    */
   static const QString NAME; // = "NAME";
 };
 
 }
 
 #endif /* BERRYINAMEDHANDLESTATEIDS_H_ */
diff --git a/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h b/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h
index d69f77d166..487a0f66ee 100755
--- a/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h
+++ b/Plugins/org.blueberry.core.commands/src/berryIParameterValueConverter.h
@@ -1,104 +1,89 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYABSTRACTPARAMETERVALUECONVERTER_H_
 #define BERRYABSTRACTPARAMETERVALUECONVERTER_H_
 
 #include <berryObject.h>
 #include <berryMacros.h>
 
 #include <org_blueberry_core_commands_Export.h>
 
 namespace berry {
 
 /**
  * <p>
  * Supports conversion between objects and strings for command parameter values.
  * Extenders must produce strings that identify objects (of a specific command
  * parameter type) as well as consume the strings to locate and return the
  * objects they identify.
  * </p>
  * <p>
  * This class offers multiple handlers of a command a consistent way of
  * converting string parameter values into the objects that the handlers would
  * prefer to deal with. This class also gives clients a way to serialize
  * object parameters as strings so that entire parameterized commands can be
  * serialized, stored and later deserialized and executed.
  * </p>
  * <p>
  * This class will typically be extended so the subclass can be referenced from
  * the <code>converter</code> attribute of the
  * <code>commandParameterType</code> elemement of the
  * <code>org.blueberry.ui.commands</code> extension-point. Objects implementing
  * this interface may also be passed directly to
- * {@link ParameterType#Define(IParameterValueConverter::Pointer)} by
- * clients.
+ * {@link ParameterType#Define} by clients.
  * </p>
  *
  * @see ParameterType#Define(IParameterValueConverter::Pointer)
  * @see ParameterizedCommand#Serialize()
  */
 struct BERRY_COMMANDS IParameterValueConverter {
 
   virtual ~IParameterValueConverter();
 
-  /**
-   * Returns whether the provided value is compatible with this parameter
-   * value converter. An object is compatible with a converter if the object is an
-   * instance of the class defined in the <code>type</code> attribute of
-   * the <code>commandParameterType</code> element.
-   *
-   * @param value
-   *            an object to check for compatibility with this parameter type;
-   *            may be <code>null</code>.
-   * @return <code>true</code> if the value is compatible with this converter,
-   *         <code>false</code> otherwise
-   */
-  //virtual bool IsCompatible(const Object::ConstPointer value) const = 0;
-
   /**
    * Converts a string encoded command parameter value into the parameter
    * value object.
    *
    * @param parameterValue
    *            a command parameter value string describing an object; may be
    *            <code>null</code>
    * @return the object described by the command parameter value string; may
    *         be <code>null</code>
    * @throws ParameterValueConversionException
    *             if an object cannot be produced from the
    *             <code>parameterValue</code> string
    */
   virtual Object::Pointer ConvertToObject(const QString& parameterValue) = 0;
 
   /**
    * Converts a command parameter value object into a string that encodes a
    * reference to the object or serialization of the object.
    *
    * @param parameterValue
    *            an object to convert into an identifying string; may be
    *            <code>null</code>
    * @return a string describing the provided object; may be <code>null</code>
    * @throws ParameterValueConversionException
    *             if a string reference or serialization cannot be provided for
    *             the <code>parameterValue</code>
    */
   virtual QString ConvertToString(const Object::Pointer& parameterValue) = 0;
 
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IParameterValueConverter, "org.blueberry.core.commands.IParameterValueConverter")
 
 #endif /* BERRYABSTRACTPARAMETERVALUECONVERTER_H_ */
diff --git a/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h b/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h
index 431a5428bb..2fa0297267 100644
--- a/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h
+++ b/Plugins/org.blueberry.core.commands/src/berryNamedHandleObjectWithState.h
@@ -1,72 +1,72 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYNAMEDHANDLEOBJECTWITHSTATE_H_
 #define BERRYNAMEDHANDLEOBJECTWITHSTATE_H_
 
 #include "common/berryNamedHandleObject.h"
 #include "berryIObjectWithState.h"
 
 #include <QHash>
 
 namespace berry {
 
 /**
  * <p>
  * A named handle object that can carry state with it. This state can be used to
  * override the name or description.
  * </p>
  * <p>
  * Clients may neither instantiate nor extend this class.
  * </p>
  */
 class BERRY_COMMANDS NamedHandleObjectWithState : public NamedHandleObject, public IObjectWithState {
 
 public:
 
   berryObjectMacro(berry::NamedHandleObjectWithState);
 
   void AddState(const QString& stateId, const SmartPointer<State>& state) override;
 
   QString GetDescription() const override;
 
   QString GetName() const override;
 
   SmartPointer<State> GetState(const QString& stateId) const override;
 
   QList<QString> GetStateIds() const override;
 
   void RemoveState(const QString& id) override;
 
 private:
 
   /**
    * The map of states currently held by this command. If this command has no
    * state, then this will be empty.
    */
   QHash<QString, SmartPointer<State> > states;
 
 protected:
 
   /**
-   * Constructs a new instance of <code>NamedHandleObject<WithState/code>.
+   * Constructs a new instance of <code>NamedHandleObjectWithState</code>.
    *
    * @param id
    *            The identifier for this handle; must not be empty.
    */
   NamedHandleObjectWithState(const QString& id);
 
 };
 
 }
 
 #endif /*BERRYNAMEDHANDLEOBJECTWITHSTATE_H_*/
diff --git a/Plugins/org.blueberry.core.commands/src/berryParameterType.h b/Plugins/org.blueberry.core.commands/src/berryParameterType.h
index 8bf61603e8..c99c67c6f9 100755
--- a/Plugins/org.blueberry.core.commands/src/berryParameterType.h
+++ b/Plugins/org.blueberry.core.commands/src/berryParameterType.h
@@ -1,203 +1,203 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYPARAMETERTYPE_H_
 #define BERRYPARAMETERTYPE_H_
 
 #include "common/berryHandleObject.h"
 #include "berryIParameterTypeListener.h"
 #include "berryIParameterValueConverter.h"
 
 #include <QSharedPointer>
 
 namespace berry
 {
 
 struct IParameterValueConverter;
 
 /**
  * <p>
  * Provides information about the type of a command parameter. Clients can use a
  * parameter type to check if an object matches the type of the parameter with
- * {@link #IsCompatible(Object::Pointer)} and can get an
+ * \c IsCompatible(Object::Pointer) and can get an
  * {@link IParameterValueConverter} to convert between objects matching
  * the parameter type and strings that encode the object's identity.
  * </p>
  * <p>
  * A command parameter is not required to declare a type. To determine if a
  * given parameter has a type, check if an {@link IParameter} implements
  * {@link ITypedParameter} and if so, use
  * {@link ITypedParameter#GetParameterType()} like this:
  * </p>
  *
  * <pre>
  *                   IParameter::Pointer parameter = // ... get IParameter from Command
  *                   if (ITypedParameter::Pointer typedParameter = parameter.Cast<ITypedParameter>())
  *                   {
  *                     ParameterType::Pointer type = typedParameter->GetParameterType();
  *                     if (type) {
  *                       // this parameter has a ParameterType
  *                     }
  *                   }
  * </pre>
  *
  * @see IParameter
  * @see ITypedParameter#GetParameterType()
  */
 class BERRY_COMMANDS ParameterType: public HandleObject
 { //implements Comparable {
 
 public:
 
   berryObjectMacro(ParameterType);
 
   /**
    * Adds a listener to this parameter type that will be notified when its
    * state changes.
    *
    * @param listener
    *            The listener to be added; must not be <code>null</code>.
    */
 void  AddListener(IParameterTypeListener* listener);
 
   /**
    * Compares this parameter type with another object by comparing each of the
    * non-transient attributes.
    *
    * @param object
    *            The object with which to compare; must be an instance of
    *            {@link ParameterType}.
    * @return A negative integer, zero or a positive integer, if the object is
    *         greater than, equal to or less than this parameter type.
    */
   bool operator<(const Object* object) const override;
 
   /**
    * <p>
    * Defines this parameter type, setting the defined property to
    * <code>true</code>.
    * </p>
    * <p>
    * Notification is sent to all listeners that something has changed.
    * </p>
    *
    * @param type
    *            a string identifying the object type for this parameter
    *            type; <code>null</code> is interpreted as
    *            <code>"QObject"</code>
    * @param parameterTypeConverter
-   *            an {@link AbstractParameterValueConverter} to perform
+   *            an \c AbstractParameterValueConverter to perform
    *            string/object conversions for parameter values; may be
    *            <code>null</code>
    */
   void Define(const QString& type,
               const QSharedPointer<IParameterValueConverter>& parameterTypeConverter);
 
   /**
    * Returns the value converter associated with this parameter, if any.
    *
    * @return The parameter value converter, or <code>null</code> if there is
    *         no value converter for this parameter.
    * @throws NotDefinedException
    *             if the parameter type is not currently defined
    */
   IParameterValueConverter* GetValueConverter() const;
 
   /**
    * Returns whether the provided value is compatible with this parameter
    * type. An object is compatible with a parameter type if the object is an
    * instance of the class defined as the parameter's type class.
    *
    * @param value
    *            an object to check for compatibility with this parameter type;
    *            may be <code>null</code>.
    * @return <code>true</code> if the value is compatible with this type,
    *         <code>false</code> otherwise
    * @throws NotDefinedException
    *             if the parameter type is not currently defined
    */
   bool IsCompatible(const QObject* const value) const;
 
   /**
    * Unregisters listener for changes to properties of this parameter type.
    *
    * @param listener
    *            the instance to unregister. Must not be <code>null</code>.
    *            If an attempt is made to unregister an instance which is not
    *            already registered with this instance, no operation is
    *            performed.
    */
   void RemoveListener(IParameterTypeListener* listener);
 
   /**
    * The string representation of this parameter type. For debugging purposes
    * only. This string should not be shown to an end user.
    *
    * @return The string representation; never <code>null</code>.
    */
   QString ToString() const override;
 
   /**
    * Makes this parameter type become undefined. Notification is sent to all
    * listeners.
    */
   void Undefine() override;
 
 protected:
 
   friend class CommandManager;
 
   /**
    * Constructs a new instance based on the given identifier. When a parameter
    * type is first constructed, it is undefined. Parameter types should only
    * be constructed by the {@link CommandManager} to ensure that the
    * identifier remains unique.
    *
    * @param id
    *            The identifier for this type. This value must not be
    *            <code>null</code>, and must be unique amongst all parameter
    *            types.
    */
   ParameterType(const QString& id);
 
 private:
 
   /**
    * Notifies all listeners that this parameter type has changed. This sends
    * the given event to all of the listeners, if any.
    *
    * @param event
    *            The event to send to the listeners; must not be
    *            <code>null</code>.
    */
   void FireParameterTypeChanged(const SmartPointer<ParameterTypeEvent> event);
 
   /**
    * An {@link AbstractParameterValueConverter} for converting parameter
    * values between objects and strings. This may be <code>null</code>.
    */
   QSharedPointer<IParameterValueConverter> parameterTypeConverter;
 
   /**
    * A string specifying the object type of this parameter type. This will be
    * <code>null</code> when the parameter type is undefined but never null
    * when it is defined.
    */
   QString type;
 
   IParameterTypeListener::Events parameterTypeEvents;
 
 };
 
 }
 
 #endif /* BERRYPARAMETERTYPE_H_ */
diff --git a/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h b/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h
index cface1be45..1b4bc39516 100755
--- a/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h
+++ b/Plugins/org.blueberry.core.commands/src/berryParameterizedCommand.h
@@ -1,334 +1,334 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYPARAMETERIZEDCOMMAND_H_
 #define BERRYPARAMETERIZEDCOMMAND_H_
 
 #include <berryObject.h>
 #include <berryMacros.h>
 
 #include "common/berryCommandExceptions.h"
 #include <org_blueberry_core_commands_Export.h>
 
 #include <list>
 #include <map>
 
 namespace berry
 {
 
 struct IParameter;
 class Command;
 class Parameterization;
 
 /**
  * <p>
  * A command that has had one or more of its parameters specified. This class
  * serves as a utility class for developers that need to manipulate commands
  * with parameters. It handles the behaviour of generating a parameter map and a
  * human-readable name.
  * </p>
  */
 class BERRY_COMMANDS ParameterizedCommand: public Object
 { //implements Comparable {
 
 public:
 
   berryObjectMacro(ParameterizedCommand);
 
   /**
    * The index of the parameter id in the parameter values.
    *
    * @deprecated no longer used
    */
   static  const int INDEX_PARAMETER_ID; // = 0;
 
   /**
    * The index of the human-readable name of the parameter itself, in the
    * parameter values.
    *
    * @deprecated no longer used
    */
   static const int INDEX_PARAMETER_NAME; // = 1;
 
   /**
    * The index of the human-readable name of the value of the parameter for
    * this command.
    *
    * @deprecated no longer used
    */
   static const int INDEX_PARAMETER_VALUE_NAME; // = 2;
 
   /**
    * The index of the value of the parameter that the command can understand.
    *
    * @deprecated no longer used
    */
   static const int INDEX_PARAMETER_VALUE_VALUE; // = 3;
 
   /**
    * Constructs a new instance of <code>ParameterizedCommand</code> with
    * specific values for zero or more of its parameters.
    *
    * @param command
    *            The command that is parameterized; must not be
    *            <code>null</code>.
    * @param parameterizations
    *            An array of parameterizations binding parameters to values for
    *            the command. This value may be <code>null</code>.
    */
   ParameterizedCommand(const SmartPointer<Command>& command,
                        const QList<Parameterization>& parameterizations);
 
   bool operator<(const Object* object) const override;
 
   bool operator==(const Object* object) const override;
 
   /**
    * Executes this command with its parameters. This does extra checking to
    * see if the command is enabled and defined. If it is not both enabled and
    * defined, then the execution listeners will be notified and an exception
    * thrown.
    *
    * @param trigger
    *            The object that triggered the execution; may be
    *            <code>null</code>.
    * @param applicationContext
    *            The state of the application at the time the execution was
    *            triggered; may be <code>null</code>.
    * @return The result of the execution; may be <code>null</code>.
    * @throws ExecutionException
    *             If the handler has problems executing this command.
    * @throws NotDefinedException
    *             If the command you are trying to execute is not defined.
    * @throws NotEnabledException
    *             If the command you are trying to execute is not enabled.
    * @throws NotHandledException
    *             If there is no handler.
    */
   Object::Pointer ExecuteWithChecks(const Object::ConstPointer& trigger,
                                     const Object::Pointer& applicationContext);
 
   /**
    * Returns the base command. It is possible for more than one parameterized
    * command to have the same identifier.
    *
    * @return The command; never <code>null</code>, but may be undefined.
    */
   SmartPointer<Command> GetCommand() const;
 
   /**
    * Returns the command's base identifier. It is possible for more than one
    * parameterized command to have the same identifier.
    *
    * @return The command id; never <code>null</code>.
    */
   QString GetId() const;
 
   /**
    * Returns a human-readable representation of this command with all of its
    * parameterizations.
    *
    * @return The human-readable representation of this parameterized command;
    *         never <code>null</code>.
    * @throws NotDefinedException
    *             If the underlying command is not defined.
    */
   QString GetName() const;
 
   /**
    * Returns the parameter map, as can be used to construct an
    * <code>ExecutionEvent</code>.
    *
    * @return The map of parameter ids (<code>String</code>) to parameter
    *         values (<code>String</code>). This map is never
    *         <code>null</code>, but may be empty.
    */
   QHash<QString, QString> GetParameterMap() const;
 
   uint HashCode() const override;
 
   /**
-   * Returns a {@link String} containing the command id, parameter ids and
-   * parameter values for this {@link ParameterizedCommand}. The returned
-   * {@link String} can be stored by a client and later used to reconstruct an
+   * Returns a \c String containing the command id, parameter ids and
+   * parameter values for this \c ParameterizedCommand . The returned
+   * \c String can be stored by a client and later used to reconstruct an
    * equivalent {@link ParameterizedCommand} using the
-   * {@link CommandManager#deserialize(String)} method.
+   * \c CommandManager.deserialize(String) method.
    * <p>
-   * The syntax of the returned {@link String} is as follows:
+   * The syntax of the returned \c String is as follows:
    * </p>
    *
    * <blockquote>
    * <code>serialization = <u>commandId</u> [ '(' parameters ')' ]</code><br>
    * <code>parameters = parameter [ ',' parameters ]</code><br>
    * <code>parameter = <u>parameterId</u> [ '=' <u>parameterValue</u> ]</code>
    * </blockquote>
    *
    * <p>
    * In the syntax above, sections inside square-brackets are optional. The
    * characters in single quotes (<code>(</code>, <code>)</code>,
    * <code>,</code> and <code>=</code>) indicate literal characters.
    * </p>
    * <p>
    * <code><u>commandId</u></code> represents the command id encoded with
    * separator characters escaped. <code><u>parameterId</u></code> and
    * <code><u>parameterValue</u></code> represent the parameter ids and
    * values encoded with separator characters escaped. The separator
    * characters <code>(</code>, <code>)</code>, <code>,</code> and
    * <code>=</code> are escaped by prepending a <code>%</code>. This
    * requires <code>%</code> to be escaped, which is also done by prepending
    * a <code>%</code>.
    * </p>
    * <p>
    * The order of the parameters is not defined (and not important). A missing
    * <code><u>parameterValue</u></code> indicates that the value of the
    * parameter is <code>null</code>.
    * </p>
    * <p>
    * For example, the string shown below represents a serialized parameterized
    * command that can be used to show the Resource perspective:
    * </p>
    * <p>
    * <code>org.eclipse.ui.perspectives.showPerspective(org.eclipse.ui.perspectives.showPerspective.perspectiveId=org.eclipse.ui.resourcePerspective)</code>
    * </p>
    * <p>
    * This example shows the more general form with multiple parameters,
    * <code>null</code> value parameters, and escaped <code>=</code> in the
    * third parameter value.
    * </p>
    * <p>
    * <code>command.id(param1.id=value1,param2.id,param3.id=esc%=val3)</code>
    * </p>
    *
    * @return A string containing the escaped command id, parameter ids and
    *         parameter values; never <code>null</code>.
    * @see CommandManager#deserialize(String)
    */
   QString Serialize();
 
   QString ToString() const override;
 
   /**
    * <p>
    * Generates all the possible combinations of command parameterizations for
    * the given command. If the command has no parameters, then this is simply
    * a parameterized version of that command. If a parameter is optional, both
    * the included and not included cases are considered.
    * </p>
    * <p>
    * If one of the parameters cannot be loaded due to a
    * <code>ParameterValuesException</code>, then it is simply ignored.
    * </p>
    *
    * @param command
    *            The command for which the parameter combinations should be
    *            generated; must not be <code>null</code>.
    * @return A collection of <code>ParameterizedCommand</code> instances
    *         representing all of the possible combinations. This value is
    *         never empty and it is never <code>null</code>.
    * @throws NotDefinedException
    *             If the command is not defined.
    */
   static QList<ParameterizedCommand::Pointer>
   GenerateCombinations(const SmartPointer<Command> command);
 
   /**
    * Take a command and a map of parameter IDs to values, and generate the
    * appropriate parameterized command.
    *
    * @param command
    *            The command object. Must not be <code>null</code>.
    * @param parameters
    *            A map of String parameter ids to objects. May be
    *            <code>null</code>.
    * @return the parameterized command, or <code>null</code> if it could not
    *         be generated
    */
   static ParameterizedCommand::Pointer GenerateCommand(const SmartPointer<Command> command,
                                                        const QHash<QString, Object::Pointer>& parameters);
 
 private:
 
   /**
    * The constant integer hash code value meaning the hash code has not yet
    * been computed.
    */
   static const uint HASH_CODE_NOT_COMPUTED; // = 0;
 
   /**
    * A factor for computing the hash code for all parameterized commands.
    */
   static const uint HASH_FACTOR; // = 89;
 
   /**
    * The seed for the hash code for all parameterized commands.
    */
   static const uint HASH_INITIAL;
 
   /**
    * Escapes special characters in the command id, parameter ids and parameter
    * values for {@link #serialize()}. The special characters
    * {@link CommandManager#PARAMETER_START_CHAR},
    * {@link CommandManager#PARAMETER_END_CHAR},
    * {@link CommandManager#ID_VALUE_CHAR},
    * {@link CommandManager#PARAMETER_SEPARATOR_CHAR} and
    * {@link CommandManager#ESCAPE_CHAR} are escaped by prepending a
    * {@link CommandManager#ESCAPE_CHAR} character.
    *
    * @param rawText
    *            a <code>String</code> to escape special characters in for
    *            serialization.
    * @return a <code>String</code> representing <code>rawText</code> with
    *         special serialization characters escaped
    */
   static QString Escape(const QString& rawText);
 
   /**
    * Generates every possible combination of parameter values for the given
    * parameters. Parameters values that cannot be initialized are just
    * ignored. Optional parameters are considered.
    *
    * @param startIndex
    *            The index in the <code>parameters</code> that we should
    *            process. This must be a valid index.
    * @param parameters
    *            The parameters in to process; must not be <code>null</code>.
    * @return A collection (<code>Collection</code>) of combinations (<code>List</code>
    *         of <code>Parameterization</code>).
    */
   static QList<QList<Parameterization> > ExpandParameters(unsigned int startIndex,
                                                           const QList<SmartPointer<IParameter> >& parameters);
 
   /**
    * The base command which is being parameterized. This value is never
    * <code>null</code>.
    */
   const SmartPointer<Command> command;
 
   /**
    * The hash code for this object. This value is computed lazily, and marked
    * as invalid when one of the values on which it is based changes.
    */
   mutable uint hashCode;
 
   /**
    * This is an array of parameterization defined for this command. This value
    * may be <code>null</code> if the command has no parameters.
    */
   QList<Parameterization> parameterizations;
 
   mutable QString name;
 
 };
 
 }
 
 #endif /* BERRYPARAMETERIZEDCOMMAND_H_ */
diff --git a/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h b/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h
index f59ba32e7f..9fef880fd8 100644
--- a/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h
+++ b/Plugins/org.blueberry.core.expressions/src/berryIPropertyTester.h
@@ -1,108 +1,108 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPROPERTYTESTER_H_
 #define BERRYIPROPERTYTESTER_H_
 
 #include <berryMacros.h>
 #include <berryObject.h>
 
 #include <org_blueberry_core_expressions_Export.h>
 
 #include <Poco/Any.h>
 
 #include <string>
 #include <vector>
 
 #include <QObject>
 
 namespace berry {
 
 /**
  * A property tester can be used to add additional properties to test to an
  * existing type.
  * <p>
  * This interface is not intended to be implemented by clients. Clients
  * should subclass type <code>PropertyTester</code>.
  * </p>
  */
 struct BERRY_EXPRESSIONS IPropertyTester : public Object
 {
 
   berryObjectMacro(berry::IPropertyTester);
 
   ~IPropertyTester() override;
 
   /**
    * Returns whether the property tester can handle the given
    * property or not.
    *
    * @param namespaze the name space to be considered
    * @param property the property to test
    * @return <code>true</code> if the tester provides an implementation
    *  for the given property; otherwise <code>false</code> is returned
    */
   virtual bool Handles(const QString& namespaze, const QString& property) = 0;
 
   /**
    * Returns whether the implementation class for this property tester is
    * loaded or not.
    *
    * @return <code>true</code>if the implementation class is loaded;
    *  <code>false</code> otherwise
    */
   virtual bool IsInstantiated() = 0;
 
   /**
    * Returns <code>true</code> if the implementation class of this property
    * tester can be loaded. This is the case if the plug-in providing
    * the implementation class is active. Returns <code>false</code> otherwise.
    *
    * @return whether the implementation class can be loaded or not
    */
   virtual bool IsDeclaringPluginActive() = 0;
 
   /**
    * Loads the implementation class for this property tester and returns an
    * instance of this class.
    *
    * @return an instance of the implementation class for this property tester
    *
    * @throws CoreException if the implementation class cannot be loaded
    */
   virtual IPropertyTester* Instantiate() = 0;
 
   /**
    * Executes the property test determined by the parameter <code>property</code>.
    *
    * @param receiver the receiver of the property test
    * @param property the property to test
    * @param args additional arguments to evaluate the property. If no arguments
    *  are specified in the <code>test</code> expression an array of length 0
    *  is passed
    * @param expectedValue the expected value of the property. The value is either
    *  of type <code>java.lang.String</code> or a boxed base type. If no value was
    *  specified in the <code>test</code> expressions then <code>null</code> is passed
    *
-   * @return returns <code>true<code> if the property is equal to the expected value;
+   * @return returns <code>true</code> if the property is equal to the expected value;
    *  otherwise <code>false</code> is returned
    */
   virtual bool Test(Object::ConstPointer receiver, const QString& property,
                     const QList<Object::Pointer>& args, Object::Pointer expectedValue) = 0;
 
 };
 
 }  // namespace berry
 
 Q_DECLARE_INTERFACE(berry::IPropertyTester, "org.blueberry.IPropertyTester")
 
 #endif /*BERRYIPROPERTYTESTER_H_*/
diff --git a/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h b/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h
index a065d074eb..34fe2a001e 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryIJobStatus.h
@@ -1,42 +1,42 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 #ifndef _BERRYIJOBSTATUS_H
 #define _BERRYIJOBSTATUS_H
 
 #include "berryIStatus.h"
 #include "berryObject.h"
 #include "berryJob.h"
 
  namespace berry {
 
  /**
   * Represents status relating to the execution of jobs.
   * @see IStatus
-  * @noimplement This interface is not intended to be implemented by clients.
-  * @noextend This interface is not intended to be extended by clients.
+  * @note This interface is not intended to be implemented by clients.
+  * @note This interface is not intended to be extended by clients.
   */
 
 struct IJobStatus : public virtual IStatus
 {
 
    berryObjectMacro(IJobStatus);
 
   /**
    * Returns the job associated with this status.
    * @return the job associated with this status
    */
     virtual Job::Pointer GetJob() = 0;
   };
 }
 
 
 #endif /*_BERRYIJOBSTATUS_H */
diff --git a/Plugins/org.blueberry.core.jobs/src/berryILock.h b/Plugins/org.blueberry.core.jobs/src/berryILock.h
index 64e3613029..bdd2d295c6 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryILock.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryILock.h
@@ -1,121 +1,121 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef _BERRY_ILOCK_H_
 #define _BERRY_ILOCK_H_
 
 #include <berryObject.h>
 #include <berryMacros.h>
 
 #include "berryJobExceptions.h"
 
 namespace berry
 {
 
 /**
  * A lock is used to control access to an exclusive resource.
  * <p>
  * Locks are reentrant.  That is, they can be acquired multiple times by the same thread
  * without releasing.  Locks are only released when the number of successful acquires
  * equals the number of successful releases.
  * </p><p>
  * Locks are capable of detecting and recovering from programming errors that cause
  * circular waiting deadlocks. When a deadlock between two or more <tt>ILock</tt>
  * instances is detected, detailed debugging information is printed to the log file.  The
  * locks will then automatically recover from the deadlock by employing a release
  * and wait strategy. One thread will lose control of the locks it owns, thus breaking
  * the deadlock and  allowing other threads to proceed.  Once that thread's locks are
  * all available, it will be given exclusive access to all its locks and allowed to proceed.
  * A thread can only lose locks while it is waiting on an <tt>acquire()</tt> call.
  *
  * </p><p>
  * Successive acquire attempts by different threads are queued and serviced on
  * a first come, first served basis.
  * </p><p>
  * It is very important that acquired locks eventually get released.  Calls to release
  * should be done in a finally block to ensure they execute.  For example:
  * <pre>
  * try {
  *   lock.acquire();
  *   // ... do work here ...
  * } finally {
  *   lock.release();
  * }
  * </pre>
  * Note: although <tt>lock.acquire</tt> should never fail, it is good practice to place
  * it inside the try block anyway.  Releasing without acquiring is far less catastrophic
  * than acquiring without releasing.
  * </p>
  *
  * @see IJobManager#NewLock()
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_JOBS ILock: public Object
 {
 
   berryObjectMacro(berry::ILock);
 
   /**
    * Attempts to acquire this lock.  If the lock is in use and the specified delay is
    * greater than zero, the calling thread will block until one of the following happens:
    * <ul>
    * <li>This lock is available</li>
    * <li>The thread is interrupted</li>
    * <li>The specified delay has elapsed</li>
    * </ul>
    * <p>
    * While a thread is waiting,  locks it already owns may be granted to other threads
    * if necessary to break a deadlock.  In this situation, the calling thread may be blocked
    * for longer than the specified delay.  On returning from this call, the calling thread
    * will once again have exclusive access to any other locks it owned upon entering
    * the acquire method.
    *
    * @param delay the number of milliseconds to delay
    * @return <code>true</code> if the lock was successfully acquired, and
    * <code>false</code> otherwise.
    * @exception InterruptedException if the thread was interrupted
    */
   virtual bool Acquire(long delay) throw (InterruptedException) = 0;
 
   /**
    * Acquires this lock.  If the lock is in use, the calling thread will block until the lock
    * becomes available.  If the calling thread owns several locks, it will be blocked
    * until all threads it requires become available, or until the thread is interrupted.
    * While a thread is waiting, its locks may be granted to other threads if necessary
    * to break a deadlock.  On returning from this call, the calling thread will
    * have exclusive access to this lock, and any other locks it owned upon
    * entering the acquire method.
    * <p>
    * This implementation ignores attempts to interrupt the thread.  If response to
    * interruption is needed, use the method <code>acquire(long)</code>
    */
   virtual void Acquire();
 
   /**
    * Returns the number of nested acquires on this lock that have not been released.
    * This is the number of times that release() must be called before the lock is
    * freed.
    *
    * @return the number of nested acquires that have not been released
    */
   virtual int GetDepth() = 0;
 
   /**
    * Releases this lock. Locks must only be released by the thread that currently
    * owns the lock.
    */
   virtual void Release() = 0;
 };
 
 }
 
 #endif // BERRY_ILOCK_H
diff --git a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h
index 33761768c4..337835b44b 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitor.h
@@ -1,113 +1,113 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef  BERRY_IPROGRESS_MONITOR_H
 #define  BERRY_IPROGRESS_MONITOR_H
 
 #include <org_blueberry_core_jobs_Export.h>
 #include "berryObject.h"
 #include <string>
 
 namespace berry
 {
 
 struct IProgressMonitor: public Object
 {
 
   berryObjectMacro(berry::IProgressMonitor);
 
   /** Constant indicating an unknown amount of work. */
 
   static const int UNKNOWN = -1;
 
   /**
    * Notifies that the main task is beginning.  This must only be called once
    * on a given progress monitor instance.
    *
    * @param name the name (or description) of the main task
    * @param totalWork the total number of work units into which
    *  the main task is been subdivided. If the value is <code>UNKNOWN</code>
    *  the implementation is free to indicate progress in a way which
    *  doesn't require the total number of work units in advance.
    */
   virtual void BeginTask(const std::string& name, int totalWork) = 0;
 
   /**
    * Notifies that the work is done; that is, either the main task is completed
    * or the user canceled it. This method may be called more than once
    * (implementations should be prepared to handle this case).
    */
   virtual void Done() = 0;
 
   /**
    * Internal method to handle scaling correctly. This method
    * must not be called by a client. Clients should
    * always use the method <code>worked(int)</code>.
    *
    * @param work the amount of work done
    */
   virtual void InternalWorked(double work) = 0;
 
   /**
    * Returns whether cancellation of current operation has been requested.
    * Long-running operations should poll to see if cancellation
    * has been requested.
    *
    * @return <code>true</code> if cancellation has been requested,
    *    and <code>false</code> otherwise
-   * @see #setCanceled(bool)
+   * @see #SetCanceled
    */
   virtual bool IsCanceled() = 0;
 
   /**
    * Sets the cancel state to the given value.
    *
    * @param value <code>true</code> indicates that cancellation has
    *     been requested (but not necessarily acknowledged);
    *     <code>false</code> clears this flag
-   * @see #isCanceled()
+   * @see #IsCanceled
    */
   virtual void SetCanceled(bool value) = 0;
 
   /**
    * Sets the task name to the given value. This method is used to
    * restore the task label after a nested operation was executed.
    * Normally there is no need for clients to call this method.
    *
    * @param name the name (or description) of the main task
-   * @see #beginTask
+   * @see #BeginTask
    */
   virtual void SetTaskName(const std::string& name) = 0;
 
   /**
    * Notifies that a subtask of the main task is beginning.
    * Subtasks are optional; the main task might not have subtasks.
    *
    * @param name the name (or description) of the subtask
    */
   virtual void SubTask(const std::string& name) = 0;
 
   /**
    * Notifies that a given number of work unit of the main task
    * has been completed. Note that this amount represents an
    * installment, as opposed to a cumulative amount of work done
    * to date.
    *
    * @param work a non-negative number of work units just completed
    */
   virtual void Worked(int work) = 0;
 
 };
 
 }
 
 #endif /* _BERRY_IPROGRESS_MONITOR_H */
diff --git a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h
index 44d4a4174c..691af5e1ce 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryIProgressMonitorWithBlocking.h
@@ -1,80 +1,80 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef _BERRY_IPROGRESSMONITORWITHBLOCKING_H
 #define _BERRY_IPROGRESSMONITORWITHBLOCKING_H
 
 #include "berryObject.h"
 #include <org_blueberry_core_jobs_Export.h>
 #include "berryIStatus.h"
 #include "berryIProgressMonitor.h"
 
 namespace berry
 {
 
 /**
  * An extension to the IProgressMonitor interface for monitors that want to
  * support feedback when an activity is blocked due to concurrent activity in
  * another thread.
  * <p>
  * When a monitor that supports this extension is passed to an operation, the
  * operation should call <code>setBlocked</code> whenever it knows that it
  * must wait for a lock that is currently held by another thread. The operation
  * should continue to check for and respond to cancellation requests while
  * blocked. When the operation is no longer blocked, it must call <code>clearBlocked</code>
  * to clear the blocked state.
  * <p>
  * This interface can be used without OSGi running.
  * </p><p>
  * Clients may implement this interface.
  * </p>
  * @see IProgressMonitor
  */
 struct BERRY_JOBS IProgressMonitorWithBlocking: public IProgressMonitor
 {
 
   berryObjectMacro(berry::IProgressMonitorWithBlocking);
 
   /**
    * Indicates that this operation is blocked by some background activity. If
    * a running operation ever calls <code>setBlocked</code>, it must
    * eventually call <code>clearBlocked</code> before the operation
    * completes.
    * <p>
    * If the caller is blocked by a currently executing job, this method will return
    * an <code>IJobStatus</code> indicating the job that is currently blocking
    * the caller. If this blocking job is not known, this method will return a plain
    * informational <code>IStatus</code> object.
    * </p>
    *
    * @param reason an optional status object whose message describes the
    * reason why this operation is blocked, or <code>null</code> if this
    * information is not available.
-   * @see #clearBlocked()
+   * @see #ClearBlocked
    */
    virtual void SetBlocked(IStatus::Pointer reason)= 0;
 
   /**
    * Clears the blocked state of the running operation. If a running
    * operation ever calls <code>setBlocked</code>, it must eventually call
    * <code>clearBlocked</code> before the operation completes.
    *
-   * @see #setBlocked(IStatus)
+   * @see #SetBlocked
    */
    virtual void  ClearBlocked() = 0;
 
 
 };
 
 }
 
 #endif /* _BERRY_IPROGRESSMONITORWITHBLOCKING_H */
diff --git a/Plugins/org.blueberry.core.jobs/src/berryJob.h b/Plugins/org.blueberry.core.jobs/src/berryJob.h
index 62e2305e0a..b1944e391f 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryJob.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryJob.h
@@ -1,635 +1,565 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef _BERRY_JOB_H
 #define _BERRY_JOB_H
 
 #include <Poco/Thread.h>
 
 #include <org_blueberry_core_jobs_Export.h>
-// #include "berryISchedulingRule.h"
 #include "berryJobExceptions.h"
 #include "internal/berryInternalJob.h"
 
 #include <berryObject.h>
 
 #include <string>
 
 namespace berry
 {
 
 struct IJobManager;
 
 /**
  * Jobs are units of runnable work that can be scheduled to be run with the job
  * manager.  Once a job has completed, it can be scheduled to run again (jobs are
  * reusable).
  * <p>
  * Jobs have a state that indicates what they are currently doing.  When constructed,
  * jobs start with a state value of <code>NONE</code>.  When a job is scheduled
  * to be run, it moves into the <code>WAITING</code> state.  When a job starts
  * running, it moves into the <code>RUNNING</code> state.  When execution finishes
  * (either normally or through cancellation), the state changes back to
  * <code>NONE</code>.
  * </p><p>
  * A job can also be in the <code>SLEEPING</code> state.  This happens if a user
  * calls Job.sleep() on a waiting job, or if a job is scheduled to run after a specified
  * delay.  Only jobs in the <code>WAITING</code> state can be put to sleep.
  * Sleeping jobs can be woken at any time using Job.wakeUp(), which will put the
  * job back into the <code>WAITING</code> state.
  * </p><p>
  * Jobs can be assigned a priority that is used as a hint about how the job should
  * be scheduled.  There is no guarantee that jobs of one priority will be run before
  * all jobs of lower priority.  The documentation of the various priority constants provide
  * more detail about what each priority means.  By default, jobs start in the
  * <code>LONG</code> priority class.
  *
  * @see IJobManager
  *
  */
-//TODO  struct Job: public InternalJob, public IAdaptable
 class BERRY_JOBS Job: public InternalJob
 {
 
 public:
 
    berryObjectMacro(Job);
 
   /**
    * Job status return value that is used to indicate asynchronous job completion.
    * @see Job#Run(IProgressMonitor::Pointer)
    * @see Job#Done(IStatus::Pointer)
    */
    static const IStatus::Pointer ASYNC_FINISH ;
 
   /* Job priorities */
   /**
    * Job priority constant (value 10) for interactive jobs.
    * Interactive jobs generally have priority over all other jobs.
    * Interactive jobs should be either fast running or very low on CPU
    * usage to avoid blocking other interactive jobs from running.
    *
    * @see #GetPriority()
    * @see #SetPriority(int)
    * @see #Run(IProgressMonitor::Pointer)
    */
   static const int INTERACTIVE = 10;
   /**
    * Job priority constant (value 20) for short background jobs.
    * Short background jobs are jobs that typically complete within a second,
    * but may take longer in some cases.  Short jobs are given priority
    * over all other jobs except interactive jobs.
    *
    * @see #GetPriority()
    * @see #SetPriority(int)
    * @see #Run(IProgressMonitor::Pointer)
    */
   static const int SHORT = 20;
   /**
    * Job priority constant (value 30) for long-running background jobs.
    *
    * @see #GetPriority()
    * @see #SetPriority(int)
    * @see #Run(IProgressMonitor::Pointer)
    */
   static const int LONG = 30;
   /**
    * Job priority constant (value 40) for build jobs.  Build jobs are
    * generally run after all other background jobs complete.
    *
    * @see #GetPriority()
    * @see #SetPriority(int)
-   * @see #Run(IProgressMonitor)
    */
   static const int BUILD = 40;
 
   /**
    * Job priority constant (value 50) for decoration jobs.
    * Decoration jobs have lowest priority.  Decoration jobs generally
    * compute extra information that the user may be interested in seeing
    * but is generally not waiting for.
    *
    * @see #GetPriority()
    * @see #SetPriority(int)
-   * @see #Run(IProgressMonitor)
    */
   static const int DECORATE = 50;
   /**
    * Job state code (value 0) indicating that a job is not
    * currently sleeping, waiting, or running (i.e., the job manager doesn't know
    * anything about the job).
    *
    * @see #GetState()
    */
   static const int NONE = 0;
   /**
    * Job state code (value 1) indicating that a job is sleeping.
    *
-   * @see #Run(IProgressMonitor)
    * @see #GetState()
    */
   static const int SLEEPING = 0x01;
   /**
    * Job state code (value 2) indicating that a job is waiting to be run.
    *
    * @see #GetState()
    */
   static const int WAITING = 0x02;
   /**
    * Job state code (value 4) indicating that a job is currently running
    *
    * @see #GetState()
    */
   static const int RUNNING = 0x04;
 
   /**
    * Returns the job manager.
    *
    * @return the job manager
    */
   static const IJobManager* GetJobManager();
 
   /**
    * Creates a new job with the specified name.  The job name is a human-readable
    * value that is displayed to users.  The name does not need to be unique, but it
    * must not be <code>null</code>.
    *
    * @param name the name of the job.
    */
   Job(const QString& name);
 
   /**
    * Registers a job listener with this job
    * Has no effect if an identical listener is already registered.
    *
    * @param listener the listener to be added.
    */
   void AddJobChangeListener(IJobChangeListener* listener);
 
   /**
    * Returns whether this job belongs to the given family.  Job families are
    * represented as objects that are not interpreted or specified in any way
    * by the job manager.  Thus, a job can choose to belong to any number of
    * families.
    * <p>
    * Clients may override this method.  This default implementation always returns
    * <code>false</code>.  Overriding implementations must return <code>false</code>
    * for families they do not recognize.
    * </p>
    *
    * @param family the job family identifier
    * @return <code>true</code> if this job belongs to the given family, and
    * <code>false</code> otherwise.
    */
   bool BelongsTo(Object::Pointer family) override;
 
   /**
    * Stops the job.  If the job is currently waiting,
    * it will be removed from the queue.  If the job is sleeping,
    * it will be discarded without having a chance to resume and its sleeping state
    * will be cleared.  If the job is currently executing, it will be asked to
    * stop but there is no guarantee that it will do so.
    *
    * @return <code>false</code> if the job is currently running (and thus may not
    * respond to cancellation), and <code>true</code> in all other cases.
    */
   bool Cancel();
 
   /**
    * Jobs that complete their execution asynchronously must indicate when they
    * are finished by calling this method.  This method must not be called by
    * a job that has not indicated that it is executing asynchronously.
    * <p>
    * This method must not be called from within the scope of a job's <code>run</code>
    * method.  Jobs should normally indicate completion by returning an appropriate
    * status from the <code>run</code> method.  Jobs that return a status of
    * <code>ASYNC_FINISH</code> from their run method must later call
    * <code>done</code> to indicate completion.
    *
    * @param result a status object indicating the result of the job's execution.
    * @see #ASYNC_FINISH
    * @see #Run(IProgressMonitor::Pointer)
    */
   void Done(IStatus::Pointer result);
 
   /**
    * Returns the human readable name of this job.  The name is never
    * <code>null</code>.
    *
    * @return the name of this job
    */
   QString GetName() const;
 
   /**
    * Returns the priority of this job.  The priority is used as a hint when the job
    * is scheduled to be run.
    *
    * @return the priority of the job.  One of INTERACTIVE, SHORT, LONG, BUILD,
    *   or DECORATE.
    */
   int GetPriority() const;
 
-  /**
-   * Returns the value of the property of this job identified by the given key,
-   * or <code>null</code> if this job has no such property.
-   *
-   * @param key the name of the property
-   * @return the value of the property,
-   *     or <code>null</code> if this job has no such property
-   * @see #SetProperty(QualifiedName, Object)
-   */
-  //TODO QualifiedName GetPropertys
-  ///Object GetProperty(QualifiedName key) const ;
-
   /**
    * Returns the result of this job's last run.
    *
    * @return the result of this job's last run, or <code>null</code> if this
    * job has never finished running.
    */
    IStatus::Pointer GetResult() const ;
 
   /**
    * Returns the scheduling rule for this job.  Returns <code>null</code> if this job has no
    * scheduling rule.
    *
    * @return the scheduling rule for this job, or <code>null</code>.
    * @see ISchedulingRule
    * @see #SetRule(ISchedulingRule::Pointer)
    */
   ISchedulingRule::Pointer GetRule() const;
 
   /**
    * Returns the state of the job. Result will be one of:
    * <ul>
    * <li><code>Job.RUNNING</code> - if the job is currently running.</li>
    * <li><code>Job.WAITING</code> - if the job is waiting to be run.</li>
    * <li><code>Job.SLEEPING</code> - if the job is sleeping.</li>
    * <li><code>Job.NONE</code> - in all other cases.</li>
    * </ul>
    * <p>
    * Note that job state is inherently volatile, and in most cases clients
    * cannot rely on the result of this method being valid by the time the
    * result is obtained.  For example, if <tt>getState</tt> returns
    * <tt>RUNNING</tt>,  the job may have actually completed by the
    * time the <tt>getState</tt> method returns.  All clients can infer from
    * invoking this method is that  the job was recently in the returned state.
    *
    * @return the job state
    */
   int GetState() const;
 
   /**
    * Returns the thread that this job is currently running in.
    *
    * @return the thread this job is running in, or <code>null</code>
    * if this job is not running or the thread is unknown.
    */
   Poco::Thread* GetThread() const;
 
   /**
    * Returns whether this job is blocking a higher priority non-system job from
    * starting due to a conflicting scheduling rule.  Returns <code>false</code>
    * if this job is not running, or is not blocking a higher priority non-system job.
    *
    * @return <code>true</code> if this job is blocking a higher priority non-system
    * job, and <code>false</code> otherwise.
    * @see #GetRule()
    * @see #IsSystem()
    */
   bool IsBlocking();
 
   /**
    * Returns whether this job is a system job.  System jobs are typically not
    * revealed to users in any UI presentation of jobs.  Other than their UI presentation,
    * system jobs act exactly like other jobs.  If this value is not explicitly set, jobs
    * are treated as non-system jobs.  The default value is <code>false</code>.
    *
    * @return <code>true</code> if this job is a system job, and
    * <code>false</code> otherwise.
    * @see #SetSystem(bool)
    */
   bool IsSystem() const;
 
   /**
    * Returns whether this job has been directly initiated by a UI end user.
    * These jobs may be presented differently in the UI.  The default value
    * is <code>false</code>.
    *
    * @return <code>true</code> if this job is a user-initiated job, and
    * <code>false</code> otherwise.
    * @see #SetUser(bool)
    */
   bool IsUser() const;
 
-  /**
-   * Waits until this job is finished.  This method will block the calling thread until the
-   * job has finished executing, or until this thread has been interrupted.  If the job
-   * has not been scheduled, this method returns immediately.  A job must not
-   * be joined from within the scope of its run method.
-   * <p>
-   * If this method is called on a job that reschedules itself from within the
-   * <tt>run</tt> method, the join will return at the end of the first execution.
-   * In other words, join will return the first time this job exits the
-   * {@link #RUNNING} state, or as soon as this job enters the {@link #NONE} state.
-   * </p>
-   * <p>
-   * If this method is called while the job manager is suspended, this job
-   * will only be joined if it is already running; if this job is waiting or sleeping,
-   * this method returns immediately.
-   * </p>
-   * <p>
-   * Note that there is a deadlock risk when using join.  If the calling thread owns
-   * a lock or object monitor that the joined thread is waiting for, deadlock
-   * will occur.
-   * </p>
-   *
-   * @exception InterruptedException if this thread is interrupted while waiting
-   * @see ILock
-   *  @see IJobManager#Suspend()
-   */
-  //TODO Error Join  Problem InterruptedException
-  /// void Join() ;
-
   /**
    * Removes a job listener from this job.
    * Has no effect if an identical listener is not already registered.
    *
    * @param listener the listener to be removed
    */
   void RemoveJobChangeListener(IJobChangeListener* listener);
 
 
   /**
    * Schedules this job to be run.  The job is added to a queue of waiting
    * jobs, and will be run when it arrives at the beginning of the queue.
    * <p>
    * This is a convenience method, fully equivalent to
    * <code>Schedule(0L)</code>.
    * </p>
-   * @see #Schedule(long)
    */
   void Schedule();
 
   /**
    * Schedules this job to be run after a specified delay.  The job is put in the
    * {@link #SLEEPING} state until the specified delay has elapsed, after which
    * the job is added to a queue of {@link #WAITING} jobs. Once the job arrives
    * at the beginning of the queue, it will be run at the first available opportunity.
    * </p><p>
    * Jobs of equal priority and <code>delay</code> with conflicting scheduling
    * rules are guaranteed to run in the order they are scheduled. No guarantees
    * are made about the relative execution order of jobs with unrelated or
    * <code>null</code> scheduling rules, or different priorities.
    * <p>
    * If this job is currently running, it will be rescheduled with the specified
    * delay as soon as it finishes.  If this method is called multiple times
    * while the job is running, the job will still only be rescheduled once,
    * with the most recent delay value that was provided.
    * </p><p>
    * Scheduling a job that is waiting or sleeping has no effect.
    * </p>
    *
    * @param delay a time delay in milliseconds before the job should run
    * @see ISchedulingRule
    */
   void Schedule(Poco::Timestamp::TimeDiff delay);
 
   /**
    * Changes the name of this job.  If the job is currently running, waiting,
    * or sleeping, the new job name may not take effect until the next time the
    * job is scheduled.
    * <p>
    * The job name is a human-readable value that is displayed to users.  The name
    * does not need to be unique, but it must not be <code>null</code>.
    *
    * @param name the name of the job.
    */
   void SetName(const QString& name);
 
   /**
    * Sets the priority of the job.  This will not affect the execution of
    * a running job, but it will affect how the job is scheduled while
    * it is waiting to be run.
    *
    * @param priority the new job priority.  One of
    * INTERACTIVE, SHORT, LONG, BUILD, or DECORATE.
    */
   void SetPriority(int priority);
 
   /**
    * Associates this job with a progress group.  Progress feedback
    * on this job's next execution will be displayed together with other
    * jobs in that group. The provided monitor must be a monitor
    * created by the method <tt>IJobManager.createProgressGroup</tt>
    * and must have at least <code>ticks</code> units of available work.
    * <p>
    * The progress group must be set before the job is scheduled.
    * The group will be used only for a single invocation of the job's
    * <tt>run</tt> method, after which any association of this job to the
    * group will be lost.
    *
    * @see IJobManager#createProgressGroup()
    * @param group The progress group to use for this job
    * @param ticks the number of work ticks allocated from the
    *    parent monitor, or {@link IProgressMonitor#UNKNOWN}
    */
   void SetProgressGroup(IProgressMonitor::Pointer group, int ticks);
 
-  /**
-   * Sets the value of the property of this job identified
-   * by the given key. If the supplied value is <code>null</code>,
-   * the property is removed from this resource.
-   * <p>
-   * Properties are intended to be used as a caching mechanism
-   * by ISV plug-ins. They allow key-object associations to be stored with
-   * a job instance.  These key-value associations are maintained in
-   * memory (at all times), and the information is never discarded automatically.
-   * </p><p>
-   * The qualifier part of the property name must be the unique identifier
-   * of the declaring plug-in (e.g. <code>"com.example.plugin"</code>).
-   * </p>
-   *
-   * @param key the qualified name of the property
-   * @param value the value of the property,
-   *     or <code>null</code> if the property is to be removed
-   * @see #GetProperty(QualifiedName)
-   */
-  //TODO QualifiedName SetProperty
-  /// void SetProperty(QualifiedName key, Object value);
-
   /**
    * Sets the scheduling rule to be used when scheduling this job.  This method
    * must be called before the job is scheduled.
    *
    * @param rule the new scheduling rule, or <code>null</code> if the job
    * should have no scheduling rule
    * @see #GetRule()
    */
   void SetRule(ISchedulingRule::Pointer rule);
 
   /**
    * Sets whether or not this job is a system job.  System jobs are typically not
    * revealed to users in any UI presentation of jobs.  Other than their UI presentation,
    * system jobs act exactly like other jobs.  If this value is not explicitly set, jobs
    * are treated as non-system jobs. This method must be called before the job
    * is scheduled.
    *
    * @param value <code>true</code> if this job should be a system job, and
    * <code>false</code> otherwise.
    * @see #IsSystem()
    */
   void SetSystem(bool value);
 
   /**
    * Sets whether or not this job has been directly initiated by a UI end user.
    * These jobs may be presented differently in the UI. This method must be
    * called before the job is scheduled.
    *
    * @param value <code>true</code> if this job is a user-initiated job, and
    * <code>false</code> otherwise.
    * @see #IsUser()
    */
   void SetUser(bool value);
 
   /**
    * Sets the thread that this job is currently running in, or <code>null</code>
    * if this job is not running or the thread is unknown.
    * <p>
    * Jobs that use the {@link #ASYNC_FINISH} return code should tell
    * the job what thread it is running in.  This is used to prevent deadlocks.
    *
    * @param thread the thread that this job is running in.
    *
    * @see #ASYNC_FINISH
    * @see #Run(IProgressMonitor::Pointer)
    */
   void SetThread(Poco::Thread* thread);
 
   /**
    * Returns whether this job should be run.
    * If <code>false</code> is returned, this job will be discarded by the job manager
    * without running.
    * <p>
    * This method is called immediately prior to calling the job's
    * run method, so it can be used for last minute pre-condition checking before
    * a job is run. This method must not attempt to schedule or change the
    * state of any other job.
    * </p><p>
    * Clients may override this method.  This default implementation always returns
    * <code>true</code>.
    * </p>
    *
    * @return <code>true</code> if this job should be run
    *   and <code>false</code> otherwise
    */
   virtual bool ShouldRun();
 
   /**
    * Returns whether this job should be scheduled.
    * If <code>false</code> is returned, this job will be discarded by the job manager
    * without being added to the queue.
    * <p>
    * This method is called immediately prior to adding the job to the waiting job
    * queue.,so it can be used for last minute pre-condition checking before
    * a job is scheduled.
    * </p><p>
    * Clients may override this method.  This default implementation always returns
    * <code>true</code>.
    * </p>
    *
    * @return <code>true</code> if the job manager should schedule this job
    *   and <code>false</code> otherwise
    */
   bool ShouldSchedule() override;
 
   /**
    * Requests that this job be suspended.  If the job is currently waiting to be run, it
    * will be removed from the queue move into the {@link #SLEEPING} state.
    * The job will remain asleep until either resumed or canceled.  If this job is not
    * currently waiting to be run, this method has no effect.
    * <p>
    * Sleeping jobs can be resumed using <code>wakeUp</code>.
    *
    * @return <code>false</code> if the job is currently running (and thus cannot
    * be put to sleep), and <code>true</code> in all other cases
    * @see #WakeUp()
    */
   bool Sleep();
 
   /**
    * Puts this job immediately into the {@link #WAITING} state so that it is
    * eligible for immediate execution. If this job is not currently sleeping,
    * the request is ignored.
    * <p>
    * This is a convenience method, fully equivalent to
    * <code>wakeUp(0L)</code>.
    * </p>
    * @see #Sleep()
    */
   void WakeUp();
 
   /**
    * Puts this job back into the {@link #WAITING} state after
    * the specified delay. This is equivalent to canceling the sleeping job and
    * rescheduling with the given delay.  If this job is not currently sleeping,
    * the request  is ignored.
    *
    * @param delay the number of milliseconds to delay
    * @see #Sleep()
    */
   void WakeUp(long delay);
 
 
 protected:
 
   /**
-   * A hook method indicating that this job is running and {@link #cancel()}
+   * A hook method indicating that this job is running and {@link #Cancel()}
    * is being called for the first time.
    * <p>
    * Subclasses may override this method to perform additional work when
    * a cancellation request is made.  This default implementation does nothing.
    */
   void Canceling() override;
 
   /**
    * Executes this job.  Returns the result of the execution.
    * <p>
    * The provided monitor can be used to report progress and respond to
    * cancellation.  If the progress monitor has been canceled, the job
    * should finish its execution at the earliest convenience and return a result
-   * status of severity {@link IStatus#CANCEL}.  The singleton
+   * status of severity \c IStatus.CANCEL .  The singleton
    * cancel status {@link Status#CANCEL_STATUS} can be used for
    * this purpose.  The monitor is only valid for the duration of the invocation
    * of this method.
    * <p>
    * This method must not be called directly by clients.  Clients should call
    * <code>schedule</code>, which will in turn cause this method to be called.
    * <p>
    * Jobs can optionally finish their execution asynchronously (in another thread) by
    * returning a result status of {@link #ASYNC_FINISH}.  Jobs that finish
    * asynchronously <b>must</b> specify the execution thread by calling
    * <code>setThread</code>, and must indicate when they are finished by calling
    * the method <code>done</code>.
    *
-   * @param monitor the monitor to be used for reporting progress and
+   * @param myProgressMonitor the monitor to be used for reporting progress and
    * responding to cancellation. The monitor is never <code>null</code>
    * @return resulting status of the run. The result must not be <code>null</code>
    * @see #ASYNC_FINISH
-   * @see #Done(IStatus)
    */
   IStatus::Pointer Run(IProgressMonitor::Pointer myProgressMonitor) override = 0;
 
 };
 
 }
 #endif /* BERRY_JOB_H */
diff --git a/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h b/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h
index 3453952d7c..dd1ee6a9d1 100644
--- a/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h
+++ b/Plugins/org.blueberry.core.jobs/src/berryJobStatus.h
@@ -1,52 +1,53 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef _BERRYJOBSTATUS_H
 #define _BERRYJOBSTATUS_H
 
 #include "berryIJobStatus.h"
 #include "berryStatus.h"
 #include "berryJob.h"
 
 namespace berry {
 
 class BERRY_JOBS JobStatus : public Status, public IJobStatus
 {
 
 public:
 
   berryObjectMacro(JobStatus);
 
   /**
    * Creates a new job status with no interesting error code or exception.
    * @param severity
-   * @param job
+   * @param sptr_job
    * @param message
+   * @param sl
    */
   JobStatus(const Severity& severity, Job::Pointer sptr_job, const QString& message,
             const Status::SourceLocation& sl);
 
   /**
    * @see IJobStatus#GetJob()
    */
   Job::Pointer GetJob() override;
 
 private:
 
   Job::Pointer m_myJob;
 
 };
 
 
 }
 
 #endif /* _BERRYJOBSTATUS_H */
diff --git a/Plugins/org.blueberry.core.runtime/src/berryILog.h b/Plugins/org.blueberry.core.runtime/src/berryILog.h
index f740d33ff4..656f1b5efe 100644
--- a/Plugins/org.blueberry.core.runtime/src/berryILog.h
+++ b/Plugins/org.blueberry.core.runtime/src/berryILog.h
@@ -1,78 +1,78 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYILOG_H
 #define BERRYILOG_H
 
 template<class T> class QSharedPointer;
 class ctkPlugin;
 
 namespace berry {
 
 template<class T> class SmartPointer;
 struct ILogListener;
 struct IStatus;
 
 /**
  * A log to which status events can be written.  Logs appear on individual
  * plug-ins and on the platform itself.  Clients can register log listeners which
  * will receive notification of all log events as they come in.
  * <p>
  * XXX Need to create a new log interface on common plugin. That interface should be a super interface of this ILog.
  * getBundle() would stay here. In the super interface we would have getName()
  * </p>
  *
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct ILog
 {
   virtual ~ILog();
 
   /**
    * Adds the given log listener to this log.  Subsequently the log listener will
    * receive notification of all log events passing through this log.
    * This method has no effect if the identical listener is already registered on this log.
    *
    * @param listener the listener to add to this log
    * @see Platform#addLogListener(ILogListener)
    */
   virtual void AddLogListener(ILogListener* listener) = 0;
 
   /**
    * Returns the plug-in with which this log is associated.
    *
    * @return the plug-in with which this log is associated
    */
   virtual QSharedPointer<ctkPlugin> GetBundle() const = 0;
 
   /**
    * Logs the given status.  The status is distributed to the log listeners
    * installed on this log and then to the log listeners installed on the platform.
    *
    * @param status the status to log
    */
   virtual void Log(const SmartPointer<IStatus>& status) = 0;
 
   /**
    * Removes the given log listener to this log.  Subsequently the log listener will
    * no longer receive notification of log events passing through this log.
    * This method has no effect if the identical listener is not registered on this log.
    *
    * @param listener the listener to remove
    * @see Platform#removeLogListener(ILogListener)
    */
   virtual void RemoveLogListener(ILogListener* listener) = 0;
 };
 
 }
 
 #endif // BERRYILOG_H
diff --git a/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h b/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h
index c0d4d91086..a9badb3a9b 100644
--- a/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h
+++ b/Plugins/org.blueberry.core.runtime/src/berryIPreferences.h
@@ -1,709 +1,709 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 #ifndef BERRYIPREFERENCES_H_
 #define BERRYIPREFERENCES_H_
 
 #include <org_blueberry_core_runtime_Export.h>
 
 #include "berryObject.h"
 #include "berryBackingStoreException.h"
 
 
 namespace berry
 {
 
   /**
    * A node in a hierarchical collection of preference data.
    *
    * <p>
    * This interface allows applications to store and retrieve user and system
    * preference data. This data is stored persistently in an
    * implementation-dependent backing store. Typical implementations include flat
    * files, OS-specific registries, directory servers and SQL databases.
    *
    * <p>
    * For each bundle, there is a separate tree of nodes for each user, and one for
    * system preferences. The precise description of "user" and "system" will vary
    * from one bundle to another. Typical information stored in the user preference
    * tree might include font choice, and color choice for a bundle which interacts
    * with the user via a servlet. Typical information stored in the system
    * preference tree might include installation data, or things like high score
    * information for a game program.
    *
    * <p>
    * Nodes in a preference tree are named in a similar fashion to directories in a
    * hierarchical file system. Every node in a preference tree has a <i>node name
    * </i> (which is not necessarily unique), a unique <i>absolute path name </i>,
    * and a path name <i>relative </i> to each ancestor including itself.
    *
    * <p>
    * The root node has a node name of the empty <code>QString</code> object ("").
    * Every other node has an arbitrary node name, specified at the time it is
    * created. The only restrictions on this name are that it cannot be the empty
    * string, and it cannot contain the slash character ('/').
    *
    * <p>
    * The root node has an absolute path name of <code>"/"</code>. Children of the
    * root node have absolute path names of <code>"/" + </code> <i>&lt;node name&gt;
    * </i>. All other nodes have absolute path names of <i>&lt;parent's absolute
    * path name&gt; </i> <code> + "/" + </code> <i>&lt;node name&gt; </i>. Note that
    * all absolute path names begin with the slash character.
    *
    * <p>
    * A node <i>n </i>'s path name relative to its ancestor <i>a </i> is simply the
    * string that must be appended to <i>a </i>'s absolute path name in order to
    * form <i>n </i>'s absolute path name, with the initial slash character (if
    * present) removed. Note that:
    * <ul>
    * <li>No relative path names begin with the slash character.
    * <li>Every node's path name relative to itself is the empty string.
    * <li>Every node's path name relative to its parent is its node name (except
    * for the root node, which does not have a parent).
    * <li>Every node's path name relative to the root is its absolute path name
    * with the initial slash character removed.
    * </ul>
    *
    * <p>
    * Note finally that:
    * <ul>
    * <li>No path name contains multiple consecutive slash characters.
    * <li>No path name with the exception of the root's absolute path name end in
    * the slash character.
    * <li>Any string that conforms to these two rules is a valid path name.
    * </ul>
    *
    * <p>
    * Each <code>Preference</code> node has zero or more properties associated with
    * it, where a property consists of a name and a value. The bundle writer is
    * free to choose any appropriate names for properties. Their values can be of
    * type <code>QString</code>,<code>long</code>,<code>int</code>,<code>bool</code>,
    * <code>std::vector<char></code>,<code>float</code>, or <code>double</code> but they can
    * always be accessed as if they were <code>QString</code> objects.
    *
    * <p>
    * All node name and property name comparisons are case-sensitive.
    *
    * <p>
    * All of the methods that modify preference data are permitted to operate
    * asynchronously; they may return immediately, and changes will eventually
    * propagate to the persistent backing store, with an implementation-dependent
    * delay. The <code>flush</code> method may be used to synchronously force updates
    * to the backing store.
    *
    * <p>
    * Implementations must automatically attempt to flush to the backing store any
    * pending updates for a bundle's preferences when the bundle is stopped or
    * otherwise ungets the IPreferences Service.
    *
    * <p>
    * The methods in this class may be invoked concurrently by multiple threads in
    * a single Java Virtual Machine (JVM) without the need for external
    * synchronization, and the results will be equivalent to some serial execution.
    * If this class is used concurrently <i>by multiple JVMs </i> that store their
    * preference data in the same backing store, the data store will not be
    * corrupted, but no other guarantees are made concerning the consistency of the
    * preference data.
    *
    *
    * @version $Revision$
    */
   struct org_blueberry_core_runtime_EXPORT IPreferences : virtual public Object
   {
     berryObjectMacro(berry::IPreferences);
 
     ~IPreferences() override;
 
     /**
      * Associates the specified value with the specified key in this node.
      *
      * @param key key with which the specified value is to be associated.
      * @param value value to be associated with the specified key.
      * @throws NullPointerException if <code>key</code> or <code>value</code> is
      *         <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      */
     virtual void Put(const QString& key, const QString& value) = 0;
 
     /**
      * Returns the value associated with the specified <code>key</code> in this
      * node. Returns the specified default if there is no value associated with
      * the <code>key</code>, or the backing store is inaccessible.
      *
      * @param key key whose associated value is to be returned.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the backing store is
      *        inaccessible.
      * @return the value associated with <code>key</code>, or <code>def</code> if
      *         no value is associated with <code>key</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      * @throws NullPointerException if <code>key</code> is <code>null</code>. (A
      *         <code>null</code> default <i>is </i> permitted.)
      */
     virtual QString Get(const QString& key, const QString& def) const = 0;
 
     /**
      * Removes the value associated with the specified <code>key</code> in this
      * node, if any.
      *
      * @param key key whose mapping is to be removed from this node.
-     * @see #get(const QString&,const QString&)
+     * @see #Get
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      */
     virtual void Remove(const QString& key) = 0;
 
     /**
      * Removes all of the properties (key-value associations) in this node. This
      * call has no effect on any descendants of this node.
      *
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #remove(const QString&)
+     *         removed with the {@link #Remove()}method.
+     * @see #Remove(const QString&)
      */
     virtual void Clear() = 0;
 
     /**
      * Associates a <code>QString</code> object representing the specified
      * <code>int</code> value with the specified <code>key</code> in this node. The
      * associated string is the one that would be returned if the <code>int</code>
      * value were passed to <code>Integer.toString(int)</code>. This method is
-     * intended for use in conjunction with {@link #getInt}method.
+     * intended for use in conjunction with {@link #GetInt}method.
      *
      * <p>
      * Implementor's note: it is <i>not </i> necessary that the property value
      * be represented by a <code>QString</code> object in the backing store. If the
      * backing store supports integer values, it is not unreasonable to use
      * them. This implementation detail is not visible through the
      * <code>IPreferences</code> API, which allows the value to be read as an
      * <code>int</code> (with <code>getInt</code> or a <code>QString</code> (with
      * <code>get</code>) type.
      *
      * @param key key with which the string form of value is to be associated.
      * @param value <code>value</code> whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #getInt(const QString&,int)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetInt
      */
     virtual void PutInt(const QString& key, int value) = 0;
 
     /**
      * Returns the <code>int</code> value represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. The
      * <code>QString</code> object is converted to an <code>int</code> as by
      * <code>Integer.parseInt(QString)</code>. Returns the specified default if
      * there is no value associated with the <code>key</code>, the backing store
      * is inaccessible, or if <code>Integer.parseInt(QString)</code> would throw a
      * <code>NumberFormatException</code> if the associated <code>value</code> were
      * passed. This method is intended for use in conjunction with the
-     * {@link #putInt}method.
+     * {@link #PutInt}method.
      *
      * @param key key whose associated value is to be returned as an
      *        <code>int</code>.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as an <code>int</code> or the backing store is
      *        inaccessible.
      * @return the <code>int</code> value represented by the <code>QString</code>
      *         object associated with <code>key</code> in this node, or
      *         <code>def</code> if the associated value does not exist or cannot
      *         be interpreted as an <code>int</code> type.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #putInt(const QString&,int)
-     * @see #get(const QString&,const QString&)
+     *         removed with the {@link #Remove()}method.
+     * @see #PutInt(const QString&,int)
+     * @see #Get
      */
     virtual int GetInt(const QString& key, int def) const = 0;
 
     /**
      * Associates a <code>QString</code> object representing the specified
      * <code>long</code> value with the specified <code>key</code> in this node. The
      * associated <code>QString</code> object is the one that would be returned if
      * the <code>long</code> value were passed to <code>Long.toString(long)</code>.
-     * This method is intended for use in conjunction with the {@link #getLong}
+     * This method is intended for use in conjunction with the {@link #GetLong}
      * method.
      *
      * <p>
      * Implementor's note: it is <i>not </i> necessary that the <code>value</code>
      * be represented by a <code>QString</code> type in the backing store. If the
      * backing store supports <code>long</code> values, it is not unreasonable to
      * use them. This implementation detail is not visible through the <code>
      * IPreferences</code> API, which allows the value to be read as a
      * <code>long</code> (with <code>getLong</code> or a <code>QString</code> (with
      * <code>get</code>) type.
      *
      * @param key <code>key</code> with which the string form of <code>value</code>
      *        is to be associated.
      * @param value <code>value</code> whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #getLong(const QString&,long)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetLong
      */
     virtual void PutLong(const QString& key, long value) = 0;
 
     /**
      * Returns the <code>long</code> value represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. The
      * <code>QString</code> object is converted to a <code>long</code> as by
      * <code>Long.parseLong(QString)</code>. Returns the specified default if
      * there is no value associated with the <code>key</code>, the backing store
      * is inaccessible, or if <code>Long.parseLong(QString)</code> would throw a
      * <code>NumberFormatException</code> if the associated <code>value</code> were
      * passed. This method is intended for use in conjunction with the
-     * {@link #putLong}method.
+     * {@link #PutLong}method.
      *
      * @param key <code>key</code> whose associated value is to be returned as a
      *        <code>long</code> value.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as a <code>long</code> type or the backing
      *        store is inaccessible.
      * @return the <code>long</code> value represented by the <code>QString</code>
      *         object associated with <code>key</code> in this node, or
      *         <code>def</code> if the associated value does not exist or cannot
      *         be interpreted as a <code>long</code> type.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #putLong(const QString&,long)
-     * @see #get(const QString&,const QString&)
+     *         removed with the {@link #Remove()}method.
+     * @see #PutLong(const QString&,long)
+     * @see #Get
      */
     virtual long GetLong(const QString& key, long def) const = 0;
 
     /**
      * Associates a <code>QString</code> object representing the specified
      * <code>bool</code> value with the specified key in this node. The
      * associated string is "true" if the value is <code>true</code>, and "false"
      * if it is <code>false</code>. This method is intended for use in
-     * conjunction with the {@link #getBool}method.
+     * conjunction with the {@link #GetBool}method.
      *
      * <p>
      * Implementor's note: it is <i>not </i> necessary that the value be
      * represented by a string in the backing store. If the backing store
      * supports <code>bool</code> values, it is not unreasonable to use them.
      * This implementation detail is not visible through the <code>IPreferences
      * </code> API, which allows the value to be read as a <code>bool</code>
      * (with <code>getBool</code>) or a <code>QString</code> (with <code>get</code>)
      * type.
      *
      * @param key <code>key</code> with which the string form of value is to be
      *        associated.
      * @param value value whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #getBool(const QString&,bool)
-     * @see #get(const QString&,const QString&)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetBool
+     * @see #Get
      */
     virtual void PutBool(const QString& key, bool value) = 0;
 
     /**
      * Returns the <code>bool</code> value represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. Valid
      * strings are "true", which represents <code>true</code>, and "false", which
      * represents <code>false</code>. Case is ignored, so, for example, "TRUE"
      * and "False" are also valid. This method is intended for use in
-     * conjunction with the {@link #putBool}method.
+     * conjunction with the {@link #PutBool}method.
      *
      * <p>
      * Returns the specified default if there is no value associated with the
      * <code>key</code>, the backing store is inaccessible, or if the associated
      * value is something other than "true" or "false", ignoring case.
      *
      * @param key <code>key</code> whose associated value is to be returned as a
      *        <code>bool</code>.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as a <code>bool</code> or the backing store
      *        is inaccessible.
      * @return the <code>bool</code> value represented by the <code>std::string</code>
      *         object associated with <code>key</code> in this node, or
      *         <code>null</code> if the associated value does not exist or cannot
      *         be interpreted as a <code>bool</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #get(const QString&,const QString&)
-     * @see #putBool(const QString&,bool)
+     *         removed with the {@link #Remove()}method.
+     * @see #Get
+     * @see #PutBool
      */
     virtual bool GetBool(const QString& key, bool def) const = 0;
 
     /**
      * Associates a <code>QString</code> object representing the specified
      * <code>float</code> value with the specified <code>key</code> in this node.
      * The associated <code>QString</code> object is the one that would be returned
      * if the <code>float</code> value were passed to
      * <code>Float.toString(float)</code>. This method is intended for use in
-     * conjunction with the {@link #getFloat}method.
+     * conjunction with the {@link #GetFloat}method.
      *
      * <p>
      * Implementor's note: it is <i>not </i> necessary that the value be
      * represented by a string in the backing store. If the backing store
      * supports <code>float</code> values, it is not unreasonable to use them.
      * This implementation detail is not visible through the <code>IPreferences
      * </code> API, which allows the value to be read as a <code>float</code> (with
      * <code>getFloat</code>) or a <code>QString</code> (with <code>get</code>) type.
      *
      * @param key <code>key</code> with which the string form of value is to be
      *        associated.
      * @param value value whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #getFloat(const QString&,float)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetFloat
      */
     virtual void PutFloat(const QString& key, float value) = 0;
 
     /**
      * Returns the float <code>value</code> represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. The
      * <code>QString</code> object is converted to a <code>float</code> value as by
      * <code>Float.parseFloat(QString)</code>. Returns the specified default if
      * there is no value associated with the <code>key</code>, the backing store
      * is inaccessible, or if <code>Float.parseFloat(QString)</code> would throw a
      * <code>NumberFormatException</code> if the associated value were passed.
-     * This method is intended for use in conjunction with the {@link #putFloat}
+     * This method is intended for use in conjunction with the {@link #PutFloat}
      * method.
      *
      * @param key <code>key</code> whose associated value is to be returned as a
      *        <code>float</code> value.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as a <code>float</code> type or the backing
      *        store is inaccessible.
      * @return the <code>float</code> value represented by the string associated
      *         with <code>key</code> in this node, or <code>def</code> if the
      *         associated value does not exist or cannot be interpreted as a
      *         <code>float</code> type.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
-     * @see #putFloat(const QString&,float)
-     * @see #get(const QString&,const QString&)
+     * @see #PutFloat
+     * @see #Get
      */
     virtual float GetFloat(const QString& key, float def) const = 0;
 
     /**
      * Associates a <code>QString</code> object representing the specified
      * <code>double</code> value with the specified <code>key</code> in this node.
      * The associated <code>QString</code> object is the one that would be returned
      * if the <code>double</code> value were passed to
      * <code>Double.toString(double)</code>. This method is intended for use in
-     * conjunction with the {@link #getDouble}method
+     * conjunction with the {@link #GetDouble}method
      *
      * <p>
      * Implementor's note: it is <i>not </i> necessary that the value be
      * represented by a string in the backing store. If the backing store
      * supports <code>double</code> values, it is not unreasonable to use them.
      * This implementation detail is not visible through the <code>IPreferences
      * </code> API, which allows the value to be read as a <code>double</code> (with
      * <code>getDouble</code>) or a <code>QString</code> (with <code>get</code>)
      * type.
      *
      * @param key <code>key</code> with which the string form of value is to be
      *        associated.
      * @param value value whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #getDouble(const QString&,double)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetDouble
      */
     virtual void PutDouble(const QString& key, double value) = 0;
 
     /**
      * Returns the <code>double</code> value represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. The
      * <code>QString</code> object is converted to a <code>double</code> value as by
      * <code>Double.parseDouble(QString)</code>. Returns the specified default if
      * there is no value associated with the <code>key</code>, the backing store
      * is inaccessible, or if <code>Double.parseDouble(QString)</code> would throw
      * a <code>NumberFormatException</code> if the associated value were passed.
      * This method is intended for use in conjunction with the
-     * {@link #putDouble}method.
+     * {@link #PutDouble}method.
      *
      * @param key <code>key</code> whose associated value is to be returned as a
      *        <code>double</code> value.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as a <code>double</code> type or the backing
      *        store is inaccessible.
      * @return the <code>double</code> value represented by the <code>QString</code>
      *         object associated with <code>key</code> in this node, or
      *         <code>def</code> if the associated value does not exist or cannot
      *         be interpreted as a <code>double</code> type.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the the {@link #removeNode()}method.
+     *         removed with the the {@link #Remove()}method.
      * @throws NullPointerException if <code>key</code> is <code>null</code>.
-     * @see #putDouble(const QString&,double)
-     * @see #get(const QString&,const QString&)
+     * @see #PutDouble
+     * @see #Get
      */
     virtual double GetDouble(const QString& key, double def) const = 0;
 
     /**
      * Associates a <code>QByteArray</code> object representing the specified
      * <code>QByteArray</code> with the specified <code>key</code> in this node. The
      * associated <code>QByteArray</code> object is stored in <i>Base64</i> encoding.
      * This method is intended for use in conjunction with the
-     * {@link #getByteArray}method.
+     * {@link #GetByteArray}method.
      *
      * @param key <code>key</code> with which the string form of <code>value</code>
      *        is to be associated.
      * @param value <code>value</code> whose string form is to be associated with
      *        <code>key</code>.
      * @throws NullPointerException if <code>key</code> or <code>value</code> is
      *         <code>null</code>.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #GetByteArray(const QString&,const QByteArray&)
-     * @see #Get(const QString&,const QString&)
+     *         removed with the {@link #Remove()}method.
+     * @see #GetByteArray
+     * @see #Get
      */
     virtual void PutByteArray(const QString& key, const QByteArray& value) = 0;
 
     /**
      * Returns the <code>QByteArray</code> value represented by the <code>QString</code>
      * object associated with the specified <code>key</code> in this node. Valid
      * <code>QString</code> objects are <i>Base64 </i> encoded binary data, as
      * defined in <a href="http://www.ietf.org/rfc/rfc2045.txt">RFC 2045 </a>,
      * Section 6.8, with one minor change: the string must consist solely of
      * characters from the <i>Base64 Alphabet </i>; no newline characters or
      * extraneous characters are permitted. This method is intended for use in
-     * conjunction with the {@link #putByteArray}method.
+     * conjunction with the {@link #PutByteArray}method.
      *
      * <p>
      * Returns the specified default if there is no value associated with the
      * <code>key</code>, the backing store is inaccessible, or if the associated
      * value is not a valid Base64 encoded byte array (as defined above).
      *
      * @param key <code>key</code> whose associated value is to be returned as a
      *        <code>std::vector<char></code> object.
      * @param def the value to be returned in the event that this node has no
      *        value associated with <code>key</code> or the associated value
      *        cannot be interpreted as a <code>std::vector<char></code> type, or the backing
      *        store is inaccessible.
      * @return the <code>std::vector<char></code> value represented by the <code>QString</code>
      *         object associated with <code>key</code> in this node, or
      *         <code>def</code> if the associated value does not exist or cannot
      *         be interpreted as a <code>std::vector<char></code>.
      * @throws NullPointerException if <code>key</code> is <code>null</code>. (A
      *         <code>null</code> value for <code>def</code> <i>is </i> permitted.)
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #get(const QString&,const QString&)
-     * @see #putByteArray(const QString&,std::vector<char>)
+     *         removed with the {@link #Remove()}method.
+     * @see #Get
+     * @see #PutByteArray
      */
     virtual QByteArray GetByteArray(const QString& key, const QByteArray& def) const = 0;
 
     /**
      * Returns all of the keys that have an associated value in this node. (The
      * returned array will be of size zero if this node has no preferences and
      * not <code>null</code>!)
      *
      * @return an array of the keys that have an associated value in this node.
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      */
     virtual QStringList Keys() const = 0;
 
     /**
      * Returns the names of the children of this node. (The returned array will
      * be of size zero if this node has no children and not <code>null</code>!)
      *
      * @return the names of the children of this node.
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      */
     virtual QStringList ChildrenNames() const = 0;
 
     /**
      * Returns the parent of this node, or <code>null</code> if this is the root.
      *
      * @return the parent of this node.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      */
     virtual IPreferences::Pointer Parent() const = 0;
 
     /**
      * Returns a named <code>IPreferences</code> object (node), creating it and any
      * of its ancestors if they do not already exist. Accepts a relative or
      * absolute pathname. Absolute pathnames (which begin with <code>'/'</code>)
      * are interpreted relative to the root of this node. Relative pathnames
      * (which begin with any character other than <code>'/'</code>) are
      * interpreted relative to this node itself. The empty string (<code>""</code>)
      * is a valid relative pathname, referring to this node itself.
      *
      * <p>
      * If the returned node did not exist prior to this call, this node and any
      * ancestors that were created by this call are not guaranteed to become
      * persistent until the <code>flush</code> method is called on the returned
      * node (or one of its descendants).
      *
      * @param pathName the path name of the <code>IPreferences</code> object to
      *        return.
      * @return the specified <code>IPreferences</code> object.
      * @throws IllegalArgumentException if the path name is invalid.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
+     *         removed with the {@link #Remove()}method.
      * @throws NullPointerException if path name is <code>null</code>.
-     * @see #flush()
+     * @see #Flush()
      */
     virtual IPreferences::Pointer Node(const QString& pathName) = 0;
 
     /**
      * Returns true if the named node exists. Accepts a relative or absolute
      * pathname. Absolute pathnames (which begin with <code>'/'</code>) are
      * interpreted relative to the root of this node. Relative pathnames (which
      * begin with any character other than <code>'/'</code>) are interpreted
      * relative to this node itself. The pathname <code>""</code> is valid, and
      * refers to this node itself.
      *
      * <p>
      * If this node (or an ancestor) has already been removed with the
-     * {@link #removeNode()}method, it <i>is </i> legal to invoke this method,
+     * {@link #Remove()}method, it <i>is </i> legal to invoke this method,
      * but only with the pathname <code>""</code>; the invocation will return
      * <code>false</code>. Thus, the idiom <code>p.nodeExists("")</code> may be
      * used to test whether <code>p</code> has been removed.
      *
      * @param pathName the path name of the node whose existence is to be
      *        checked.
      * @return true if the specified node exists.
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method and
+     *         removed with the {@link #Remove()}method and
      *         <code>pathname</code> is not the empty string (<code>""</code>).
      * @throws IllegalArgumentException if the path name is invalid (i.e., it
      *         contains multiple consecutive slash characters, or ends with a
      *         slash character and is more than one character long).
      */
     virtual bool NodeExists(const QString& pathName) const = 0;
 
     /**
      * Removes this node and all of its descendants, invalidating any properties
      * contained in the removed nodes. Once a node has been removed, attempting
      * any method other than <code>name()</code>,<code>absolutePath()</code> or
      * <code>nodeExists("")</code> on the corresponding <code>IPreferences</code>
      * instance will fail with an <code>IllegalStateException</code>. (The
      * methods defined on <code>Object</code> can still be invoked on a node after
      * it has been removed; they will not throw <code>IllegalStateException</code>.)
      *
      * <p>
      * The removal is not guaranteed to be persistent until the <code>flush</code>
      * method is called on the parent of this node.
      *
      * @throws IllegalStateException if this node (or an ancestor) has already
-     *         been removed with the {@link #removeNode()}method.
+     *         been removed with the {@link #Remove()}method.
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
-     * @see #flush()
+     * @see #Flush()
      */
     virtual void RemoveNode() = 0;
 
     /**
      * Returns this node's name, relative to its parent.
      *
      * @return this node's name, relative to its parent.
      */
     virtual QString Name() const = 0;
 
     /**
      * Returns this node's absolute path name. Note that:
      * <ul>
      * <li>Root node - The path name of the root node is <code>"/"</code>.
      * <li>Slash at end - Path names other than that of the root node may not
      * end in slash (<code>'/'</code>).
      * <li>Unusual names -<code>"."</code> and <code>".."</code> have <i>no </i>
      * special significance in path names.
      * <li>Illegal names - The only illegal path names are those that contain
      * multiple consecutive slashes, or that end in slash and are not the root.
      * </ul>
      *
      * @return this node's absolute path name.
      */
     virtual QString AbsolutePath() const = 0;
 
     /**
      * Forces any changes in the contents of this node and its descendants to
      * the persistent store.
      *
      * <p>
      * Once this method returns successfully, it is safe to assume that all
      * changes made in the subtree rooted at this node prior to the method
      * invocation have become permanent.
      *
      * <p>
      * Implementations are free to flush changes into the persistent store at
      * any time. They do not need to wait for this method to be called.
      *
      * <p>
      * When a flush occurs on a newly created node, it is made persistent, as
      * are any ancestors (and descendants) that have yet to be made persistent.
      * Note however that any properties value changes in ancestors are <i>not
      * </i> guaranteed to be made persistent.
      *
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #sync()
+     *         removed with the {@link #Remove()}method.
+     * @see #Sync()
      */
     virtual void Flush() = 0;
 
     /**
      * Ensures that future reads from this node and its descendants reflect any
      * changes that were committed to the persistent store (from any VM) prior
      * to the <code>sync</code> invocation. As a side-effect, forces any changes
      * in the contents of this node and its descendants to the persistent store,
      * as if the <code>flush</code> method had been invoked on this node.
      *
      * @throws BackingStoreException if this operation cannot be completed due
      *         to a failure in the backing store, or inability to communicate
      *         with it.
      * @throws IllegalStateException if this node (or an ancestor) has been
-     *         removed with the {@link #removeNode()}method.
-     * @see #flush()
+     *         removed with the {@link #Remove()}method.
+     * @see #Flush()
      */
     virtual void Sync() = 0;
 
     /**
     * Sets a flag to the parameter <code>block</code> which can be used to
     * block berry messages in order to prevent callback functions to be called.
     *
     * @param block boolean to set the flag
     */
     virtual void BlockSignals(bool block) = 0;
   };
 
 }  // namespace berry
 
 #endif /*BERRYIPREFERENCES_H_*/
diff --git a/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h b/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h
index 317d1c09be..d37281db7c 100644
--- a/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h
+++ b/Plugins/org.blueberry.core.runtime/src/berryMultiStatus.h
@@ -1,143 +1,145 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYMULTISTATUS_H_
 #define BERRYMULTISTATUS_H_
 
 #include "berryStatus.h"
 
 #include <org_blueberry_core_runtime_Export.h>
 
 namespace berry {
 
 /**
  * A concrete multi-status implementation,
  * suitable either for instantiating or subclassing.
  * <p>
  * This class can be used without OSGi running.
  * </p>
  */
 class org_blueberry_core_runtime_EXPORT MultiStatus : public Status {
 
 private:
 
   /** List of child statuses.
    */
   QList<IStatus::Pointer> children;
 
 
   Severity GetMaxSeverity(const QList<Pointer> &children) const;
 
 public:
 
   berryObjectMacro(berry::MultiStatus);
 
   /**
    * Creates and returns a new multi-status object with the given children.
    *
    * @param pluginId the unique identifier of the relevant plug-in
    * @param code the plug-in-specific status code
    * @param newChildren the list of children status objects
    * @param message a human-readable message, localized to the
    *    current locale
+   * @param sl
    */
   MultiStatus(const QString& pluginId, int code, const QList<IStatus::Pointer>& newChildren,
               const QString& message, const SourceLocation& sl);
 
   /**
    * Creates and returns a new multi-status object with the given children.
    *
    * @param pluginId the unique identifier of the relevant plug-in
    * @param code the plug-in-specific status code
    * @param newChildren the list of children status objects
    * @param message a human-readable message, localized to the
    *    current locale
    * @param exception a low-level exception.
+   * @param sl
    */
   MultiStatus(const QString& pluginId, int code, const QList<IStatus::Pointer>& newChildren,
               const QString& message, const ctkException& exception, const SourceLocation& sl);
 
   /**
    * Creates and returns a new multi-status object with no children.
    *
    * @param pluginId the unique identifier of the relevant plug-in
    * @param code the plug-in-specific status code
    * @param message a human-readable message, localized to the
    *    current locale
+   * @param sl
    */
   MultiStatus(const QString& pluginId, int code, const QString& message,
               const SourceLocation& sl);
 
   /**
    * Creates and returns a new multi-status object with no children.
    *
    * @param pluginId the unique identifier of the relevant plug-in
    * @param code the plug-in-specific status code
    * @param message a human-readable message, localized to the
    *    current locale
    * @param exception a low-level exception, or <code>null</code> if not
    *    applicable
+   * @param sl
    */
   MultiStatus(const QString& pluginId, int code, const QString& message,
               const ctkException& exception, const SourceLocation& sl);
 
   /**
    * Adds the given status to this multi-status.
    *
    * @param status the new child status
    */
   void Add(IStatus::Pointer status);
 
   /**
    * Adds all of the children of the given status to this multi-status.
    * Does nothing if the given status has no children (which includes
    * the case where it is not a multi-status).
    *
    * @param status the status whose children are to be added to this one
    */
   void AddAll(IStatus::Pointer status);
 
   /* (Intentionally not javadoc'd)
    * Implements the corresponding method on <code>IStatus</code>.
    */
   QList<IStatus::Pointer> GetChildren() const override;
 
   /* (Intentionally not javadoc'd)
    * Implements the corresponding method on <code>IStatus</code>.
    */
   bool IsMultiStatus() const override;
 
   /**
    * Merges the given status into this multi-status.
-   * Equivalent to <code>add(status)</code> if the
+   * Equivalent to <code>Add(status)</code> if the
    * given status is not a multi-status.
-   * Equivalent to <code>addAll(status)</code> if the
+   * Equivalent to <code>AddAll(status)</code> if the
    * given status is a multi-status.
    *
    * @param status the status to merge into this one
-   * @see #add(IStatus)
-   * @see #addAll(IStatus)
    */
   void Merge(const IStatus::Pointer& status);
 
   /**
    * Returns a string representation of the status, suitable
    * for debugging purposes only.
    */
   QString ToString() const override;
 
 };
 
 }
 
 #endif /* BERRYMULTISTATUS_H_ */
diff --git a/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h b/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h
index b3b7403a23..06aff813a9 100644
--- a/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h
+++ b/Plugins/org.blueberry.core.runtime/src/registry/berryInvalidRegistryObjectException.h
@@ -1,47 +1,45 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYINVALIDREGISTRYOBJECTEXCEPTION_H
 #define BERRYINVALIDREGISTRYOBJECTEXCEPTION_H
 
 #include <ctkException.h>
 
 #include <org_blueberry_core_runtime_Export.h>
 
 namespace berry {
 
 /**
  * An exception indicating an attempt to access
  * an extension registry object that is no longer valid.
  * <p>
  * This exception is thrown by methods on extension registry
  * objects. It is not intended to be instantiated or
  * subclassed by clients.
  * </p>
- * @noinstantiate This class is not intended to be instantiated by clients.
- * @noextend This class is not intended to be subclassed by clients.
  */
 class org_blueberry_core_runtime_EXPORT InvalidRegistryObjectException : public ctkRuntimeException
 {
 public:
 
   InvalidRegistryObjectException();
   ~InvalidRegistryObjectException() throw() override;
 
   const char* name() const throw() override;
   InvalidRegistryObjectException* clone() const override;
   void rethrow() const override;
 };
 
 }
 
 #endif // BERRYINVALIDREGISTRYOBJECTEXCEPTION_H
diff --git a/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h b/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h
index 5cd2e47d04..ff5a0c7727 100644
--- a/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h
+++ b/Plugins/org.blueberry.ui.qt/src/actions/berryIMenuManager.h
@@ -1,126 +1,125 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIMENUMANAGER_H
 #define BERRYIMENUMANAGER_H
 
 #include <berryIContributionManager.h>
 #include <berryIContributionItem.h>
 
 namespace berry {
 
 /**
  * The <code>IMenuManager</code> interface provides protocol for managing
  * contributions to a menu bar and its sub menus.
  * An <code>IMenuManager</code> is also an <code>IContributionItem</code>,
  * allowing sub-menus to be nested in parent menus.
  * <p>
  * This interface is internal to the framework; it should not be implemented outside
  * the framework.
  * </p>
  * <p>
  * This package provides a concrete menu manager implementation,
  * {@link MenuManager <code>MenuManager</code>}.
  * </p>
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct IMenuManager : public virtual IContributionManager, public IContributionItem
 {
 
   berryObjectMacro(berry::IMenuManager);
 
   /**
    * Adds a menu listener to this menu.
    * Has no effect if an identical listener is already registered.
    *
    * @param listener a menu listener
    */
   virtual void AddMenuListener(QObject* listener) = 0;
 
   /**
    * Finds the manager for the menu at the given path. A path
    * consists of contribution item ids separated by the separator
    * character.  The path separator character is <code>'/'</code>.
    * <p>
    * Convenience for <code>findUsingPath(path)</code> which
    * extracts an <code>IMenuManager</code> if possible.
    * </p>
    *
    * @param path the path string
    * @return the menu contribution item, or <code>null</code>
    *   if there is no such contribution item or if the item does
    *   not have an associated menu manager
    */
   virtual IMenuManager::Pointer FindMenuUsingPath(const QString& path) const = 0;
 
   /**
    * Finds the contribution item at the given path. A path
    * consists of contribution item ids separated by the separator
    * character. The path separator character is <code>'/'</code>.
    *
    * @param path the path string
    * @return the contribution item, or <code>null</code> if there is no
    *   such contribution item
    */
   virtual IContributionItem::Pointer FindUsingPath(const QString& path) const = 0;
 
   /**
    * Returns whether all items should be removed when the menu is about to
    * show, but before notifying menu listeners. The default is
    * <code>false</code>.
    *
    * @return <code>true</code> if all items should be removed when shown,
    *         <code>false</code> if not
    */
   virtual bool GetRemoveAllWhenShown() const = 0;
 
   /**
    * Returns whether this menu should be enabled or not.
    *
    * @return <code>true</code> if enabled, and
    *   <code>false</code> if disabled
    */
   bool IsEnabled() const override = 0;
 
   /**
    * Removes the given menu listener from this menu.
    * Has no effect if an identical listener is not registered.
    *
    * @param listener the menu listener
    */
   virtual void RemoveMenuListener(QObject* listener) = 0;
 
   /**
    * Sets whether all items should be removed when the menu is about to show,
    * but before notifying menu listeners.
    *
    * @param removeAll
    *            <code>true</code> if all items should be removed when shown,
    *            <code>false</code> if not
    */
   virtual void SetRemoveAllWhenShown(bool removeAll) = 0;
 
   /**
      * Incrementally builds the menu from the contribution items, and
      * does so recursively for all submenus.
      *
      * @param force <code>true</code> means update even if not dirty,
      *   and <code>false</code> for normal incremental updating
      */
   virtual void UpdateAll(bool force) = 0;
 
 };
 
 }
 
 #endif // BERRYIMENUMANAGER_H
diff --git a/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h b/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h
index 40dd184909..21b4b66e54 100644
--- a/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h
+++ b/Plugins/org.blueberry.ui.qt/src/actions/berryMenuManager.h
@@ -1,403 +1,403 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYMENUMANAGER_H_
 #define BERRYMENUMANAGER_H_
 
 #include "berryIMenuManager.h"
 #include "berryContributionManager.h"
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <QIcon>
 
 class QMenu;
 class QMenuProxy;
 class QAction;
 
 namespace berry
 {
 
 /**
  * A menu manager is a contribution manager which realizes itself and its items
  * in a menu control; either as a menu bar, a sub-menu, or a context menu.
  * <p>
  * This class may be instantiated; it may also be subclassed.
  * </p>
  */
 class BERRY_UI_QT MenuManager: public QObject, public ContributionManager, public IMenuManager
 {
   Q_OBJECT
 
 public:
 
   berryObjectMacro(MenuManager);
 
 private:
 
   /**
    * The menu id.
    */
   QString id;
 
   /**
    * The menu control; <code>null</code> before
    * creation and after disposal.
    */
   QMenuProxy* menu;
   QAction* menuItem;
 
   /**
    * The menu item widget; <code>null</code> before
    * creation and after disposal. This field is used
    * when this menu manager is a sub-menu.
    */
   //SmartPointer<IMenuItem> menuItem;
 
   /**
    * The text for a sub-menu.
    */
   QString menuText;
 
   /**
    * The image for a sub-menu.
    */
   QIcon image;
 
   /**
    * The overrides for items of this manager
    */
   SmartPointer<IContributionManagerOverrides> overrides;
 
   /**
    * The parent contribution manager.
    */
   IContributionManager* parent;
 
   /**
    * Indicates whether <code>removeAll</code> should be
    * called just before the menu is displayed.
    */
   bool removeAllWhenShown;
 
   /**
    * allows a submenu to display a shortcut key. This is often used with the
    * QuickMenu command or action which can pop up a menu using the shortcut.
    */
   QString definitionId;
 
 private:
 
   Q_SLOT void HandleAboutToShow();
   Q_SLOT void HandleAboutToHide();
 
 protected:
 
   /**
    * Indicates this item is visible in its manager; <code>true</code>
    * by default.
    */
   bool visible;
 
 public:
 
   Q_SIGNAL void AboutToShow(IMenuManager* mm);
   Q_SIGNAL void AboutToHide(IMenuManager* mm);
 
   /**
    * Creates a menu manager with the given text and id.
    * Typically no text is given when creating a context menu.
    * Supply a text and id for creating a sub-menu, where it needs to be referred to by the id.
    *
    * @param text the text for the menu, or <code>""</code> if none
    * @param id the menu id, or <code>""</code> if it is to have no id
    */
   MenuManager(const QString& text = QString(), const QString& id = QString());
 
   ~MenuManager() override;
 
   /**
    * Creates a menu manager with the given text, image, and id.
    * Typically used for creating a sub-menu, where it needs to be referred to by id.
    *
    * @param text the text for the menu, or <code>""</code> if none
    * @param image the image for the menu, or <code>ImageDescriptor::Pointer(0)</code> if none
    * @param id the menu id, or <code>""</code> if it is to have no id
    */
   MenuManager(const QString& text, const QIcon& image,
               const QString& id);
 
   bool IsDirty() const override;
 
   /**
    * Creates and returns a Qt menu control for this menu,
    * and installs all registered contributions.
    * Does not create a new control if one already exists.
    * <p>
    * Note that the menu is not expected to be dynamic.
    * </p>
    *
    * @param parent the parent control
    * @return the menu control
    */
   QMenu* CreateContextMenu(QWidget* parent);
 
   /**
    * Creates and returns a Qt menu bar control for this menu,
    * for use in the given <code>QWidget</code>, and installs all registered
    * contributions. Does not create a new control if one already exists.
    *
    * @param parent the parent decorations
    * @return the menu control
    * @since 2.1
    */
   QMenuBar* CreateMenuBar(QWidget* parent);
 
   void AddMenuListener(QObject* listener) override;
   void RemoveMenuListener(QObject *listener) override;
 
   /*
    * @see IContributionItem#Fill(QStatusBar*)
    */
   void Fill(QStatusBar* parent) override;
 
   /*
    * @see IContributionItem#Fill(QToolBar*, int)
    */
   void Fill(QToolBar* parent, QAction *index) override;
 
   /*
    * @see IContributionItem#Fill(QMenu*, int)
    */
   void Fill(QMenu* parent, QAction *before) override;
 
   /*
    * @see IContributionItem#Fill(QMenuBar*, int)
    */
   void Fill(QMenuBar* parent, QAction *before) override;
 
   /*
    * @see IMenuManager#FindMenuUsingPath(const QString&)
    */
   IMenuManager::Pointer FindMenuUsingPath(const QString& path) const override;
 
   /*
    * @see IMenuManager#FindUsingPath(const QString&)
    */
   IContributionItem::Pointer FindUsingPath(const QString& path) const override;
 
   /**
    * Returns the menu id. The menu id is used when creating a contribution
    * item for adding this menu as a sub menu of another.
    *
    * @return the menu id
    */
   QString GetId() const override;
 
   /**
    * Returns the SWT menu control for this menu manager.
    *
    * @return the menu control
    */
   QMenu* GetMenu() const;
 
   /**
    * Returns the text shown in the menu, potentially with a shortcut
    * appended.
    *
    * @return the menu text
    */
   QString GetMenuText() const;
 
   /**
    * Returns the image for this menu as an image descriptor.
    *
    * @return the image, or <code>null</code> if this menu has no image
    */
   QIcon GetImage() const;
 
   /*
    * @see IContributionManager#GetOverrides()
    */
   SmartPointer<IContributionManagerOverrides> GetOverrides() override;
 
   /**
    * Returns the parent contribution manager of this manger.
    *
    * @return the parent contribution manager
    */
   IContributionManager* GetParent() const;
 
   /*
    * @see IMenuManager#GetRemoveAllWhenShown()
    */
   bool GetRemoveAllWhenShown() const override;
 
   /*
    * @see IContributionItem#IsDynamic()
    */
   bool IsDynamic() const override;
 
   /**
    * Returns whether this menu should be enabled or not.
    * Used to enable the menu item containing this menu when it is realized as a sub-menu.
    * <p>
    * The default implementation of this framework method
    * returns <code>true</code>. Subclasses may reimplement.
    * </p>
    *
    * @return <code>true</code> if enabled, and
    *   <code>false</code> if disabled
    */
   bool IsEnabled() const override;
 
   /*
    * @see IContributionItem#IsGroupMarker()
    */
   bool IsGroupMarker() const override;
 
   /*
    * @see IContributionItem#IsSeparator()
    */
   bool IsSeparator() const override;
 
   /*
    * @see IContributionItem#IsVisible()
    */
   bool IsVisible() const override;
 
   /**
    * The <code>MenuManager</code> implementation of this <code>ContributionManager</code> method
    * also propagates the dirty flag up the parent chain.
    */
   void MarkDirty() override;
 
   /*
    * @see IMenuManager#removeMenuListener(IMenuListener)
    */
   //void RemoveMenuListener(SmartPointer<IMenuListener> listener);
 
   /*
    * @IContributionItem#SaveWidgetState()
    */
   void SaveWidgetState() override;
 
   /**
    * Sets the overrides for this contribution manager
    *
    * @param newOverrides the overrides for the items of this manager
    */
   void SetOverrides(SmartPointer<IContributionManagerOverrides> newOverrides);
 
   /*
    * @see IContributionItem#SetParent(IContributionManager)
    */
   void SetParent(IContributionManager* manager) override;
 
   /*
    * @see IMenuManager#SetRemoveAllWhenShown(boolean)
    */
   void SetRemoveAllWhenShown(bool removeAll) override;
 
   /*
    * @see IContributionItem#SetVisible(bool)
    */
   void SetVisible(bool visible) override;
 
   /**
    * Sets the command id of this action. This simply allows the menu
    * item text to include a short cut if available.  It can be used to
    * notify a user of a key combination that will open a quick menu.
    *
    * @param definitionId
    *            the command definition id
    */
   void SetCommandId(const QString& definitionId);
 
   /*
    * @see IContributionItem#Update()
    */
   void Update() override;
 
   void Update(const QString& property) override;
 
   /**
    * The <code>MenuManager</code> implementation of this <code>IContributionManager</code>
    * updates this menu, but not any of its submenus.
    *
-   * @see #updateAll
+   * @see #UpdateAll
    */
   void Update(bool force) override;
 
   /*
    * @see IMenuManager#UpdateAll(bool)
    */
   void UpdateAll(bool force) override;
 
 private:
 
   /**
    * Initializes the menu control.
    */
   void InitializeMenu();
 
   /**
    * Dispose any images allocated for this menu
    */
  // void DisposeOldImages();
 
   /**
    * Updates the menu item for this sub menu.
    * The menu item is disabled if this sub menu is empty.
    * Does nothing if this menu is not a submenu.
    */
   void UpdateMenuItem();
 
   void FillMenu(QWidget* parent, QAction* before);
 
   void DumpActionInfo(QMenuProxy* menu);
   void DumpActionInfo(QWidget* widget, int level);
 
 protected:
 
   /**
    * Call an <code>IContributionItem</code>'s fill method with the
    * implementation's widget. The default is to use the <code>Menu</code>
    * widget.<br>
    * <code>fill(Menu menu, int index)</code>
    *
    * @param ci
    *            An <code>IContributionItem</code> whose <code>fill()</code>
    *            method should be called.
-   * @param index
+   * @param before
    *            The position the <code>fill()</code> method should start
    *            inserting at.
    */
   void DoItemFill(IContributionItem::Pointer ci, QAction *before);
 
   /**
    * Incrementally builds the menu from the contribution items.
    * This method leaves out double separators and separators in the first
    * or last position.
    *
    * @param force <code>true</code> means update even if not dirty,
    *   and <code>false</code> for normal incremental updating
    * @param recursive <code>true</code> means recursively update
    *   all submenus, and <code>false</code> means just this menu
    */
   void Update(bool force, bool recursive);
 
 };
 
 }
 
 #endif /* BERRYMENUMANAGER_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h b/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h
index 6a0b8c6cc8..d4ce1df67e 100644
--- a/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h
+++ b/Plugins/org.blueberry.ui.qt/src/application/berryIWorkbenchWindowConfigurer.h
@@ -1,372 +1,371 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIWORKBENCHWINDOWCONFIGURER_H_
 #define BERRYIWORKBENCHWINDOWCONFIGURER_H_
 
 #include <berryObject.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 class QMenuBar;
 
 namespace berry
 {
 
 struct IActionBarConfigurer;
 struct IDropTargetListener;
 struct IMemento;
 struct IWorkbenchConfigurer;
 struct IWorkbenchWindow;
 
 /**
  * Interface providing special access for configuring workbench windows.
  * <p>
  * %Window configurer objects are in 1-1 correspondence with the workbench
  * windows they configure. Clients may use <code>Get/SetData</code> to
  * associate arbitrary state with the window configurer object.
  * </p>
  * <p>
  * Note that these objects are only available to the main application
  * (the plug-in that creates and owns the workbench).
  * </p>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see IWorkbenchConfigurer#GetWindowConfigurer()
  * @see WorkbenchAdvisor#PreWindowOpen()
  * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IWorkbenchWindowConfigurer : public Object
 {
 
   berryObjectMacro(berry::IWorkbenchWindowConfigurer);
 
   ~IWorkbenchWindowConfigurer() override;
 
   /**
    * Returns the underlying workbench window.
    *
    * @return the workbench window
    */
   virtual SmartPointer<IWorkbenchWindow> GetWindow() = 0;
 
   /**
    * Returns the workbench configurer.
    *
    * @return the workbench configurer
    */
   virtual SmartPointer<IWorkbenchConfigurer> GetWorkbenchConfigurer() = 0;
 
   /**
    * Returns the action bar configurer for this workbench
    * window.
    *
    * @return the action bar configurer
     */
   virtual SmartPointer<IActionBarConfigurer> GetActionBarConfigurer() = 0;
 
   /**
    * Returns the title of the underlying workbench window.
    *
    * @return the window title
    */
   virtual QString GetTitle() = 0;
 
   /**
    * Sets the title of the underlying workbench window.
    *
    * @param title the window title
    */
   virtual void SetTitle(const QString& title) = 0;
 
   /**
    * Returns whether the underlying workbench window has a menu bar.
    * <p>
    * The initial value is <code>true</code>.
    * </p>
    *
    * @return <code>true</code> for a menu bar, and <code>false</code>
    * for no menu bar
    */
   virtual bool GetShowMenuBar() const = 0;
 
   /**
    * Sets whether the underlying workbench window has a menu bar.
    *
    * @param show <code>true</code> for a menu bar, and <code>false</code>
    * for no menu bar
    */
   virtual void SetShowMenuBar(bool show) = 0;
 
   /**
    * Returns whether the underlying workbench window has a tool bar.
    * <p>
    * The initial value is <code>true</code>.
    * </p>
    *
    * @return <code>true</code> for a tool bar, and <code>false</code>
    * for no tool bar
    */
   virtual bool GetShowToolBar() const = 0;
 
   /**
    * Sets whether the underlying workbench window has a tool bar.
    *
    * @param show <code>true</code> for a tool bar, and <code>false</code>
    * for no tool bar
    */
   virtual void SetShowToolBar(bool show) = 0;
 
   /**
    * Returns whether the underlying workbench window has a status line.
    * <p>
    * The initial value is <code>true</code>.
    * </p>
    *
    * @return <code>true</code> for a status line, and <code>false</code>
    * for no status line
    */
   virtual bool GetShowStatusLine() const = 0;
 
   /**
    * Sets whether the underlying workbench window has a status line.
    *
    * @param show <code>true</code> for a status line, and <code>false</code>
    * for no status line
    */
   virtual void SetShowStatusLine(bool show) = 0;
 
   /**
    * Returns whether the underlying workbench window has a perspective bar (the
    * perspective bar provides buttons to quickly switch between perspectives).
    * <p>
    * The initial value is <code>false</code>.
    * </p>
    *
    * @return <code>true</code> for a perspective bar, and <code>false</code>
    * for no perspective bar
    */
   virtual bool GetShowPerspectiveBar() const = 0;
 
   /**
    * Sets whether the underlying workbench window has a perspective bar (the
    * perspective bar provides buttons to quickly switch between perspectives).
    *
    * @param show <code>true</code> for a perspective bar, and
    * <code>false</code> for no perspective bar
    */
   virtual void SetShowPerspectiveBar(bool show) = 0;
 
   /**
    * Returns whether the underlying workbench window has a progress indicator.
    * <p>
    * The initial value is <code>false</code>.
    * </p>
    *
    * @return <code>true</code> for a progress indicator, and <code>false</code>
    * for no progress indicator
    */
   virtual bool GetShowProgressIndicator() const = 0;
 
   /**
    * Sets whether the underlying workbench window has a progress indicator.
    *
    * @param show <code>true</code> for a progress indicator, and <code>false</code>
    * for no progress indicator
    */
   virtual void SetShowProgressIndicator(bool show) = 0;
 
   /**
    * Returns the style bits to use for the window's main widget when it is created.
    * The default is <code>0</code>.
    *
    * @return the style bits
    */
   virtual Qt::WindowFlags GetWindowFlags() const = 0;
 
   /**
    * Sets the style bits to use for the window's main widget when it is created.
    * This method has no effect after the widget is created.
    * That is, it must be called within the <code>WorkbenchAdvisor#PreWindowOpen()</code>
    * callback.
    * <p>
    * For more details on the applicable style bits, see the
    * documentation for Qt::WindowFlags.
    * </p>
    *
    * @param windowFlags the style bits
    */
   virtual void SetWindowFlags(Qt::WindowFlags windowFlags) = 0;
 
   /**
    * Returns the size to use for the window's shell when it is created.
    *
    * @return the initial size to use for the shell
    */
   virtual QPoint GetInitialSize() const = 0;
 
   /**
    * Sets the size to use for the window's shell when it is created.
    * This method has no effect after the shell is created.
    * That is, it must be called within the <code>WorkbenchAdvisor#PreWindowOpen()</code>
    * callback.
    *
    * @param initialSize the initial size to use for the shell
    */
   virtual void SetInitialSize(QPoint initialSize) = 0;
 
   /*
    * Returns the data associated with this workbench window at the given key.
    *
    * @param key the key
    * @return the data, or <code>null</code> if there is no data at the given
    * key
    */
   //virtual Object getData(String key);
 
   /*
    * Sets the data associated with this workbench window at the given key.
    *
    * @param key the key
    * @param data the data, or <code>null</code> to delete existing data
    */
   //virtual void setData(String key, Object data);
 
   /**
    * Adds the given drag and drop Mime types to the ones
    * supported for drag and drop on the editor area of this workbench window.
    * <p>
    * The workbench advisor would ordinarily call this method from the
    * <code>PreWindowOpen</code> callback.
    * A newly-created workbench window supports no drag and drop transfer
    * types.
    * </p>
    * <p>
    * Note that drag and drop to the editor area requires adding one or more
    * transfer types (using <code>AddEditorAreaTransfer</code>) and
    * configuring a drop target listener
    * (with <code>ConfigureEditorAreaDropListener</code>)
    * capable of handling any of those transfer types.
    * </p>
    *
-   * @param transfer a drag and drop transfer object
-   * @see #configureEditorAreaDropListener
+   * @param transferTypes drag and drop transfer objects
    * @see org.blueberry.ui.part.EditorInputTransfer
    */
   virtual void AddEditorAreaTransfer(const QStringList& transferTypes) = 0;
 
   /**
    * Configures the drop target listener for the editor area of this workbench window.
    * <p>
    * The workbench advisor ordinarily calls this method from the
    * <code>PreWindowOpen</code> callback.
    * A newly-created workbench window has no configured drop target listener for its
    * editor area.
    * </p>
    * <p>
    * Note that drag and drop to the editor area requires adding one or more
    * transfer types (using <code>AddEditorAreaTransfer</code>) and
    * configuring a drop target listener
    * (with <code>ConfigureEditorAreaDropListener</code>)
    * capable of handling any of those transfer types.
    * </p>
    *
    * @param dropTargetListener the drop target listener that will handle
    * requests to drop an object on to the editor area of this window
    *
    * @see #AddEditorAreaTransfer
    */
   virtual void ConfigureEditorAreaDropListener(IDropTargetListener* dropTargetListener) = 0;
 
   /**
    * Creates the menu bar for the window's shell.
    * <p>
    * This should only be called if the advisor is defining custom window contents
    * in <code>CreateWindowContents</code>, and may only be called once.
    * The caller must set it in the shell using <code>Shell.setMenuBar(Menu)</code>
    * but must not make add, remove or change items in the result.
    * The menu bar is populated by the window's menu manager.
    * The application can add to the menu manager in the advisor's
    * <code>FillActionBars</code> method instead.
    * </p>
    *
    * @return the menu bar, suitable for setting in the shell
    */
   virtual QMenuBar* CreateMenuBar() = 0;
 
   /**
    * Creates the tool bar control.
    * <p>
    * This should only be called if the advisor is defining custom window contents
    * in <code>CreateWindowContents</code>, and may only be called once.
    * The caller must lay out the tool bar appropriately within the parent,
    * but must not add, remove or change items in the result (hence the
    * return type of <code>QWidget</code>).
    * The tool bar is populated by the window's tool bar manager.
    * The application can add to the tool bar manager in the advisor's
    * <code>FillActionBars</code> method instead.
    * </p>
    *
    * @param parent the parent widget
    * @return the tool bar control, suitable for laying out in the parent
    */
   virtual QWidget* CreateToolBar(QWidget* parent) = 0;
 
   /*
    * Creates the status line control.
    * <p>
    * This should only be called if the advisor is defining custom window contents
    * in <code>createWindowContents</code>, and may only be called once.
    * The caller must lay out the status line appropriately within the parent,
    * but must not add, remove or change items in the result (hence the
    * return type of <code>Control</code>).
    * The status line is populated by the window's status line manager.
    * The application can add to the status line manager in the advisor's
    * <code>fillActionBars</code> method instead.
    * </p>
    *
    * @param parent the parent composite
    * @return the status line control, suitable for laying out in the parent
    */
   //virtual Control createStatusLineControl(Composite parent);
 
   /**
    * Creates the page composite, in which the window's pages, and their
    * views and editors, appear.
    * <p>
    * This should only be called if the advisor is defining custom window contents
    * in <code>WorkbenchWindowAdvisor#CreateWindowContents()</code>, and may only be called once.
    * The caller must lay out the page composite appropriately within the parent,
    * but must not add, remove or change items in the result.
    * The page composite is populated by the workbench.
    * </p>
    *
    * @param parent the parent composite
    * @return the page composite, suitable for laying out in the parent
    */
   virtual QWidget* CreatePageComposite(QWidget* parent) = 0;
 
   /**
    * Saves the current state of the window using the specified memento.
    *
    * @param memento the memento in which to save the window's state
    * @return a status object indicating whether the save was successful
    * @see IWorkbenchConfigurer#RestoreWorkbenchWindow(IMemento::Pointer)
    */
   virtual bool SaveState(SmartPointer<IMemento> memento) = 0;
 };
 
 }
 
 #endif /*BERRYIWORKBENCHWINDOWCONFIGURER_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIMemento.h b/Plugins/org.blueberry.ui.qt/src/berryIMemento.h
index 7300bdc992..de230980bc 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIMemento.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIMemento.h
@@ -1,246 +1,244 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIMEMENTO_H_
 #define BERRYIMEMENTO_H_
 
 #include <berryMacros.h>
 #include <berryObject.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <QString>
 
 namespace berry
 {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * Interface to a memento used for saving the important state of an object
  * in a form that can be persisted in the file system.
  * <p>
  * Mementos were designed with the following requirements in mind:
  * <ol>
  *  <li>Certain objects need to be saved and restored across platform sessions.
  *    </li>
  *  <li>When an object is restored, an appropriate class for an object might not
  *    be available. It must be possible to skip an object in this case.</li>
  *  <li>When an object is restored, the appropriate class for the object may be
  *    different from the one when the object was originally saved. If so, the
  *    new class should still be able to read the old form of the data.</li>
  * </ol>
  * </p>
  * <p>
  * Mementos meet these requirements by providing support for storing a
  * mapping of arbitrary string keys to primitive values, and by allowing
  * mementos to have other mementos as children (arranged into a tree).
  * A robust external storage format based on XML is used.
  * </p><p>
  * The key for an attribute may be any alpha numeric value.  However, the
  * value of <code>TAG_ID</code> is reserved for internal use.
  * </p><p>
  * This interface is not intended to be implemented or extended by clients.
  * </p>
  *
  * @see IPersistableElement
  * @see IElementFactory
- * @noimplement This interface is not intended to be implemented by clients.
- *
  **/
 struct BERRY_UI_QT IMemento: public Object
 {
   berryObjectMacro(berry::IMemento);
 
   /**
    * Special reserved key used to store the memento id
    * (value <code>"IMemento.internal.id"</code>).
    *
-   * @see #getID()
+   * @see #GetID
    */
   static const QString TAG_ID; // = "IMemento.internal.id";
 
   /**
    * Creates a new child of this memento with the given type.
    * <p>
    * The <code>GetChild</code> and <code>GetChildren</code> methods
    * are used to retrieve children of a given type.
    * </p>
    *
    * @param type the type
    * @return a new child memento
    * @see #GetChild
    * @see #GetChildren
    */
   virtual IMemento::Pointer CreateChild(const QString& type) = 0;
 
   /**
    * Creates a new child of this memento with the given type and id.
    * The id is stored in the child memento (using a special reserved
    * key, <code>TAG_ID</code>) and can be retrieved using <code>GetID</code>.
    * <p>
    * The <code>GetChild</code> and <code>GetChildren</code> methods
    * are used to retrieve children of a given type.
    * </p>
    *
    * @param type the type
    * @param id the child id
    * @return a new child memento with the given type and id
    * @see #GetID
    */
   virtual IMemento::Pointer CreateChild(const QString& type,
       const QString& id) = 0;
 
   /**
    * Returns the first child with the given type id.
    *
    * @param type the type id
    * @return the first child with the given type
    */
   virtual IMemento::Pointer GetChild(const QString& type) const = 0;
 
   /**
    * Returns all children with the given type id.
    *
    * @param type the type id
    * @return an array of children with the given type
    */
   virtual QList<IMemento::Pointer>
       GetChildren(const QString& type) const = 0;
 
   /**
    * Gets the floating point value of the given key.
    *
    * @param key the key
    * @param value the value of the given key
    * @return false if the key was not found or was found
    *   but was not a floating point number, else true
    */
   virtual bool GetFloat(const QString& key, double& value) const = 0;
 
   /**
    * Gets the integer value of the given key.
    *
    * @param key the key
    * @param value the value of the given key
    * @return false if the key was not found or was found
    *   but was not an integer, else true
    */
   virtual bool GetInteger(const QString& key, int& value) const = 0;
 
   /**
    * Gets the string value of the given key.
    *
    * @param key the key
    * @param value the value of the given key
    * @return false if the key was not found, else true
    */
   virtual bool GetString(const QString& key, QString& value) const = 0;
 
   /**
    * Gets the boolean value of the given key.
    *
    * @param key the key
    * @param value the value of the given key
    * @return false if the key was not found, else true
    */
   virtual bool GetBoolean(const QString& key, bool& value) const = 0;
 
   /**
    * Returns the data of the Text node of the memento. Each memento is allowed
    * only one Text node.
    *
    * @return the data of the Text node of the memento, or <code>null</code>
    * if the memento has no Text node.
    */
   virtual QString GetTextData() const = 0;
 
   /**
    * Returns an array of all the attribute keys of the memento. This will not
    * be <code>null</code>. If there are no keys, an array of length zero will
    * be returned.
    * @return an array with all the attribute keys of the memento
    */
   virtual QList<QString> GetAttributeKeys() const = 0;
 
   /**
    * Returns the type for this memento.
    *
    * @return the memento type
    * @see #CreateChild(const QString&)
    * @see #CreateChild(const QString&, const QString&)
    */
   virtual QString GetType() const = 0;
 
   /**
    * Returns the id for this memento.
    *
    * @return the memento id, or <code>""</code> if none
    * @see #CreateChild(const QString&, const QString&)
    */
   virtual QString GetID() const = 0;
 
   /**
    * Sets the value of the given key to the given floating point number.
    *
    * @param key the key
    * @param value the value
    */
   virtual void PutFloat(const QString& key, double value) = 0;
 
   /**
    * Sets the value of the given key to the given integer.
    *
    * @param key the key
    * @param value the value
    */
   virtual void PutInteger(const QString& key, int value) = 0;
 
   /**
    * Copy the attributes and children from  <code>memento</code>
    * to the receiver.
    *
    * @param memento the IMemento to be copied.
    */
   virtual void PutMemento(IMemento::Pointer memento) = 0;
 
   /**
    * Sets the value of the given key to the given const QString&.
    *
    * @param key the key
    * @param value the value
    */
   virtual void PutString(const QString& key, const QString& value) = 0;
 
   /**
    * Sets the value of the given key to the given boolean value.
    *
    * @param key the key
    * @param value the value
    */
   virtual void PutBoolean(const QString& key, bool value) = 0;
 
   /**
    * Sets the memento's Text node to contain the given data. Creates the Text node if
    * none exists. If a Text node does exist, it's current contents are replaced.
    * Each memento is allowed only one text node.
    *
    * @param data the data to be placed on the Text node
    */
   virtual void PutTextData(const QString& data) = 0;
 
   ~IMemento() override;
 };
 
 } // namespace berry
 
 #endif /*BERRYIMEMENTO_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h
index 8f9fdb1fc6..ed838d403f 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPageLayout.h
@@ -1,498 +1,488 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPAGELAYOUT_H_
 #define BERRYIPAGELAYOUT_H_
 
 #include "berryIFolderLayout.h"
 #include "berryIPlaceholderFolderLayout.h"
 #include "berryIViewLayout.h"
 #include "berryIPerspectiveDescriptor.h"
 
 #include <string>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * A page layout defines the initial layout for a perspective within a page
  * in a workbench window.
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  * <p>
  * When a perspective is opened, it creates a new page layout with a single editor area.
  * This layout is then passed to the perspective factory (implementation of
- * {@link org.blueberry.ui.IPerspectiveFactory#createInitialLayout(IPageLayout)}) where
+ * {@link IPerspectiveFactory#CreateInitialLayout}) where
  * additional views and other content can be added, using the existing editor area as
  * the initial point of reference.
  * </p>
  * <p>
  * In some cases, multiple instances of a particular view may need to be added
  * to the same layout.  These are disambiguated using a secondary id.
  * In layout methods taking a view id, the id can have the compound form:
  * <strong>primaryId [':' secondaryId]</strong>.
  * If a secondary id is given, the view must allow multiple instances by
  * having specified <code>allowMultiple="true"</code> in its extension.
  * View placeholders may also have a secondary id.
  * </p>
  * <p>
  * Wildcards are permitted in placeholder ids (but not regular view ids).
  * '*' matches any substring, '?' matches any single character.
  * Wildcards can be specified for the primary id, the secondary id, or both.
  * For example, the placeholder "someView:*" will match any occurrence of the view
  * that has primary id "someView" and that also has some non-null secondary id.
  * Note that this placeholder will not match the view if it has no secondary id,
  * since the compound id in this case is simply "someView".
  * </p>
  * <p>
  * Example of populating a layout with standard workbench views:
  * <pre>
  * IPageLayout layout = ...
  * // Get the editor area.
  * String editorArea = layout.getEditorArea();
  *
  * // Top left: Resource Navigator view and Bookmarks view placeholder
  * IFolderLayout topLeft = layout.createFolder("topLeft", IPageLayout.LEFT, 0.25f,
  *    editorArea);
  * topLeft.addView(IPageLayout.ID_RES_NAV);
  * topLeft.addPlaceholder(IPageLayout.ID_BOOKMARKS);
  *
  * // Bottom left: Outline view and Property Sheet view
  * IFolderLayout bottomLeft = layout.createFolder("bottomLeft", IPageLayout.BOTTOM, 0.50f,
  *     "topLeft");
  * bottomLeft.addView(IPageLayout.ID_OUTLINE);
  * bottomLeft.addView(IPageLayout.ID_PROP_SHEET);
  *
  * // Bottom right: Task List view
  * layout.addView(IPageLayout.ID_TASK_LIST, IPageLayout.BOTTOM, 0.66f, editorArea);
  * </pre>
  * </p>
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IPageLayout : public Object
 {
 
   berryObjectMacro(berry::IPageLayout);
 
     /**
      * The part id for the workbench's editor area.  This may only be used
      * as a reference part for view addition.
      */
     static const QString ID_EDITOR_AREA; // = "org.blueberry.ui.editors";
 
     /**
      * The view id for the workbench's Resource Navigator standard component.
      */
     static const QString ID_RES_NAV; // = "org.blueberry.ui.views.ResourceNavigator";
 
     /**
      * The view id for the workbench's Property Sheet standard component.
      */
     static const QString ID_PROP_SHEET; // = "org.blueberry.ui.views.PropertySheet";
 
     /**
      * The view id for the workbench's Content Outline standard component.
      */
     static const QString ID_OUTLINE; // = "org.blueberry.ui.views.ContentOutline";
 
     /**
      * The view id for the workbench's Bookmark Navigator standard component.
      */
     static const QString ID_BOOKMARKS; // = "org.blueberry.ui.views.BookmarkView";
 
     /**
      * The view id for the workbench's Problems View standard component.
      * @since 3.0
      */
     static const QString ID_PROBLEM_VIEW; // = "org.blueberry.ui.views.ProblemView";
 
     /**
      * The view id for the workbench's Progress View standard component.
      * @since 3.2
      */
     static const QString ID_PROGRESS_VIEW; // = "org.blueberry.ui.views.ProgressView";
 
     /**
      * The view id for the workbench's Task List standard component.
      */
     static const QString ID_TASK_LIST; // = "org.blueberry.ui.views.TaskList";
 
     /**
      * Id of the navigate action set.
      * (value <code>"org.blueberry.ui.NavigateActionSet"</code>)
      * @since 2.1
      */
     static const QString ID_NAVIGATE_ACTION_SET; // = "org.blueberry.ui.NavigateActionSet";
 
     /**
      * Relationship constant indicating a part should be placed to the left of
      * its relative.
      */
     static const int LEFT; // = 1;
 
     /**
      * Relationship constant indicating a part should be placed to the right of
      * its relative.
      */
     static const int RIGHT; // = 2;
 
     /**
      * Relationship constant indicating a part should be placed above its
      * relative.
      */
     static const int TOP; // = 3;
 
     /**
      * Relationship constant indicating a part should be placed below its
      * relative.
      */
     static const int BOTTOM; // = 4;
 
     /**
      * Minimum acceptable ratio value when adding a view
      * @since 2.0
      */
     static const float RATIO_MIN; // = 0.05f;
 
     /**
      * Maximum acceptable ratio value when adding a view
      * @since 2.0
      */
     static const float RATIO_MAX; // = 0.95f;
 
     /**
      * The default view ratio width for regular (non-fast) views.
      * @since 2.0
      */
     static const float DEFAULT_VIEW_RATIO; // = 0.5f;
 
     /**
      * A variable used to represent invalid  ratios.
      * @since 2.0
      */
     static const float INVALID_RATIO; // = -1f;
 
     /**
      * A variable used to represent a ratio which has not been specified.
      * @since 2.0
      */
     static const float nullptr_RATIO; // = -2f;
 
-    /**
-     * Adds an action set with the given id to this page layout.
-     * The id must name an action set contributed to the workbench's extension
-     * point (named <code>"org.blueberry.ui.actionSet"</code>).
-     *
-     * @param actionSetId the action set id
-     */
-    //virtual void AddActionSet(const QString& actionSetId) = 0;
-
-
     /**
      * Adds a perspective shortcut to the page layout.
      * These are typically shown in the UI to allow rapid navigation to appropriate new wizards.
      * For example, in the Eclipse IDE, these appear as items under the Window > Open Perspective menu.
      * The id must name a perspective extension contributed to the
      * workbench's perspectives extension point (named <code>"org.blueberry.ui.perspectives"</code>).
      *
      * @param id the perspective id
      */
     virtual void AddPerspectiveShortcut(const QString& id) = 0;
 
     /**
      * Adds a view placeholder to this page layout.
      * A view placeholder is used to define the position of a view before the view
      * appears.  Initially, it is invisible; however, if the user ever opens a view
      * whose compound id matches the placeholder, the view will appear at the same
      * location as the placeholder.
      * See the {@link IPageLayout} type documentation for more details about compound ids.
      * If the placeholder contains wildcards, it remains in the layout, otherwise
      * it is replaced by the view.
      * If the primary id of the placeholder has no wildcards, it must refer to a view
      * contributed to the workbench's view extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      *
      * @param viewId the compound view id (wildcards allowed)
      * @param relationship the position relative to the reference part;
      *  one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
      *  or <code>RIGHT</code>
      * @param ratio a ratio specifying how to divide the space currently occupied by the reference part,
      *    in the range <code>0.05f</code> to <code>0.95f</code>.
      *    Values outside this range will be clipped to facilitate direct manipulation.
      *    For a vertical split, the part on top gets the specified ratio of the current space
      *    and the part on bottom gets the rest.
      *    Likewise, for a horizontal split, the part at left gets the specified ratio of the current space
      *    and the part at right gets the rest.
      * @param refId the id of the reference part; either a view id, a folder id,
      *   or the special editor area id returned by <code>getEditorArea</code>
      */
     virtual void AddPlaceholder(const QString& viewId, int relationship, float ratio,
             const QString& refId) = 0;
 
     /**
      * Adds an item to the Show In prompter.
      * The id must name a view contributed to the workbench's view extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      *
      * @param id the view id
      *
      * @since 2.1
      */
     virtual void AddShowInPart(const QString& id) = 0;
 
     /**
      * Adds a show view shortcut to the page layout.
      * These are typically shown in the UI to allow rapid navigation to appropriate views.
      * For example, in the Eclipse IDE, these appear as items under the Window > Show View menu.
      * The id must name a view contributed to the workbench's views extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      *
      * @param id the view id
      */
     virtual void AddShowViewShortcut(const QString& id) = 0;
 
     /**
      * Adds a view with the given compound id to this page layout.
      * See the {@link IPageLayout} type documentation for more details about compound ids.
      * The primary id must name a view contributed to the workbench's view extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      *
      * @param viewId the compound view id
      * @param relationship the position relative to the reference part;
      *  one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
      *  or <code>RIGHT</code>
      * @param ratio a ratio specifying how to divide the space currently occupied by the reference part,
      *    in the range <code>0.05f</code> to <code>0.95f</code>.
      *    Values outside this range will be clipped to facilitate direct manipulation.
      *    For a vertical split, the part on top gets the specified ratio of the current space
      *    and the part on bottom gets the rest.
      *    Likewise, for a horizontal split, the part at left gets the specified ratio of the current space
      *    and the part at right gets the rest.
      * @param refId the id of the reference part; either a view id, a folder id,
      *   or the special editor area id returned by <code>getEditorArea</code>
      */
     virtual void AddView(const QString& viewId, int relationship, float ratio,
             const QString& refId) = 0;
 
     /**
      * Creates and adds a new folder with the given id to this page layout.
      * The position and relative size of the folder is expressed relative to
      * a reference part.
      *
      * @param folderId the id for the new folder.  This must be unique within
      *  the layout to avoid collision with other parts.
      * @param relationship the position relative to the reference part;
      *  one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
      *  or <code>RIGHT</code>
      * @param ratio a ratio specifying how to divide the space currently occupied by the reference part,
      *    in the range <code>0.05f</code> to <code>0.95f</code>.
      *    Values outside this range will be clipped to facilitate direct manipulation.
      *    For a vertical split, the part on top gets the specified ratio of the current space
      *    and the part on bottom gets the rest.
      *    Likewise, for a horizontal split, the part at left gets the specified ratio of the current space
      *    and the part at right gets the rest.
      * @param refId the id of the reference part; either a view id, a folder id,
      *   or the special editor area id returned by <code>getEditorArea</code>
      * @return the new folder
      */
     virtual IFolderLayout::Pointer CreateFolder(const QString& folderId, int relationship,
             float ratio, const QString& refId) = 0;
 
     /**
      * Creates and adds a placeholder for a new folder with the given id to this page layout.
      * The position and relative size of the folder is expressed relative to
      * a reference part.
      *
      * @param folderId the id for the new folder.  This must be unique within
      *  the layout to avoid collision with other parts.
      * @param relationship the position relative to the reference part;
      *  one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
      *  or <code>RIGHT</code>
      * @param ratio a ratio specifying how to divide the space currently occupied by the reference part,
      *    in the range <code>0.05f</code> to <code>0.95f</code>.
      *    Values outside this range will be clipped to facilitate direct manipulation.
      *    For a vertical split, the part on top gets the specified ratio of the current space
      *    and the part on bottom gets the rest.
      *    Likewise, for a horizontal split, the part at left gets the specified ratio of the current space
      *    and the part at right gets the rest.
      * @param refId the id of the reference part; either a view id, a folder id,
      *   or the special editor area id returned by <code>getEditorArea</code>
      * @return a placeholder for the new folder
      * @since 2.0
      */
     virtual IPlaceholderFolderLayout::Pointer CreatePlaceholderFolder(const QString& folderId,
             int relationship, float ratio, const QString& refId) = 0;
 
     /**
      * Returns the special identifier for the editor area in this page
      * layout.  The identifier for the editor area is also stored in
      * <code>ID_EDITOR_AREA</code>.
      * <p>
      * The editor area is automatically added to each layout before anything else.
      * It should be used as the point of reference when adding views to a layout.
      * </p>
      *
      * @return the special id of the editor area
      */
     virtual QString GetEditorArea() = 0;
 
     /**
      * Returns whether the page's layout will show
      * the editor area.
      *
      * @return <code>true</code> when editor area visible, <code>false</code> otherwise
      */
     virtual bool IsEditorAreaVisible() = 0;
 
     /**
      * Show or hide the editor area for the page's layout.
      *
      * @param showEditorArea <code>true</code> to show the editor area, <code>false</code> to hide the editor area
      */
     virtual void SetEditorAreaVisible(bool showEditorArea) = 0;
 
     /**
      * Sets whether this layout is fixed.
      * In a fixed layout, layout parts cannot be moved or zoomed, and the initial
      * set of views cannot be closed.
      *
      * @param isFixed <code>true</code> if this layout is fixed, <code>false</code> if not
      * @since 3.0
      */
     virtual void SetFixed(bool isFixed) = 0;
 
     /**
      * Returns <code>true</code> if this layout is fixed, <code>false</code> if not.
      * In a fixed layout, layout parts cannot be moved or zoomed, and the initial
      * set of views cannot be closed.
      * The default is <code>false</code>.
      *
      * @return <code>true</code> if this layout is fixed, <code>false</code> if not.
      * @since 3.0
      */
     virtual bool IsFixed() = 0;
 
     /**
      * Returns the layout for the view or placeholder with the given compound id in
      * this page layout.
      * See the {@link IPageLayout} type documentation for more details about compound ids.
      * Returns <code>null</code> if the specified view or placeholder is unknown to the layout.
      *
      * @param id the compound view id or placeholder
      * @return the view layout, or <code>null</code>
      * @since 3.0
      */
     virtual IViewLayout::Pointer GetViewLayout(const QString& id) = 0;
 
     /**
      * Adds a standalone view with the given compound id to this page layout.
      * See the {@link IPageLayout} type documentation for more details about compound ids.
      * A standalone view cannot be docked together with other views.
      * A standalone view's title can optionally be hidden.  If hidden,
      * then any controls typically shown with the title (such as the close button)
      * are also hidden.  Any contributions or other content from the view itself
      * are always shown (e.g. toolbar or view menu contributions, content description).
      * <p>
      * The id must name a view contributed to the workbench's view extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      * </p>
      *
      * @param viewId the compound view id
      * @param showTitle <code>true</code> to show the title and related controls,
      *  <code>false</code> to hide them
      * @param relationship the position relative to the reference part;
      *  one of <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
      *  or <code>RIGHT</code>
      * @param ratio a ratio specifying how to divide the space currently occupied by the reference part,
      *    in the range <code>0.05f</code> to <code>0.95f</code>.
      *    Values outside this range will be clipped to facilitate direct manipulation.
      *    For a vertical split, the part on top gets the specified ratio of the current space
      *    and the part on bottom gets the rest.
      *    Likewise, for a horizontal split, the part at left gets the specified ratio of the current space
      *    and the part at right gets the rest.
      * @param refId the id of the reference part; either a view id, a folder id,
      *   or the special editor area id returned by <code>getEditorArea</code>
      *
      * @since 3.0
      */
     virtual void AddStandaloneView(const QString& viewId, bool showTitle,
             int relationship, float ratio, const QString& refId) = 0;
 
     /**
    * Adds a standalone view placeholder to this page layout. A view
    * placeholder is used to define the position of a view before the view
    * appears. Initially, it is invisible; however, if the user ever opens a
    * view whose compound id matches the placeholder, the view will appear at
    * the same location as the placeholder. See the {@link IPageLayout} type
    * documentation for more details about compound ids. If the placeholder
    * contains wildcards, it remains in the layout, otherwise it is replaced by
    * the view. If the primary id of the placeholder has no wildcards, it must
    * refer to a view contributed to the workbench's view extension point
    * (named <code>"org.blueberry.ui.views"</code>).
    *
    * @param viewId
    *            the compound view id (wildcards allowed)
    * @param relationship
    *            the position relative to the reference part; one of
    *            <code>TOP</code>, <code>BOTTOM</code>, <code>LEFT</code>,
    *            or <code>RIGHT</code>
    * @param ratio
    *            a ratio specifying how to divide the space currently occupied
    *            by the reference part, in the range <code>0.05f</code> to
    *            <code>0.95f</code>. Values outside this range will be
    *            clipped to facilitate direct manipulation. For a vertical
    *            split, the part on top gets the specified ratio of the current
    *            space and the part on bottom gets the rest. Likewise, for a
    *            horizontal split, the part at left gets the specified ratio of
    *            the current space and the part at right gets the rest.
    * @param refId
    *            the id of the reference part; either a view id, a folder id,
    *            or the special editor area id returned by
    *            <code>getEditorArea</code>
    * @param showTitle
    *            true to show the view's title, false if not
    *
    * @since 3.2
    */
     virtual void AddStandaloneViewPlaceholder(const QString& viewId, int relationship,
       float ratio, const QString& refId, bool showTitle) = 0;
 
 
     /**
    * Returns the perspective descriptor for the perspective being layed out.
    *
    * @return the perspective descriptor for the perspective being layed out
    * @since 3.2
    */
     virtual IPerspectiveDescriptor::Pointer GetDescriptor() = 0;
 
     /**
    * Returns the folder layout for the view or placeholder with the given
    * compound id in this page layout. See the {@link IPageLayout} type
    * documentation for more details about compound ids. Returns
    * <code>null</code> if the specified view or placeholder is unknown to
    * the layout, or the placeholder was not in a folder.
    *
    * @param id
    *            the compound view id or placeholder. Must not be
    *            <code>null</code>.
    * @return the folder layout, or <code>null</code>
    * @since 3.3
    */
     virtual IPlaceholderFolderLayout::Pointer GetFolderForView(const QString& id) = 0;
 };
 
 }
 
 #endif /*BERRYIPAGELAYOUT_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPageService.h b/Plugins/org.blueberry.ui.qt/src/berryIPageService.h
index 468eff4f63..1eb90fcd5b 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPageService.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPageService.h
@@ -1,106 +1,84 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIPAGESERVICE_H_
 #define BERRYIPAGESERVICE_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include  "berryIPerspectiveListener.h"
 
 namespace berry {
 
 struct IWorkbenchPage;
 
 /**
  * A page service tracks the page and perspective lifecycle events
  * within a workbench window.
  * <p>
  * This service can be acquired from your service locator:
  * <pre>
  *  IPageService service = (IPageService) getSite().getService(IPageService.class);
  * </pre>
  * <ul>
  * <li>This service is not available globally, only from the workbench window level down.</li>
  * </ul>
  * </p>
  *
  * @see IWorkbenchWindow
  * @see IPageListener
  * @see IPerspectiveListener
- * @see org.blueberry.ui.services.IServiceLocator#getService(Class)
- * @noimplement This interface is not intended to be implemented by clients.
+ * @see IServiceLocator#GetService
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IPageService {
 
     virtual ~IPageService();
 
-   /**
-     * Adds the given listener for page lifecycle events.
-     * Has no effect if an identical listener is already registered.
-   * <p>
-   * <b>Note:</b> listeners should be removed when no longer necessary. If
-   * not, they will be removed when the IServiceLocator used to acquire this
-   * service is disposed.
-   * </p>
-     *
-     * @param listener a page listener
-     * @see #removePageListener(IPageListener)
-     */
-    //virtual void AddPageListener(IPageListener listener);
-
     /**
      * Adds the given listener for a page's perspective lifecycle events.
      * Has no effect if an identical listener is already registered.
    * <p>
    * <b>Note:</b> listeners should be removed when no longer necessary. If
    * not, they will be removed when the IServiceLocator used to acquire this
    * service is disposed.
    * </p>
      *
      * @param listener a perspective listener
-     * @see #removePerspectiveListener(IPerspectiveListener)
+     * @see #RemovePerspectiveListener
      */
     virtual void AddPerspectiveListener(IPerspectiveListener* listener) = 0;
 
     /**
      * Returns the active page.
      *
      * @return the active page, or <code>null</code> if no page is currently active
      */
     virtual SmartPointer<IWorkbenchPage> GetActivePage() const = 0;
 
-    /**
-     * Removes the given page listener.
-     * Has no affect if an identical listener is not registered.
-     *
-     * @param listener a page listener
-     */
-    //virtual void RemovePageListener(IPageListener listener);
-
     /**
      * Removes the given page's perspective listener.
      * Has no affect if an identical listener is not registered.
      *
      * @param listener a perspective listener
      */
     virtual void RemovePerspectiveListener(IPerspectiveListener* listener) = 0;
 
     virtual IPerspectiveListener::Events& GetPerspectiveEvents() = 0;
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IPageService, "org.blueberry.ui.IPageService")
 
 #endif /* BERRYIPAGESERVICE_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h b/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h
index 1ac1f865f6..463e382829 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPartListener.h
@@ -1,160 +1,144 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPARTLISTENER_H_
 #define BERRYIPARTLISTENER_H_
 
 #include <berryMacros.h>
 #include <berryMessage.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 #include "berryIWorkbenchPartReference.h"
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * Interface for listening to part lifecycle events.
  * <p>
  * This interface may be implemented by clients.
  * </p>
  *
  * @see IPartService#AddPartListener(IPartListener)
  */
 struct BERRY_UI_QT IPartListener
 {
 
   struct Events {
 
     enum Type {
       NONE           = 0x00000000,
       ACTIVATED      = 0x00000001,
       BROUGHT_TO_TOP = 0x00000002,
       CLOSED         = 0x00000004,
       DEACTIVATED    = 0x00000008,
       OPENED         = 0x00000010,
       HIDDEN         = 0x00000020,
       VISIBLE        = 0x00000040,
       INPUT_CHANGED  = 0x00000080,
 
       ALL            = 0xffffffff
     };
 
     Q_DECLARE_FLAGS(Types, Type)
 
     typedef Message1<const IWorkbenchPartReference::Pointer&> PartEvent;
 
     PartEvent partActivated;
     PartEvent partBroughtToTop;
     PartEvent partClosed;
     PartEvent partDeactivated;
     PartEvent partOpened;
     PartEvent partHidden;
     PartEvent partVisible;
     PartEvent partInputChanged;
 
     void AddListener(IPartListener* listener);
     void RemoveListener(IPartListener* listener);
 
   private:
     typedef MessageDelegate1<IPartListener, const IWorkbenchPartReference::Pointer&> Delegate;
   };
 
   virtual ~IPartListener();
 
   virtual Events::Types GetPartEventTypes() const = 0;
 
   /**
    * Notifies this listener that the given part has been activated.
-   *
-   * @param partRef the part that was activated
    * @see IWorkbenchPage#activate
    */
   virtual void PartActivated(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part has been brought to the top.
    * <p>
    * These events occur when an editor is brought to the top in the editor area,
    * or when a view is brought to the top in a page book with multiple views.
    * They are normally only sent when a part is brought to the top
    * programmatically (via <code>IPerspective.bringToTop</code>). When a part is
    * activated by the user clicking on it, only <code>partActivated</code> is sent.
    * </p>
-   *
-   * @param partRef the part that was surfaced
    * @see IWorkbenchPage#bringToTop
    */
   virtual void PartBroughtToTop(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part has been closed.
    * <p>
    * Note that if other perspectives in the same page share the view,
    * this notification is not sent.  It is only sent when the view
    * is being removed from the page entirely (it is being disposed).
    * </p>
-   *
-   * @param partRef the part that was closed
    * @see IWorkbenchPage#hideView
    */
   virtual void PartClosed(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part has been deactivated.
-   *
-   * @param partRef the part that was deactivated
    * @see IWorkbenchPage#activate
    */
   virtual void PartDeactivated(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part has been opened.
    * <p>
    * Note that if other perspectives in the same page share the view,
    * this notification is not sent.  It is only sent when the view
    * is being newly opened in the page (it is being created).
    * </p>
-   *
-   * @param partRef the part that was opened
    * @see IWorkbenchPage#showView
    */
   virtual void PartOpened(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part is hidden or obscured by another part.
-   *
-   * @param partRef the part that is hidden or obscured by another part
    */
   virtual void PartHidden(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part is visible.
-   *
-   * @param partRef the part that is visible
    */
   virtual void PartVisible(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 
   /**
    * Notifies this listener that the given part's input was changed.
-   *
-   * @param partRef the part whose input was changed
    */
   virtual void PartInputChanged(const IWorkbenchPartReference::Pointer& /*partRef*/) {}
 };
 
 }  // namespace berry
 
 Q_DECLARE_OPERATORS_FOR_FLAGS(berry::IPartListener::Events::Types)
 
 #endif /*BERRYIPARTLISTENER_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPartService.h b/Plugins/org.blueberry.ui.qt/src/berryIPartService.h
index c44d38e508..73f1fd4c1e 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPartService.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPartService.h
@@ -1,82 +1,82 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPARTSERVICE_H_
 #define BERRYIPARTSERVICE_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "berryIWorkbenchPart.h"
 #include "berryIWorkbenchPartReference.h"
 #include "berryIPartListener.h"
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * A part service tracks the creation and activation of parts within a
  * workbench page.
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see IWorkbenchPage
  */
 struct BERRY_UI_QT IPartService {
 
   virtual ~IPartService();
 
   /**
    * Adds the given observer for part lifecycle events.
    * Has no effect if an identical listener is already registered.
    * <p>
    * <b>Note:</b> listeners should be removed when no longer necessary. If
    * not, they will be removed when the IServiceLocator used to acquire this
    * service is disposed.
    * </p>
    *
    * @param listener a part listener
-   * @see #removePartListener(IPartListener)
+   * @see #RemovePartListener
    */
     virtual void AddPartListener(IPartListener* listener) = 0;
 
     /**
      * Returns the active part.
      *
      * @return the active part, or <code>null</code> if no part is currently active
      */
     virtual IWorkbenchPart::Pointer GetActivePart() = 0;
 
     /**
      * Returns the active part reference.
      *
      * @return the active part reference, or <code>null</code> if no part
      * is currently active
      */
     virtual IWorkbenchPartReference::Pointer GetActivePartReference() = 0;
 
     /**
      * Removes the given part listener.
      * Has no affect if an identical listener is not registered.
      *
      * @param listener a part listener
      */
     virtual void RemovePartListener(IPartListener* listener) = 0;
 
 };
 
 }  // namespace berry
 
 Q_DECLARE_INTERFACE(berry::IPartService, "org.blueberry.ui.IPartService")
 
 #endif /*BERRYIPARTSERVICE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h
index ff42689e9b..1f973b381a 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveDescriptor.h
@@ -1,126 +1,125 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPERSPECTIVEDESCRIPTOR_H_
 #define BERRYIPERSPECTIVEDESCRIPTOR_H_
 
 #include <berryMacros.h>
 #include <berryObject.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * A perspective descriptor describes a perspective in an
  * <code>IPerspectiveRegistry</code>.
  * <p>
  * A perspective is a template for view visibility, layout, and action visibility
  * within a workbench page. There are two types of perspective: a predefined
  * perspective and a custom perspective.
  * <ul>
  *   <li>A predefined perspective is defined by an extension to the workbench's
  *     perspective extension point (<code>"org.blueberry.ui.perspectives"</code>).
  *     The extension defines a id, label, and <code>IPerspectiveFactory</code>.
  *     A perspective factory is used to define the initial layout for a page.
  *     </li>
  *   <li>A custom perspective is defined by the user.  In this case a predefined
  *     perspective is modified to suit a particular task and saved as a new
  *     perspective.  The attributes for the perspective are stored in a separate file
  *     in the workbench's metadata directory.
  *     </li>
  * </ul>
  * </p>
  * <p>
  * Within a page the user can open any of the perspectives known
  * to the workbench's perspective registry, typically by selecting one from the
  * workbench's <code>Open Perspective</code> menu. When selected, the views
  * and actions within the active page rearrange to reflect the perspective.
  * </p>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  * @see IPerspectiveRegistry
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IPerspectiveDescriptor : public virtual Object
 {
 
   berryObjectMacro(berry::IPerspectiveDescriptor);
 
   ~IPerspectiveDescriptor() override;
 
     /**
      * Returns the description of this perspective.
      * This is the value of its <code>"description"</code> attribute.
      *
      * @return the description
      * @since 3.0
      */
     virtual QString GetDescription() const = 0;
 
     /**
      * Returns this perspective's id. For perspectives declared via an extension,
      * this is the value of its <code>"id"</code> attribute.
      *
      * @return the perspective id
      */
     virtual QString GetId() const = 0;
 
     /**
      * Returns the descriptor of the image to show for this perspective.
      * If the extension for this perspective specifies an image, the descriptor
      * for it is returned.  Otherwise a default image is returned.
      *
      * @return the descriptor of the image to show for this perspective
      */
     virtual QIcon GetImageDescriptor() const = 0;
 
     /**
      * Returns this perspective's label. For perspectives declared via an extension,
      * this is the value of its <code>"label"</code> attribute.
      *
      * @return the label
      */
     virtual QString GetLabel() const = 0;
 
     /**
      * Returns <code>true</code> if this perspective is predefined by an
      * extension.
      *
      * @return boolean whether this perspective is predefined by an extension
      */
     //virtual bool IsPredefined() const = 0;
 
     /**
      * Return the category path of this descriptor
      *
      * @return the category path of this descriptor
      */
     virtual QStringList GetCategoryPath() const = 0;
 
   /**
    * Returns a list of ids belonging to keyword reference extensions.
    *
    * The keywords listed in each referenced id can be used to filter
    * this perspective.
    *
    * @return A list of ids for keyword reference extensions.
    */
   virtual QStringList GetKeywordReferences() const = 0;
 };
 
 }
 
 #endif /*BERRYIPERSPECTIVEDESCRIPTOR_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h
index 6af8b038f7..35e15584e1 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPerspectiveRegistry.h
@@ -1,134 +1,120 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPERSPECTIVEREGISTRY_H_
 #define BERRYIPERSPECTIVEREGISTRY_H_
 
 #include "berryIPerspectiveDescriptor.h"
 
 #include <vector>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui
  *
  * The workbench's global registry of perspectives.
  * <p>
  * This registry contains a descriptor for each perspectives in the workbench.
  * It is initially populated with stock perspectives from the workbench's
  * perspective extension point (<code>"org.blueberry.ui.perspectives"</code>) and
  * with custom perspectives defined by the user.
  * </p><p>
  * This interface is not intended to be implemented by clients.
  * </p>
  * @see IWorkbench#getPerspectiveRegistry
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IPerspectiveRegistry {
 
   virtual ~IPerspectiveRegistry();
 
-  /**
-   * Create a new perspective.
-   *
-   * @param label
-   *            the name of the new descriptor
-   * @param originalDescriptor
-   *            the descriptor on which to base the new descriptor
-   * @return a new perspective descriptor or <code>null</code> if the
-   *         creation failed.
-   */
-  //virtual IPerspectiveDescriptor::Pointer CreatePerspective(const QString& label,
-  //                                                          IPerspectiveDescriptor::Pointer originalDescriptor) = 0;
-
   /**
    * Clones an existing perspective.
    *
    * @param id the id for the cloned perspective, which must not already be used by
    *   any registered perspective
    * @param label the label assigned to the cloned perspective
    * @param desc the perspective to clone
    * @return the cloned perspective descriptor
    * @throws IllegalArgumentException if there is already a perspective with the given id
    */
   virtual IPerspectiveDescriptor::Pointer ClonePerspective(const QString& id, const QString& label,
                                                            IPerspectiveDescriptor::Pointer desc) = 0;
 
   /**
    * Deletes a perspective. Has no effect if the perspective is defined in an
    * extension.
    *
    * @param persp the perspective to delete
    */
   virtual void DeletePerspective(IPerspectiveDescriptor::Pointer persp) = 0;
 
   /**
    * Finds and returns the registered perspective with the given perspective id.
    *
    * @param perspectiveId the perspective id
    * @return the perspective, or <code>null</code> if none
    * @see IPerspectiveDescriptor#getId
    */
   virtual IPerspectiveDescriptor::Pointer FindPerspectiveWithId(const QString& perspectiveId) = 0;
 
   /**
    * Finds and returns the registered perspective with the given label.
    *
    * @param label the label
    * @return the perspective, or <code>null</code> if none
    * @see IPerspectiveDescriptor#getLabel
    */
   virtual IPerspectiveDescriptor::Pointer FindPerspectiveWithLabel(const QString& label) = 0;
 
   /**
    * Returns the id of the default perspective for the workbench.  This identifies one
    * perspective extension within the workbench's perspective registry.
    * <p>
    * Returns <code>null</code> if there is no default perspective.
    * </p>
    *
    * @return the default perspective id, or <code>null</code>
    */
   virtual QString GetDefaultPerspective() = 0;
 
   /**
    * Returns a list of the perspectives known to the workbench.
    *
    * @return a list of perspectives
    */
   virtual QList<IPerspectiveDescriptor::Pointer> GetPerspectives() = 0;
 
   /**
    * Sets the default perspective for the workbench to the given perspective id.
    * If non-<code>null</code>, the id must correspond to a perspective extension
    * within the workbench's perspective registry.
    * <p>
    * A <code>null</code> id indicates no default perspective.
    * </p>
    *
    * @param id a perspective id, or <code>null</code>
    */
   virtual void SetDefaultPerspective(const QString& id) = 0;
 
   /**
    * Reverts a perspective back to its original definition
    * as specified in the plug-in manifest.
    *
    * @param perspToRevert the perspective to revert
    */
   virtual void RevertPerspective(IPerspectiveDescriptor::Pointer perspToRevert) = 0;
 };
 
 }
 
 #endif /*BERRYIPERSPECTIVEREGISTRY_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h
index f931136110..1ad1dd9c07 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPlaceholderFolderLayout.h
@@ -1,97 +1,96 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPLACEHOLDERFOLDERLAYOUT_H_
 #define BERRYIPLACEHOLDERFOLDERLAYOUT_H_
 
 #include <berryMacros.h>
 #include <berryObject.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * An <code>IPlaceholderFolderLayout</code> is used to define the initial
  * view placeholders within a folder.
  * The folder itself is contained within an <code>IPageLayout</code>.
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
- * @see IPageLayout#createPlaceholderFolder
- * @noimplement This interface is not intended to be implemented by clients.
+ * @see IPageLayout#CreatePlaceholderFolder
  */
 struct BERRY_UI_QT IPlaceholderFolderLayout : public Object
 {
 
   berryObjectMacro(berry::IPlaceholderFolderLayout);
 
   ~IPlaceholderFolderLayout() override;
 
     /**
      * Adds a view placeholder to this folder.
      * A view placeholder is used to define the position of a view before the view
      * appears.  Initially, it is invisible; however, if the user ever opens a view
      * whose compound id matches the placeholder, the view will appear at the same
      * location as the placeholder.
      * See the {@link IPageLayout} type documentation for more details about compound ids.
      * If the placeholder contains wildcards, it remains in the layout, otherwise
      * it is replaced by the view.
      * If the primary id of the placeholder has no wildcards, it must refer to a view
      * contributed to the workbench's view extension point
      * (named <code>"org.blueberry.ui.views"</code>).
      *
      * @param viewId the compound view id (wildcards allowed)
      */
     virtual void AddPlaceholder(const QString& viewId) = 0;
 
     /**
    * Returns the property with the given id or <code>null</code>. Folder
    * properties are an extensible mechanism for perspective authors to
    * customize the appearance of view stacks. The list of customizable
    * properties is determined by the presentation factory.
    *
    * @param id
    *            Must not be <code>null</code>.
    * @return property value, or <code>null</code> if the property is not
    *         set.
    * @since 3.3
    */
   virtual QString GetProperty(const QString& id) = 0;
 
     /**
    * Sets the given property to the given value. Folder properties are an
    * extensible mechanism for perspective authors to customize the appearance
    * of view stacks. The list of customizable properties is determined by the
    * presentation factory.
    * <p>
    * These folder properties are intended to be set during
    * <code>IPerspectiveFactory#createInitialLayout</code>. Any subsequent
    * changes to property values after this method completes will not fire
    * change notifications and will not be reflected in the presentation.
    * </p>
    *
    * @param id
    *            property id. Must not be <code>null</code>.
    * @param value
    *            property value. <code>null</code> will clear the property.
    * @since 3.3
    */
   virtual void SetProperty(const QString& id, const QString& value) = 0;
 };
 
 }
 
 #endif /*BERRYIPLACEHOLDERFOLDERLAYOUT_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h b/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h
index 126da437dc..50457de92a 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIPreferencePage.h
@@ -1,105 +1,105 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIPREFERENCEPAGE_H_
 #define BERRYIPREFERENCEPAGE_H_
 
 #include "berryObject.h"
 #include "berryIPreferences.h"
 #include "berryIWorkbench.h"
 
 #include <QObject>
 
 namespace berry
 {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * Interface for workbench preference pages.
  * <p>
  * Clients should implement this interface and include the name of their class
  * in an extension contributed to the workbench's preference extension point
  * (named <code>"org.blueberry.ui.preferencePages"</code>).
  * For example, the plug-in's XML markup might contain:
- * <pre>
- * &LT;extension point="org.blueberry.ui.preferencePages"&GT;
- *      &LT;page id="com.example.myplugin.prefs"
+ * \code{.unparsed}
+ * <extension point="org.blueberry.ui.preferencePages>
+ *   <page id="com.example.myplugin.prefs"
  *         name="Knobs"
- *         class="ns::MyPreferencePage" /&GT;
- * &LT;/extension&GT;
- * </pre>
+ *         class="ns::MyPreferencePage" />
+ * </extension>
+ * \endcode
  * </p>
  */
 struct BERRY_UI_QT IPreferencePage: virtual public Object
 {
 
   berryObjectMacro(berry::IPreferencePage);
 
   ~IPreferencePage() override;
 
   /**
      * Initializes this preference page for the given workbench.
      * <p>
      * This method is called automatically as the preference page is being created
      * and initialized. Clients must not call this method.
      * </p>
      *
      * @param workbench the workbench
      */
    virtual void Init(IWorkbench::Pointer workbench) = 0;
 
   /**
    * Creates the top level control for this preference
    * page under the given parent widget.
    * <p>
    * Implementors are responsible for ensuring that
    * the created control can be accessed via <code>GetControl</code>
    * </p>
    *
    * @param parent the parent widget
    */
   virtual void CreateControl(void* parent) = 0;
 
   /**
    * Returns the top level control for this dialog page.
    * <p>
    * May return <code>null</code> if the control
    * has not been created yet.
    * </p>
    *
    * @return the top level control or <code>null</code>
    */
   virtual void* GetControl() const = 0;
 
   ///
   /// Invoked when the OK button was clicked in the preferences dialog
   ///
   virtual bool PerformOk() = 0;
 
   ///
   /// Invoked when the Cancel button was clicked in the preferences dialog
   ///
   virtual void PerformCancel() = 0;
 
   ///
   /// Invoked when the user performed an import. As the values of the preferences may have changed
   /// you should read all values again from the preferences service.
   ///
   virtual void Update() = 0;
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IPreferencePage, "org.blueberry.ui.IPreferencePage")
 
 #endif /*BERRYIPREFERENCEPAGE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h b/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h
index 8398ebbad0..9cf5931787 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryISaveablesSource.h
@@ -1,121 +1,120 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYISAVEABLESSOURCE_H_
 #define BERRYISAVEABLESSOURCE_H_
 
 #include <berryMacros.h>
 #include <org_blueberry_ui_qt_Export.h>
 #include "berrySaveable.h"
 
 namespace berry {
 
 /**
  * Represents a source of Saveable objects (units of saveability). Workbench
  * parts that show more than one unit of saveability, or whose units of
  * saveability change over time, should implement this interface in order to
  * provide better integration with workbench facilities like the Save command,
  * prompts to save on part close or shutdown, etc.
  * <p>
  * IMPORTANT: As of 3.2, implementers of <code>ISaveablesSource</code> must
  * satisfy the following conditions:
  * <ul>
  * <li>If ISaveablesSource is implemented by an IWorkbenchPart:
  * <ul>
  * <li>the part must implement <code>ISaveablePart</code></li>
  * <li>if any of its Saveable objects are dirty, the part must return
- * <code>true</code> from {@link ISaveablePart#isDirty()}</li>
+ * <code>true</code> from {@link ISaveablePart#IsDirty()}</li>
  * <li>the part must return <code>true</code> from
- * {@link ISaveablePart#isSaveOnCloseNeeded()} if it is dirty (the default
+ * {@link ISaveablePart#IsSaveOnCloseNeeded()} if it is dirty (the default
  * behaviour implemented by {@link EditorPart})</li>
- * <li>the part must not implement {@link ISaveablePart2}</li>
  * </ul>
  * </li>
  * <li>If ISaveablesSource is implemented by a non-part (possible as of 3.2.1 and 3.3):
  * <ul>
  * <li>the Workbench's {@link ISaveablesLifecycleListener} (obtained from the
  * Workbench by calling
  * <code>workbench.getService(ISaveablesLifecycleListener.class)</code>) must
- * be notified of any change to the result of {@link #getSaveables()} </li>
+ * be notified of any change to the result of {@link #GetSaveables()} </li>
  * <li>getActiveSaveables() should be implemented to return an empty array
  * </li>
  * </ul>
  * </ul>
  * If any of these conditions are not met, it is undefined whether the Workbench
  * will prompt to save dirty Saveables when closing parts or the Workbench.
  * </p>
  * <p>
  * These conditions may be relaxed in future releases.
  * </p>
  *
  * @since 3.2
  */
 struct BERRY_UI_QT ISaveablesSource : public virtual Object
 {
 
   berryObjectMacro(berry::ISaveablesSource);
 
   ~ISaveablesSource() override;
 
   /**
    * Returns the saveables presented by the workbench part. If the return
    * value of this method changes during the lifetime of
    * this part (i.e. after initialization and control creation but before disposal)
    * the part must notify an implicit listener using
-   * {@link ISaveablesLifecycleListener#handleLifecycleEvent(SaveablesLifecycleEvent)}.
+   * {@link ISaveablesLifecycleListener#HandleLifecycleEvent}.
    * <p>
    * Additions of saveables to the list of saveables of this part are
    * announced using an event of type
    * {@link SaveablesLifecycleEvent#POST_OPEN}. Removals are announced in a
    * two-stage process, first using an event of type
    * {@link SaveablesLifecycleEvent#PRE_CLOSE} followed by an event of type
    * {@link SaveablesLifecycleEvent#POST_CLOSE}. Since firing the
    * <code>PRE_CLOSE</code> event may trigger prompts to save dirty
    * saveables, the cancellation status of the event must be checked by the
    * part after the notification. When removing only non-dirty saveables,
    * <code>POST_CLOSE</code> notification is sufficient.
    * </p>
    * <p>
    * The listener is obtained from the part site by calling
    * <code>partSite.getService(ISaveablesLifecycleListener.class)</code>.
    * </p>
    * <p>
    * The part must not notify from its initialization methods (e.g. <code>init</code>
    * or <code>createPartControl</code>), or from its dispose method. Parts that
    * implement {@link IReusableEditor} must notify when their input is changed
-   * through {@link IReusableEditor#setInput(IEditorInput)}.
+   * through {@link IReusableEditor#SetInput}.
    * </p>
    *
    * @return the saveables presented by the workbench part
    *
    * @see ISaveablesLifecycleListener
    */
   virtual QList<Saveable::Pointer> GetSaveables() = 0;
 
   /**
    * Returns the saveables currently active in the workbench part.
    * <p>
    * Certain workbench actions, such as Save, target only the active saveables
    * in the active part. For example, the active saveables could be determined
    * based on the current selection in the part.
    * </p>
    *
    * @return the saveables currently active in the workbench part
    */
   virtual QList<Saveable::Pointer> GetActiveSaveables() = 0;
 };
 
 }
 
 
 #endif /* BERRYISAVEABLESSOURCE_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h b/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h
index 561dde7789..a20937b065 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryISizeProvider.h
@@ -1,154 +1,154 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYISIZEPROVIDER_H_
 #define BERRYISIZEPROVIDER_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * Interface implemented by objects that are capable of computing
  * a preferred size
  *
  * @since 3.1
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT ISizeProvider {
 
     /**
      * Constant used to indicate infinite size. This is equal to Integer.MAX_VALUE, ensuring
      * that it is greater than any other integer.
      */
    static const int INF;
 
    virtual ~ISizeProvider();
 
     /**
      * Returns a bitwise combination of flags indicating how and when computePreferredSize should
      * be used. When called with horizontal=true, this indicates the usage of computePreferredSize(true,...)
      * for computing widths. When called with horizontal=false, this indicates the usage of computeSize(false,...)
      * for computing heights. These flags are used for optimization. Each flag gives the part more control
      * over its preferred size but slows down the layout algorithm. Parts should return the minimum set
      * of flags necessary to specify their constraints.
      * <p>
      * If the return value of this function ever changes, the part must call <code>flushLayout</code> before
      * the changes will take effect.
      * </p>
      *
      * <ul>
      * <li>SWT.MAX: The part has a maximum size that will be returned by computePreferredSize(horizontal,
      *     INF, someWidth, INF)</li>
      * <li>SWT.MIN: The part has a minimum size that will be returned by computePreferredSize(horizontal,
      *     INF, someWidth, 0)</li>
      * <li>SWT.WRAP: Indicates that computePreferredSize makes use of the availablePerpendicular argument. If this
      *     flag is not specified, then the third argument to computePreferredSize will always be set to
      *     INF. The perpendicular size is expensive to compute, and it is usually only used
      *     for wrapping parts.
      * <li>SWT.FILL: The part may not return the preferred size verbatim when computePreferredSize is
      *     is given a value between the minimum and maximum sizes. This is commonly used if the part
      *     wants to use a set of predetermined sizes instead of using the workbench-provided size.
      *     For example, computePreferredSize(horizontal, availableSpace, someWidth,
      *     preferredSize) may return the nearest predetermined size. Note that this flag should
      *     be used sparingly. It can prevent layout caching and cause the workbench layout algorithm
      *     to degrade to exponential worst-case runtime. If this flag is omitted, then
      *     computePreferredSize may be used to compute the minimum and maximum sizes, but not for
      *     anything in between.</li>
      * </ul>
      *
      * @param width a value of true or false determines whether the return value applies when computing
      * widths or heights respectively. That is, getSizeFlags(true) will be used when calling
      * computePreferredSize(true,...)
      * @return any bitwise combination of SWT.MAX, SWT.MIN, SWT.WRAP, and SWT.FILL
      */
     virtual int GetSizeFlags(bool width) = 0;
 
     /**
      * <p>
      * Returns the best size for this part, given the available width and height and the workbench's
      * preferred size for the part. Parts can overload this to enforce a minimum size, maximum size,
      * or a quantized set of preferred sizes. If width == true, this method computes a width in pixels.
      * If width == false, this method computes a height. availableParallel and availablePerpendicular
      * contain the space available, and preferredParallel contains the preferred result.
      * </p>
      *
      * <p>
      * This method returns an answer that is less than or equal to availableParallel and as
      * close to preferredParallel as possible. Return values larger than availableParallel will
      * be truncated.
      * </p>
      *
      * <p>
      * Most presentations will define a minimum size at all times, and a maximum size that only applies
      * when maximized.
      * </p>
      *
      * <p>
      * The getSizeFlags method controls how frequently this method will be called and what information
      * will be available when it is. Any subclass that specializes this method should also specialize
      * getSizeFlags. computePreferredSize(width, INF, someSize, 0) returns
      * the minimum size of the control (if any). computePreferredSize(width, INF, someSize,
      * INF) returns the maximum size of the control.
      * </p>
      *
      * <p>
      * Examples:
      * <ul>
      * <li>To maintain a constant size of 100x300 pixels: {return width ? 100 : 300}, getSizeFlags(boolean) must
      *     return SWT.MIN | SWT.MAX</li>
      * <li>To grow without constraints: {return preferredResult;}, getSizeFlags(boolean) must return 0.</li>
      * <li>To enforce a width that is always a multiple of 100 pixels, to a minimum of 100 pixels:
      *    <code>
      *        {
      *              if (width && preferredResult != INF) {
      *                  int result = preferredResult - ((preferredResult + 50) % 100) + 50;
      *                  result = Math.max(100, Math.min(result, availableParallel - (availableParallel % 100)));
      *
      *                  return result;
      *              }
      *              return preferredResult;
      *         }
      *    </code>
      *     In this case, getSizeFlags(boolean width) must return (width ? SWT.FILL | SWT.MIN: 0)
      * <li>To maintain a minimum area of 100000 pixels:
      *     <code>
      *     {return availablePerpendicular < 100 ? 1000 : 100000 / availablePerpendicular;}
      *     </code>
      *     getSizeFlags(boolean width) must return SWT.WRAP | SWT.MIN;
      * </ul>
      * </p>
      *
      * @param width indicates whether a width (=true) or a height (=false) is being computed
      * @param availableParallel available space. This is a width (pixels) if width == true, and a height (pixels)
      *  if width == false. A return value larger than this will be ignored.
      * @param availablePerpendicular available space perpendicular to the direction being measured
      * or INF if unbounded (pixels). This
      * is a height if width == true, or a height if width == false. Implementations will generally ignore this
      * argument unless they contain wrapping widgets. Note this argument will only contain meaningful information
      * if the part returns the SWT.WRAP flag from getSizeFlags(width)
      * @param preferredResult preferred size of the control (pixels, <= availableParallel). Set to
      * INF if unknown or unbounded.
      * @return returns the preferred size of the control (pixels). This is a width if width == true or a height
      * if width == false. Callers are responsible for rounding down the return value if it is larger than
      * availableParallel. If availableParallel is INF, then a return value of INF
      * is permitted, indicating that the preferred size of the control is unbounded.
      *
      * @see ISizeProvider#getSizeFlags(boolean)
      */
     virtual int ComputePreferredSize(bool width, int availableParallel, int availablePerpendicular, int preferredResult) = 0;
 };
 
 }
 
 #endif /* BERRYISIZEPROVIDER_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryISources.h b/Plugins/org.blueberry.ui.qt/src/berryISources.h
index aa6c055a7f..23fdfaa030 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryISources.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryISources.h
@@ -1,292 +1,292 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYISOURCES_H_
 #define BERRYISOURCES_H_
 
 #include <string>
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * <p>
  * A source is type of event change that can occur within the workbench. For
  * example, the active workbench window can change, so it is considered a
  * source. Workbench services can track changes to these sources, and thereby
  * try to resolve conflicts between a variety of possible options. This is most
  * commonly used for things like handlers and contexts.
  * </p>
  * <p>
  * This interface defines the source that are known to the workbench at
  * compile-time. These sources can be combined in a bit-wise fashion. So, for
  * example, a <code>ACTIVE_PART | ACTIVE_CONTEXT</code> source includes change
  * to both the active context and the active part.
  * </p>
  * <p>
  * The values assigned to each source indicates its relative priority. The
  * higher the value, the more priority the source is given in resolving
  * conflicts. Another way to look at this is that the higher the value, the more
  * "local" the source is to what the user is currently doing. This is similar
  * to, but distinct from the concept of components. The nesting support provided
  * by components represent only one source (<code>ACTIVE_SITE</code>) that
  * the workbench understands.
  * </p>
  * <p>
  * Note that for backward compatibility, we must reserve the lowest three bits
  * for <code>Priority</code> instances using the old
  * <code>HandlerSubmission</code> mechanism. This mechanism was used in
  * Eclipse 3.0.
  * </p>
  * <p>
  * <b>Note in 3.3:</b>
  * </p>
  * <p>
  * Currently, source variables are not extensible by user plugins, and
  * the number of bits available for resolving conflicts is limited.  When
  * the variable sources become user extensible a new conflict resolution
  * mechanism will be implemented.
  * </p>
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
+ * @note This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be extended by clients.
  *
  * @see org.blueberry.ui.ISourceProvider
  */
 struct BERRY_UI_QT ISources
 {
 
   /**
    * The priority given to default handlers and handlers that are active
    * across the entire workbench.
    */
   static int WORKBENCH(); // = 0;
 
   /**
    * The priority given when the source includes a particular context.
    */
   static int ACTIVE_CONTEXT(); // = 1 << 3;
 
   /**
    * The variable name for the active contexts. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_CONTEXT_NAME();
 
   /**
    * The priority given when the source includes a particular action set.
    */
   static int ACTIVE_ACTION_SETS(); // = 1 << 5;
 
   /**
    * The variable name for the active action sets. This is for use with the
    * {@link ISourceProvider} and {@link IEvaluationContext}.
    */
   static const QString ACTIVE_ACTION_SETS_NAME();
 
   /**
    * The priority given when the source includes the currently active shell.
    */
   static int ACTIVE_SHELL(); // = 1 << 7();
 
   /**
    * The variable name for the active shell. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_SHELL_NAME();
 
   /**
    * The priority given when the source includes the currently active
    * workbench window shell.
    */
   static int ACTIVE_WORKBENCH_WINDOW_SHELL(); // = 1 << 9();
 
   /**
    * The variable name for the active workbench window shell. This is for use
    * with the <code>ISourceProvider</code> and
    * <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_SHELL_NAME();
 
   /**
    * The priority given when the source includes the currently active
    * workbench window.
    */
   static int ACTIVE_WORKBENCH_WINDOW(); // = 1 << 11();
 
   /**
    * The variable name for the active workbench window. This is for use with
    * the <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_NAME();
 
   /**
    * The priority given when the source includes subordinate properties of the currently active
    * workbench window.
    */
   static int ACTIVE_WORKBENCH_WINDOW_SUBORDINATE(); // = 1 << 12();
 
   /**
    * The variable name for the coolbar visibility state of the active
    * workbench window. This is for use with the <code>ISourceProvider</code>
    * and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_IS_TOOLBAR_VISIBLE_NAME();
 
   /**
    * The variable name for the perspective bar visibility state of the active
    * workbench window. This is for use with the <code>ISourceProvider</code>
    * and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_IS_PERSPECTIVEBAR_VISIBLE_NAME();
 
   /**
    * The variable name for the status line visibility state of the active
    * workbench window. This is for use with the <code>ISourceProvider</code>
    * and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_IS_STATUS_LINE_VISIBLE_NAME();
 
   /**
    * The variable name for the current perspective of the active workbench
    * window. This is for use with the <code>ISourceProvider</code> and
    * <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_WORKBENCH_WINDOW_ACTIVE_PERSPECTIVE_NAME();
 
   /**
    * The priority given when the source includes the active editor part.
    */
   static int ACTIVE_EDITOR(); // = 1 << 13();
 
   /**
    * The variable name for the active editor part. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_EDITOR_NAME();
 
   /**
    * The editor input of the currently active editor.
    */
   static const QString ACTIVE_EDITOR_INPUT_NAME();
 
   /**
    * The priority given when the source includes the active editor identifier.
    */
   static int ACTIVE_EDITOR_ID(); // = 1 << 15();
 
   /**
    * The variable name for the active editor identifier. This is for use with
    * the <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_EDITOR_ID_NAME();
 
   /**
    * The priority given when the source includes the active part.
    */
   static int ACTIVE_PART(); // = 1 << 17();
 
   /**
    * The variable name for the active part. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_PART_NAME();
 
   /**
    * The priority given when the source includes the active part id.
    */
   static int ACTIVE_PART_ID(); // = 1 << 19();
 
   /**
    * The variable name for the active part id. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_PART_ID_NAME();
 
   /**
    * The priority given when the source includes the active workbench site. In
    * the case of nesting components, one should be careful to only activate
    * the most nested component.
    */
   static int ACTIVE_SITE(); // = 1 << 23();
 
   /**
    * The variable name for the active workbench site. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_SITE_NAME();
 
   /**
    * The variable for the showIn selection.  This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    * @see IShowInSource
    */
   static const QString SHOW_IN_SELECTION();
 
   /**
    * The variable for the showIn input.  This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    * @see IShowInSource
    */
   static const QString SHOW_IN_INPUT();
 
   /**
    * The priority given when the source includes the current selection.
    */
   static int ACTIVE_CURRENT_SELECTION(); // = 1 << 27();
 
   /**
    * The variable name for the active selection. This is for use with the
    * <code>ISourceProvider</code> and <code>IEvaluationContext</code>.
    */
   static const QString ACTIVE_CURRENT_SELECTION_NAME();
 
   /**
    * The priority given when the source includes the current menu.
    */
   static int ACTIVE_MENU(); // = 1 << 30();
 
   /**
    * The variable name for the active menu. This is for use with the
    * {@link ISourceProvider} and {@link IEvaluationContext}.
    */
   static const QString ACTIVE_MENU_NAME();
 
   /**
    * The variable name for the <b>local</b> selection, available while a
    * context menu is visible.
    */
   static const QString ACTIVE_MENU_SELECTION_NAME();
 
   /**
    * The variable name for the <b>local</b> editor input which is sometimes
    * available while a context menu is visible.
    */
   static const QString ACTIVE_MENU_EDITOR_INPUT_NAME();
 
   /**
    * The variable name for the active focus Control, when provided by the
    * IFocusService.
    */
   static const QString ACTIVE_FOCUS_CONTROL_NAME();
 
   /**
    * The variable name for the active focus Control id, when provided by the
    * IFocusService.
    */
   static const QString ACTIVE_FOCUS_CONTROL_ID_NAME();
 };
 
 }
 
 #endif /*BERRYISOURCES_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h b/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h
index 143adb01b8..6696e1ad7d 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIStickyViewDescriptor.h
@@ -1,75 +1,74 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYISTICKYVIEWDESCRIPTOR_H_
 #define BERRYISTICKYVIEWDESCRIPTOR_H_
 
 #include <berryObject.h>
 #include <berryMacros.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * Supplemental view interface that describes various sticky characteristics
  * that a view may possess.
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see org.eclipse.ui.views.IViewRegistry
  * @see org.eclipse.ui.views.IViewDescriptor
  * @since 3.1
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IStickyViewDescriptor : public Object {
 
   berryObjectMacro(IStickyViewDescriptor);
 
   ~IStickyViewDescriptor() override;
 
   /**
    * Return the id of the view to be made sticky.
    *
    * @return the id of the view to be made sticky
    */
   virtual QString GetId() const = 0;
 
   /**
    * Return the location of this sticky view.  Must be one of
    * <code>IPageLayout.LEFT</code>, <code>IPageLayout.RIGHT</code>,
    * <code>IPageLayout.TOP</code>, or <code>IPageLayout.BOTTOM</code>.
    *
    * @return the location constant
    */
   virtual int GetLocation() const = 0;
 
   /**
    * Return whether this view should be closeable.
    *
    * @return whether this view should be closeeable
    */
   virtual bool IsCloseable() const = 0;
 
   /**
    * Return whether this view should be moveable.
    *
    * @return whether this view should be moveable
    */
   virtual bool IsMoveable() const = 0;
 };
 
 }
 
 #endif /* BERRYISTICKYVIEWDESCRIPTOR_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h b/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h
index 6804297e17..66dc791307 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIViewLayout.h
@@ -1,88 +1,86 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIVIEWLAYOUT_H_
 #define BERRYIVIEWLAYOUT_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <berryMacros.h>
 #include <berryObject.h>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * Represents the layout info for a view or placeholder in an {@link IPageLayout}.
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
- *
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IViewLayout : public Object
 {
 
   berryObjectMacro(berry::IViewLayout);
 
    ~IViewLayout() override;
 
     /**
      * Returns whether the view is closeable.
      * The default is <code>true</code>.
      *
      * @return <code>true</code> if the view is closeable, <code>false</code> if not
      */
     virtual bool IsCloseable() = 0;
 
     /**
      * Sets whether the view is closeable.
      *
      * @param closeable <code>true</code> if the view is closeable, <code>false</code> if not
      */
   virtual void SetCloseable(bool closeable) = 0;
 
     /**
      * Returns whether the view is moveable.
      * The default is <code>true</code>.
      *
      * @return <code>true</code> if the view is moveable, <code>false</code> if not
      */
   virtual bool IsMoveable() = 0;
 
     /**
      * Sets whether the view is moveable.
      *
      * @param moveable <code>true</code> if the view is moveable, <code>false</code> if not
      */
   virtual void SetMoveable(bool moveable) = 0;
 
     /**
      * Returns whether the view is a standalone view.
      *
      * @see IPageLayout#addStandaloneView
      */
   virtual bool IsStandalone() = 0;
 
     /**
      * Returns whether the view shows its title.
      * This is only applicable to standalone views.
      *
      * @see IPageLayout#addStandaloneView
      */
   virtual bool GetShowTitle() = 0;
 };
 
 }
 
 #endif /*BERRYIVIEWLAYOUT_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h b/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h
index bddcaaed38..0ee69890b1 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIViewRegistry.h
@@ -1,80 +1,79 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIVIEWREGISTRY_H_
 #define BERRYIVIEWREGISTRY_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "berryIViewDescriptor.h"
 #include "berryIViewCategory.h"
 #include "berryIStickyViewDescriptor.h"
 
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * The view registry maintains a list of views explicitly registered
  * against the view extension point.
  * <p>
  * The description of a given view is kept in a <code>IViewDescriptor</code>.
  * </p>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see IViewDescriptor
  * @see IStickyViewDescriptor
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IViewRegistry
 {
   /**
    * Return a view descriptor with the given extension id.  If no view exists
    * with the id return <code>null</code>.
    * Will also return <code>null</code> if the view descriptor exists, but
    * is filtered by an expression-based activity.
    *
    * @param id the id to search for
    * @return the descriptor or <code>null</code>
    */
   virtual IViewDescriptor::Pointer Find(const QString& id) const = 0;
 
   /**
    * Returns an array of view categories.
    *
    * @return the categories.
    */
   virtual QList<IViewCategory::Pointer> GetCategories() = 0;
 
   /**
    * Return a list of views defined in the registry.
    *
    * @return the views.
    */
   virtual QList<IViewDescriptor::Pointer> GetViews() const = 0;
 
   /**
    * Return a list of sticky views defined in the registry.
    *
    * @return the sticky views.  Never <code>null</code>.
    */
   virtual QList<IStickyViewDescriptor::Pointer> GetStickyViews() const = 0;
 
   virtual ~IViewRegistry();
 };
 
 }
 
 #endif /*BERRYIVIEWREGISTRY_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h b/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h
index cf77f4dd4b..70f052e120 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIViewSite.h
@@ -1,58 +1,57 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIVIEWSITE_H_
 #define BERRYIVIEWSITE_H_
 
 #include "berryIWorkbenchPartSite.h"
 
 #include <string>
 
 namespace berry {
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * The primary interface between a view part and the workbench.
  * <p>
  * The workbench exposes its implemention of view part sites via this interface,
  * which is not intended to be implemented or extended by clients.
  * </p>
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IViewSite : public virtual IWorkbenchPartSite
 {
 
   berryObjectMacro(berry::IViewSite);
 
   ~IViewSite() override;
 
     /**
      * Returns the action bars for this part site.
      * Views have exclusive use of their site's action bars.
      *
      * @return the action bars
      */
     //IActionBars getActionBars();
 
     /**
      * Returns the secondary id for this part site's part,
      * or <code>null</code> if it has none.
      *
      * @see IWorkbenchPage#showView(String, String, int)
      */
     virtual QString GetSecondaryId() = 0;
 };
 
 }
 
 #endif /*BERRYIVIEWSITE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h b/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h
index 6de47bc5de..94eb3d2f09 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWindowListener.h
@@ -1,95 +1,89 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIWINDOWLISTENER_H_
 #define BERRYIWINDOWLISTENER_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <berryMessage.h>
 
 #include "berryIWorkbenchWindow.h"
 
 namespace berry
 {
 
 /**
  * Interface for listening to window lifecycle events.
  * <p>
  * This interface may be implemented by clients.
  * </p>
  */
 struct BERRY_UI_QT IWindowListener
 {
 
   struct Events {
     typedef Message1<const IWorkbenchWindow::Pointer&> WindowEvent;
 
     WindowEvent windowActivated;
     WindowEvent windowDeactivated;
     WindowEvent windowClosed;
     WindowEvent windowOpened;
 
     void AddListener(IWindowListener* listener);
     void RemoveListener(IWindowListener* listener);
 
   private:
 
     typedef MessageDelegate1<IWindowListener, const IWorkbenchWindow::Pointer&> Delegate;
   };
 
   virtual ~IWindowListener();
 
   /**
    * Notifies this listener that the given window has been activated.
    * <p>
    * <b>Note:</b> This event is not fired if no perspective is
    * open (the window is empty).
    * </p>
-   *
-   * @param window the window that was activated
    */
   virtual void WindowActivated(const IWorkbenchWindow::Pointer& /*window*/) {}
 
   /**
    * Notifies this listener that the given window has been deactivated.
    * <p>
    * <b>Note:</b> This event is not fired if no perspective is
    * open (the window is empty).
    * </p>
-   *
-   * @param window the window that was activated
    */
   virtual void WindowDeactivated(const IWorkbenchWindow::Pointer& /*window*/) {}
 
   /**
    * Notifies this listener that the given window has been closed.
    *
-   * @param window the window that was closed
    * @see IWorkbenchWindow#close
    */
   virtual void WindowClosed(const IWorkbenchWindow::Pointer& /*window*/) {}
 
   /**
    * Notifies this listener that the given window has been opened.
    *
-   * @param window the window that was opened
    * @see IWorkbench#openWorkbenchWindow
    */
   virtual void WindowOpened(const IWorkbenchWindow::Pointer& /*window*/) {}
 
 };
 
 }
 
 #endif /* BERRYIWINDOWLISTENER_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h
index 49c5894bc9..905f58a87f 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbench.h
@@ -1,423 +1,421 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIWORKBENCH_H_
 #define BERRYIWORKBENCH_H_
 
 #include <berryMacros.h>
 
 #include "services/berryIServiceLocator.h"
 #include "berryIViewRegistry.h"
 #include "berryIEditorRegistry.h"
 #include "intro/berryIIntroManager.h"
 #include "berryIPerspectiveRegistry.h"
 #include "berryIWorkbenchWindow.h"
 #include "berryIWorkbenchListener.h"
 #include "berryIWindowListener.h"
 #include "berryDisplay.h"
 
 namespace berry {
 
 struct IElementFactory;
 struct IExtensionTracker;
 struct IWorkbenchPage;
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * A workbench is the root object for the BlueBerry Platform user interface.
  * <p>
  * A <b>workbench</b> has one or more main windows which present to the end
  * user information based on some underlying model, typically on resources in an
  * underlying workspace. A workbench usually starts with a single open window,
  * and automatically closes when its last window closes.
  * </p>
  * <p>
  * Each <b>workbench window</b> has a collection of <b>pages</b>; the active
  * page is the one that is being presented to the end user; at most one page is
  * active in a window at a time.
  * </p>
  * <p>
  * Each workbench page has a collection of <b>workbench parts</b>, of which
  * there are two kinds: views and editors. A page's parts are arranged (tiled or
  * stacked) for presentation on the screen. The arrangement is not fixed; the
  * user can arrange the parts as they see fit. A <b>perspective</b> is a
  * template for a page, capturing a collection of parts and their arrangement.
  * </p>
  * <p>
  * The platform creates a workbench when the workbench plug-in is activated;
  * since this happens at most once during the life of the running platform,
  * there is only one workbench instance. Due to its singular nature, it is
- * commonly referred to as <it>the</it> workbench.
+ * commonly referred to as <em>the</em> workbench.
  * </p>
  * <p>
  * The workbench supports a few {@link IServiceLocator services} by default. If
  * these services are used to allocate resources, it is important to remember to
  * clean up those resources after you are done with them. Otherwise, the
  * resources will exist until the workbench shuts down. The supported services
  * are:
  * </p>
  * <ul>
- * <li>{@link IBindingService}</li>
  * <li>{@link ICommandService}</li>
  * <li>{@link IContextService}</li>
  * <li>{@link IHandlerService}</li>
  * </ul>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
- * @see PlatformUI#getWorkbench
- * @noimplement This interface is not intended to be implemented by clients.
+ * @see PlatformUI#GetWorkbench
  */
 struct BERRY_UI_QT IWorkbench : public IServiceLocator {
 
   berryObjectMacro(berry::IWorkbench);
 
   ~IWorkbench() override;
 
   /**
    * Returns the display for this workbench.
    * <p>
    * Code should always ask the workbench for the display rather than rely on
-   * {@link Display#getDefault Display.getDefault()}.
+   * {@link Display#GetDefault Display.getDefault()}.
    * </p>
    *
    * @return the display to be used for all UI interactions with this
    *         workbench
    */
   virtual Display* GetDisplay() const = 0;
 
   /**
    * Adds a workbench listener.
    *
    * @param listener
    *            the workbench listener to add
    * @since 3.2
    */
   virtual void AddWorkbenchListener(IWorkbenchListener* listener) = 0;
 
   /**
    * Removes a workbench listener.
    *
    * @param listener
    *            the workbench listener to remove
    * @since 3.2
    */
   virtual void RemoveWorkbenchListener(IWorkbenchListener* listener) = 0;
 
   /**
    * Returns the workbench events object
    */
   virtual IWorkbenchListener::Events& GetWorkbenchEvents() = 0;
 
   /**
    * Adds a window listener.
    *
    * @param listener
    *            the window listener to add
    * @since 2.0
    */
   virtual void AddWindowListener(IWindowListener* listener) = 0;
 
   /**
    * Removes a window listener.
    *
    * @param listener
    *            the window listener to remove
    * @since 2.0
    */
   virtual void RemoveWindowListener(IWindowListener* listener) = 0;
 
   /**
    * Returns the window events object
    *
    */
   virtual IWindowListener::Events& GetWindowEvents() = 0;
 
   /**
    * Closes this workbench and all its open windows.
    * <p>
    * If the workbench has an open editor with unsaved content, the user will
    * be given the opportunity to save it.
    * </p>
    *
    * @return <code>true</code> if the workbench was successfully closed, and
    *         <code>false</code> if it is still open
    */
   virtual bool Close() = 0;
 
   /**
    * Returns the currently active window for this workbench (if any). Returns
    * <code>null</code> if there is no active workbench window. Returns
    * <code>null</code> if called from a non-UI thread.
    *
    * @return the active workbench window, or <code>null</code> if there is
    *         no active workbench window or if called from a non-UI thread
    */
   virtual IWorkbenchWindow::Pointer GetActiveWorkbenchWindow() const = 0;
 
   /**
    * Return the extension tracker for the workbench. This tracker may be used
    * by plug-ins to ensure responsiveness to changes to the plug-in registry.
    * <p>
    * The tracker at this level of the workbench is typically used to track
    * elements that persist for the life of the workbench. For example,
    * <code>IEditorDescriptor</code> objects fall into this category.
    * </p>
    *
    * @return the extension tracker
    * @see IWorkbenchWindow#GetExtensionTracker()
    * @see IWorkbenchPage#GetExtensionTracker()
    */
   virtual IExtensionTracker* GetExtensionTracker() const = 0;
 
   /**
    * Returns the perspective registry for the workbench.
    *
    * @return the workbench perspective registry
    */
   virtual IPerspectiveRegistry* GetPerspectiveRegistry() const = 0;
 
   /**
    * Returns the view registry for the workbench.
    *
    * @return the workbench view registry
    * @since 3.1
    */
   virtual IViewRegistry* GetViewRegistry() const = 0;
 
   /**
    * Returns the editor registry for the workbench.
    *
    * @return the workbench editor registry
    */
   virtual IEditorRegistry* GetEditorRegistry() const = 0;
 
   /**
    * Returns the number of open main windows associated with this workbench.
    * Note that wizards and dialogs are not included in this list since they
    * are not considered main windows.
    *
    * @return the number of open windows
    * @since 3.0
    */
   virtual std::size_t GetWorkbenchWindowCount() const = 0;
 
   /**
    * Returns a list of the open main windows associated with this workbench.
    * Note that wizards and dialogs are not included in this list since they
    * are not considered main windows.
    *
    * @return a list of open windows
    */
   virtual QList<IWorkbenchWindow::Pointer> GetWorkbenchWindows() const = 0;
 
   /**
    * Creates and opens a new workbench window with one page. The perspective
    * of the new page is defined by the specified perspective ID. The new
    * window and new page become active.
    * <p>
    * <b>Note:</b> The caller is responsible to ensure the action using this
    * method will explicitly inform the user a new window will be opened.
    * Otherwise, callers are strongly recommended to use the
    * <code>openPerspective</code> APIs to programmatically show a
    * perspective to avoid confusing the user.
    * </p>
    * <p>
    * In most cases where this method is used the caller is tightly coupled to
    * a particular perspective. They define it in the registry and contribute
    * some user interface action to open or activate it. In situations like
    * this a static variable is often used to identify the perspective ID.
    * </p>
    *
    * @param perspectiveId
    *            the perspective id for the window's initial page, or
    *            <code>null</code> for no initial page
    * @param input
    *            the page input, or <code>null</code> if there is no current
    *            input. This is used to seed the input for the new page's
    *            views.
    * @return the new workbench window
    * @exception WorkbenchException
    *                if a new window and page could not be opened
    *
    * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable)
    */
   virtual IWorkbenchWindow::Pointer OpenWorkbenchWindow(const QString& perspectiveId,
       IAdaptable* input) = 0;
 
   /**
    * Creates and opens a new workbench window with one page. The perspective
    * of the new page is defined by the default perspective ID. The new window
    * and new page become active.
    * <p>
    * <b>Note:</b> The caller is responsible to ensure the action using this
    * method will explicitly inform the user a new window will be opened.
    * Otherwise, callers are strongly recommended to use the
    * <code>openPerspective</code> APIs to programmatically show a
    * perspective to avoid confusing the user.
    * </p>
    *
    * @param input
    *            the page input, or <code>null</code> if there is no current
    *            input. This is used to seed the input for the new page's
    *            views.
    * @return the new workbench window
    * @exception WorkbenchException
    *                if a new window and page could not be opened
    *
    * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable)
    */
   virtual IWorkbenchWindow::Pointer OpenWorkbenchWindow(IAdaptable* input) = 0;
 
   /**
    * Shows the specified perspective to the user. The caller should use this
    * method when the perspective to be shown is not dependent on the page's
    * input. That is, the perspective can open in any page depending on user
    * preferences.
    * <p>
    * The perspective may be shown in the specified window, in another existing
    * window, or in a new window depending on user preferences. The exact
    * policy is controlled by the workbench to ensure consistency to the user.
    * The policy is subject to change. The current policy is as follows:
    * <ul>
    * <li>If the specified window has the requested perspective open, then the
    * window is given focus and the perspective is shown. The page's input is
    * ignored.</li>
    * <li>If another window that has the workspace root as input and the
    * requested perspective open and active, then the window is given focus.
    * </li>
    * <li>Otherwise the requested perspective is opened and shown in the
    * specified window or in a new window depending on the current user
    * preference for opening perspectives, and that window is given focus.
    * </li>
    * </ul>
    * </p>
    * <p>
    * The workbench also defines a number of menu items to activate or open
    * each registered perspective. A complete list of these perspectives is
    * available from the perspective registry found on <code>IWorkbench</code>.
    * </p>
    *
    * @param perspectiveId
    *            the perspective ID to show
    * @param window
    *            the workbench window of the action calling this method.
    * @return the workbench page that the perspective was shown
    * @exception WorkbenchException
    *                if the perspective could not be shown
    *
    * @since 2.0
    */
   virtual SmartPointer<IWorkbenchPage> ShowPerspective(const QString& perspectiveId,
       IWorkbenchWindow::Pointer window) = 0;
 
   /**
    * Shows the specified perspective to the user. The caller should use this
    * method when the perspective to be shown is dependent on the page's input.
    * That is, the perspective can only open in any page with the specified
    * input.
    * <p>
    * The perspective may be shown in the specified window, in another existing
    * window, or in a new window depending on user preferences. The exact
    * policy is controlled by the workbench to ensure consistency to the user.
    * The policy is subject to change. The current policy is as follows:
    * <ul>
    * <li>If the specified window has the requested perspective open and the
    * same requested input, then the window is given focus and the perspective
    * is shown.</li>
    * <li>If another window has the requested input and the requested
    * perspective open and active, then that window is given focus.</li>
    * <li>If the specified window has the same requested input but not the
    * requested perspective, then the window is given focus and the perspective
    * is opened and shown on condition that the user preference is not to open
    * perspectives in a new window.</li>
    * <li>Otherwise the requested perspective is opened and shown in a new
    * window, and the window is given focus.</li>
    * </ul>
    * </p>
    * <p>
    * The workbench also defines a number of menu items to activate or open
    * each registered perspective. A complete list of these perspectives is
    * available from the perspective registry found on <code>IWorkbench</code>.
    * </p>
    *
    * @param perspectiveId
    *            the perspective ID to show
    * @param window
    *            the workbench window of the action calling this method.
    * @param input
    *            the page input, or <code>null</code> if there is no current
    *            input. This is used to seed the input for the page's views
    * @return the workbench page that the perspective was shown
    * @exception WorkbenchException
    *                if the perspective could not be shown
    *
    * @since 2.0
    */
   virtual SmartPointer<IWorkbenchPage> ShowPerspective(const QString& perspectiveId,
       IWorkbenchWindow::Pointer window, IAdaptable* input) = 0;
 
   /**
    * Save all dirty editors in the workbench. Opens a dialog to prompt the
    * user if <code>confirm</code> is true. Return true if successful. Return
    * false if the user has canceled the command.
    *
    * @param confirm <code>true</code> to ask the user before saving unsaved
    *            changes (recommended), and <code>false</code> to save
    *            unsaved changes without asking
    * @return <code>true</code> if the command succeeded, and
    *         <code>false</code> if the operation was canceled by the user or
    *         an error occurred while saving
    */
   virtual bool SaveAllEditors(bool confirm) = 0;
 
   /**
    * Returns the element factory with the given id. The calles takes
    * ownership of the returned pointer.
    *
    * @param factoryId
    *            the id of the element factory
    * @return the element factory, or <code>null</code> if none
    * @see IElementFactory
    */
   virtual IElementFactory* GetElementFactory(const QString& factoryId) const = 0;
 
   /**
    * Return the intro manager for this workbench.
    *
    * @return the intro manager for this workbench. Guaranteed not to be
    *         <code>null</code>.
    */
   virtual IIntroManager* GetIntroManager() const = 0;
 
   /**
    * Returns a boolean indicating whether the workbench is in the process of
    * closing.
    *
    * @return <code>true</code> if the workbench is in the process of
    *         closing, <code>false</code> otherwise
    * @since 3.1
    */
   virtual bool IsClosing() const = 0;
 
   /**
    * Applies changes of the current theme to the user interface.
    */
   virtual void UpdateTheme() = 0;
 
 };
 
 }
 
 #endif /*BERRYIWORKBENCH_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h
index 299f22a327..3feef4cbe4 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchCommandConstants.h
@@ -1,324 +1,324 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIWORKBENCHCOMMANDCONSTANTS_H
 #define BERRYIWORKBENCHCOMMANDCONSTANTS_H
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <QString>
 
 namespace berry {
 
 /**
  * Constants for all commands defined by the BlueBerry workbench.
  *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be extended by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IWorkbenchCommandConstants {
 
   // File Category
 
   /**
    * Id for command "New" in category "File"
    * (value is <code>"org.blueberry.ui.newWizard"</code>).
    */
   static const QString FILE_NEW; // = "org.blueberry.ui.newWizard";
 
   /**
    * Id for command "Open File" in category "File"
    * (value is <code>"org.blueberry.ui.file.openLocal"</code>).
    */
   static const QString FILE_OPEN; // = "org.blueberry.ui.file.openLocal";
 
   /**
    * Id for command "Save" in category "File"
    * (value is <code>"org.blueberry.ui.file.save"</code>).
    */
   static const QString FILE_SAVE; // = "org.blueberry.ui.file.save";
 
   /**
    * Id for command "Exit" in category "File"
    * (value is <code>"org.blueberry.ui.file.exit"</code>).
    */
   static const QString FILE_EXIT; // = "org.blueberry.ui.file.exit";
 
   // Edit Category:
 
   /**
    * Id for command "Undo" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.undo"</code>).
    */
   static const QString EDIT_UNDO; // = "org.blueberry.ui.edit.undo";
 
   /**
    * Id for command "Redo" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.redo"</code>).
    */
   static const QString EDIT_REDO; // = "org.blueberry.ui.edit.redo";
 
   /**
    * Id for command "Cut" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.cut"</code>).
    */
   static const QString EDIT_CUT; // = "org.blueberry.ui.edit.cut";
 
   /**
    * Id for command "Copy" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.copy"</code>).
    */
   static const QString EDIT_COPY; // = "org.blueberry.ui.edit.copy";
 
   /**
    * Id for command "Paste" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.paste"</code>).
    */
   static const QString EDIT_PASTE; // = "org.blueberry.ui.edit.paste";
 
   /**
    * Id for command "Delete" in category "Edit"
    * (value is <code>"org.blueberry.ui.edit.delete"</code>).
    */
   static const QString EDIT_DELETE; // = "org.blueberry.ui.edit.delete";
 
   // Window Category:
 
   /**
    * Id for command "New Window" in category "Window"
    * (value is <code>"org.eclipse.ui.window.newWindow"</code>).
    */
   static const QString WINDOW_NEW_WINDOW; // = "org.blueberry.ui.window.newWindow";
 
   /**
    * Id for command "New Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.newEditor"</code>).
    */
   static const QString WINDOW_NEW_EDITOR; // = "org.blueberry.ui.window.newEditor";
 
   /**
    * Id for command "Show View Menu" in category "Window"
    * (value is <code>"org.eclipse.ui.window.showViewMenu"</code>).
    */
   static const QString WINDOW_SHOW_VIEW_MENU; // = "org.blueberry.ui.window.showViewMenu";
 
   /**
    * Id for command "Activate Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.activateEditor"</code>).
    */
   static const QString WINDOW_ACTIVATE_EDITOR; // = "org.blueberry.ui.window.activateEditor";
 
   /**
    * Id for command "Maximize Active View or Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.maximizePart"</code>).
    */
   static const QString WINDOW_MAXIMIZE_ACTIVE_VIEW_OR_EDITOR; // = "org.blueberry.ui.window.maximizePart";
 
   /**
    * Id for command "Minimize Active View or Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.minimizePart"</code>).
    */
   static const QString WINDOW_MINIMIZE_ACTIVE_VIEW_OR_EDITOR; // = "org.blueberry.ui.window.minimizePart";
 
   /**
    * Id for command "Next Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.nextEditor"</code>).
    */
   static const QString WINDOW_NEXT_EDITOR; // = "org.blueberry.ui.window.nextEditor";
 
   /**
    * Id for command "Previous Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.previousEditor"</code>).
    */
   static const QString WINDOW_PREVIOUS_EDITOR; // = "org.blueberry.ui.window.previousEditor";
 
   /**
    * Id for command "Next View" in category "Window"
    * (value is <code>"org.eclipse.ui.window.nextView"</code>).
    */
   static const QString WINDOW_NEXT_VIEW; // = "org.blueberry.ui.window.nextView";
 
   /**
    * Id for command "Previous View" in category "Window"
    * (value is <code>"org.eclipse.ui.window.previousView"</code>).
    */
   static const QString WINDOW_PREVIOUS_VIEW; // = "org.blueberry.ui.window.previousView";
 
   /**
    * Id for command "Next Perspective" in category "Window"
    * (value is <code>"org.eclipse.ui.window.nextPerspective"</code>).
    */
   static const QString WINDOW_NEXT_PERSPECTIVE; // = "org.blueberry.ui.window.nextPerspective";
 
   /**
    * Id for command "Previous Perspective" in category "Window"
    * (value is <code>"org.eclipse.ui.window.previousPerspective"</code>).
    */
   static const QString WINDOW_PREVIOUS_PERSPECTIVE; // = "org.blueberry.ui.window.previousPerspective";
 
   /**
    * Id for command "Close All Perspectives" in category "Window"
    * (value is <code>"org.eclipse.ui.window.closeAllPerspectives"</code>).
    */
   static const QString WINDOW_CLOSE_ALL_PERSPECTIVES; // = "org.blueberry.ui.window.closeAllPerspectives";
 
   /**
    * Id for command "Close Perspective" in category "Window"
    * (value is <code>"org.eclipse.ui.window.closePerspective"</code>).
    */
   static const QString WINDOW_CLOSE_PERSPECTIVE; // = "org.blueberry.ui.window.closePerspective";
 
   /**
    * Id for parameter "Perspective Id" in command "Close Perspective" in
    * category "Window" (value is
    * <code>"org.eclipse.ui.window.closePerspective.perspectiveId"</code>).
    * Optional.
    */
   static const QString WINDOW_CLOSE_PERSPECTIVE_PARM_ID; // = "org.blueberry.ui.window.closePerspective.perspectiveId";
 
   /**
    * Id for command "Close Part" in category "Window" (value is
    * <code>"org.eclipse.ui.file.closePart"</code>).
    */
   static const QString WINDOW_CLOSE_PART; // = "org.blueberry.ui.file.closePart";
 
   /**
    * Id for command "Customize Perspective" in category "Window"
    * (value is <code>"org.eclipse.ui.window.customizePerspective"</code>).
    */
   static const QString WINDOW_CUSTOMIZE_PERSPECTIVE; // = "org.blueberry.ui.window.customizePerspective";
 
   /**
    * Id for command "Pin Editor" in category "Window"
    * (value is <code>"org.eclipse.ui.window.pinEditor"</code>).
    */
   static const QString WINDOW_PIN_EDITOR; // = "org.blueberry.ui.window.pinEditor";
 
   /**
    * Id for command "Preferences" in category "Window"
    * (value is <code>"org.eclipse.ui.window.preferences"</code>).
    */
   static const QString WINDOW_PREFERENCES; // = "org.blueberry.ui.window.preferences";
 
   /**
    * Id for parameter "Preference Page Id" in command "Preferences" in
    * category "Window" (value is <code>"preferencePageId"</code>). Optional.
    */
   static const QString WINDOW_PREFERENCES_PARM_PAGEID; // = "preferencePageId";
 
   /**
    * Id for command "Reset Perspective" in category "Window" (value is
    * <code>"org.eclipse.ui.window.resetPerspective"</code>).
    */
   static const QString WINDOW_RESET_PERSPECTIVE; // = "org.blueberry.ui.window.resetPerspective";
 
   /**
    * Id for command "Save Perspective As" in category "Window"
    * (value is <code>"org.eclipse.ui.window.savePerspective"</code>).
    */
   static const QString WINDOW_SAVE_PERSPECTIVE_AS; // = "org.blueberry.ui.window.savePerspective";
 
   /**
    * Id for command "Show Key Assist" in category "Window"
    * (value is <code>"org.eclipse.ui.window.showKeyAssist"</code>).
    */
   static const QString WINDOW_SHOW_KEY_ASSIST; // = "org.blueberry.ui.window.showKeyAssist";
 
   // Help Category:
 
   /**
    * Id for command "Help Contents" in category "Help"
    * (value is <code>"org.blueberry.ui.help.helpContents"</code>).
    */
   static const QString HELP_HELP_CONTENTS; // = "org.blueberry.ui.help.helpContents";
 
   /**
    * Id for command "Help Search" in category "Help"
    * (value is <code>"org.blueberry.ui.help.helpSearch"</code>).
    */
   static const QString HELP_HELP_SEARCH; // = "org.blueberry.ui.help.helpSearch";
 
   /**
    * Id for command "Dynamic Help" in category "Help"
    * (value is <code>"org.blueberry.ui.help.dynamicHelp"</code>).
    */
   static const QString HELP_DYNAMIC_HELP; // = "org.blueberry.ui.help.dynamicHelp";
 
   /**
    * Id for command "Welcome" in category "Help"
    * (value is <code>"org.blueberry.ui.help.quickStartAction"</code>).
    */
   static const QString HELP_WELCOME; // = "org.blueberry.ui.help.intro";
 
   /**
    * Id for command "About" in category "Help"
    * (value is <code>"org.blueberry.ui.help.aboutAction"</code>).
    */
   static const QString HELP_ABOUT; // = "org.blueberry.ui.help.aboutAction";
 
   // Views Category:
 
   /**
    * Id for command "Show View" in category "Views"
    * (value is <code>"org.blueberry.ui.views.showView"</code>).
    */
   static const QString VIEWS_SHOW_VIEW; // = "org.blueberry.ui.views.showView";
 
    /**
     * Id for parameter "View Id" in command "Show View" in category "Views"
     * (value is <code>"org.blueberry.ui.views.showView.viewId"</code>).
     */
    static const QString VIEWS_SHOW_VIEW_PARM_ID; // = "org.blueberry.ui.views.showView.viewId";
 
    /**
     * Id for parameter "Secondary Id" in command "Show View" in category "Views"
     * (value is <code>"org.blueberry.ui.views.showView.secondaryId"</code>).
     */
    static const QString VIEWS_SHOW_VIEW_SECONDARY_ID; // = "org.blueberry.ui.views.showView.secondaryId";
 
    /**
     * Id for parameter "As Fastview" in command "Show View" in category "Views"
     * (value is <code>"org.blueberry.ui.views.showView.makeFast"</code>).
     * Optional.
     */
    static const QString VIEWS_SHOW_VIEW_PARM_FASTVIEW; // = "org.blueberry.ui.views.showView.makeFast";
 
    // Perspectives Category:
 
    /**
     * Id for command "Show Perspective" in category "Perspectives"
     * (value is <code>"org.blueberry.ui.perspectives.showPerspective"</code>).
     */
    static const QString PERSPECTIVES_SHOW_PERSPECTIVE; // = "org.blueberry.ui.perspectives.showPerspective";
 
    /**
     * Id for parameter "Perspective Id" in command "Show Perspective" in
     * category "Perspectives" (value is
     * <code>"org.blueberry.ui.perspectives.showPerspective.perspectiveId"</code>
     * ).
     */
    static const QString PERSPECTIVES_SHOW_PERSPECTIVE_PARM_ID; // = "org.blueberry.ui.perspectives.showPerspective.perspectiveId";
 
    /**
     * Id for parameter "In New Window" in command "Show Perspective" in
     * category "Perspectives" (value is
     * <code>"org.blueberry.ui.perspectives.showPerspective.newWindow"</code>).
     * Optional.
     */
    static const QString PERSPECTIVES_SHOW_PERSPECTIVE_PARM_NEWWINDOW; // = "org.blueberry.ui.perspectives.showPerspective.newWindow";
 
 };
 
 }
 
 #endif // BERRYIWORKBENCHCOMMANDCONSTANTS_H
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h
index 38e53d6db1..8a4102f094 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchListener.h
@@ -1,95 +1,90 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIWORKBENCHLISTENER_H_
 #define BERRYIWORKBENCHLISTENER_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "berryMessage.h"
 
 namespace berry
 {
 
 struct IWorkbench;
 
 /**
  * Interface for listening to workbench lifecycle events.
  * <p>
  * This interface may be implemented by clients.
  * </p>
  *
  * @see IWorkbench#addWorkbenchListener
  * @see IWorkbench#removeWorkbenchListener
  */
 struct BERRY_UI_QT IWorkbenchListener
 {
 
   struct Events {
       typedef Message2<IWorkbench*, bool, bool> PreShutdownEvent;
       typedef Message1<IWorkbench*> PostShutdownEvent;
 
       PreShutdownEvent preShutdown;
       PostShutdownEvent postShutdown;
 
       void AddListener(IWorkbenchListener* listener);
       void RemoveListener(IWorkbenchListener* listener);
 
   private:
 
     typedef MessageDelegate2<IWorkbenchListener, IWorkbench*, bool, bool> Delegate2;
     typedef MessageDelegate1<IWorkbenchListener, IWorkbench*> Delegate1;
   };
 
   virtual ~IWorkbenchListener();
 
   /**
    * Notifies that the workbench is about to shut down.
    * <p>
    * This method is called immediately prior to workbench shutdown before any
    * windows have been closed.
    * </p>
    * <p>
    * The listener may veto a regular shutdown by returning <code>false</code>,
    * although this will be ignored if the workbench is being forced to shut down.
    * </p>
    * <p>
    * Since other workbench listeners may veto the shutdown, the listener should
    * not dispose resources or do any other work during this notification that would
    * leave the workbench in an inconsistent state.
    * </p>
    *
-   * @param workbench the workbench
-   * @param forced <code>true</code> if the workbench is being forced to shutdown,
-   *   <code>false</code> for a regular close
    * @return <code>true</code> to allow the workbench to proceed with shutdown,
    *   <code>false</code> to veto a non-forced shutdown
    */
   virtual bool PreShutdown(IWorkbench*  /*workbench*/, bool  /*forced*/) { return true; }
 
   /**
    * Performs arbitrary finalization after the workbench stops running.
    * <p>
    * This method is called during workbench shutdown after all windows
    * have been closed.
    * </p>
-   *
-   * @param workbench the workbench
    */
   virtual void PostShutdown(IWorkbench*  /*workbench*/) {}
 
 };
 
 }
 
 #endif /* BERRYIWORKBENCHLISTENER_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h
index 41c963df35..66b78cead5 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPage.h
@@ -1,867 +1,831 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIWORKBENCHPAGE_H_
 #define BERRYIWORKBENCHPAGE_H_
 
 #include <berryMacros.h>
 
 #include "berryIEditorReference.h"
 #include "berryIViewReference.h"
 #include "berryIPerspectiveDescriptor.h"
 #include "berryIEditorPart.h"
 #include "berryIViewPart.h"
 #include "berryIEditorInput.h"
 #include "berryIPartService.h"
 #include "berryISelectionService.h"
 #include "berryIReusableEditor.h"
 
 #include "berryIWorkbenchWindow.h"
 
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  */
 namespace berry {
 
 struct IExtensionTracker;
 
 /**
  * A workbench page consists of an arrangement of views and editors intended to
  * be presented together to the user in a single workbench window.
  * <p>
  * A page can contain 0 or more views and 0 or more editors. These views and
  * editors are contained wholly within the page and are not shared with other
  * pages. The layout and visible action set for the page is defined by a
  * perspective.
  * <p>
  * The number of views and editors within a page is restricted to simplify part
  * management for the user. In particular:
  * <ul>
  * <li>Unless a view explicitly allows for multiple instances in its plugin
  * declaration there will be only one instance in a given workbench page.</li>
  * <li>Only one editor can exist for each editor input within a page.
  * <li>
  * </ul>
  * </p>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see IPerspectiveDescriptor
  * @see IEditorPart
  * @see IViewPart
  */
 struct BERRY_UI_QT IWorkbenchPage : public IPartService, public ISelectionService, public Object
 {
 
   berryObjectMacro(berry::IWorkbenchPage);
 
   ~IWorkbenchPage() override;
 
   /**
    * An optional attribute within a workspace marker (<code>IMarker</code>)
    * which identifies the preferred editor type to be opened when
    * <code>openEditor</code> is called.
    *
-   * @see #openEditor(IEditorInput, String)
-   * @see #openEditor(IEditorInput, String, boolean)
+   * @see #OpenEditor
    * @deprecated in 3.0 since the notion of markers this is not generally
    *             applicable. Use the IDE-specific constant
    *             <code>IDE.EDITOR_ID_ATTR</code>.
    */
   static const QString EDITOR_ID_ATTR; // = "org.blueberry.ui.editorID";
 
   /**
    * Change event id when the perspective is reset to its original state.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_RESET; // = "reset";
 
   /**
    * Change event id when the perspective has completed a reset to its
    * original state.
    *
    * @since 3.0
    * @see IPerspectiveListener
    */
   static const QString CHANGE_RESET_COMPLETE; // = "resetComplete";
 
   /**
    * Change event id when one or more views are shown in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_VIEW_SHOW; // = "viewShow";
 
   /**
    * Change event id when one or more views are hidden in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_VIEW_HIDE; // = "viewHide";
 
   /**
    * Change event id when one or more editors are opened in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_EDITOR_OPEN; // = "editorOpen";
 
   /**
    * Change event id when one or more editors are closed in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_EDITOR_CLOSE; // = "editorClose";
 
   /**
    * Change event id when the editor area is shown in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_EDITOR_AREA_SHOW; // = "editorAreaShow";
 
   /**
    * Change event id when the editor area is hidden in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_EDITOR_AREA_HIDE; // = "editorAreaHide";
 
   /**
    * Change event id when an action set is shown in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_ACTION_SET_SHOW; // = "actionSetShow";
 
   /**
    * Change event id when an action set is hidden in a perspective.
    *
    * @see IPerspectiveListener
    */
   static const QString CHANGE_ACTION_SET_HIDE; // = "actionSetHide";
 
   /**
    * Show view mode that indicates the view should be made visible and
    * activated. Use of this mode has the same effect as calling
-   * {@link #showView(String)}.
+   * #ShowView .
    */
   static const int VIEW_ACTIVATE; // = 1;
 
   /**
    * Show view mode that indicates the view should be made visible. If the
    * view is opened in the container that contains the active view then this
    * has the same effect as <code>VIEW_CREATE</code>.
    */
   static const int VIEW_VISIBLE; // = 2;
 
   /**
    * Show view mode that indicates the view should be made created but not
    * necessarily be made visible. It will only be made visible in the event
    * that it is opened in its own container. In other words, only if it is not
    * stacked with another view.
    */
   static const int VIEW_CREATE; // = 3;
 
   /**
    * Editor opening match mode specifying that no matching against existing
    * editors should be done.
    */
   static const int MATCH_NONE; // = 0;
 
   /**
    * Editor opening match mode specifying that the editor input should be
    * considered when matching against existing editors.
    */
   static const int MATCH_INPUT; // = 1;
 
   /**
    * Editor opening match mode specifying that the editor id should be
    * considered when matching against existing editors.
    */
   static const int MATCH_ID; // = 2;
 
   /**
    * Activates the given part. The part will be brought to the front and given
    * focus. The part must belong to this page.
    *
    * @param part
    *            the part to activate
    */
   virtual void Activate(IWorkbenchPart::Pointer part) = 0;
 
-  /**
-   * Adds a property change listener.
-   *
-   * @param listener
-   *            the property change listener to add
-   */
-  //virtual void addPropertyChangeListener(IPropertyChangeListener listener);
-
   /**
    * Moves the given part forward in the Z order of this page so as to make it
    * visible, without changing which part has focus. The part must belong to
    * this page.
    *
    * @param part
    *            the part to bring forward
    */
   virtual void BringToTop(IWorkbenchPart::Pointer part) = 0;
 
   /**
    * Closes this workbench page. If this page is the active one, this honor is
    * passed along to one of the window's other pages if possible.
    * <p>
    * If the page has an open editor with unsaved content, the user will be
    * given the opportunity to save it.
    * </p>
    *
    * @return <code>true</code> if the page was successfully closed, and
    *         <code>false</code> if it is still open
    */
   virtual bool Close() = 0;
 
   /**
    * Closes all of the editors belonging to this workbench page.
    * <p>
    * If the page has open editors with unsaved content and <code>save</code>
    * is <code>true</code>, the user will be given the opportunity to save
    * them.
    * </p>
    *
    * @param save
    *
    * @return <code>true</code> if all editors were successfully closed, and
    *         <code>false</code> if at least one is still open
    */
   virtual bool CloseAllEditors(bool save) = 0;
 
   /**
    * Closes the given <code>Array</code> of editor references. The editors
    * must belong to this workbench page.
    * <p>
    * If any of the editors have unsaved content and <code>save</code> is
    * <code>true</code>, the user will be given the opportunity to save
    * them.
    * </p>
    *
    * @param editorRefs
    *            the editors to close
    * @param save
    *            <code>true</code> to save the editor contents if required
    *            (recommended), and <code>false</code> to discard any unsaved
    *            changes
    * @return <code>true</code> if the editors were successfully closed, and
    *         <code>false</code> if the editors are still open
    */
   virtual bool CloseEditors(const QList<IEditorReference::Pointer>& editorRefs, bool save) = 0;
 
   /**
    * Closes the given editor. The editor must belong to this workbench page.
    * <p>
    * If the editor has unsaved content and <code>save</code> is
    * <code>true</code>, the user will be given the opportunity to save it.
    * </p>
    *
    * @param editor
    *            the editor to close
    * @param save
    *            <code>true</code> to save the editor contents if required
    *            (recommended), and <code>false</code> to discard any unsaved
    *            changes
    * @return <code>true</code> if the editor was successfully closed, and
    *         <code>false</code> if the editor is still open
    */
   virtual bool CloseEditor(IEditorPart::Pointer editor, bool save) = 0;
 
   /**
    * Returns the view in this page with the specified id. There is at most one
    * view in the page with the specified id.
    *
    * @param viewId
    *            the id of the view extension to use
    * @return the view, or <code>null</code> if none is found
    */
   virtual IViewPart::Pointer FindView(const QString& viewId) = 0;
 
   /**
    * Returns the view reference with the specified id.
    *
    * @param viewId
    *            the id of the view extension to use
    * @return the view reference, or <code>null</code> if none is found
    */
   virtual IViewReference::Pointer FindViewReference(const QString& viewId) = 0;
 
   /**
    * Returns the view reference with the specified id and secondary id.
    *
    * @param viewId
    *            the id of the view extension to use
    * @param secondaryId
    *            the secondary id to use, or <code>null</code> for no
    *            secondary id
    * @return the view reference, or <code>null</code> if none is found
    */
   virtual IViewReference::Pointer FindViewReference(const QString& viewId, const QString& secondaryId) = 0;
 
   /**
    * Returns the active editor open in this page.
    * <p>
    * This is the visible editor on the page, or, if there is more than one
    * visible editor, this is the one most recently brought to top.
    * </p>
    *
    * @return the active editor, or <code>null</code> if no editor is active
    */
   virtual IEditorPart::Pointer GetActiveEditor() = 0;
 
   /**
    * Returns the editor with the specified input. Returns null if there is no
    * opened editor with that input.
    *
    * @param input
    *            the editor input
    * @return an editor with input equals to <code>input</code>
    */
   virtual IEditorPart::Pointer FindEditor(IEditorInput::Pointer input) = 0;
 
   /**
    * Returns an array of editor references that match the given input and/or
    * editor id, as specified by the given match flags. Returns an empty array
    * if there are no matching editors, or if matchFlags is MATCH_NONE.
    *
    * @param input
    *            the editor input, or <code>null</code> if MATCH_INPUT is not
    *            specified in matchFlags
    * @param editorId
    *            the editor id, or <code>null</code> if MATCH_ID is not
    *            specified in matchFlags
    * @param matchFlags
    *            a bit mask consisting of zero or more of the MATCH_* constants
    *            OR-ed together
    * @return the references for the matching editors
    *
    * @see #MATCH_NONE
    * @see #MATCH_INPUT
    * @see #MATCH_ID
    */
   virtual QList<IEditorReference::Pointer> FindEditors(IEditorInput::Pointer input, const QString& editorId,
       int matchFlags) = 0;
 
   /**
    * Returns a list of the editors open in this page.
    * <p>
    * Note that each page has its own editors; editors are never shared between
    * pages.
    * </p>
    *
    * @return a list of open editors
    *
-   * @deprecated use #getEditorReferences() instead
+   * @deprecated use #GetEditorReferences instead
    */
   virtual QList<IEditorPart::Pointer> GetEditors() = 0;
 
   /**
    * Returns an array of references to open editors in this page.
    * <p>
    * Note that each page has its own editors; editors are never shared between
    * pages.
    * </p>
    *
    * @return a list of open editors
    */
   virtual QList<IEditorReference::Pointer> GetEditorReferences() = 0;
 
   /**
    * Returns a list of dirty editors in this page.
    *
    * @return a list of dirty editors
    */
   virtual QList<IEditorPart::Pointer> GetDirtyEditors() = 0;
 
   /**
    * Returns the input for this page.
    *
    * @return the input for this page, or <code>null</code> if none
    */
   virtual IAdaptable* GetInput() = 0;
 
   /**
    * Returns the page label. This will be a unique identifier within the
    * containing workbench window.
    *
    * @return the page label
    */
   virtual QString GetLabel() = 0;
 
   /**
    * Returns the current perspective descriptor for this page, or
    * <code>null</code> if there is no current perspective.
    *
    * @return the current perspective descriptor or <code>null</code>
-   * @see #setPerspective
-   * @see #savePerspective
+   * @see #SetPerspective
+   * @see #SavePerspective
    */
   virtual IPerspectiveDescriptor::Pointer GetPerspective() = 0;
 
   /**
    * Returns a list of the reference to views visible on this page.
    * <p>
    * Note that each page has its own views; views are never shared between
    * pages.
    * </p>
    *
    * @return a list of references to visible views
    */
   virtual QList<IViewReference::Pointer> GetViewReferences() = 0;
 
   /**
    * Returns a list of the views visible on this page.
    * <p>
    * Note that each page has its own views; views are never shared between
    * pages.
    * </p>
    *
    * @return a list of visible views
    *
-   * @deprecated use #getViewReferences() instead.
+   * @deprecated use #GetViewReferences() instead.
    */
   virtual QList<IViewPart::Pointer> GetViews() = 0;
 
   /**
    * Returns the workbench window of this page.
    *
    * @return the workbench window
    */
   virtual IWorkbenchWindow::Pointer GetWorkbenchWindow() const = 0;
 
   /**
    * Hides the given view. The view must belong to this page.
    *
    * @param view
    *            the view to hide
    */
   virtual void HideView(IViewPart::Pointer view) = 0;
 
   /**
    * Hides the given view that belongs to the reference, if any.
    *
    * @param view
    *            the references whos view is to be hidden
    */
   virtual void HideView(IViewReference::Pointer view) = 0;
 
   /**
    * Returns true if perspective with given id contains view with given id
    */
   //virtual bool HasView(const QString& perspectiveId, const QString& viewId) = 0;
 
   /**
    * Returns whether the specified part is visible.
    *
    * @param part
    *            the part to test
    * @return boolean <code>true</code> if part is visible
    */
   virtual bool IsPartVisible(IWorkbenchPart::Pointer part) = 0;
 
-  /**
-   * Removes the perspective specified by desc.
-   *
-   * @param desc
-   *            the perspective that will be removed
-   */
-  //virtual void RemovePerspective(IPerspectiveDescriptor::Pointer desc) = 0;
-
   /**
    * Reuses the specified editor by setting its new input.
    *
    * @param editor
    *            the editor to be reused
    * @param input
    *            the new input for the reusable editor
    */
   virtual void ReuseEditor(IReusableEditor::Pointer editor, IEditorInput::Pointer input) = 0;
 
   /**
    * Opens an editor on the given input.
    * <p>
    * If this page already has an editor open on the target input that editor
    * is activated; otherwise, a new editor is opened. Two editor inputs,
    * input1 and input2, are considered the same if
    *
    * <pre>
    * input1.equals(input2) == true
    * </pre>.
    * </p>
    * <p>
    * The editor type is determined by mapping <code>editorId</code> to an
    * editor extension registered with the workbench. An editor id is passed
    * rather than an editor object to prevent the accidental creation of more
    * than one editor for the same input. It also guarantees a consistent
    * lifecycle for editors, regardless of whether they are created by the user
    * or restored from saved data.
    * </p>
    *
    * @param input
    *            the editor input
    * @param editorId
    *            the id of the editor extension to use
    * @return an open and active editor, or <code>null</code> if an external
    *         editor was opened
    * @exception PartInitException
    *                if the editor could not be created or initialized
    */
   virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input, const QString& editorId) = 0;
 
   /**
    * Opens an editor on the given input.
    * <p>
    * If this page already has an editor open on the target input that editor
    * is brought to the front; otherwise, a new editor is opened. Two editor
    * inputs are considered the same if they equal. See
-   * <code>Object.equals(Object)<code>
+   * <code>Object.equals(Object)</code>
    * and <code>IEditorInput</code>. If <code>activate == true</code> the editor
    * will be activated.
    * </p><p>
    * The editor type is determined by mapping <code>editorId</code> to an editor
    * extension registered with the workbench.  An editor id is passed rather than
    * an editor object to prevent the accidental creation of more than one editor
    * for the same input. It also guarantees a consistent lifecycle for editors,
    * regardless of whether they are created by the user or restored from saved
    * data.
    * </p>
    *
    * @param input the editor input
    * @param editorId the id of the editor extension to use
    * @param activate if <code>true</code> the editor will be activated
    * @return an open editor, or <code>null</code> if an external editor was opened
    * @exception PartInitException if the editor could not be created or initialized
    */
   virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input, const QString& editorId,
       bool activate) = 0;
 
   /**
    * Opens an editor on the given input.
    * <p>
    * If this page already has an editor open that matches the given input
    * and/or editor id (as specified by the matchFlags argument), that editor
    * is brought to the front; otherwise, a new editor is opened. Two editor
    * inputs are considered the same if they equal. See
-   * <code>Object.equals(Object)<code>
+   * <code>Object.equals(Object)</code>
    * and <code>IEditorInput</code>. If <code>activate == true</code> the editor
    * will be activated.
    * </p><p>
    * The editor type is determined by mapping <code>editorId</code> to an editor
    * extension registered with the workbench.  An editor id is passed rather than
    * an editor object to prevent the accidental creation of more than one editor
    * for the same input. It also guarantees a consistent lifecycle for editors,
    * regardless of whether they are created by the user or restored from saved
    * data.
    * </p>
    *
    * @param input the editor input
    * @param editorId the id of the editor extension to use
    * @param activate if <code>true</code> the editor will be activated
    * @param matchFlags a bit mask consisting of zero or more of the MATCH_* constants OR-ed together
    * @return an open editor, or <code>null</code> if an external editor was opened
    * @exception PartInitException if the editor could not be created or initialized
    *
    * @see #MATCH_NONE
    * @see #MATCH_INPUT
    * @see #MATCH_ID
    */
   virtual IEditorPart::Pointer OpenEditor(IEditorInput::Pointer input,
       const QString& editorId, bool activate, int matchFlags) = 0;
 
-  /**
-   * Removes the property change listener.
-   *
-   * @param listener
-   *            the property change listener to remove
-   */
-  //virtual void removePropertyChangeListener(IPropertyChangeListener listener);
-
   /**
    * Changes the visible views, their layout, and the visible action sets
    * within the page to match the current perspective descriptor. This is a
    * rearrangement of components and not a replacement. The contents of the
    * current perspective descriptor are unaffected.
    * <p>
    * For more information on perspective change see
    * <code>setPerspective()</code>.
    * </p>
    */
   virtual void ResetPerspective() = 0;
 
   /**
    * Saves the contents of all dirty editors belonging to this workbench page.
    * If there are no dirty editors this method returns without effect.
    * <p>
    * If <code>confirm</code> is <code>true</code> the user is prompted to
    * confirm the command.
    * </p>
    * <p>
    * Note that as of 3.2, this method also saves views that implement
    * ISaveablePart and are dirty.
    * </p>
    *
    * @param confirm <code>true</code> to ask the user before saving unsaved
    *            changes (recommended), and <code>false</code> to save
    *            unsaved changes without asking
    * @return <code>true</code> if the command succeeded, and
    *         <code>false</code> if the operation was canceled by the user or
    *         an error occurred while saving
    */
   virtual bool SaveAllEditors(bool confirm) = 0;
 
   /**
    * Saves the contents of the given editor if dirty. If not, this method
    * returns without effect.
    * <p>
    * If <code>confirm</code> is <code>true</code> the user is prompted to
    * confirm the command. Otherwise, the save happens without prompt.
    * </p>
    * <p>
    * The editor must belong to this workbench page.
    * </p>
    *
    * @param editor
    *            the editor to close
    * @param confirm
    *            <code>true</code> to ask the user before saving unsaved
    *            changes (recommended), and <code>false</code> to save
    *            unsaved changes without asking
    * @return <code>true</code> if the command succeeded, and
    *         <code>false</code> if the editor was not saved
    */
   virtual bool SaveEditor(IEditorPart::Pointer editor, bool confirm) = 0;
 
   /**
    * Saves the visible views, their layout, and the visible action sets for
    * this page to the current perspective descriptor. The contents of the
    * current perspective descriptor are overwritten.
    */
   virtual void SavePerspective() = 0;
 
   /**
    * Saves the visible views, their layout, and the visible action sets for
    * this page to the given perspective descriptor. The contents of the given
    * perspective descriptor are overwritten and it is made the current one for
    * this page.
    *
    * @param perspective
    *            the perspective descriptor to save to
    */
   virtual void SavePerspectiveAs(IPerspectiveDescriptor::Pointer perspective) = 0;
 
 
   /**
    * Changes the visible views, their layout, and the visible action sets
    * within the page to match the given perspective descriptor. This is a
    * rearrangement of components and not a replacement. The contents of the
    * old perspective descriptor are unaffected.
    * <p>
    * When a perspective change occurs the old perspective is deactivated
    * (hidden) and cached for future reference. Then the new perspective is
    * activated (shown). The views within the page are shared by all existing
    * perspectives to make it easy for the user to switch between one
    * perspective and another quickly without loss of context.
    * </p>
    * <p>
    * During activation the action sets are modified. If an action set is
    * specified in the new perspective which is not visible in the old one it
    * will be created. If an old action set is not specified in the new
    * perspective it will be disposed.
    * </p>
    * <p>
    * The visible views and their layout within the page also change. If a view
    * is specified in the new perspective which is not visible in the old one a
    * new instance of the view will be created. If an old view is not specified
    * in the new perspective it will be hidden. This view may reappear if the
    * user selects it from the View menu or if they switch to a perspective
    * (which may be the old one) where the view is visible.
    * </p>
    * <p>
    * The open editors are not modified by this method.
    * </p>
    *
    * @param perspective
    *            the perspective descriptor
    */
   virtual void SetPerspective(IPerspectiveDescriptor::Pointer perspective) = 0;
 
   /**
    * Shows the view identified by the given view id in this page and gives it
    * focus. If there is a view identified by the given view id (and with no
    * secondary id) already open in this page, it is given focus.
    *
    * @param viewId
    *            the id of the view extension to use
    * @return the shown view
    * @exception PartInitException
    *                if the view could not be initialized
    */
   virtual IViewPart::Pointer ShowView(const QString& viewId) = 0;
 
   /**
    * Shows a view in this page with the given id and secondary id. The
    * behaviour of this method varies based on the supplied mode. If
    * <code>VIEW_ACTIVATE</code> is supplied, the view is focus. If
    * <code>VIEW_VISIBLE</code> is supplied, then it is made visible but not
    * given focus. Finally, if <code>VIEW_CREATE</code> is supplied the view
    * is created and will only be made visible if it is not created in a folder
    * that already contains visible views.
    * <p>
    * This allows multiple instances of a particular view to be created. They
    * are disambiguated using the secondary id. If a secondary id is given, the
    * view must allow multiple instances by having specified
    * allowMultiple="true" in its extension.
    * </p>
    *
    * @param viewId
    *            the id of the view extension to use
    * @param secondaryId
    *            the secondary id to use, or <code>null</code> for no
    *            secondary id
    * @param mode
    *            the activation mode. Must be {@link #VIEW_ACTIVATE},
    *            {@link #VIEW_VISIBLE} or {@link #VIEW_CREATE}
    * @return a view
    * @exception PartInitException
    *                if the view could not be initialized
    * @exception IllegalArgumentException
    *                if the supplied mode is not valid
    */
   virtual IViewPart::Pointer ShowView(const QString& viewId, const QString& secondaryId, int mode) = 0;
 
   /**
    * Returns <code>true</code> if the editor is pinned and should not be
    * reused.
    *
    * @param editor
    *            the editor to test
    * @return boolean whether the editor is pinned
    */
   virtual bool IsEditorPinned(IEditorPart::Pointer editor) = 0;
 
   /**
    * Returns the perspective shortcuts associated with the current
    * perspective. Returns an empty array if there is no current perspective.
    *
    * @see IPageLayout#addPerspectiveShortcut(String)
    * @return an array of perspective identifiers
    */
   virtual QList<QString> GetPerspectiveShortcuts() = 0;
 
   /**
    * Returns the show view shortcuts associated with the current perspective.
    * Returns an empty array if there is no current perspective.
    *
    * @see IPageLayout#addShowViewShortcut(String)
    * @return an array of view identifiers
    */
   virtual QList<QString> GetShowViewShortcuts() = 0;
 
   /**
    * Returns the descriptors for the perspectives that are open in this page,
    * in the order in which they were opened.
    *
    * @return the open perspective descriptors, in order of opening
    */
   virtual QList<IPerspectiveDescriptor::Pointer> GetOpenPerspectives() = 0;
 
   /**
    * Returns the descriptors for the perspectives that are open in this page,
    * in the order in which they were activated (oldest first).
    *
    * @return the open perspective descriptors, in order of activation
    */
   virtual QList<IPerspectiveDescriptor::Pointer> GetSortedPerspectives() = 0;
 
-  /**
-   * Closes current perspective. If last perspective, then entire page
-   * is closed.
-   *
-   * @param saveParts
-   *            whether the page's parts should be saved if closed
-   * @param closePage
-   *            whether the page itself should be closed if last perspective
-   */
-  //virtual void CloseCurrentPerspective(bool saveParts, bool closePage) = 0;
-
   /**
    * Closes the specified perspective in this page. If the last perspective in
    * this page is closed, then all editors are closed. Views that are not
    * shown in other perspectives are closed as well. If <code>saveParts</code>
    * is <code>true</code>, the user will be prompted to save any unsaved
    * changes for parts that are being closed. The page itself is closed if
    * <code>closePage</code> is <code>true</code>.
    *
    * @param desc
    *            the descriptor of the perspective to be closed
    * @param saveParts
    *            whether the page's parts should be saved if closed
    * @param closePage
    *            whether the page itself should be closed if last perspective
    */
   virtual void ClosePerspective(IPerspectiveDescriptor::Pointer desc,
                                 bool saveParts, bool closePage) = 0;
 
   /**
    * Closes all perspectives in this page. All editors are closed, prompting
    * to save any unsaved changes if <code>saveEditors</code> is
    * <code>true</code>. The page itself is closed if <code>closePage</code>
    * is <code>true</code>.
    *
    * @param saveEditors
    *            whether the page's editors should be saved
    * @param closePage
    *            whether the page itself should be closed
    */
   virtual void CloseAllPerspectives(bool saveEditors, bool closePage) = 0;
 
   /**
    * Return the extension tracker for the workbench. This tracker may be used
    * by plug-ins to ensure responsiveness to changes to the plug-in registry.
    * <p>
    * The tracker at this level of the workbench is typically used to track
    * elements that only exist over the lifespan of a page. For example,
    * <code>ViewPart</code> objects fall into this category.
    * </p>
    *
    * @return the extension tracker
    * @see IWorkbench#GetExtensionTracker()
    * @see IWorkbenchWindow#GetExtensionTracker()
    */
   virtual IExtensionTracker* GetExtensionTracker() const = 0;
 
   /**
    * Find the part reference for the given part. A convenience method to
    * quickly go from part to part reference.
    *
    * @param part
    *            The part to search for. It can be <code>null</code>.
    * @return The reference for the given part, or <code>null</code> if no
    *         reference can be found.
    */
   virtual IWorkbenchPartReference::Pointer GetReference(IWorkbenchPart::Pointer part) = 0;
 };
 
 }  // namespace berry
 
 #endif /*BERRYIWORKBENCHPAGE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h
index b868930a52..410b5c891c 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartConstants.h
@@ -1,112 +1,111 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 #ifndef BERRYIWORKBENCHPARTCONSTANTS_H_
 #define BERRYIWORKBENCHPARTCONSTANTS_H_
 
 #include <string>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry
 {
 
 /**
- * This interface describes the constants used for <link>IWorkbenchPart</link> properties.
+ * This interface describes the constants used for IWorkbenchPart properties.
  * <p>
  * <b>Note:</b>This interface should not be implemented or extended.
  * </p>
  *
  * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IWorkbenchPartConstants {
 
   /**
    * Used in a PropertyChangeEvent as the property string to signal
    * that integer flags are used.
    */
   static const QString INTEGER_PROPERTY;
 
     /**
      * The property id for <code>getTitle</code>, <code>getTitleImage</code>
      * and <code>getTitleToolTip</code>.
      */
     static const int PROP_TITLE;
 
     /**
      * The property id for <code>ISaveablePart.isDirty()</code>.
      */
     static const int PROP_DIRTY;
 
     /**
      * The property id for <code>IEditorPart.getEditorInput()</code>.
      */
     static const int PROP_INPUT;
 
     /**
      * The property id for <code>IWorkbenchPart2.getPartName</code>
      */
     static const int PROP_PART_NAME;
 
     /**
      * The property id for <code>IWorkbenchPart2.getContentDescription()</code>
      */
     static const int PROP_CONTENT_DESCRIPTION;
 
     /**
      * The property id for any method on the optional <code>ISizeProvider</code> interface
      * @since 3.4
      */
     static const int PROP_PREFERRED_SIZE;
 
     /**
       * Indicates that the underlying part was created
       */
     static const int PROP_OPENED; // = 0x211;
 
      /**
       * Internal property ID: Indicates that the underlying part was destroyed
       */
     static const int PROP_CLOSED; // = 0x212;
 
      /**
       * Internal property ID: Indicates that the result of IEditorReference.isPinned()
       */
     static const int PROP_PINNED; // = 0x213;
 
      /**
       * Internal property ID: Indicates that the result of getVisible() has changed
       */
     static const int PROP_VISIBLE; // = 0x214;
 
      /**
       * Internal property ID: Indicates that the result of isZoomed() has changed
       */
     //static const int PROP_ZOOMED = 0x215;
 
      /**
       * Internal property ID: Indicates that the part has an active child and the
       * active child has changed. (fired by PartStack)
       */
     static const int PROP_ACTIVE_CHILD_CHANGED; // = 0x216;
 
      /**
       * Internal property ID: Indicates that changed in the min / max
       * state has changed
       */
     //static final int PROP_MAXIMIZED = 0x217;
 
 };
 
 }
 
 #endif /*BERRYIWORKBENCHPARTCONSTANTS_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h
index df80570418..7d12598c5d 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchPartSite.h
@@ -1,81 +1,80 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef IWORKBENCHPARTSITE_H_
 #define IWORKBENCHPARTSITE_H_
 
 
 #include "berryIWorkbenchSite.h"
 
 namespace berry {
 
 struct IWorkbenchPart;
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * The primary interface between a workbench part and the workbench.
  * <p>
  * This interface is not intended to be implemented or extended by clients.
  * </p>
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IWorkbenchPartSite : public IWorkbenchSite
 {
 
   berryObjectMacro(berry::IWorkbenchPartSite, IWorkbenchSite);
 
   ~IWorkbenchPartSite() override;
 
   /**
    * Returns the part registry extension id for this workbench site's part.
    * <p>
    * The name comes from the <code>id</code> attribute in the configuration
    * element.
    * </p>
    *
    * @return the registry extension id
    */
   virtual QString GetId() const = 0;
 
   /**
    * Returns the part associated with this site
    *
    * @return the part associated with this site
    */
   virtual SmartPointer<IWorkbenchPart> GetPart() = 0;
 
   /**
    * Returns the unique identifier of the plug-in that defines this workbench
    * site's part.
    *
    * @return the unique identifier of the declaring plug-in
    */
   virtual QString GetPluginId() const = 0;
 
   /**
    * Returns the registered name for this workbench site's part.
    * <p>
    * The name comes from the <code>name</code> attribute in the configuration
    * element.
    * </p>
    *
    * @return the part name
    */
   virtual QString GetRegisteredName() const = 0;
 
 };
 
 } // namespace berry
 
 
 #endif /*IWORKBENCHPARTSITE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h
index 352a53790f..25e6190047 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchSite.h
@@ -1,105 +1,102 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIWORKBENCHSITE_H_
 #define BERRYIWORKBENCHSITE_H_
 
 #include <berryMacros.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "services/berryIServiceLocator.h"
 
 namespace berry {
 
 struct IWorkbenchPage;
 struct ISelectionProvider;
 struct IWorkbenchWindow;
 class  Shell;
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * The common interface between the workbench and its parts, including pages
  * within parts.
  * <p>
- * The workbench site supports a few {@link IServiceLocator services} by
- * default. If these services are used to allocate resources, it is important to
+ * The workbench site supports a few services by default.
+ * If these services are used to allocate resources, it is important to
  * remember to clean up those resources after you are done with them. Otherwise,
  * the resources will exist until the workbench site is disposed. The supported
  * services are:
  * </p>
  * <ul>
  * <li>{@link ICommandService}</li>
  * <li>{@link IContextService}</li>
  * <li>{@link IHandlerService}</li>
- * <li>{@link IBindingService}. Resources allocated through this service will
- * not be cleaned up until the workbench shuts down.</li>
  * </ul>
  * <p>
  * This interface is not intended to be implemented or extended by clients.
  * </p>
  *
  * @see org.blueberry.ui.IWorkbenchPartSite
  * @see org.blueberry.ui.part.IPageSite
  * @since 2.0
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IWorkbenchSite : public IServiceLocator { // IAdaptable, IShellProvider {
 
   berryObjectMacro(berry::IWorkbenchSite, IServiceLocator);
 
   ~IWorkbenchSite() override;
 
   /**
    * Returns the page containing this workbench site.
    *
    * @return the page containing this workbench site
    */
   virtual SmartPointer<IWorkbenchPage> GetPage() = 0;
 
   /**
    * Returns the selection provider for this workbench site.
    *
    * @return the selection provider, or <code>null</code> if none
    */
   virtual SmartPointer<ISelectionProvider> GetSelectionProvider() = 0;
 
   /**
    * Returns the shell for this workbench site. Not intended to be called from
    * outside the UI thread. Clients should call IWorkbench.getDisplay() to
    * gain access to the display rather than calling getShell().getDisplay().
    *
    * @return the shell for this workbench site
    */
   virtual SmartPointer<Shell> GetShell() = 0;
 
   /**
    * Returns the workbench window containing this workbench site.
    *
    * @return the workbench window containing this workbench site
    */
   virtual SmartPointer<IWorkbenchWindow> GetWorkbenchWindow() = 0;
 
   /**
    * Sets the selection provider for this workbench site.
    *
    * @param provider
    *            the selection provider, or <code>null</code> to clear it
    */
   virtual void SetSelectionProvider(SmartPointer<ISelectionProvider> provider) = 0;
 
 };
 
 }
 
 #endif /*BERRYIWORKBENCHSITE_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h
index 71e0e1c5f0..c14935f48c 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryIWorkbenchWindow.h
@@ -1,218 +1,196 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYIWORKBENCHWINDOW_H_
 #define BERRYIWORKBENCHWINDOW_H_
 
 #include <berryMacros.h>
 #include <berryIAdaptable.h>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include "berryIPageService.h"
 #include "berryShell.h"
 
 #include "services/berryIServiceLocator.h"
 
 namespace berry {
 
 struct IPartService;
 struct ISelectionService;
 struct IWorkbenchPage;
 struct IWorkbench;
 
 /**
  * \ingroup org_blueberry_ui_qt
  *
  * A workbench window is a top level window in a workbench. Visually, a
  * workbench window has a menubar, a toolbar, a status bar, and a main area for
  * displaying a single page consisting of a collection of views and editors.
  * <p>
  * Each workbench window has a collection of 0 or more pages; the active page is
  * the one that is being presented to the end user; at most one page is active
  * in a window at a time.
  * </p>
  * <p>
- * The workbench window supports a few {@link IServiceLocator services} by
- * default. If these services are used to allocate resources, it is important to
+ * The workbench window supports a few services by default.
+ * If these services are used to allocate resources, it is important to
  * remember to clean up those resources after you are done with them. Otherwise,
  * the resources will exist until the workbench window is closed. The supported
  * services are:
  * </p>
  * <ul>
  * <li>{@link ICommandService}</li>
  * <li>{@link IContextService}</li>
- * <li>{@link IHandlerService}</li>
- * <li>{@link IBindingService}. Resources allocated through this service will
- * not be cleaned up until the workbench shuts down.</li>
  * </ul>
  * <p>
  * This interface is not intended to be implemented by clients.
  * </p>
  *
  * @see IWorkbenchPage
- * @noimplement This interface is not intended to be implemented by clients.
  *
  */
 struct BERRY_UI_QT IWorkbenchWindow : public IPageService, public IServiceLocator, public virtual Object
 {
 
   berryObjectMacro(berry::IWorkbenchWindow, IPageService, IServiceLocator, Object);
 
   /**
    * Closes this workbench window.
    * <p>
    * If the window has an open editor with unsaved content, the user will be
    * given the opportunity to save it.
    * </p>
    *
    * @return <code>true</code> if the window was successfully closed, and
    *         <code>false</code> if it is still open
    */
   virtual bool Close() = 0;
 
   /**
    * Returns a list of the pages in this workbench window.
    * <p>
    * Note that each window has its own pages; pages are never shared between
    * different windows.
    * </p>
    *
    * @return a list of pages
    */
   virtual QList<SmartPointer<IWorkbenchPage> > GetPages() const = 0;
 
   /**
    * Returns the currently active page for this workbench window.
    *
    * @return the active page, or <code>null</code> if none
    */
   SmartPointer<IWorkbenchPage> GetActivePage() const override = 0;
 
   /**
    * Sets or clears the currently active page for this workbench window.
    *
    * @param page
    *            the new active page
    */
   virtual void SetActivePage(SmartPointer<IWorkbenchPage> page) = 0;
 
   /**
    * Returns the part service which tracks part activation within this
    * workbench window.
    *
    * @return the part service
    */
   virtual IPartService* GetPartService() = 0;
 
   /**
    * Returns the selection service which tracks selection within this
    * workbench window.
    *
    * @return the selection service
    */
   virtual ISelectionService* GetSelectionService() const = 0;
 
   /**
    * Returns this workbench window's shell.
    *
    * @return the shell containing this window's controls or <code>null</code>
    *   if the shell has not been created yet or if the window has been closed
    */
   virtual Shell::Pointer GetShell() const = 0;
 
   /**
    * Returns the workbench for this window.
    *
    * @return the workbench
    */
   virtual IWorkbench* GetWorkbench() const = 0;
 
-  /**
-   * Returns whether the specified menu is an application menu as opposed to
-   * a part menu. Application menus contain items which affect the workbench
-   * or window. Part menus contain items which affect the active part (view
-   * or editor).
-   * <p>
-   * This is typically used during "in place" editing. Application menus
-   * should be preserved during menu merging. All other menus may be removed
-   * from the window.
-   * </p>
-   *
-   * @param menuId
-   *            the menu id
-   * @return <code>true</code> if the specified menu is an application
-   *         menu, and <code>false</code> if it is not
-   */
-  //virtual bool IsApplicationMenu(const QString& menuId) = 0;
-
   /**
    * Creates and opens a new workbench page. The perspective of the new page
    * is defined by the specified perspective ID. The new page become active.
    * <p>
    * <b>Note:</b> Since release 2.0, a window is limited to contain at most
    * one page. If a page exist in the window when this method is used, then
    * another window is created for the new page. Callers are strongly
    * recommended to use the <code>IWorkbench.showPerspective</code> APIs to
    * programmatically show a perspective.
    * </p>
    *
    * @param perspectiveId
    *            the perspective id for the window's initial page
    * @param input
    *            the page input, or <code>null</code> if there is no current
    *            input. This is used to seed the input for the new page's
    *            views.
    * @return the new workbench page
    * @exception WorkbenchException
    *                if a page could not be opened
    *
    * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable)
    */
   virtual SmartPointer<IWorkbenchPage> OpenPage(const QString& perspectiveId, IAdaptable* input) = 0;
 
   /**
    * Creates and opens a new workbench page. The default perspective is used
    * as a template for creating the page. The page becomes active.
    * <p>
    * <b>Note:</b> Since release 2.0, a window is limited to contain at most
    * one page. If a page exist in the window when this method is used, then
    * another window is created for the new page. Callers are strongly
    * recommended to use the <code>IWorkbench.showPerspective</code> APIs to
    * programmatically show a perspective.
    * </p>
    *
    * @param input
    *            the page input, or <code>null</code> if there is no current
    *            input. This is used to seed the input for the new page's
    *            views.
    * @return the new workbench window
    * @exception WorkbenchException
    *                if a page could not be opened
    *
    * @see IWorkbench#showPerspective(String, IWorkbenchWindow, IAdaptable)
    */
   virtual SmartPointer<IWorkbenchPage> OpenPage(IAdaptable* input) = 0;
 
   //virtual void SetPerspectiveExcludeList(const QStringList& v) = 0;
   //virtual QStringList GetPerspectiveExcludeList() const = 0;
 
   //virtual void SetViewExcludeList(const QStringList& v) = 0;
   //virtual QStringList GetViewExcludeList() const = 0;
 
   ~IWorkbenchWindow() override;
 
 };
 
 }
 
 #endif /*BERRYIWORKBENCHWINDOW_H_*/
diff --git a/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h b/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h
index cbd9dee819..12332c5974 100644
--- a/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h
+++ b/Plugins/org.blueberry.ui.qt/src/berryMenuUtil.h
@@ -1,134 +1,134 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYMENUUTIL_H
 #define BERRYMENUUTIL_H
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * Provides utilities and constants for use with the new menus API.
  *
- * @noextend This class is not intended to be subclassed by clients.
- * @noinstantiate This class is not intended to be instantiated by clients.
+ * @note This class is not intended to be subclassed by clients.
+ * @note This class is not intended to be instantiated by clients.
  */
 class BERRY_UI_QT MenuUtil
 {
 
 public:
 
   /**
    *
    * Workbench Menu. On supported platforms, this menu is shown when no
    * workbench windows are active
    */
   static QString WORKBENCH_MENU; // = "menu:org.blueberry.ui.workbench.menu";
   /** Main Menu */
   static QString MAIN_MENU; // = "menu:org.blueberry.ui.main.menu";
   /** Main ToolBar */
   static QString MAIN_TOOLBAR; // = "toolbar:org.blueberry.ui.main.toolbar";
 
   /** -Any- Popup Menu */
   static QString ANY_POPUP; // = "popup:org.blueberry.ui.popup.any";
 
   /**
    * Valid query attribute. Usage <b>menu:menu.id?before=contribution.id</b>.
    */
   static QString QUERY_BEFORE; // = "before";
 
   /**
    * Valid query attribute. Usage <b>menu:menu.id?after=contribution.id</b>.
    */
   static QString QUERY_AFTER; // = "after";
 
   /**
    * Valid query attribute. Usage <b>menu:menu.id?endof=contribution.id</b>.
    * <p>
    * This menu contribution will be placed at the end of the group defined by
    * <b>contribution.id</b> (usually right in front of the next group marker
    * or separator). Further contribution processing can still place other
    * contributions after this one.
    * </p>
    */
   static QString QUERY_ENDOF; // = "endof";
 
   /**
    * Contributions of targets to this location will be included with the show
    * in menu.
    */
   static QString SHOW_IN_MENU_ID; // = "popup:org.blueberry.ui.menus.showInMenu";
 
   /**
    * @param id
    *            The menu's id
    * @return The locator URI for a menu with the given id
    */
   static QString MenuUri(const QString& id);
 
   /**
    * @param id
    *            The id of the menu
    * @param location
    *            The relative location specifier
    * @param refId
    *            The id of the menu element to be relative to
    * @return A location URI formatted with the given parameters
    */
   static QString MenuAddition(const QString& id, const QString& location,
                               const QString& refId);
 
   /**
    * Convenience method to create a standard menu addition The resulting
    * string has the format: "menu:[id]?after=additions"
    *
    * @param id
    *            The id of the root element to contribute to
    * @return The formatted string
    */
   static QString MenuAddition(const QString& id);
 
   /**
    * @param id
    *            The toolbar's id
    * @return The lcoation URI for a toolbar with the given id
    */
   static QString ToolbarUri(const QString& id);
 
   /**
    * @param id
    *            The id of the toolbar
    * @param location
    *            The relative location specifier
    * @param refId
    *            The id of the toolbar element to be relative to
    * @return A location URI formatted with the given parameters
    */
   static QString ToolbarAddition(const QString& id, const QString& location,
                                  const QString& refId);
 
   /**
    * Convenience method to create a standard toolbar addition The resulting
    * string has the format: "toolbar:[id]?after=additions"
    *
    * @param id
    *            The id of the root element to contribute to
    * @return The formatted string
    */
   static QString ToolbarAddition(const QString& id);
 };
 
 }
 
 #endif // BERRYMENUUTIL_H
diff --git a/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h b/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h
index 2bcaf474d7..6c1291acc3 100644
--- a/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h
+++ b/Plugins/org.blueberry.ui.qt/src/commands/berryIMenuService.h
@@ -1,118 +1,118 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIMENUSERVICE_H_
 #define BERRYIMENUSERVICE_H_
 
 #include <berryIServiceWithSources.h>
 
 namespace berry {
 
 class AbstractContributionFactory;
 class ContributionManager;
 struct IEvaluationContext;
 
 /**
  * <p>
  * Provides services related to the menu architecture within the workbench. It
  * can be used to contribute additional items to the menu, tool bar and status
  * line.
  * </p>
  * <p>
  * This service can be acquired from your service locator:
  * <pre>
  *  IMenuService service = (IMenuService) getSite().getService(IMenuService.class);
  * </pre>
  * <ul>
  * <li>This service is available globally.</li>
  * </ul>
  * </p>
  *
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
+ * @note This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be extended by clients.
  */
 struct IMenuService : public IServiceWithSources
 {
 
   berryObjectMacro(berry::IMenuService);
 
   /**
    * Contribute and initialize the contribution factory. This should only be
    * called once per factory. After the call, the factory should be treated as
    * an unmodifiable object.
    * <p>
    * <b>Note:</b> factories should be removed when no longer necessary. If
    * not, they will be removed when the IServiceLocator used to acquire this
    * service is disposed.
    * </p>
    *
    * @param factory
    *            the contribution factory. Must not be <code>null</code>
-   * @see #removeContributionFactory(AbstractContributionFactory)
+   * @see #RemoveContributionFactory
    */
   virtual void AddContributionFactory(const SmartPointer<AbstractContributionFactory>& factory) = 0;
 
   /**
    * Remove the contributed factory from the menu service. If the factory is
    * not contained by this service, this call does nothing.
    *
    * @param factory
    *            the contribution factory to remove. Must not be
    *            <code>null</code>.
    */
   virtual void RemoveContributionFactory(const SmartPointer<AbstractContributionFactory>& factory) = 0;
 
   /**
    * Populate a <code>ContributionManager</code> at the specified starting
    * location with a set of <code>IContributionItems</code>s. It applies
    * <code>AbstractContributionFactory</code>s that are stored against the
    * provided location.
    *
    * @param mgr
    *            The ContributionManager to populate
    * @param location
    *            The starting location to begin populating this contribution
    *            manager. The format is the Menu API URI format.
-   * @see #releaseContributions(ContributionManager)
+   * @see #ReleaseContributions
    */
   virtual void PopulateContributionManager(ContributionManager* mgr,
                                            const QString& location) = 0;
 
   /**
    * Before calling dispose() on a ContributionManager populated by the menu
    * service, you must inform the menu service to release its contributions.
    * This takes care of unregistering any IContributionItems that have their
    * visibleWhen clause managed by this menu service.
    *
    * @param mgr
    *            The manager that was populated by a call to
-   *            {@link #populateContributionManager(ContributionManager, String)}
+   *            {@link #PopulateContributionManager}
    */
   virtual void ReleaseContributions(ContributionManager* mgr) = 0;
 
   /**
    * Get the current state of eclipse as seen by the menu service.
    *
    * @return an IEvaluationContext containing state variables.
    *
    * @see org.eclipse.ui.ISources
    * @see org.eclipse.ui.services.IEvaluationService
    */
   virtual SmartPointer<IEvaluationContext> GetCurrentState() const = 0;
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IMenuService, "org.blueberry.ui.IMenuService")
 
 #endif /* BERRYIMENUSERVICE_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h b/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h
index d3378c7f9d..71099009de 100644
--- a/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h
+++ b/Plugins/org.blueberry.ui.qt/src/intro/berryIIntroPart.h
@@ -1,209 +1,189 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIINTROPART_H_
 #define BERRYIINTROPART_H_
 
 #include <berryObject.h>
 #include <berryMacros.h>
 
 #include <berryIMemento.h>
 #include <berryIPropertyChangeListener.h>
 #include <berryUIException.h>
 
 #include "berryIIntroSite.h"
 
 #include <QObject>
 
 namespace berry {
 
 /**
  * The intro part is a visual component within the workbench responsible for
  * introducing the product to new users. The intro part is typically shown the
  * first time a product is started up.
  * <p>
  * The intro part implementation is contributed to the workbench via the
  * <code>org.blueberry.ui.intro</code> extension point.  There can be several
  * intro part implementations, and associations between intro part
  * implementations and products. The workbench will only make use of the intro
  * part implementation for the current product (as given by
  * {@link berry::Platform#GetProduct()}. There is at most one
  * intro part instance in the entire workbench, and it resides in exactly one
  * workbench window at a time.
  * </p>
  * <p>
  * This interface in not intended to be directly implemented. Rather, clients
  * providing a intro part implementation should subclass
  * {@link berry::IntroPart}.
  * </p>
  *
- * @see IIntroManager#ShowIntro(IWorkbenchWindow::Pointer, bool)
- * @noimplement This interface is not intended to be implemented by clients.
+ * @see IIntroManager#ShowIntro
  */
 struct BERRY_UI_QT IIntroPart : public virtual Object
 { // IAdaptable {
 
   berryObjectMacro(berry::IIntroPart);
 
   ~IIntroPart() override;
 
-    /**
-   * The property id for <code>getTitleImage</code> and
-   * <code>getTitle</code>.
-   *
-   * @since 3.2 this property now covers changes to <code>getTitle</code> in
-   *        addition to <code>getTitleImage</code>
-   */
-   //static const int PROP_TITLE = IWorkbenchPart::PROP_TITLE;
-
     /**
    * Returns the site for this intro part.
    *
    * @return the intro site
    */
    virtual IIntroSite::Pointer GetIntroSite() const = 0;
 
     /**
      * Initializes this intro part with the given intro site. A memento is
      * passed to the part which contains a snapshot of the part state from a
      * previous session. Where possible, the part should try to recreate that
      * state.
      * <p>
      * This method is automatically called by the workbench shortly after
      * part construction.  It marks the start of the intro's lifecycle. Clients
      * must not call this method.
      * </p>
      *
      * @param site the intro site
      * @param memento the intro part state or <code>null</code> if there is no previous
      * saved state
      * @exception PartInitException if this part was not initialized
      * successfully
      */
     virtual void Init(IIntroSite::Pointer site, IMemento::Pointer memento) = 0;
 
     /**
      * Sets the standby state of this intro part. An intro part should render
      * itself differently in the full and standby modes. In standby mode, the
      * part should be partially visible to the user but otherwise allow them
      * to work. In full mode, the part should be fully visible and be the center
      * of the user's attention.
      * <p>
      * This method is automatically called by the workbench at appropriate
      * times. Clients must not call this method directly (call
      * {@link IIntroManager#setIntroStandby(IIntroPart, boolean)} instead.
      * </p>
      *
      * @param standby <code>true</code> to put this part in its partially
      * visible standy mode, and <code>false</code> to make it fully visible
      */
     virtual void StandbyStateChanged(bool standby) = 0;
 
     /**
      * Saves the object state within a memento.
      * <p>
      * This method is automatically called by the workbench at appropriate
      * times. Clients must not call this method directly.
      * </p>
      *
      * @param memento a memento to receive the object state
      */
     virtual void SaveState(IMemento::Pointer memento) = 0;
 
     /**
      * Adds a listener for changes to properties of this intro part.
      * Has no effect if an identical listener is already registered.
-     * <p>
-     * The properties ids are as follows:
-     * <ul>
-     *   <li><code>IIntroPart.PROP_TITLE</code> </li>
-     * </ul>
-     * </p>
      *
      * @param listener a property listener
      */
     virtual void AddPropertyListener(IPropertyChangeListener* listener) = 0;
 
     /**
      * Creates the SWT controls for this intro part.
      * <p>
      * Clients should not call this method (the workbench calls this method when
      * it needs to, which may be never).
      * </p>
      * <p>
      * For implementors this is a multi-step process:
      * <ol>
      *   <li>Create one or more controls within the parent.</li>
      *   <li>Set the parent layout as needed.</li>
      *   <li>Register any global actions with the <code>IActionService</code>.</li>
      *   <li>Register any popup menus with the <code>IActionService</code>.</li>
      *   <li>Register a selection provider with the <code>ISelectionService</code>
      *     (optional). </li>
      * </ol>
      * </p>
      *
      * @param parent the parent control
      */
     virtual void CreatePartControl(void* parent) = 0;
 
     /**
-     * Returns the title image of this intro part.  If this value changes
-     * the part must fire a property listener event with
-     * {@link IIntroPart#PROP_TITLE}.
+     * Returns the title image of this intro part.
      * <p>
      * The title image is usually used to populate the title bar of this part's
      * visual container. Since this image is managed by the part itself, callers
      * must <b>not</b> dispose the returned image.
      * </p>
      *
      * @return the title image
      */
     virtual QIcon GetTitleImage() const = 0;
 
     /**
-     * Returns the title of this intro part. If this value changes
-     * the part must fire a property listener event with
-     * {@link IIntroPart#PROP_TITLE}.
+     * Returns the title of this intro part.
      * <p>
      * The title is used to populate the title bar of this part's visual
      * container.
      * </p>
      *
      * @return the intro part title (not <code>null</code>)
      */
     virtual QString GetPartName() const = 0;
 
     /**
      * Removes the given property listener from this intro part.
      * Has no affect if an identical listener is not registered.
      *
      * @param listener a property listener
      */
     virtual void RemovePropertyListener(IPropertyChangeListener* listener) = 0;
 
     /**
      * Asks this part to take focus within the workbench.
      * <p>
      * Clients should not call this method (the workbench calls this method at
      * appropriate times).  To have the workbench activate a part, use
      * {@link IIntroManager#showIntro(IWorkbenchWindow, boolean)}.
      * </p>
      */
     virtual void SetFocus() = 0;
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IIntroPart, "org.blueberry.ui.IIntroPart")
 
 #endif /* BERRYIINTROPART_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h b/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h
index 3f1dc73399..fb46befce4 100644
--- a/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h
+++ b/Plugins/org.blueberry.ui.qt/src/intro/berryIntroPart.h
@@ -1,219 +1,206 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYINTROPART_H_
 #define BERRYINTROPART_H_
 
 #include "berryIIntroPart.h"
 
 #include "berryIIntroSite.h"
 
 #include <berryIConfigurationElement.h>
 #include <berryIExecutableExtension.h>
 #include <berryIPropertyChangeListener.h>
 
 #include <QIcon>
 
 namespace berry
 {
 
 /**
  * Abstract base implementation of an intro part.
  * <p>
  * Subclasses must implement the following methods:
  * <ul>
  * <li><code>CreatePartControl</code>- to create the intro part's controls
  * </li>
  * <li><code>SetFocus</code>- to accept focus</li>
  * <li><code>StandbyStateChanged</code>- to change the standby mode</li>
  * </ul>
  * </p>
  * <p>
  * Subclasses may extend or reimplement the following methods as required:
  * <ul>
  * <li><code>SetInitializationData</code>- extend to provide additional
  * initialization when the intro extension is instantiated</li>
  * <li><code>Init(IIntroSite::Pointer, IMemento::Pointer)</code>- extend to provide additional
  * initialization when intro is assigned its site</li>
  * <li><code>GetAdapter</code>- reimplement to make their intro adaptable
  * </li>
  * </ul>
  * </p>
  */
 class BERRY_UI_QT IntroPart: public QObject, public IIntroPart, public IExecutableExtension
 {
 
   Q_OBJECT
   Q_INTERFACES(berry::IIntroPart berry::IExecutableExtension)
 
 private:
 
   IConfigurationElement::Pointer configElement;
 
   QIcon imageDescriptor;
 
   IIntroSite::Pointer partSite;
 
   QString titleLabel;
 
   IPropertyChangeListener::Events propChangeEvents;
 
   /**
    * Return the default title string.
    *
    * @return the default title string
    */
   QString GetDefaultTitle() const;
 
 protected:
 
   /**
    * Fires a property changed event.
    *
    * @param propertyId
    *            the id of the property that changed
    */
   void FirePropertyChange(int propertyId);
 
   /**
    * Returns the configuration element for this part. The configuration
    * element comes from the plug-in registry entry for the extension defining
    * this part.
    *
    * @return the configuration element for this part
    */
   IConfigurationElement::Pointer GetConfigurationElement();
 
   /**
    * Returns the default title image.
    *
    * @return the default image
    */
   QIcon GetDefaultImage() const;
 
   /**
    * Sets the part site.
    * <p>
-   * Subclasses must invoke this method from {@link org.eclipse.ui.intro.IIntroPart#init(IIntroSite, IMemento)}.
+   * Subclasses must invoke this method from {@link IIntroPart#Init}.
    * </p>
    *
    * @param site the intro part site
    */
   void SetSite(IIntroSite::Pointer site);
 
   /**
    * Sets or clears the title image of this part.
    *
    * @param titleImage
    *            the title image, or <code>null</code> to clear
    */
   void SetTitleImage(const QIcon& titleImage);
 
   /**
    * Set the title string for this part.
    *
    * @param titleLabel the title string.  Must not be <code>null</code>.
    * @since 3.2
    */
   void SetTitle(const QString& titleLabel);
 
 public:
 
   /* (non-Javadoc)
    * @see org.eclipse.ui.intro.IIntroPart#addPropertyListener(org.eclipse.ui.IPropertyListener)
    */
   void AddPropertyListener(IPropertyChangeListener* l) override;
 
   /**
    * The <code>IntroPart</code> implementation of this
    * <code>IIntroPart</code> method disposes the title image loaded by
    * <code>setInitializationData</code>. Subclasses may extend.
    */
   ~IntroPart() override;
 
-  /**
-   * This implementation of the method declared by <code>IAdaptable</code>
-   * passes the request along to the platform's adapter manager; roughly
-   * <code>Platform.getAdapterManager().getAdapter(this, adapter)</code>.
-   * Subclasses may override this method (however, if they do so, they should
-   * invoke the method on their superclass to ensure that the Platform's
-   * adapter manager is consulted).
-   */
-  //    Object getAdapter(Class adapter) {
-  //        return Platform.getAdapterManager().getAdapter(this, adapter);
-  //    }
-
-
   /*
    * (non-Javadoc)
    *
    * @see org.eclipse.ui.intro.IIntroPart#getIntroSite()
    */
   IIntroSite::Pointer GetIntroSite() const override;
 
   /* (non-Javadoc)
    * @see org.eclipse.ui.intro.IIntroPart#getTitleImage()
    */
   QIcon GetTitleImage() const override;
 
   /* (non-Javadoc)
    * @see org.eclipse.ui.intro.IIntroPart#getTitle()
    */
   QString GetPartName() const override;
 
   /**
-   * The base implementation of this {@link org.eclipse.ui.intro.IIntroPart}method ignores the
+   * The base implementation of this {@link IIntroPart} method ignores the
    * memento and initializes the part in a fresh state. Subclasses may extend
    * to perform any state restoration, but must call the super method.
    *
    * @param site
    *            the intro site
    * @param memento
    *            the intro part state or <code>null</code> if there is no
    *            previous saved state
    * @exception PartInitException
    *                if this part was not initialized successfully
    */
   void Init(IIntroSite::Pointer site, IMemento::Pointer memento) override;
 
   /* (non-Javadoc)
-   * @see org.eclipse.ui.intro.IIntroPart#removePropertyListener(org.eclipse.ui.IPropertyListener)
+   * @see IIntroPart#RemovePropertyListener
    */
   void RemovePropertyListener(IPropertyChangeListener* l) override;
 
   /**
-   * The base implementation of this {@link org.eclipse.ui.intro.IIntroPart} method does nothing.
+   * The base implementation of this {@link IIntroPart} method does nothing.
    * Subclasses may override.
    *
    * @param memento
    *            a memento to receive the object state
    */
   void SaveState(IMemento::Pointer memento) override;
 
   /**
    * The <code>IntroPart</code> implementation of this
    * <code>IExecutableExtension</code> records the configuration element in
    * and internal state variable (accessible via <code>getConfigElement</code>).
    * It also loads the title image, if one is specified in the configuration
    * element. Subclasses may extend.
    *
    * Should not be called by clients. It is called by the core plugin when
    * creating this executable extension.
    */
   void SetInitializationData(const IConfigurationElement::Pointer& cfig,
                              const QString& propertyName, const Object::Pointer& data) override;
 
 };
 
 }
 
 #endif /* BERRYINTROPART_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h
index 36f5615a04..0743ec1ecb 100755
--- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h
+++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentablePart.h
@@ -1,266 +1,265 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIPRESENTABLEPART_H_
 #define BERRYIPRESENTABLEPART_H_
 
 #include <berryMacros.h>
 
 #include "berryISizeProvider.h"
 #include "berryIPropertyChangeListener.h"
 
 class QToolBar;
 
 namespace berry {
 
 /**
  * This is a skin's interface to the contents of a view or editor. Note that this
  * is essentially the same as IWorkbenchPart, except it does not provide access
  * to lifecycle events and allows repositioning of the part.
  *
  * Not intended to be implemented by clients.
  *
  * @since 3.0
- * @since 3.4 now extends {@link org.blueberry.ui.ISizeProvider}
- * @noimplement This interface is not intended to be implemented by clients.
+ * @since 3.4 now extends {@link ISizeProvider}
  */
 struct BERRY_UI_QT IPresentablePart : public Object, public ISizeProvider {
 
   berryObjectMacro(berry::IPresentablePart);
 
   ~IPresentablePart() override;
 
     /**
      * The property id for <code>isDirty</code>.
      */
     static const int PROP_DIRTY; // = IWorkbenchPartConstants.PROP_DIRTY;
 
     /**
      * The property id for <code>getEditorInput</code>.
      */
     static const int PROP_INPUT; // = IWorkbenchPartConstants.PROP_INPUT;
 
     /**
      * The property id for <code>getTitle</code>, <code>getTitleImage</code>
      * and <code>getTitleToolTip</code>.
      */
     static const int PROP_TITLE; // = IWorkbenchPartConstants.PROP_TITLE;
 
     /**
      * The property id for <code>IWorkbenchPart2.getContentDescription()</code>
      */
     static const int PROP_CONTENT_DESCRIPTION; // = IWorkbenchPartConstants.PROP_CONTENT_DESCRIPTION;
 
     /**
      * The property id for <code>IWorkbenchPart2.getContentDescription()</code>
      */
     static const int PROP_PART_NAME; // = IWorkbenchPartConstants.PROP_PART_NAME;
 
     /**
      * The property id for <code>isBusy</code>.
      */
     static const int PROP_BUSY; // = 0x92;
 
     /**
      * The property id for toolbar changes
      */
     static const int PROP_TOOLBAR; // = 0x93;
 
     /**
      * The property id for highlighting the
      * part if it is not in front.
      */
     static const int PROP_HIGHLIGHT_IF_BACK; // = 0x94;
 
     /**
      * The property id for pane menu changes
      */
     static const int PROP_PANE_MENU; // = 0x302;
 
     /**
      * The property id for preferred size changes
      * @since 3.4
      */
     static const int PROP_PREFERRED_SIZE; // = IWorkbenchPartConstants.PROP_PREFERRED_SIZE;
 
     /**
      * Sets the bounds of this part.
      *
      * @param bounds bounding rectangle (not null)
      */
     virtual void SetBounds(const QRect& bounds) = 0;
 
     /**
      * Notifies the part whether or not it is visible in the current
      * perspective. A part is visible iff any part of its widgetry can
      * be seen.
      *
      * @param isVisible true if the part has just become visible, false
      * if the part has just become hidden
      */
     virtual void SetVisible(bool isVisible) = 0;
 
     /**
      * Forces this part to have focus.
      */
     virtual void SetFocus() = 0;
 
     /**
      * Adds a listener for changes to properties of this workbench part.
      * Has no effect if an identical listener is already registered.
      * <p>
      * The properties ids are defined by the PROP_* constants, above.
      * </p>
      *
      * @param listener a property listener (not null)
      */
     virtual void AddPropertyListener(IPropertyChangeListener* listener) = 0;
 
     /**
      * Remove a listener that was previously added using addPropertyListener.
      *
      * @param listener a property listener (not null)
      */
     virtual void RemovePropertyListener(IPropertyChangeListener* listener) = 0;
 
     /**
      * Returns the short name of the part. This is used as the text on
      * the tab when this part is stacked on top of other parts.
      *
      * @return the short name of the part (not null)
      */
     virtual QString GetName() const = 0;
 
     /**
      * Returns the title of this workbench part. If this value changes
      * the part must fire a property listener event with
      * <code>PROP_TITLE</code>.
      * <p>
      * The title is used to populate the title bar of this part's visual
      * container.
      * </p>
      *
      * @return the workbench part title (not null)
      */
     virtual QString GetTitle() const = 0;
 
     /**
      * Returns the status message from the part's title, or the empty string if none.
      * This is a substring of the part's title. A typical title will consist of
      * the part name, a separator, and a status message describing the current contents.
      * <p>
      * Presentations can query getName() and getTitleStatus() if they want to display
      * the status message and name separately, or they can use getTitle() if they want
      * to display the entire title.
      * </p>
      *
      * @return the status message or the empty string if none (not null)
      */
     virtual QString GetTitleStatus() const = 0;
 
     /**
      * Returns the title image of this workbench part.  If this value changes
      * the part must fire a property listener event with
      * <code>PROP_TITLE</code>.
      * <p>
      * The title image is usually used to populate the title bar of this part's
      * visual container. Since this image is managed by the part itself, callers
      * must <b>not</b> dispose the returned image.
      * </p>
      *
      * @return the title image
      */
     virtual QIcon GetTitleImage() = 0;
 
     /**
      * Returns the title tool tip text of this workbench part. If this value
      * changes the part must fire a property listener event with
      * <code>PROP_TITLE</code>.
      * <p>
      * The tool tip text is used to populate the title bar of this part's
      * visual container.
      * </p>
      *
      * @return the workbench part title tool tip (not null)
      */
     virtual QString GetTitleToolTip() const = 0;
 
     /**
      * Returns true iff the contents of this part have changed recently. For
      * editors, this indicates that the part has changed since the last save.
      * For views, this indicates that the view contains interesting changes
      * that it wants to draw the user's attention to.
      *
      * @return true iff the part is dirty
      */
     virtual bool IsDirty() const = 0;
 
     /**
      * Return true if the the receiver is currently in a busy state.
      * @return boolean true if busy
      */
     virtual bool IsBusy() const = 0;
 
     /**
      * Returns true iff this part can be closed
      *
      * @return true iff this part can be closed
      * @since 3.1
      */
     virtual bool IsCloseable() const = 0;
 
     /**
      * Returns the local toolbar for this part, or null if this part does not
      * have a local toolbar. Callers must not dispose or downcast the return value.
      *
      * @return the local toolbar for the part, or null if none
      */
     virtual QToolBar* GetToolBar() = 0;
 
     /**
      * Returns the menu for this part or null if none
      *
      * @return the menu for this part or null if none
      */
     //virtual IPartMenu getMenu();
 
     /**
      * Returns an SWT control that can be used to indicate the tab order for
      * this part. This can be returned as part of the result to
-     * {@link StackPresentation#getTabList(IPresentablePart)}. Any other use of this control is
+     * {@link StackPresentation#GetTabList}. Any other use of this control is
      * unsupported. This may return a placeholder control that is only
      * meaningful in the context of <code>getTabList</code>.
      *
      * @return the part's control (not null)
      */
     virtual QWidget* GetControl() = 0;
 
     /**
    * Get a property from the part's arbitrary property set.
    * <p>
    * <b>Note:</b> this is a different set of properties than the ones covered
    * by the PROP_* constants.
    * </p>
    *
    * @param key
    *            The property key to retrieve. Must not be <code>null</code>.
    * @return the property, or <code>null</code> if that property is not set.
    * @since 3.3
    */
   virtual QString GetPartProperty(const QString& key) const = 0;
 
 };
 
 }
 
 #endif /* BERRYIPRESENTABLEPART_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h
index 973ba9de2a..ed7ffc4cba 100755
--- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h
+++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIPresentationSerializer.h
@@ -1,62 +1,62 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYIPRESENTATIONSERIALIZER_H_
 #define BERRYIPRESENTATIONSERIALIZER_H_
 
 #include "berryIPresentablePart.h"
 
 #include <QString>
 
 namespace berry {
 
 /**
  * This interface is given to a StackPresentation when it is loading or saving
  * its state.
  *
  * Not intended to be implemented by clients
  *
  * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IPresentationSerializer {
     /**
      * Returns a unique identifier for the given part. The identifier can later
      * be used to restore the original part by calling getPart(...). This identifier
      * is guaranteed to be unique within a particular StackPresentation. However,
      * the same part may be assigned a different ID each time the presentation is saved.
      *
      * @param part a part to be identified (not null)
      * @return a unique identifier for the part (not null)
      */
     virtual QString GetId(IPresentablePart::Pointer part) = 0;
 
     /**
      * Returns a presentable part, given an id that was generated when the presentation
      * was saved.
      *
      * @param id an ID that was generated by getId(IPresentablePart) when the presentation
      * was saved
      * @return the presentable part associated with the given id, or null if none. Note
      * that even if the ID was valid when the presentation was saved, it may not
      * be valid when the presentation is restored. Callers must be prepared
      * to handle a null result.
      */
     virtual IPresentablePart::Pointer GetPart(const QString& id) = 0;
 
     virtual ~IPresentationSerializer();
 };
 
 }
 
 #endif /* BERRYIPRESENTATIONSERIALIZER_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h b/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h
index 0b460acee5..089152e7c4 100755
--- a/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h
+++ b/Plugins/org.blueberry.ui.qt/src/presentations/berryIStackPresentationSite.h
@@ -1,188 +1,187 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYISTACKPRESENTATIONSITE_H_
 #define BERRYISTACKPRESENTATIONSITE_H_
 
 #include <berryMacros.h>
 
 #include <list>
 
 #include "berryIPresentablePart.h"
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry
 {
 
 /**
  * Represents the main interface between a StackPresentation and the workbench.
  *
  * Not intended to be implemented by clients.
  *
  * @since 3.0
- * @noimplement This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IStackPresentationSite : public Object
 {
 
   berryObjectMacro(berry::IStackPresentationSite);
 
   static int STATE_MINIMIZED; // = 0;
 
   static int STATE_MAXIMIZED; // = 1;
 
   static int STATE_RESTORED; // = 2;
 
   ~IStackPresentationSite() override;
 
   /**
    * Sets the state of the container. Called by the presentation when the
    * user causes the the container to be minimized, maximized, etc.
    *
    * @param newState one of the STATE_* constants
    */
   virtual void SetState(int newState) = 0;
 
   /**
    * Returns the current state of the site (one of the STATE_* constants)
    *
    * @return the current state of the site (one of the STATE_* constants)
    */
   virtual int GetState() = 0;
 
   /**
    * Returns true iff the site supports the given state
    *
    * @param state one of the STATE_* constants, above
    * @return true iff the site supports the given state
    */
   virtual bool SupportsState(int state) = 0;
 
   /**
    * Begins dragging the given part
    *
    * @param beingDragged the part to drag (not null)
    * @param initialPosition the mouse position at the time of the initial mousedown
    * (display coordinates, not null)
    * @param keyboard true iff the drag was initiated via mouse dragging,
    * and false if the drag may be using the keyboard
    */
   virtual void DragStart(IPresentablePart::Pointer beingDragged,
       QPoint& initialPosition, bool keyboard) = 0;
 
   /**
    * Closes the given set of parts.
    *
    * @param toClose the set of parts to close (Not null. All of the entries must be non-null)
    */
   virtual void Close(const QList<IPresentablePart::Pointer>& toClose) = 0;
 
   /**
    * Begins dragging the entire stack of parts
    *
    * @param initialPosition the mouse position at the time of the initial mousedown (display coordinates,
    * not null)
    * @param keyboard true iff the drag was initiated via mouse dragging,
    * and false if the drag may be using the keyboard
    */
   virtual void DragStart(QPoint& initialPosition, bool keyboard) = 0;
 
   /**
    * Returns true iff this site will allow the given part to be closed
    *
    * @param toClose part to test (not null)
    * @return true iff the part may be closed
    */
   virtual bool IsCloseable(IPresentablePart::Pointer toClose) = 0;
 
   /**
    * Returns true iff the given part can be dragged. If this
    * returns false, the given part should not trigger a drag.
    *
    * @param toMove part to test (not null)
    * @return true iff this part is a valid drag source
    */
   virtual bool IsPartMoveable(IPresentablePart::Pointer toMove) = 0;
 
   /**
    * Returns true iff this entire stack can be dragged
    *
    * @return true iff the stack can be dragged
    */
   virtual bool IsStackMoveable() = 0;
 
   /**
    * Makes the given part active
    *
    * @param toSelect
    */
   virtual void SelectPart(IPresentablePart::Pointer toSelect) = 0;
 
   /**
    * Returns the currently selected part or null if the stack is empty
    *
    * @return the currently selected part or null if the stack is empty
    */
   virtual IPresentablePart::Pointer GetSelectedPart() = 0;
 
   /**
    * Adds system actions to the given menu manager. The site may
    * make use of the following group ids:
    * <ul>
    * <li><code>close</code>, for close actions</li>
    * <li><code>size</code>, for resize actions</li>
    * <li><code>misc</code>, for miscellaneous actions</li>
    * </ul>
    * The presentation can control the insertion position by creating
    * these group IDs where appropriate.
    *
    * @param menuManager the menu manager to populate
    */
   //virtual void AddSystemActions(IMenuManager menuManager);
 
   /**
    * Notifies the workbench that the preferred size of the presentation has
    * changed. Hints to the workbench that it should trigger a layout at the
    * next opportunity.
    *
    * @since 3.1
    */
   virtual void FlushLayout() = 0;
 
   /**
    * Returns the list of presentable parts currently in this site
    *
    * @return the list of presentable parts currently in this site
    * @since 3.1
    */
   virtual QList<IPresentablePart::Pointer> GetPartList() = 0;
 
   /**
    * Returns the property with the given id or <code>null</code>. Folder
    * properties are an extensible mechanism for perspective authors to
    * customize the appearance of view stacks. The list of customizable
    * properties is determined by the presentation factory, and set in the
    * perspective factory.
    *
    * @param id
    *            Must not be <code>null</code>.
    * @return property value, or <code>null</code> if the property is not
    *         set.
    * @since 3.3
    */
   virtual QString GetProperty(const QString& id) = 0;
 };
 
 }
 
 #endif /* BERRYISTACKPRESENTATIONSITE_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h
index e805576c54..204046e379 100755
--- a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h
+++ b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceFactory.h
@@ -1,73 +1,71 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 
 #ifndef BERRYISERVICEFACTORY_H_
 #define BERRYISERVICEFACTORY_H_
 
 #include <org_blueberry_ui_qt_Export.h>
 
 #include <QObject>
 
 namespace berry {
 
 struct IServiceLocator;
 
 class Object;
 
 /**
  * A factory for creating services for use with the
  * <code>org.blueberry.ui.services</code> extension point. You are given a
  * service locator to look up other services, and can retrieve your parent
  * service (if one has already been created).
  */
 struct BERRY_UI_QT IServiceFactory {
 
   virtual ~IServiceFactory();
 
   /**
    * When a service locator cannot find a service it will request one from the
    * registry, which will call this factory create method.
    * <p>
    * You can use the locator to get any needed services and a parent service
    * locator will be provided if you need access to the parent service. If the
    * parent object return from the parent locator is not <code>null</code>
    * it can be cast to the service interface that is requested. The parent
    * service locator will only return the serviceInterface service.
    * </p>
    *
-   * @param serviceInterface
-   *            the service we need to create. Will not be <code>null</code>.
    * @param parentLocator
    *            A locator that can return a parent service instance if
    *            desired. The parent service can be cast to serviceInterface.
    *            Will not be <code>null</code>.
    * @param locator
    *            the service locator which can be used to retrieve dependent
    *            services. Will not be <code>null</code>
    * @return the created service or <code>null</code>
    */
   template<class S>
   S* Create(IServiceLocator* parentLocator, IServiceLocator* locator) const
   {
     return dynamic_cast<S*>(this->Create(qobject_interface_iid<S*>(), parentLocator, locator));
   }
 
   virtual Object* Create(const QString& serviceInterface,
                          IServiceLocator* parentLocator, IServiceLocator* locator) const = 0;
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::IServiceFactory, "org.blueberry.ui.IServiceFactory")
 
 #endif /* BERRYISERVICEFACTORY_H_ */
diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h
index 85ccc77cab..7088cde36f 100644
--- a/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h
+++ b/Plugins/org.blueberry.ui.qt/src/services/berryIServiceScopes.h
@@ -1,67 +1,67 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYISERVICESCOPES_H
 #define BERRYISERVICESCOPES_H
 
 #include <QString>
 
 #include <org_blueberry_ui_qt_Export.h>
 
 namespace berry {
 
 /**
  * Different levels of service locators supported by the workbench.
  *
- * @noextend This interface is not intended to be extended by clients.
- * @noimplement This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be extended by clients.
+ * @note This interface is not intended to be implemented by clients.
  */
 struct BERRY_UI_QT IServiceScopes
 {
   /**
    * The global service locator scope.
    */
   static const QString WORKBENCH_SCOPE; // = "org.blueberry.ui.IWorkbench";
 
   /**
    * A sub-scope to the global scope that is not the workbench window.
    */
   static const QString DIALOG_SCOPE; // = "org.blueberry.ui.IDialog";
 
   /**
    * A workbench window service locator scope.
    */
   static const QString WINDOW_SCOPE; // = "org.blueberry.ui.IWorkbenchWindow";
 
   /**
    * A part site service locator scope.  Found in editors and views.
    */
   static const QString PARTSITE_SCOPE; // = "org.blueberry.ui.IWorkbenchPartSite";
 
   /**
    * A page site service locator scope.  Found in pages in a PageBookView.
    */
   static const QString PAGESITE_SCOPE; // = "org.blueberry.ui.PageSite";
 
   /**
    * An editor site within a MultiPageEditorPart.
    */
   static const QString MPESITE_SCOPE; // = "org.blueberry.ui.MultiPageEditorSite";
 
 private:
 
   IServiceScopes();
 };
 
 }
 
 #endif // BERRYISERVICESCOPES_H
diff --git a/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h b/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h
index c6d096ba9a..1ad8e2a6fd 100644
--- a/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h
+++ b/Plugins/org.blueberry.ui.qt/src/services/berryISourceProviderService.h
@@ -1,85 +1,85 @@
 /*============================================================================
 
 The Medical Imaging Interaction Toolkit (MITK)
 
 Copyright (c) German Cancer Research Center (DKFZ)
 All rights reserved.
 
 Use of this source code is governed by a 3-clause BSD license that can be
 found in the LICENSE file.
 
 ============================================================================*/
 
 #ifndef BERRYISOURCEPROVIDERSERVICE_H
 #define BERRYISOURCEPROVIDERSERVICE_H
 
 #include "org_blueberry_ui_qt_Export.h"
 
 #include "berryObject.h"
 
 #include <QList>
 
 namespace berry {
 
 template<class T> class SmartPointer;
 
 struct ISourceProvider;
 
 /**
  * <p>
  * A service from which all of the source providers can be retrieved.
  * </p>
  * <p>
  * This service can be acquired from your service locator:
  * <pre>
  *   ISourceProviderService* service = GetSite()->GetService<ISourceProviderService>();
  * </pre>
  * <ul>
  * <li>This service is available globally.</li>
  * </ul>
  * </p>
  *
- * @noimplement This interface is not intended to be implemented by clients.
- * @noextend This interface is not intended to be extended by clients.
+ * @note This interface is not intended to be implemented by clients.
+ * @note This interface is not intended to be extended by clients.
  *
  * @see IEvaluationService
  */
 struct BERRY_UI_QT ISourceProviderService : public virtual Object
 {
 
   berryObjectMacro(berry::ISourceProviderService);
 
   ~ISourceProviderService() override;
 
   /**
    * Retrieves a source provider providing the given source. This is used by
    * clients who only need specific sources.
    *
    * @param sourceName
    *            The name of the source; must not be <code>null</code>.
    * @return A source provider which provides the request source, or
    *         <code>null</code> if no such source exists.
    * @see ISources
    */
   virtual SmartPointer<ISourceProvider> GetSourceProvider(const QString& sourceName) const = 0;
 
   /**
    * Retrieves all of the source providers registered with this service at the
    * time of this call.
    * <p>
    * <code>IEvaluationService</code> can be used
    * to receive notifications about source variable changes and to
    * evaluate core expressions against source providers.
    * </p>
    *
    * @return The source providers registered with this service. This value may be empty.
    */
   virtual QList<SmartPointer<ISourceProvider> > GetSourceProviders() const = 0;
 
 };
 
 }
 
 Q_DECLARE_INTERFACE(berry::ISourceProviderService, "org.blueberry.ui.ISourceProviderService")
 
 #endif // BERRYISOURCEPROVIDERSERVICE_H