Skip to main content
aboutsummaryrefslogtreecommitdiffstats
diff options
context:
space:
mode:
authorNicolas FAUVERGUE2018-06-27 15:41:06 +0000
committerNicolas FAUVERGUE2018-07-02 08:22:55 +0000
commit93d12bb72802f36f0e2f5a8855d4626cb434824f (patch)
treeb2a21cd12103db61232a00825170a51b38a009de
parent93e5063f6098c0d296640c0b3df7abde03417ad5 (diff)
downloadorg.eclipse.papyrus-93d12bb72802f36f0e2f5a8855d4626cb434824f.tar.gz
org.eclipse.papyrus-93d12bb72802f36f0e2f5a8855d4626cb434824f.tar.xz
org.eclipse.papyrus-93d12bb72802f36f0e2f5a8855d4626cb434824f.zip
Bug 479970 - [Doc] Decoration Service framework shall provide
documentation and example https://bugs.eclipse.org/bugs/show_bug.cgi?id=479970 -Example for decoration service, Shape provider and GMF decorator. see https://wiki.eclipse.org/Manage_Decorators_On_Papyrus -add wizard to import project Change-Id: I5186cebaf00dd0f34fb195279b322f460dab46d6 Signed-off-by: Mickael ADAM <mickael.adam@ALL4TEC.net> Signed-off-by: Nicolas FAUVERGUE <nicolas.fauvergue@cea.fr>
-rw-r--r--features/papyrus-main-features/org.eclipse.papyrus.doc.feature/feature.xml7
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.project34
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.core.resources.prefs3
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.core.prefs286
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.ui.prefs68
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.m2e.core.prefs4
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/META-INF/MANIFEST.MF11
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/about.html28
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/build.properties6
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/plugin.xml39
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/pom.xml51
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decoration-main-toc.xml7
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decorationService.mediawiki704
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/documentation.css11
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/example/org.eclipse.papyrus.example.decoration.zipbin0 -> 64554 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/icons/papyrus.pngbin0 -> 602 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractDecorator.jpgbin0 -> 25524 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractShapeProvider.jpgbin0 -> 40548 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AllocationTable.jpgbin0 -> 22318 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AppearenceTab.jpgbin0 -> 15141 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationExtensionPoint.jpgbin0 -> 74132 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationService.jpgbin0 -> 55841 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecoratorProviderExtensionPoint.jpgbin0 -> 84682 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExample.jpgbin0 -> 29344 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExampleWithShapeProvider.jpgbin0 -> 24510 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/EditPolicyProviderExtension.jpgbin0 -> 68967 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitecture.jpgbin0 -> 83553 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithShapeProvider.jpgbin0 -> 20151 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithoutMarker.jpgbin0 -> 25196 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleProfile.jpgbin0 -> 11171 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExpectedResult.jpgbin0 -> 22387 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFExampleArchitecture.jpgbin0 -> 98586 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFImplementedExtensionPoint.jpgbin0 -> 43054 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFResult.jpgbin0 -> 26183 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecorationSpecificFunctions.jpgbin0 -> 39364 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratiorProvider.jpgbin0 -> 26454 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratorTarget.jpgbin0 -> 48457 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IPapyrusMarker.jpgbin0 -> 12851 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/NodesStereotyped.jpgbin0 -> 3571 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtension.jpgbin0 -> 59893 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtensionPoint.jpgbin0 -> 66163 bytes
-rw-r--r--plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/SpecificFunctionExtension.jpgbin0 -> 73625 bytes
-rw-r--r--plugins/doc/pom.xml1
43 files changed, 1260 insertions, 0 deletions
diff --git a/features/papyrus-main-features/org.eclipse.papyrus.doc.feature/feature.xml b/features/papyrus-main-features/org.eclipse.papyrus.doc.feature/feature.xml
index fa8bd1594d8..bd59278a218 100644
--- a/features/papyrus-main-features/org.eclipse.papyrus.doc.feature/feature.xml
+++ b/features/papyrus-main-features/org.eclipse.papyrus.doc.feature/feature.xml
@@ -79,6 +79,13 @@ released in the info center.
install-size="0"
version="0.0.0"
unpack="false"/>
+
+ <plugin
+ id="org.eclipse.papyrus.infra.services.decoration.doc"
+ download-size="0"
+ install-size="0"
+ version="0.0.0"
+ unpack="false"/>
<plugin
id="org.eclipse.papyrus.infra.architecture.doc"
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.project b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.project
new file mode 100644
index 00000000000..7eb4aea8ab9
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.project
@@ -0,0 +1,34 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+ <name>org.eclipse.papyrus.infra.services.decoration.doc</name>
+ <comment></comment>
+ <projects>
+ </projects>
+ <buildSpec>
+ <buildCommand>
+ <name>org.eclipse.jdt.core.javabuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.ManifestBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.pde.SchemaBuilder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ <buildCommand>
+ <name>org.eclipse.m2e.core.maven2Builder</name>
+ <arguments>
+ </arguments>
+ </buildCommand>
+ </buildSpec>
+ <natures>
+ <nature>org.eclipse.m2e.core.maven2Nature</nature>
+ <nature>org.eclipse.pde.PluginNature</nature>
+ <nature>org.eclipse.jdt.core.javanature</nature>
+ </natures>
+</projectDescription>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.core.resources.prefs b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 00000000000..a81f5551155
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,3 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
+encoding/resource=UTF-8
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.core.prefs b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 00000000000..4e8c6b6e59a
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,286 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_lambda_body=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=260
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false
+org.eclipse.jdt.core.formatter.indentation.size=4
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_type_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_lambda_arrow=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=260
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=5
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=tab
+org.eclipse.jdt.core.formatter.tabulation.size=4
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.ui.prefs b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 00000000000..954281dbc31
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,68 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=true
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_functional_interfaces=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=false
+cleanup.format_source_code=false
+cleanup.format_source_code_changes_only=false
+cleanup.insert_inferred_type_arguments=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=false
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+cleanup.qualify_static_member_accesses_with_declaring_class=true
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_redundant_type_arguments=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=true
+cleanup.remove_unnecessary_nls_tags=true
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_anonymous_class_creation=false
+cleanup.use_blocks=true
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_lambda=true
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup.use_type_arguments=false
+cleanup_profile=_Papyrus
+cleanup_settings_version=2
+eclipse.preferences.version=1
+formatter_profile=_Papyrus
+formatter_settings_version=12
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.staticondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment">/**\n * @return the ${bare_field_name}\n */</template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment">/**\n * @param ${param} the ${bare_field_name} to set\n */</template><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\n * Constructor.\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*****************************************************************************\n * Copyright (c) ${year} CEA LIST and others.\n * \n * All rights reserved. This program and the accompanying materials\n * are made available under the terms of the Eclipse Public License v1.0\n * which accompanies this distribution, and is available at\n * http\://www.eclipse.org/legal/epl-v10.html\n *\n * Contributors\:\n * CEA LIST - Initial API and implementation\n * \n *****************************************************************************/\n</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author ${user}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment">/**\n * \n */</template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\n * ${tags}\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment">/**\n * ${see_to_overridden}\n *\n * ${tags}\n */</template><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${see_to_target}\n *\n * ${tags}\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">// ${todo} Auto-generated catch block\n${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">// ${todo} Auto-generated method stub\n${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}\n// ${todo} Auto-generated constructor stub</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.m2e.core.prefs b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 00000000000..f897a7f1cb2
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/META-INF/MANIFEST.MF b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/META-INF/MANIFEST.MF
new file mode 100644
index 00000000000..3a87d80e442
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/META-INF/MANIFEST.MF
@@ -0,0 +1,11 @@
+Manifest-Version: 1.0
+Require-Bundle: org.eclipse.help;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.papyrus.infra.doc;bundle-version="[1.2.0,2.0.0)",
+ org.eclipse.emf.common.ui;bundle-version="[2.10.0,3.0.0)"
+Bundle-Vendor: Eclipse Modeling Project
+Bundle-Version: 1.0.0.qualifier
+Bundle-Name: Service Decoration Documentation
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.infra.services.decoration.doc;singleton:=true
+Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.papyrus.infra.services.decoration.doc
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/about.html b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/about.html
new file mode 100644
index 00000000000..dd3c089a94c
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/about.html
@@ -0,0 +1,28 @@
+<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN"
+ "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
+<html xmlns="http://www.w3.org/1999/xhtml">
+<head>
+<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1"/>
+<title>About</title>
+</head>
+<body lang="EN-US">
+<h2>About This Content</h2>
+
+<p>November 14, 2008</p>
+<h3>License</h3>
+
+<p>The Eclipse Foundation makes available all content in this plug-in (&quot;Content&quot;). Unless otherwise
+indicated below, the Content is provided to you under the terms and conditions of the
+Eclipse Public License Version 1.0 (&quot;EPL&quot;). A copy of the EPL is available
+at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
+For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
+
+<p>If you did not receive this Content directly from the Eclipse Foundation, the Content is
+being redistributed by another party (&quot;Redistributor&quot;) and different terms and conditions may
+apply to your use of any object code in the Content. Check the Redistributor's license that was
+provided with the Content. If no such license exists, contact the Redistributor. Unless otherwise
+indicated below, the terms and conditions of the EPL still apply to any source code in the Content
+and such source code may be obtained at <a href="http://www.eclipse.org">http://www.eclipse.org</a>.</p>
+
+</body>
+</html> \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/build.properties b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/build.properties
new file mode 100644
index 00000000000..86952d093bd
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/build.properties
@@ -0,0 +1,6 @@
+bin.includes = META-INF/,\
+ about.html,\
+ plugin.xml,\
+ target/generated-eclipse-help/**
+src.includes = about.html,\
+ resource/
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/plugin.xml b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/plugin.xml
new file mode 100644
index 00000000000..6fde3dde370
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/plugin.xml
@@ -0,0 +1,39 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+ <extension
+ point="org.eclipse.help.toc">
+ <toc
+ file="target/generated-eclipse-help/decoration-main-toc.xml"
+ primary="false">
+ </toc>
+ <toc
+ file="target/generated-eclipse-help/decorationService-toc.xml"
+ primary="false">
+ </toc>
+ </extension>
+ <extension
+ point="org.eclipse.ui.newWizards">
+ <wizard
+ category="org.eclipse.ui.Examples/org.eclipse.papyrus.examples"
+ class="org.eclipse.emf.common.ui.wizard.ExampleInstallerWizard"
+ icon="resource/icons/papyrus.png"
+ id="org.eclipse.papyrus.example.decoration.wizard"
+ name="Decoration Services Examples">
+ </wizard>
+ </extension>
+ <extension
+ point="org.eclipse.emf.common.ui.examples">
+ <example
+ id="org.eclipse.papyrus.example.decoration.example"
+ pageImage="resource/icons/papyrus.png"
+ wizardID="org.eclipse.papyrus.example.decoration.wizard">
+ <projectDescriptor
+ contentURI="resource/example/org.eclipse.papyrus.example.decoration.zip"
+ description="Imports examples of use to deploy decoration on Elements of Papyrus diagrams. The GMF decoration service, the Papyrus decoration service and the shape povider. These framework have been describe on help: &quot;Manage Decorators On Papyrus&quot; "
+ name="org.eclipse.papyrus.example.decoration">
+ </projectDescriptor>
+ </example>
+ </extension>
+
+</plugin>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/pom.xml b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/pom.xml
new file mode 100644
index 00000000000..ec4a51ddbaf
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/pom.xml
@@ -0,0 +1,51 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+ <modelVersion>4.0.0</modelVersion>
+ <parent>
+ <artifactId>org.eclipse.papyrus.plugins-doc</artifactId>
+ <groupId>org.eclipse.papyrus</groupId>
+ <version>0.0.1-SNAPSHOT</version>
+ </parent>
+ <artifactId>org.eclipse.papyrus.infra.services.decoration.doc</artifactId>
+ <version>1.0.0-SNAPSHOT</version>
+ <packaging>eclipse-plugin</packaging>
+
+ <build>
+ <plugins>
+ <plugin>
+ <groupId>org.eclipse.mylyn.docs</groupId>
+ <artifactId>org.eclipse.mylyn.wikitext.maven</artifactId>
+ <configuration>
+ <sourceFolder>resource</sourceFolder>
+ <outputFolder>${project.build.directory}/generated-eclipse-help</outputFolder>
+ <copyrightNotice>${help.copyrightNotice}</copyrightNotice>
+ <title>${help.documentTitle}</title>
+ <multipleOutputFiles>false</multipleOutputFiles>
+ <navigationImages>true</navigationImages>
+ <formatOutput>true</formatOutput>
+ <htmlFilenameFormat>$1.html</htmlFilenameFormat>
+ <xmlFilenameFormat>$1-toc.xml</xmlFilenameFormat>
+ <helpPrefix>target/generated-eclipse-help</helpPrefix>
+ <stylesheetUrls>
+ <param>styles/main.css</param>
+ </stylesheetUrls>
+ </configuration>
+ <executions>
+ <execution>
+ <goals>
+ <goal>eclipse-help</goal>
+ </goals>
+ </execution>
+ </executions>
+ <dependencies>
+ <dependency>
+ <groupId>org.eclipse.mylyn.docs</groupId>
+ <artifactId>org.eclipse.mylyn.wikitext.mediawiki</artifactId>
+ <version>${mylyn.wikitext.version}</version>
+ </dependency>
+ </dependencies>
+ </plugin>
+ </plugins>
+ </build>
+ <name>Papyrus Infra Service decoration doc</name>
+</project> \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decoration-main-toc.xml b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decoration-main-toc.xml
new file mode 100644
index 00000000000..2962b254730
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decoration-main-toc.xml
@@ -0,0 +1,7 @@
+<?xml version='1.0' encoding='utf-8' ?>
+<toc label="Manage Decorators On Papyrus" link_to="../org.eclipse.papyrus.infra.doc/toc.xml#PapyrusDocDev">
+ <topic href="target/generated-eclipse-help/decoration.html" label="Manage Decorators On Papyrus&quot;">
+ <link toc="target/generated-eclipse-help/decorationService-toc.xml"/>
+ <anchor id="decorationService"/>
+ </topic>
+</toc>
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decorationService.mediawiki b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decorationService.mediawiki
new file mode 100644
index 00000000000..236b087c614
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/decorationService.mediawiki
@@ -0,0 +1,704 @@
+__TOC__
+
+= Introduction =
+The purpose of this documentation is to give the minimum information to deploy your own decorator for Papyrus elements as EditPart.
+To manage decorator on Edit Part two solutions are provided by Papyrus:
+
+* Papyrus Decoration Service Framework
+* Shape Service Framework
+* GMF Decorator Service Framework
+
+Decoration Service is compliant with gif, ico, bmp, jpg and png files. Contextual message can be set for each decoration, and propagation to parents can be allowed.
+Unlike Decoration Service, Shape Service is only compliant to svg files, but the position of the shape can be selected within in the properties view. Others differences are that the shape can be displayed in the symbol compartment and it can be used as the shape of the figure.
+
+GMF Decorator Service Framework can also be used to display image. As the Decoration Service from papyrus you will be available to display several formats of images.
+
+=Papyrus Decoration Service Framework=
+
+== Architecture ==
+
+The decoration service architecture has already been described on a document ([http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/tree/plugins/infra/services/org.eclipse.papyrus.infra.services.decoration/docs/DecorationService_v01_d2011-05-23.pdf?h=streams/1.1-maintenance here]). You will find a description of main interfaces or classes to be implemented or to be called in order to use the framework and add specific decoration.
+
+=== DecorationService ===
+
+[[File:images/DecorationService.jpg]]
+
+Decoration service permits to manage decoration on EObject. Decorations are added through this service. It provides listener to observe changes. This service can be retrieved with: <br>
+
+<source lang="java">
+DecorationService decorationService = ServiceUtilsForEditPart.getInstance().getService(DecorationService.class, editPart);
+</source>
+
+==== Main methods ====
+
+*'''addDecorations(IPapyrusMarker marker, EObject element)'''
+:Add a new Decoration to a decorations Map with an IPapyrusMarker associated to an element.
+
+*'''addDecoration(String id, String type, EObject element, ImageDescriptor decorationImageForGE, ImageDescriptor decorationImageForME, PreferedPosition position, String message, int priority)'''
+:Add a new decoration without passing by a marker.
+
+*'''removeDecoration(String id)'''
+:Remove a decoration from the decorations Map,
+
+*'''getDecorations(EObject element):List<IPapyrusDecoration>'''
+:Return an Interface of decoration (IDecoration) for the element
+
+=== IPapyrusMarker ===
+
+[[File:images/IPapyrusMarker.jpg]]
+
+IPapyrusMarker provides a protocol for markers that annotates elements with information, often used for problems. It is an analogy of the Eclipse IMarker API for resources in the workspace, to be implemented in order to create its own marker used for custom decoration.
+
+==== Main methods ====
+
+*'''getType():String'''
+:Return the type of the concret Papyrus marker. Is also used to link a decorator to the marker(see Decoration Image Extension Point).
+
+*'''exist():Boolean'''
+:Return true if the marker exists on the view.
+
+=== IDecorationSpecificFunctions ===
+
+[[File:images/IDecorationSpecificFunctions.jpg]]
+
+This interface allows to access a set of functions that depends on the decorator type. The objective is that plug-ins for a specific decoration type can implement this interface (via an extension point) to provide the information that depends on the decoration type, notably the used icons, their position, the way how messages are calculated and how decoration might propagate from children to parents.
+To be implemented in order to create its own decoration.It Is related to a marker through ''decorationImage'' extension point.
+
+==== Main methods ====
+
+*'''getImageDescriptorForGE(IPapyrusMarker marker):ImageDescriptor'''
+:Get the image descriptor for a graphical editor.
+
+*'''getImageDescriptorForME(IPapyrusMarker marker):ImageDescriptor'''
+:Get the image descriptor for model explorer. May be identical to the image for a graphical editor.
+
+*'''getPreferedPosition(IPapyrusMarker marker):PreferedPosition'''
+:Return the preferred position for markers within the model explorer.
+
+*'''getMessage(IPapyrusMarker marker):String'''
+:Return a textual information for the marker (used for fixing messages that do not need to be stored in each marker).
+
+*'''getPriority(IPapyrusMarker marker):int'''
+:Return the priority of a decoration. This enables selecting a marker with a high priority, if multiple markers for the same model element and the same position exist.
+
+*'''supportsMarkerPropagation():MarkChildren'''
+:Does the decoration type support a propagation from child to parent, e.g. in case of a problem on a parents' marker (package) might be marked as containing warnings or errors.
+
+*'''markerPropagation(EList<IPapyrusDecoration> childDecorations):IPapyrusDecoration'''
+:Calculate a propagated marker for the parent, given the set of child decorations. Return the calculated decoration for the parent depending on a set of decorations on children.
+
+=== Decoration Image Extension Point ===
+
+Provide an ImageDescription for a decoration marker. It allows to link a IDecorationSpecificFunction class to a Papyrus marker through his type.
+
+'''Identifier:''' org.eclipse.papyrus.infra.services.decoration.decorationImage
+
+[[File:images/DecorationExtensionPoint.jpg]]
+
+=Shape Service Framework=
+The shape service framework allows to display svg document in the symbol compartment or at a chosen position on the edit part.
+
+==Architecture==
+===AbstractShapeProvider===
+The framework provides a simple abstract provider class in order to add svg shape to edit parts. Only few methods have to be implemented.
+
+[[File:images/AbstractShapeProvider.jpg]]
+
+====Main methods====
+
+*'''getShapes(EObject view):List<RenderedImage>'''
+:Returns the list of shapes proposed by this provider or null if no shapes have to be displayed by this provider.
+
+*'''getSVGDocument(EObject view):List<SVGDocument>'''
+:Return the list of SVG DOCUMENT or null if no shape has to be displayed by this provider.
+
+*'''providesShapes(EObject view):Boolean'''
+:Returns true if the provider can display shapes. This methods allows to compute if shapes can be displayed instead of computing the whole list of shapes to be displayed.
+
+===ShapeProvider Extension Point===
+To be loaded, implemented shape providers have to be linked through a specific extension point.
+
+[[File:images/ShapeProviderExtensionPoint.jpg]]
+
+===Appearence tab===
+To display the shape on the edit parts and to choose the visibility and the position, attributes have to be set on the appearance tab of the properties view.
+
+[[File:images/AppearenceTab.jpg]]
+
+=GMF Decorator Service Framework=
+
+GMF provide a decorator service to display decorations on views. An extension point exists to use to load your custom decorator provider. By default the position of decoration is set according to the direction, but you can customize its location throught a locator(<code>org.eclipse.draw2d.Locator</code>).
+
+==Architecture==
+===IDecoratorProvider ===
+
+[[File:images/IDecoratiorProvider.jpg]]
+
+Clients providing an extension to the DecoratorService need to create a decorator provider class that implements the IDecoratorProvider interface.
+IDecoratorProvider is the interface for providers of the decorator service. A decorator provider is responsible for installing its decorators on the decorator targets that it wishes to decorate.
+
+====Main methods====
+*'''provides(IOperation operation):Boolean'''
+:Determines whether this decorator provider supports adding decorations to a given decoration target. The operation in the provides method will be of type <code>CreateDecoratorsOperation</code> from which the decorator target can be extracted.
+
+*'''createDecorators(IDecoratorTarget decoratorTarget)'''
+:Creates the decorators and installs them on the decorator target.
+
+===AbstractDecorator===
+
+[[File:images/AbstractDecorator.jpg]]
+
+Clients can have their decorator subclass this to inherit utility methods for adding decoration figures.
+
+====Main methods====
+*'''getDecoration():Decoration '''
+:Returns the decoration.
+
+*'''getDecoratorTarget():DecoratorTarget'''
+:Gets the object to be decorated.
+
+*'''removeDecoration()'''
+:Removes the decoration if it exists and sets it to null.
+
+*'''setDecoration(IDecoration decoration)'''
+:The decoration to set.
+
+*'''refresh()'''
+:Refreshes the decorations. This is called when the host decorator target is refreshed.
+
+===IDecoratorTarget===
+[[File:images/IDecoratorTarget.jpg]]
+
+It's the interface of targeted element. It will not implemented by client.
+Decorator in decorator target have some properties which can be set:
+*The direction relative to the shape to place the decoration.
+*The margin is the space between the shape's edge and the decoration. A positive margin will place the figure outside the shape, a negative margin will place the decoration inside the shape.
+*Volatile: True if this decoration is volatile (i.e. not to be included in the printed output of a diagram); false otherwise.
+
+====Main methods====
+*'''installDecorator(Object key, IDecorator decorator)'''
+:Installs a decorator on this decorator target using a key (a String identifier). If another decorator is installed on the same target with the same key then it will override the previous one installed.
+
+*'''addShapeDecoration(Image image, Direction direction, int margin, boolean isVolatile):IDecoration'''
+:Adds an image as a decoration on a shape, according to a direction, the margin and the volatilivity. Return the decoration object, which will be needed to remove the decoration from the shape.
+
+*'''addShapeDecoration(IFigure figure, Direction direction, int margin, boolean isVolatile):IDecoration'''
+: Adds a figure as a decoration on a shape.
+
+*'''addConnectionDecoration(Image image, int percentageFromSource, boolean isVolatile):IDecoration'''
+:Adds an image as a decoration on a connection. Return the decoration object, which will be needed to remove the decoration from the connection.
+
+*'''addConnectionDecoration(IFigure figure, int percentageFromSource, boolean isVolatile):IDecoration'''
+:Adds a figure as a decoration on a connection.
+
+*'''removeDecoration(IDecoration decoration)'''
+:Removes the decoration from the shape or connection it has been added to.
+
+===GMF Decorator Provider Extension Point===
+his extension point is used to define decorator providers for the decorator service (org.eclipse.gmf.runtime.diagram.ui.services.decorator). The Decoration Service gives clients the ability to decorate diagram elements with an image or figure.
+
+[[File:images/DecoratorProviderExtensionPoint.jpg]]
+
+= Application Example =
+__TOC__
+This part will provide a simple example to use available services to display decorations on edit part according to the conditions described above.
+
+== Context ==
+SysML profile will be used as allocation profile. An "allocation table" affects the call behavior to nodes. Nodes can be stereotyped with ''NodeA'' and ''NodeB'' stereotypes.
+Depending on the node on which the ''callBehavior'' is allocated, the decorator of the ''callBehavior'' should change.
+
+=== Example ===
+With this profile:
+
+[[File:images/ExampleProfile.jpg]]
+
+Applied on these two nodes:
+
+[[File:images/NodesStereotyped.jpg]]
+
+And with this allocation Table:
+
+[[File:images/AllocationTable.jpg]]
+
+The expected result is:
+
+[[File:images/ExpectedResult.jpg]]
+
+===Using Decoration Service===
+
+====Implemented architecture ====
+
+On this example, we have used 2 markers and one decoration specific function for each marker. The association between markers and decoration are done thanks to a specific extension point.
+An Edit policy is used to add markers to the decoration Service according to the model context. The edit policy is installed to the right edit parts through an edit policy provider, which is loaded by extension point.
+
+[[File:images/ExampleArchitecture.jpg]]
+
+====Implemented markers ====
+
+For each type of stereotype ''NodeA'' and ''NodeB'', a marker have been implemented with a specific markerType:
+
+<source lang="java">
+public class NodeAMarker implements IPapyrusMarker {
+ public static final String MARKER_TYPE = "org.eclipse.papyrus.infra.services.decoration.example.NodeA"; //$NON-NLS-1$
+ public static final String NODE_A_STEREOTYPE = "DecorationExampleProfile::NodeA";//$NON-NLS-1$
+ protected View notationElement;
+ public NodeAMarker(final View notationElement) {
+ this.notationElement = notationElement;
+ }
+ @Override
+ public boolean exists() {
+ return ExampleUtils.isAllocatedTo((CallBehaviorAction) notationElement, NODE_A_STEREOTYPE);
+ }
+ @Override
+ public String getType() throws CoreException {
+ return MARKER_TYPE;
+ }
+ @Override
+ public String getTypeLabel() throws CoreException {
+ return "Node A marker example";
+ }
+ ...
+</source>
+
+
+====Implemented NodeDecoration EditPolicy ====
+
+These markers are added to the DecorationService thanks to an editPolicy applied to the ''CallBehavoir'' edit part.
+
+The DecorationService is called in the ''Activate()'' method:
+
+<source lang="java">
+ @Override
+ public void activate() {
+ super.activate();
+ // TODO install listener
+ try {
+ decorationService = ServiceUtilsForEditPart.getInstance().getService(DecorationService.class, getHost());
+ refresh();
+ } catch (final ServiceException ex) {
+ // Ignored; do nothing
+ }
+ }
+</source>
+
+The refresh method adds or removes markers according to the allocated element on the UML element of the edit part:
+
+<source lang="java">
+ @Override
+ public void refresh() {
+ ...
+ // If the marker already set for nodeA have to be changed.
+ if (ExampleUtils.isAllocatedTo((CallBehaviorAction) view.getElement(), NodeAMarker.NODE_A_STEREOTYPE) != isNodeAMarked) {
+ isNodeAMarked = !isNodeAMarked;
+ if (isNodeAMarked) {
+ decorationService.addDecoration(getMarkerA(), getView());
+ } else {
+ decorationService.removeDecoration(getMarkerA().toString());
+ }
+ getHost().refresh();
+ }
+ // If the marker for nodeB already set have to be changed
+ if (ExampleUtils.isAllocatedTo((CallBehaviorAction) view.getElement(), NodeBMarker.NODE_B_STEREOTYPE) != isNodeBMarked) {
+ isNodeBMarked = !isNodeBMarked;
+ if (isNodeBMarked) {
+ decorationService.addDecoration(getMarkerB(), getView());
+ } else {
+ decorationService.removeDecoration(getMarkerB().toString());
+ }
+ getHost().refresh();
+ }
+ }
+</source>
+
+====Implemented CustomEditPolicy Provider ====
+
+An edit policy provider is used to install the NodeDecorationEditPolicy to the right edit parts.
+
+<source lang="java">
+public class CustomEditPolicyProvider implements IEditPolicyProvider {
+ protected String diagramType = org.eclipse.papyrus.uml.diagram.activity.edit.parts.ActivityDiagramEditPart.MODEL_ID;
+ @Override
+ public void addProviderChangeListener(final IProviderChangeListener listener) {
+ }
+ @Override
+ public boolean provides(final IOperation operation) {
+ boolean provide = false;
+ String currentDiagramType;
+ // get the element
+ final EObject referenceElement = ((View) ((CreateEditPoliciesOperation) operation).getEditPart().getModel()).getElement();
+ // Test if it's a creation operation and the element is a CallBehavoirActino
+ if ((operation instanceof CreateEditPoliciesOperation) && (referenceElement instanceof CallBehaviorAction)) {
+ // Get The current diagram type
+ currentDiagramType = ((View) ((CreateEditPoliciesOperation) operation).getEditPart().getModel()).getDiagram().getType();
+ // Test if we are on an Activity Diagram
+ if ((diagramType != null) && (diagramType.equals(currentDiagramType))) {
+ provide = true;
+ } else {
+ provide = false;
+ }
+ }
+ return provide;
+ }
+ @Override
+ public void removeProviderChangeListener(final IProviderChangeListener listener) {
+ }
+ @Override
+ public void createEditPolicies(final EditPart editPart) {
+ editPart.installEditPolicy(NodeDecoratorEditPolicy.EDIT_POLICY_ROLE, new NodeDecoratorEditPolicy());
+ }
+}
+</source>
+
+This edit policy provider is installed with the editpolicyProviders extension point:
+
+<source lang="css">
+<extension
+ point="org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders">
+ <editpolicyProvider
+ class="org.eclipse.papyrus.infra.services.decoration.example.provider.CustomEditPolicyProvider">
+ <Priority
+ name="Medium">
+ </Priority>
+ </editpolicyProvider>
+ </extension>
+</source>
+[[File:images/EditPolicyProviderExtension.jpg]]
+
+====Implemented Decoration Specific Function ====
+The decoration specific function specifies the decoration to be applied on a marked element. It defines the image, the position, the context message of the decoration etc...
+
+<source lang="java">
+public class NodeADecoration implements IDecorationSpecificFunctions {
+ @Override
+ public MarkChildren supportsMarkerPropagation() {
+ // This marker should not be propagated
+ return null;
+ }
+ @Override
+ public ImageDescriptor getImageDescriptorForGE(final IPapyrusMarker marker) {
+ return org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImageDescriptor(Activator.ID, "icons/NodeA.gif"); //$NON-NLS-1$
+ }
+ @Override
+ public PreferedPosition getPreferedPosition(final IPapyrusMarker marker) {
+ return PreferedPosition.NORTH_EAST;
+ }
+ @Override
+ public String getMessage(final IPapyrusMarker marker) {
+ return "Node A decoration example";
+ }
+ @Override
+ public int getPriority(final IPapyrusMarker marker) {
+ return 0;
+ }
+}
+
+</source>
+
+To associate ''decoration specific function'' to a marker, an extension point can be used. In the image below the decoration ''NodeAdecoration'' is linked to the marker type defined in the marker <code>NodeAMarker.MARKER_TYPE</code>
+
+<source lang="css">
+ <extension
+ point="org.eclipse.papyrus.infra.services.decoration.decorationSpecificFunctions">
+ <client
+ class="org.eclipse.papyrus.infra.services.decoration.example.NodeADecoration"
+ decorationType="org.eclipse.papyrus.infra.services.decoration.example.NodeA">
+ </client>
+ <client
+ class="org.eclipse.papyrus.infra.services.decoration.example.NodeBDecoration"
+ decorationType="org.eclipse.papyrus.infra.services.decoration.example.NodeB">
+ </client>
+ </extension>
+
+</source>
+[[File:images/SpecificFunctionExtension.jpg]]
+
+====Implementation without markers====
+NOTE:this implementation does't work for now due to a NPE. A Patch is in progress to fix that.
+=====Architecture=====
+Without marker the architecture of class to implement is less complexe. You only needs the edit policy which will add decoration to the decorationService with the provider which is the same than with marker.
+
+[[File:images/ExampleArchitectureWithoutMarker.jpg]]
+
+=====Implemented Edit Policy=====
+The edit policy is prtty much the same except that we use <code>addDecoration(String id, String type, EObject element, ImageDescriptor decorationImageForGE, ImageDescriptor decorationImageForME, PreferedPosition position, String message, int priority)</code>
+
+So in the refresh methode for NodeB:
+<source lang="java">
+...
+// If the marker for nodeB already set have to be changed
+if (ExampleUtils.isAllocatedTo((CallBehaviorAction) view.getElement(), ExampleUtils.NODE_B_STEREOTYPE) != nodeBMarked) {
+ nodeBMarked = !nodeBMarked;
+ if (nodeBMarked) {
+ // Decoration Without marker
+ decorationService.addDecoration(
+ view.getElement().toString(), // $NON-NLS-1$
+ "NodeBDecoration", //$NON-NLS-1$
+ view.getElement(),
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImageDescriptor(Activator.ID, "icons/NodeB.gif"), //$NON-NLS-1$
+ org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImageDescriptor(Activator.ID, "icons/NodeB.gif"), //$NON-NLS-1$ ,
+ PreferedPosition.SOUTH_WEST,
+ "NodeB decoration Without marker",
+ 0);
+ } else {
+ decorationService.removeDecoration(view.getElement().toString());
+ }
+ getHost().refresh();
+}
+...
+
+</source>
+
+====Result ====
+[[File:images/DiagramExample.jpg]]
+
+===Using Shape Service===
+====Implemented architecture ====
+The use of Shape service is done by the implementation of a shape provider which extends AbstractShapeProvider: "''NodeShapeProvider''". Then "''NodeShapeProvider''" is activated thanks to the shape provider extension point.
+
+[[File:images/ExampleArchitectureWithShapeProvider.jpg]]
+
+====Implemented Shape Provider ====
+The implementated Shape provder will provide shape according to the same conditions than before.
+<source lang="java">
+public class NodeShapeProvider extends AbstractShapeProvider {
+ // The used SVG files
+ private static final String ICONS_SYMBOLS_NODE_A_SVG = "/icons/NodeA.svg";//$NON-NLS-1$
+ private static final String ICONS_SYMBOLS_NODE_B_SVG = "/icons/NodeB.svg";//$NON-NLS-1$
+ ...
+ @Override
+ public boolean providesShapes(final EObject view) {
+ boolean provide = false;
+ if (view instanceof View) {
+ final EObject element = ((View) view).getElement();
+ // Test if the element is a CallBehavoirAction and if a stereotyped node is allocated to it.
+ if (element instanceof CallBehaviorAction
+ && (ExampleUtils.isAllocatedTo((CallBehaviorAction) element, ExampleUtils.NODE_A_STEREOTYPE)
+ || ExampleUtils.isAllocatedTo((CallBehaviorAction) element, ExampleUtils.NODE_B_STEREOTYPE))) {
+ provide = true;
+ } else {
+ provide = false;
+ }
+ }
+ return provide;
+ }
+ @Override
+ public List<RenderedImage> getShapes(final EObject view) {
+ if (providesShapes(view)) {
+ // Gets the SVG document: here NodeA.svg or/and NodeB.svg
+ final List<SVGDocument> documents = getSVGDocument(view);
+ if (documents != null) {
+ final List<RenderedImage> result = new LinkedList<RenderedImage>();
+ for (final SVGDocument document : documents) {
+ try {
+ // Adds the shape to result
+ result.add(renderSVGDocument(view, document));
+ } catch (final IOException ex) {
+ // Do nothing
+ }
+ }
+ return result;
+ }
+ }
+ return null;
+ }
+ @Override
+ public List<SVGDocument> getSVGDocument(final EObject view) {
+ final List<SVGDocument> svgDocuments = new ArrayList<SVGDocument>();
+ if (providesShapes(view)) {
+ final CallBehaviorAction callBehaviorAction = (CallBehaviorAction) ((View) view).getElement();
+ // If allocation corresponding adds SVG document for Node A
+ if (ExampleUtils.isAllocatedTo(callBehaviorAction, ExampleUtils.NODE_A_STEREOTYPE)) {
+ // Get the SVG document
+ final SVGDocument document = getSVGDocument(URI.createPlatformPluginURI(Activator.ID + ICONS_SYMBOLS_NODE_A_SVG, true).toString());
+ if (document != null) {
+ svgDocuments.add(document);
+ }
+ }
+ // If allocation corresponding adds SVG document for Node B
+ if (ExampleUtils.isAllocatedTo(callBehaviorAction, ExampleUtils.NODE_B_STEREOTYPE)) {
+ // Get the SVG document
+ final SVGDocument document = getSVGDocument(URI.createPlatformPluginURI(Activator.ID + ICONS_SYMBOLS_NODE_B_SVG, true).toString());
+ if (document != null) {
+ svgDocuments.add(document);
+ }
+ }
+ }
+ return svgDocuments;
+ }
+ ...
+}
+
+</source>
+
+====Implemented Shape Provider Extension Point ====
+To activate the shape provider we use the Shape Provider Extension Point:
+
+[[File:images/ShapeProviderExtension.jpg]]
+<source lang="xml">
+
+<extension point="org.eclipse.papyrus.infra.gmfdiag.common.shapeProvider">
+ <shapeProvider
+ class="org.eclipse.papyrus.infra.services.decoration.example.provider.NodeShapeProvider"
+ id="org.eclipse.papyrus.infra.services.decoration.example.nodeShapeProvider"
+ name="NodeShapeProvider">
+ <Priority
+ name="Medium">
+ </Priority>
+ </shapeProvider>
+</extension>
+</source>
+
+====Result ====
+[[File:images/DiagramExampleWithShapeProvider.jpg]]
+
+===Using GMF Decorator Service===
+
+GMF Decorator framework can be implemented by many ways. The choice made here is to use Figure as decorator which contains icons. This will permits to position icons on the figure. The to locate the figure in the target à specific locator will be implemented. This permits to have a better control of the location of decoration. A tootip will be also added.
+
+====Implemented architecture ====
+To implement it we create a provider loaded through the specific extension point. The provider will install the node decorator which use the specific locator.
+
+[[File:images/GMFExampleArchitecture.jpg]]
+
+====Implemented Decorator Provider====
+<source lang="java">
+/**
+ * Example of provider for display decoration using gmf decorator framework.
+ */
+public class GMFDecoratorProvider extends AbstractProvider implements IDecoratorProvider {
+ // The key of the installed decorator
+ private static final String GMF_DECORATION_KEY = "gmf_decoration_example_key"; //$NON-NLS-1$
+ @Override
+ public boolean provides(final IOperation operation) {
+ boolean provide = false;
+ // it needs to be a CreateDecoratorsOperation
+ if (operation instanceof CreateDecoratorsOperation) {
+ final IDecoratorTarget decoratorTarget = ((CreateDecoratorsOperation) operation).getDecoratorTarget();
+ final View view = decoratorTarget.getAdapter(View.class);
+
+ // Test if the decoratorTarget element is a CallBehavoirAction
+ if (view != null && ActivityDiagramEditPart.MODEL_ID.equals(UMLVisualIDRegistry.getModelID(view)) && view.getElement() instanceof CallBehaviorAction) {
+ provide = true;
+ } else {
+ provide = false;
+ }
+ }
+ return provide;
+ }
+ @Override
+ public void createDecorators(final IDecoratorTarget decoratorTarget) {
+ final View node = decoratorTarget.getAdapter(View.class);
+ if (node != null) {
+ // Install the decorator
+ decoratorTarget.installDecorator(GMF_DECORATION_KEY, new NodeDecorator(decoratorTarget));
+ }
+ }
+}
+</source>
+
+====Implemented AbstractDecorator ====
+The refresh methods will permit to adds the decoration.
+
+<source lang="java">
+...
+@Override
+public void refresh() {
+ //First of all, we remove decoration
+ removeDecoration();
+ final EditPart editPart = (EditPart) getDecoratorTarget().getAdapter(EditPart.class);
+ if (editPart instanceof NodeEditPart) {
+ // Get the figure of the editpart
+ final IFigure editPartFigure = ((GraphicalEditPart) editPart).getFigure();
+ // Get the view of the editpart
+ final View view = (View) editPart.getModel();
+
+ // Create a main figure with a flow layout. It will contains icons.
+ final IFigure figure = new Figure();
+ final FlowLayout flowLayout = new FlowLayout();
+ flowLayout.setHorizontal(true);
+ flowLayout.setMinorSpacing(0);
+ figure.setLayoutManager(flowLayout);
+
+
+ // If for nodeA is allocated to the call behavior
+ if (ExampleUtils.isAllocatedTo((CallBehaviorAction) view.getElement(), ExampleUtils.NODE_A_STEREOTYPE)) {
+ // Create child figure
+ final ScaledImageFigure imageFigureA = getImageNode("icons/NodeA.gif");//$NON-NLS-1$
+ // Add it to main figure of the decoration
+ figure.add(imageFigureA);
+ }
+ // If for nodeA is allocated to the call behavior
+ if (ExampleUtils.isAllocatedTo((CallBehaviorAction) view.getElement(), ExampleUtils.NODE_B_STEREOTYPE)) {
+ // Create child figure
+ final ScaledImageFigure imageFigureB = getImageNode("icons/NodeB.gif");//$NON-NLS-1$
+ // Add it to main figure of the decoration
+ figure.add(imageFigureB);
+ }
+
+ // Get MapMode
+ final IMapMode mm = MapModeUtil.getMapMode(editPartFigure);
+ // Set the size of the decorator figure
+ figure.setSize(mm.DPtoLP(IMAGE_WIDTH * figure.getChildren().size()) + 2, mm.DPtoLP(IMAGE_HEIGHT));
+
+ // Get the direction/position of the decoration. Direction will be takes from shape direction in appearance tab of properties view.
+ final Direction direction = getDirection(view);
+
+ // Instantiate a custom locator to have decoration inside the figure.
+ final Locator locator = new InsideDirectedLocator(editPartFigure, direction);
+ // Set the decoration with the custom locator.
+ setDecoration(getDecoratorTarget().addDecoration(figure, locator, false));
+
+ //Set the tool tip of the decoration
+ getDecoration().setToolTip(new Label("GMF Decorations"));
+ }
+}
+</source>
+
+the Figure is get with the following method:
+
+<source lang="java">
+/**
+ * Create a ScaledImageFigure for a specific relative location of a image.
+ *
+ * @param imageLocation
+ * @return the image.
+ */
+private ScaledImageFigure getImageNode(final String imageLocation) {
+ final ImageDescriptor imageDescriptor = org.eclipse.papyrus.infra.widgets.Activator.getDefault().getImageDescriptor(Activator.ID, imageLocation);
+ final Image image = imageDescriptor.createImage();
+ final ScaledImageFigure imageFigure = new ScaledImageFigure();
+ imageFigure.setImage(image);
+ imageFigure.setSize(IMAGE_WIDTH, IMAGE_HEIGHT);
+ return imageFigure;
+}
+</source>
+
+If you don't want to use a custom locator use instead of addDecoration. A negative margin will put the decoration inside and a positive will put it outside.
+<source lang="java">
+ setDecoration(getDecoratorTarget().addShapeDecoration(figure, direction, -1, false));
+</source>
+
+====Implemented GMF Decorator Provider Extension Point====
+
+To activate the GMF Decorator Provider we use the Extension Point <code>org.eclipse.gmf.runtime.diagram.ui.decoratorProviders </code>:
+
+[[File:images/GMFImplementedExtensionPoint.jpg]]
+
+
+<source lang="xml">
+ <extension
+ point="org.eclipse.gmf.runtime.diagram.ui.decoratorProviders">
+ <decoratorProvider
+ class="org.eclipse.papyrus.example.decoration.provider.GMFDecoratorProvider">
+ <Priority
+ name="Medium">
+ </Priority>
+ </decoratorProvider>
+ </extension>
+</source>
+
+====Result====
+[[File:images/GMFResult.jpg]]
+
+== Sources ==
+The plugin of this example can be retrieved in the Papyrus git code repository [http://git.eclipse.org/c/papyrus/org.eclipse.papyrus.git/tree/examples/org.eclipse.papyrus.service.decoration.example?h=streams/1.1-maintenance here] or imported in File>New>Others...>Examples>Papyrus Example>Decoration Services Examples.
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/documentation.css b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/documentation.css
new file mode 100644
index 00000000000..210f8f385b4
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/documentation.css
@@ -0,0 +1,11 @@
+table {
+ border-collapse: collapse;
+}
+
+table, th, td, tr {
+ border: 1px solid black;
+ padding-left: 5px;
+ padding-right: 5px;
+ padding-top: 3px;
+ padding-bottom: 3px;
+} \ No newline at end of file
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/example/org.eclipse.papyrus.example.decoration.zip b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/example/org.eclipse.papyrus.example.decoration.zip
new file mode 100644
index 00000000000..21cff8741bc
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/example/org.eclipse.papyrus.example.decoration.zip
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/icons/papyrus.png b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/icons/papyrus.png
new file mode 100644
index 00000000000..0f74e27b483
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/icons/papyrus.png
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractDecorator.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractDecorator.jpg
new file mode 100644
index 00000000000..bdfb14bff20
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractDecorator.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractShapeProvider.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractShapeProvider.jpg
new file mode 100644
index 00000000000..824c0092d58
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AbstractShapeProvider.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AllocationTable.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AllocationTable.jpg
new file mode 100644
index 00000000000..ec90309c1fd
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AllocationTable.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AppearenceTab.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AppearenceTab.jpg
new file mode 100644
index 00000000000..4e8e891cb1b
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/AppearenceTab.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationExtensionPoint.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationExtensionPoint.jpg
new file mode 100644
index 00000000000..326526d289e
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationExtensionPoint.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationService.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationService.jpg
new file mode 100644
index 00000000000..73b82e038a4
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecorationService.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecoratorProviderExtensionPoint.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecoratorProviderExtensionPoint.jpg
new file mode 100644
index 00000000000..b1129b982aa
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DecoratorProviderExtensionPoint.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExample.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExample.jpg
new file mode 100644
index 00000000000..03aa7f104cd
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExample.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExampleWithShapeProvider.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExampleWithShapeProvider.jpg
new file mode 100644
index 00000000000..db30cbf48de
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/DiagramExampleWithShapeProvider.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/EditPolicyProviderExtension.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/EditPolicyProviderExtension.jpg
new file mode 100644
index 00000000000..43bf46cb35c
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/EditPolicyProviderExtension.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitecture.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitecture.jpg
new file mode 100644
index 00000000000..f432e8ec9b1
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitecture.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithShapeProvider.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithShapeProvider.jpg
new file mode 100644
index 00000000000..25d038dcaca
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithShapeProvider.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithoutMarker.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithoutMarker.jpg
new file mode 100644
index 00000000000..9dd1b324576
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleArchitectureWithoutMarker.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleProfile.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleProfile.jpg
new file mode 100644
index 00000000000..ffddb7da383
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExampleProfile.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExpectedResult.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExpectedResult.jpg
new file mode 100644
index 00000000000..1714c77ada8
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ExpectedResult.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFExampleArchitecture.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFExampleArchitecture.jpg
new file mode 100644
index 00000000000..c44b2c419f4
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFExampleArchitecture.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFImplementedExtensionPoint.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFImplementedExtensionPoint.jpg
new file mode 100644
index 00000000000..4380db5283a
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFImplementedExtensionPoint.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFResult.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFResult.jpg
new file mode 100644
index 00000000000..4104ed570ba
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/GMFResult.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecorationSpecificFunctions.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecorationSpecificFunctions.jpg
new file mode 100644
index 00000000000..e8601ecadda
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecorationSpecificFunctions.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratiorProvider.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratiorProvider.jpg
new file mode 100644
index 00000000000..b7372baa550
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratiorProvider.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratorTarget.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratorTarget.jpg
new file mode 100644
index 00000000000..84e2b2fa696
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IDecoratorTarget.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IPapyrusMarker.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IPapyrusMarker.jpg
new file mode 100644
index 00000000000..c1b4793da07
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/IPapyrusMarker.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/NodesStereotyped.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/NodesStereotyped.jpg
new file mode 100644
index 00000000000..1fef7209066
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/NodesStereotyped.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtension.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtension.jpg
new file mode 100644
index 00000000000..11be7c9bf87
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtension.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtensionPoint.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtensionPoint.jpg
new file mode 100644
index 00000000000..8da341463e2
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/ShapeProviderExtensionPoint.jpg
Binary files differ
diff --git a/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/SpecificFunctionExtension.jpg b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/SpecificFunctionExtension.jpg
new file mode 100644
index 00000000000..6cf9f7abc05
--- /dev/null
+++ b/plugins/doc/org.eclipse.papyrus.infra.services.decoration.doc/resource/images/SpecificFunctionExtension.jpg
Binary files differ
diff --git a/plugins/doc/pom.xml b/plugins/doc/pom.xml
index ad4b1cc9a3f..0501ac43fb1 100644
--- a/plugins/doc/pom.xml
+++ b/plugins/doc/pom.xml
@@ -21,6 +21,7 @@
<module>org.eclipse.papyrus.infra.nattable.doc</module>
<module>org.eclipse.papyrus.infra.newchild.doc</module>
<module>org.eclipse.papyrus.infra.services.controlmode.doc</module>
+ <module>org.eclipse.papyrus.infra.services.decoration.doc</module>
<module>org.eclipse.papyrus.infra.architecture.doc</module>
<module>org.eclipse.papyrus.infra.types.doc</module>
<module>org.eclipse.papyrus.req.reqif.doc</module>

Back to the top