Merge "Bug 536464 - Add CDO'ified versions of gmfdiag.css and gmfdiag.style"
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.classpath b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.classpath
new file mode 100644
index 0000000..eca7bdb
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.project b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.project
new file mode 100644
index 0000000..0b30027
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.project
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.infra.gmfdiag.css.cdo</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.oomph.version.VersionBuilder</name>
+			<arguments>
+				<dictionary>
+					<key>check.maven.pom</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>ignore.lower.bound.dependency.ranges</key>
+					<value>true</value>
+				</dictionary>
+				<dictionary>
+					<key>release.path</key>
+					<value>/org.eclipse.papyrus.releng.main.release/release.xml</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.xtext.ui.shared.xtextNature</nature>
+		<nature>org.eclipse.oomph.version.VersionNature</nature>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.resources.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..896a9a5
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
\ No newline at end of file
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.runtime.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.jdt.core.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..1255b32
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,390 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnull.secondary=
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullable.secondary=
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.problem.APILeak=warning
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=disabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=error
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning
+org.eclipse.jdt.core.compiler.problem.nonnullTypeVariableFromLegacyInvocation=warning
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.pessimisticNullAnalysisForFreeTypeVariables=warning
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.terminalDeprecation=warning
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentType=ignore
+org.eclipse.jdt.core.compiler.problem.unlikelyCollectionMethodArgumentTypeStrict=disabled
+org.eclipse.jdt.core.compiler.problem.unlikelyEqualsArgumentType=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedExceptionParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedImport=ignore
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=warning
+org.eclipse.jdt.core.compiler.problem.unusedTypeParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.8
+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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.jdt.ui.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..954281d
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.pde.api.tools.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..b2260f8
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Warning
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Warning
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Warning
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+changed_execution_env=Warning
+eclipse.preferences.version=1
+incompatible_api_component_version=Warning
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+incompatible_api_component_version_report_major_without_breaking_change=Error
+incompatible_api_component_version_report_minor_without_api_change=Error
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..8dc66b7
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/META-INF/MANIFEST.MF
@@ -0,0 +1,19 @@
+Manifest-Version: 1.0
+Bundle-Vendor: %providerName
+Bundle-ActivationPolicy: lazy
+Bundle-Version: 2.2.1.qualifier
+Bundle-Localization: plugin
+Bundle-Name: %pluginName
+Bundle-ManifestVersion: 2
+Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.css.cdo;singleton:=true
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Require-Bundle: org.eclipse.e4.ui.css.core;bundle-version="[0.11.0,1.0.0)",
+ org.eclipse.papyrus.infra.gmfdiag.css;bundle-version="2.2.1",
+ org.eclipse.emf.cdo;bundle-version="4.6.0",
+ org.eclipse.emf.cdo.ecore;bundle-version="1.0.0",
+ org.eclipse.emf.cdo.gmf.notation;bundle-version="1.0.0"
+Import-Package: com.google.common.collect;version="21.0.0"
+Automatic-Module-Name: org.eclipse.papyrus.infra.gmfdiag.css.cdo
+Export-Package: org.eclipse.papyrus.infra.gmfdiag.css.cdo;version="2.2.1",
+ org.eclipse.papyrus.infra.gmfdiag.css.cdo.factory;version="2.2.1",
+ org.eclipse.papyrus.infra.gmfdiag.css.cdo.notation;version="2.2.1"
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/Migrate gmfdiag.css to CDO.launch b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/Migrate gmfdiag.css to CDO.launch
new file mode 100644
index 0000000..8b191fb
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/Migrate gmfdiag.css to CDO.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;resources&gt;&#13;&#10;&lt;item path=&quot;/org.eclipse.papyrus.infra.gmfdiag.css.cdo&quot; type=&quot;4&quot;/&gt;&#13;&#10;&lt;/resources&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.infra.gmfdiag.css.cdo/migrate.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.infra.gmfdiag.css.cdo"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.papyrus.infra.gmfdiag.css.cdo/migrate.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dgit.clone.papyrus=${git.clone.papyrus}"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/about.html b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/about.html
new file mode 100644
index 0000000..dd3c089
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/build.properties b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/build.properties
new file mode 100644
index 0000000..26318c4
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/build.properties
@@ -0,0 +1,9 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               about.html,\
+               plugin.properties,\
+               plugin.xml
+src.includes = about.html,\
+               pom.xml
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/migrate.ant b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/migrate.ant
new file mode 100644
index 0000000..e7a153c
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/migrate.ant
@@ -0,0 +1,55 @@
+<?xml version="1.0"?>
+<!--
+	Copyright (c) 2018 CEA LIST and others.
+	All rights reserved. This program and the accompanying materials
+	are made available under the terms of the Eclipse Public License v1.0
+	which accompanies this distribution, and is available at
+	http://www.eclipse.org/legal/epl-v10.html
+
+	Contributors:
+	  Eike Stepper - initial API and implementation
+-->
+<project name="migrate" default="migrate">
+
+	<fail unless="git.clone.papyrus" message="Property 'git.clone.papyrus' is undefined! Go to Preferences -> Run/Debug -> String Substitution..." />
+	<property name="source-package" value="org/eclipse/papyrus/infra/gmfdiag/css" />
+	<property name="source-project" location="${git.clone.papyrus}/plugins/infra/gmfdiag/css/org.eclipse.papyrus.infra.gmfdiag.css" />
+	<property name="source" location="${source-project}/src/${source-package}" />
+	<echo message="Source: ${source}" />
+
+	<fail message="The 'basedir' property must point to the directory that contains this script!">
+		<condition>
+			<not>
+				<available file="${basedir}/migrate.ant" type="file" />
+			</not>
+		</condition>
+	</fail>
+	<property name="target" location="${basedir}/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo" />
+	<echo message="Target: ${target}" />
+
+	<target name="migrate">
+		<delete includeemptydirs="true">
+			<fileset dir="${target}">
+				<include name="**/*.java" />
+			</fileset>
+		</delete>
+		<copy todir="${target}">
+			<fileset dir="${source}">
+				<include name="*Impl.java" />
+				<include name="factory/*.java" />
+				<include name="notation/CSSDiagramImpl.java" />
+			</fileset>
+			<filterchain>
+				<replacestring from="package org.eclipse.papyrus.infra.gmfdiag.css" to="package org.eclipse.papyrus.infra.gmfdiag.css.cdo" />
+				<replacestring from="import org.eclipse.gmf.runtime.notation.impl." to="import org.eclipse.emf.cdo.gmf.notation.impl." />
+			</filterchain>
+		</copy>
+
+		<replace file="${target}/factory/CSSNotationFactory.java" token="import org.eclipse.papyrus.infra.gmfdiag.css." value="import org.eclipse.papyrus.infra.gmfdiag.css.cdo." />
+
+		<replace file="${target}/notation/CSSDiagramImpl.java" token="implements CSSDiagram," value="implements org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram," />
+		<replace file="${target}/notation/CSSDiagramImpl.java" token="CSSStyles" value="org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSStyles" />
+		<replace file="${target}/notation/CSSDiagramImpl.java" token="ForceValueHelper" value="org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper" />
+	</target>
+
+</project>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.properties b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.properties
new file mode 100644
index 0000000..fe3b7d4
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.properties
@@ -0,0 +1,3 @@
+#Properties file for org.eclipse.papyrus.infra.gmfdiag.css
+pluginName = CSS Support for GMF (CDO Version)
+providerName = Eclipse Modeling Project
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.xml b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.xml
new file mode 100644
index 0000000..9f7232e
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/plugin.xml
@@ -0,0 +1,10 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<plugin>
+  <extension point="org.eclipse.emf.ecore.factory_override">
+    <factory
+        uri="http://www.eclipse.org/gmf/runtime/1.0.2/notation"
+        class="org.eclipse.papyrus.infra.gmfdiag.css.cdo.factory.CSSNotationFactory"
+        predecessor="org.eclipse.papyrus.infra.gmfdiag.css.factory.CSSNotationFactory" />
+  </extension>
+</plugin>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/pom.xml b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/pom.xml
new file mode 100644
index 0000000..0f671cb
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/pom.xml
@@ -0,0 +1,13 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<project>
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.papyrus.cdo</groupId>
+		<artifactId>org.eclipse.papyrus.cdo-bundles</artifactId>
+		<version>1.2.0-SNAPSHOT</version>
+	</parent>
+  
+	<artifactId>org.eclipse.papyrus.infra.gmfdiag.css.cdo</artifactId>
+	<version>2.2.1-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSArrowStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSArrowStyleImpl.java
new file mode 100644
index 0000000..41b1aa4
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSArrowStyleImpl.java
@@ -0,0 +1,149 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.common.notify.Notification;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.emf.ecore.impl.ENotificationImpl;
+import org.eclipse.gmf.runtime.notation.ArrowType;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.ArrowStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSArrowStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSArrowStyleDelegate;
+
+public class CSSArrowStyleImpl extends ArrowStyleImpl implements CSSArrowStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSArrowStyle arrowStyle;
+
+	protected CSSArrowStyle getArrowStyle() {
+		if (arrowStyle == null) {
+			arrowStyle = new CSSArrowStyleDelegate(this, getEngine());
+		}
+		return arrowStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public ArrowType getCSSArrowSource() {
+		ArrowType value = super.getArrowSource();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getArrowStyle_ArrowSource(), value)) {
+			return value;
+		} else {
+			return getArrowStyle().getCSSArrowSource();
+		}
+	}
+
+	@Override
+	public ArrowType getCSSArrowTarget() {
+		ArrowType value = super.getArrowTarget();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getArrowStyle_ArrowTarget(), value)) {
+			return value;
+		} else {
+			return getArrowStyle().getCSSArrowTarget();
+		}
+	}
+
+
+	@Override
+	public ArrowType getArrowSource() {
+		return getCSSArrowSource();
+	}
+
+	@Override
+	public ArrowType getArrowTarget() {
+		return getCSSArrowTarget();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setArrowSource(ArrowType value) {
+		ArrowType oldArrowSource = getArrowSource();
+
+		boolean deliver = eDeliver();
+		try {
+			// Do not rely on super implementation for sending the event. Just change the value.
+			eSetDeliver(false);
+			super.setArrowSource(value);
+		} finally {
+			eSetDeliver(deliver);
+		}
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getArrowStyle_ArrowSource();
+		ForceValueHelper.setValue(findView(), feature, value);
+
+		// Bug YYY YYY: Super implementation doesn't rely on "getArrowSource" and doesn't properly compute oldArrowSource
+		if (eNotificationRequired()) {
+			eNotify(new ENotificationImpl(this, Notification.SET, NotationPackage.ARROW_STYLE__ARROW_SOURCE, oldArrowSource, value));
+		}
+	}
+
+	@Override
+	public void setArrowTarget(ArrowType value) {
+		super.setArrowTarget(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getArrowStyle_ArrowTarget();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicCompartmentImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicCompartmentImpl.java
new file mode 100644
index 0000000..c6bd757
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicCompartmentImpl.java
@@ -0,0 +1,192 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.BasicCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSBasicCompartmentImpl extends BasicCompartmentImpl implements CSSDrawerStyle, CSSView.Internal {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	private CSSView cssView;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicSemanticCompartmentImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicSemanticCompartmentImpl.java
new file mode 100644
index 0000000..4e7696d
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSBasicSemanticCompartmentImpl.java
@@ -0,0 +1,143 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.emf.cdo.gmf.notation.impl.BasicSemanticCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSBasicSemanticCompartmentImpl extends BasicSemanticCompartmentImpl implements CSSDrawerStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	private CSSView cssView;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCanonicalStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCanonicalStyleImpl.java
new file mode 100644
index 0000000..a8ceb01
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCanonicalStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.CanonicalStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSCanonicalStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSCanonicalStyleDelegate;
+
+public class CSSCanonicalStyleImpl extends CanonicalStyleImpl implements CSSCanonicalStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSCanonicalStyle canonicalStyle;
+
+	protected CSSCanonicalStyle getCanonicalStyle() {
+		if (canonicalStyle == null) {
+			canonicalStyle = new CSSCanonicalStyleDelegate(this, getEngine());
+		}
+		return canonicalStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCanonical() {
+		boolean value = super.isCanonical();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getCanonicalStyle_Canonical(), value)) {
+			return value;
+		} else {
+			return getCanonicalStyle().isCSSCanonical();
+		}
+	}
+
+
+	@Override
+	public boolean isCanonical() {
+		return isCSSCanonical();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setCanonical(boolean value) {
+		super.setCanonical(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getCanonicalStyle_Canonical();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCompartmentImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCompartmentImpl.java
new file mode 100644
index 0000000..bf3f1cc
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSCompartmentImpl.java
@@ -0,0 +1,160 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.emf.cdo.gmf.notation.impl.CompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSCompartmentImpl extends CompartmentImpl implements CSSDrawerStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	private CSSView cssView;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCanonical(boolean value) {
+		super.setCanonical(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getCanonicalStyle_Canonical();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setShowTitle(boolean value) {
+		super.setShowTitle(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getTitleStyle_ShowTitle();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorImpl.java
new file mode 100644
index 0000000..236dff2
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorImpl.java
@@ -0,0 +1,412 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.JumpLinkStatus;
+import org.eclipse.gmf.runtime.notation.JumpLinkType;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Routing;
+import org.eclipse.gmf.runtime.notation.Smoothness;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.ConnectorImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSConnectorStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSConnectorStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSConnectorImpl extends ConnectorImpl implements CSSConnectorStyle, CSSView.Internal {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSConnectorStyle connectorStyle;
+
+	private CSSView cssView;
+
+	protected CSSConnectorStyle getConnectorStyle() {
+		if (connectorStyle == null) {
+			connectorStyle = new CSSConnectorStyleDelegate(this, getEngine());
+		}
+		return connectorStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+	@Override
+	public Routing getCSSRouting() {
+		Routing value = super.getRouting();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSRouting();
+		}
+	}
+
+	@Override
+	public Smoothness getCSSSmoothness() {
+		Smoothness value = super.getSmoothness();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_Smoothness(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSSmoothness();
+		}
+	}
+
+	@Override
+	public boolean isCSSAvoidObstructions() {
+		boolean value = super.isAvoidObstructions();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSAvoidObstructions();
+		}
+	}
+
+	@Override
+	public boolean isCSSClosestDistance() {
+		boolean value = super.isClosestDistance();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSClosestDistance();
+		}
+	}
+
+	@Override
+	public JumpLinkStatus getCSSJumpLinkStatus() {
+		JumpLinkStatus value = super.getJumpLinkStatus();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSJumpLinkStatus();
+		}
+	}
+
+	@Override
+	public JumpLinkType getCSSJumpLinkType() {
+		JumpLinkType value = super.getJumpLinkType();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSJumpLinkType();
+		}
+	}
+
+	@Override
+	public boolean isCSSJumpLinksReverse() {
+		boolean value = super.isJumpLinksReverse();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSJumpLinksReverse();
+		}
+	}
+
+	@Override
+	public int getCSSLineColor() {
+		int value = super.getLineColor();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getLineStyle_LineColor(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSLineColor();
+		}
+	}
+
+	@Override
+	public int getCSSLineWidth() {
+		int value = super.getLineWidth();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getLineStyle_LineWidth(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSLineWidth();
+		}
+	}
+
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+	@Override
+	public Routing getRouting() {
+		return getCSSRouting();
+	}
+
+	@Override
+	public Smoothness getSmoothness() {
+		return getCSSSmoothness();
+	}
+
+	@Override
+	public boolean isAvoidObstructions() {
+		return isCSSAvoidObstructions();
+	}
+
+	@Override
+	public boolean isClosestDistance() {
+		return isCSSClosestDistance();
+	}
+
+	@Override
+	public JumpLinkStatus getJumpLinkStatus() {
+		return getCSSJumpLinkStatus();
+	}
+
+	@Override
+	public JumpLinkType getJumpLinkType() {
+		return getCSSJumpLinkType();
+	}
+
+	@Override
+	public boolean isJumpLinksReverse() {
+		return isCSSJumpLinksReverse();
+	}
+
+	@Override
+	public int getLineColor() {
+		return getCSSLineColor();
+	}
+
+	@Override
+	public int getLineWidth() {
+		return getCSSLineWidth();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setRouting(Routing value) {
+		super.setRouting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Routing();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setSmoothness(Smoothness value) {
+		super.setSmoothness(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Smoothness();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setAvoidObstructions(boolean value) {
+		super.setAvoidObstructions(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setClosestDistance(boolean value) {
+		super.setClosestDistance(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setJumpLinkStatus(JumpLinkStatus value) {
+		super.setJumpLinkStatus(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setJumpLinkType(JumpLinkType value) {
+		super.setJumpLinkType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setJumpLinksReverse(boolean value) {
+		super.setJumpLinksReverse(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setLineColor(int value) {
+		super.setLineColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineColor();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setLineWidth(int value) {
+		super.setLineWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineWidth();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorStyleImpl.java
new file mode 100644
index 0000000..3db28ec
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSConnectorStyleImpl.java
@@ -0,0 +1,328 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.JumpLinkStatus;
+import org.eclipse.gmf.runtime.notation.JumpLinkType;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Routing;
+import org.eclipse.gmf.runtime.notation.Smoothness;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.ConnectorStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSConnectorStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSConnectorStyleDelegate;
+
+public class CSSConnectorStyleImpl extends ConnectorStyleImpl implements CSSConnectorStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSConnectorStyle connectorStyle;
+
+	protected CSSConnectorStyle getConnectorStyle() {
+		if (connectorStyle == null) {
+			connectorStyle = new CSSConnectorStyleDelegate(this, getEngine());
+		}
+		return connectorStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+	@Override
+	public Routing getCSSRouting() {
+		Routing value = super.getRouting();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSRouting();
+		}
+	}
+
+	@Override
+	public Smoothness getCSSSmoothness() {
+		Smoothness value = super.getSmoothness();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_Smoothness(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSSmoothness();
+		}
+	}
+
+	@Override
+	public boolean isCSSAvoidObstructions() {
+		boolean value = super.isAvoidObstructions();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSAvoidObstructions();
+		}
+	}
+
+	@Override
+	public boolean isCSSClosestDistance() {
+		boolean value = super.isClosestDistance();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSClosestDistance();
+		}
+	}
+
+	@Override
+	public JumpLinkStatus getCSSJumpLinkStatus() {
+		JumpLinkStatus value = super.getJumpLinkStatus();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSJumpLinkStatus();
+		}
+	}
+
+	@Override
+	public JumpLinkType getCSSJumpLinkType() {
+		JumpLinkType value = super.getJumpLinkType();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSJumpLinkType();
+		}
+	}
+
+	@Override
+	public boolean isCSSJumpLinksReverse() {
+		boolean value = super.isJumpLinksReverse();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().isCSSJumpLinksReverse();
+		}
+	}
+
+	@Override
+	public int getCSSLineColor() {
+		int value = super.getLineColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineColor(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSLineColor();
+		}
+	}
+
+	@Override
+	public int getCSSLineWidth() {
+		int value = super.getLineWidth();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineWidth(), value)) {
+			return value;
+		} else {
+			return getConnectorStyle().getCSSLineWidth();
+		}
+	}
+
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+	@Override
+	public Routing getRouting() {
+		return getCSSRouting();
+	}
+
+	@Override
+	public Smoothness getSmoothness() {
+		return getCSSSmoothness();
+	}
+
+	@Override
+	public boolean isAvoidObstructions() {
+		return isCSSAvoidObstructions();
+	}
+
+	@Override
+	public boolean isClosestDistance() {
+		return isCSSClosestDistance();
+	}
+
+	@Override
+	public JumpLinkStatus getJumpLinkStatus() {
+		return getCSSJumpLinkStatus();
+	}
+
+	@Override
+	public JumpLinkType getJumpLinkType() {
+		return getCSSJumpLinkType();
+	}
+
+	@Override
+	public boolean isJumpLinksReverse() {
+		return isCSSJumpLinksReverse();
+	}
+
+	@Override
+	public int getLineColor() {
+		return getCSSLineColor();
+	}
+
+	@Override
+	public int getLineWidth() {
+		return getCSSLineWidth();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setRouting(Routing value) {
+		super.setRouting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Routing();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setSmoothness(Smoothness value) {
+		super.setSmoothness(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Smoothness();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setAvoidObstructions(boolean value) {
+		super.setAvoidObstructions(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setClosestDistance(boolean value) {
+		super.setClosestDistance(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinkStatus(JumpLinkStatus value) {
+		super.setJumpLinkStatus(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinkType(JumpLinkType value) {
+		super.setJumpLinkType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinksReverse(boolean value) {
+		super.setJumpLinksReverse(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setLineColor(int value) {
+		super.setLineColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setLineWidth(int value) {
+		super.setLineWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineWidth();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDataTypeStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDataTypeStyleImpl.java
new file mode 100644
index 0000000..4a66fe5
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDataTypeStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.DataTypeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDataTypeStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDataTypeStyleDelegate;
+
+public class CSSDataTypeStyleImpl extends DataTypeStyleImpl implements CSSDataTypeStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDataTypeStyle dataTypeStyle;
+
+	protected CSSDataTypeStyle getDataTypeStyle() {
+		if (dataTypeStyle == null) {
+			dataTypeStyle = new CSSDataTypeStyleDelegate(this, getEngine());
+		}
+		return dataTypeStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.String getCSSName() {
+		java.lang.String value = super.getName();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getNamedStyle_Name(), value)) {
+			return value;
+		} else {
+			return getDataTypeStyle().getCSSName();
+		}
+	}
+
+
+	@Override
+	public java.lang.String getName() {
+		return getCSSName();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setName(java.lang.String value) {
+		super.setName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getNamedStyle_Name();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDecorationNodeImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDecorationNodeImpl.java
new file mode 100644
index 0000000..cc4a4e4
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDecorationNodeImpl.java
@@ -0,0 +1,169 @@
+/*****************************************************************************
+ * Copyright (c) 2014, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  CEA LIST - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.DecorationNodeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CSSCustomStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CustomStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+
+public class CSSDecorationNodeImpl extends DecorationNodeImpl implements CustomStyle, CSSView.Internal {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSView cssView;
+
+	private CustomStyle customStyle;
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CustomStyle getCustomStyle() {
+		if (customStyle == null) {
+			customStyle = new CSSCustomStyleDelegate(this, getEngine());
+		}
+		return customStyle;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+	// /////////////////////////////////
+	// Implements the custom styles //
+	// /////////////////////////////////
+
+	@Override
+	public boolean showElementIcon() {
+		return getCustomStyle().showElementIcon();
+	}
+
+	@Override
+	public int getQualifiedNameDepth() {
+		return getCustomStyle().getQualifiedNameDepth();
+	}
+
+	@Override
+	public boolean showShadow() {
+		return getCustomStyle().showShadow();
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDescriptionStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDescriptionStyleImpl.java
new file mode 100644
index 0000000..796387b
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDescriptionStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.DescriptionStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDescriptionStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDescriptionStyleDelegate;
+
+public class CSSDescriptionStyleImpl extends DescriptionStyleImpl implements CSSDescriptionStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDescriptionStyle descriptionStyle;
+
+	protected CSSDescriptionStyle getDescriptionStyle() {
+		if (descriptionStyle == null) {
+			descriptionStyle = new CSSDescriptionStyleDelegate(this, getEngine());
+		}
+		return descriptionStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.String getCSSDescription() {
+		java.lang.String value = super.getDescription();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getDescriptionStyle_Description(), value)) {
+			return value;
+		} else {
+			return getDescriptionStyle().getCSSDescription();
+		}
+	}
+
+
+	@Override
+	public java.lang.String getDescription() {
+		return getCSSDescription();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setDescription(java.lang.String value) {
+		super.setDescription(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDescriptionStyle_Description();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramLinkStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramLinkStyleImpl.java
new file mode 100644
index 0000000..75c70b9
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramLinkStyleImpl.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.DiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDiagramLinkStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDiagramLinkStyleDelegate;
+
+public class CSSDiagramLinkStyleImpl extends DiagramLinkStyleImpl implements CSSDiagramLinkStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDiagramLinkStyle diagramLinkStyle;
+
+	protected CSSDiagramLinkStyle getDiagramLinkStyle() {
+		if (diagramLinkStyle == null) {
+			diagramLinkStyle = new CSSDiagramLinkStyleDelegate(this, getEngine());
+		}
+		return diagramLinkStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramStyleImpl.java
new file mode 100644
index 0000000..bae8797
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDiagramStyleImpl.java
@@ -0,0 +1,204 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.DiagramStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDiagramStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDiagramStyleDelegate;
+
+public class CSSDiagramStyleImpl extends DiagramStyleImpl implements CSSDiagramStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDiagramStyle diagramStyle;
+
+	protected CSSDiagramStyle getDiagramStyle() {
+		if (diagramStyle == null) {
+			diagramStyle = new CSSDiagramStyleDelegate(this, getEngine());
+		}
+		return diagramStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSPageX() {
+		int value = super.getPageX();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageX(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageX();
+		}
+	}
+
+	@Override
+	public int getCSSPageY() {
+		int value = super.getPageY();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageY(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageY();
+		}
+	}
+
+	@Override
+	public int getCSSPageWidth() {
+		int value = super.getPageWidth();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageWidth(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageWidth();
+		}
+	}
+
+	@Override
+	public int getCSSPageHeight() {
+		int value = super.getPageHeight();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageHeight(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageHeight();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSDescription() {
+		java.lang.String value = super.getDescription();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getDescriptionStyle_Description(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSDescription();
+		}
+	}
+
+
+	@Override
+	public int getPageX() {
+		return getCSSPageX();
+	}
+
+	@Override
+	public int getPageY() {
+		return getCSSPageY();
+	}
+
+	@Override
+	public int getPageWidth() {
+		return getCSSPageWidth();
+	}
+
+	@Override
+	public int getPageHeight() {
+		return getCSSPageHeight();
+	}
+
+	@Override
+	public java.lang.String getDescription() {
+		return getCSSDescription();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setPageX(int value) {
+		super.setPageX(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageX();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageY(int value) {
+		super.setPageY(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageY();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageWidth(int value) {
+		super.setPageWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageWidth();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageHeight(int value) {
+		super.setPageHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageHeight();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setDescription(java.lang.String value) {
+		super.setDescription(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDescriptionStyle_Description();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDrawerStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDrawerStyleImpl.java
new file mode 100644
index 0000000..1813ca5
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSDrawerStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.DrawerStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+
+public class CSSDrawerStyleImpl extends DrawerStyleImpl implements CSSDrawerStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSEdgeImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSEdgeImpl.java
new file mode 100644
index 0000000..9063afb
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSEdgeImpl.java
@@ -0,0 +1,177 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.EdgeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CSSCustomStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CustomStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSEdgeImpl extends EdgeImpl implements CSSView.Internal, CustomStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSView cssView;
+
+	private CustomStyle customStyle;
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+	protected CustomStyle getCustomStyle() {
+		if (customStyle == null) {
+			customStyle = new CSSCustomStyleDelegate(this, getEngine());
+		}
+		return customStyle;
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the custom styles //
+	// /////////////////////////////////
+
+	@Override
+	public boolean showElementIcon() {
+		return getCustomStyle().showElementIcon();
+	}
+
+	@Override
+	public int getQualifiedNameDepth() {
+		return getCustomStyle().getQualifiedNameDepth();
+	}
+
+	@Override
+	public boolean showShadow() {
+		return getCustomStyle().showShadow();
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFillStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFillStyleImpl.java
new file mode 100644
index 0000000..1d68400
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFillStyleImpl.java
@@ -0,0 +1,156 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.FillStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSFillStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSFillStyleDelegate;
+
+public class CSSFillStyleImpl extends FillStyleImpl implements CSSFillStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSFillStyle fillStyle;
+
+	protected CSSFillStyle getFillStyle() {
+		if (fillStyle == null) {
+			fillStyle = new CSSFillStyleDelegate(this, getEngine());
+		}
+		return fillStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSFillColor() {
+		int value = super.getFillColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_FillColor(), value)) {
+			return value;
+		} else {
+			return getFillStyle().getCSSFillColor();
+		}
+	}
+
+	@Override
+	public int getCSSTransparency() {
+		int value = super.getTransparency();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_Transparency(), value)) {
+			return value;
+		} else {
+			return getFillStyle().getCSSTransparency();
+		}
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getCSSGradient() {
+		org.eclipse.gmf.runtime.notation.datatype.GradientData value = super.getGradient();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_Gradient(), value)) {
+			return value;
+		} else {
+			return getFillStyle().getCSSGradient();
+		}
+	}
+
+
+	@Override
+	public int getFillColor() {
+		return getCSSFillColor();
+	}
+
+	@Override
+	public int getTransparency() {
+		return getCSSTransparency();
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getGradient() {
+		return getCSSGradient();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setFillColor(int value) {
+		super.setFillColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_FillColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setTransparency(int value) {
+		super.setTransparency(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Transparency();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setGradient(org.eclipse.gmf.runtime.notation.datatype.GradientData value) {
+		super.setGradient(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Gradient();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFilteringStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFilteringStyleImpl.java
new file mode 100644
index 0000000..330514a
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFilteringStyleImpl.java
@@ -0,0 +1,133 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.Filtering;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.FilteringStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSFilteringStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSFilteringStyleDelegate;
+
+public class CSSFilteringStyleImpl extends FilteringStyleImpl implements CSSFilteringStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSFilteringStyle filteringStyle;
+
+	protected CSSFilteringStyle getFilteringStyle() {
+		if (filteringStyle == null) {
+			filteringStyle = new CSSFilteringStyleDelegate(this, getEngine());
+		}
+		return filteringStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public Filtering getCSSFiltering() {
+		Filtering value = super.getFiltering();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFilteringStyle_Filtering(), value)) {
+			return value;
+		} else {
+			return getFilteringStyle().getCSSFiltering();
+		}
+	}
+
+	@Override
+	public java.util.List getCSSFilteringKeys() {
+		java.util.List value = super.getFilteringKeys();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys(), value)) {
+			return value;
+		} else {
+			return getFilteringStyle().getCSSFilteringKeys();
+		}
+	}
+
+
+	@Override
+	public Filtering getFiltering() {
+		return getCSSFiltering();
+	}
+
+	@Override
+	public java.util.List getFilteringKeys() {
+		return getCSSFilteringKeys();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setFiltering(Filtering value) {
+		super.setFiltering(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_Filtering();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFilteringKeys(java.util.List value) {
+		super.setFilteringKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFontStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFontStyleImpl.java
new file mode 100644
index 0000000..26c0308
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSFontStyleImpl.java
@@ -0,0 +1,253 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.FontStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSFontStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSFontStyleDelegate;
+
+public class CSSFontStyleImpl extends FontStyleImpl implements CSSFontStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSFontStyle fontStyle;
+
+	protected CSSFontStyle getFontStyle() {
+		if (fontStyle == null) {
+			fontStyle = new CSSFontStyleDelegate(this, getEngine());
+		}
+		return fontStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSFontColor() {
+		int value = super.getFontColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontColor(), value)) {
+			return value;
+		} else {
+			return getFontStyle().getCSSFontColor();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSFontName() {
+		java.lang.String value = super.getFontName();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontName(), value)) {
+			return value;
+		} else {
+			return getFontStyle().getCSSFontName();
+		}
+	}
+
+	@Override
+	public int getCSSFontHeight() {
+		int value = super.getFontHeight();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontHeight(), value)) {
+			return value;
+		} else {
+			return getFontStyle().getCSSFontHeight();
+		}
+	}
+
+	@Override
+	public boolean isCSSBold() {
+		boolean value = super.isBold();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Bold(), value)) {
+			return value;
+		} else {
+			return getFontStyle().isCSSBold();
+		}
+	}
+
+	@Override
+	public boolean isCSSItalic() {
+		boolean value = super.isItalic();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Italic(), value)) {
+			return value;
+		} else {
+			return getFontStyle().isCSSItalic();
+		}
+	}
+
+	@Override
+	public boolean isCSSUnderline() {
+		boolean value = super.isUnderline();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Underline(), value)) {
+			return value;
+		} else {
+			return getFontStyle().isCSSUnderline();
+		}
+	}
+
+	@Override
+	public boolean isCSSStrikeThrough() {
+		boolean value = super.isStrikeThrough();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_StrikeThrough(), value)) {
+			return value;
+		} else {
+			return getFontStyle().isCSSStrikeThrough();
+		}
+	}
+
+
+	@Override
+	public int getFontColor() {
+		// return super.getFontColor();
+		return getCSSFontColor();
+	}
+
+	@Override
+	public java.lang.String getFontName() {
+		return getCSSFontName();
+	}
+
+	@Override
+	public int getFontHeight() {
+		return getCSSFontHeight();
+	}
+
+	@Override
+	public boolean isBold() {
+		return isCSSBold();
+	}
+
+	@Override
+	public boolean isItalic() {
+		return isCSSItalic();
+	}
+
+	@Override
+	public boolean isUnderline() {
+		return isCSSUnderline();
+	}
+
+	@Override
+	public boolean isStrikeThrough() {
+		return isCSSStrikeThrough();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setFontColor(int value) {
+		super.setFontColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFontName(java.lang.String value) {
+		super.setFontName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontName();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFontHeight(int value) {
+		super.setFontHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontHeight();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setBold(boolean value) {
+		super.setBold(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Bold();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setItalic(boolean value) {
+		super.setItalic(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Italic();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setUnderline(boolean value) {
+		super.setUnderline(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Underline();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setStrikeThrough(boolean value) {
+		super.setStrikeThrough(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_StrikeThrough();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSGuideStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSGuideStyleImpl.java
new file mode 100644
index 0000000..a15114a
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSGuideStyleImpl.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.GuideStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSGuideStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSGuideStyleDelegate;
+
+public class CSSGuideStyleImpl extends GuideStyleImpl implements CSSGuideStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSGuideStyle guideStyle;
+
+	protected CSSGuideStyle getGuideStyle() {
+		if (guideStyle == null) {
+			guideStyle = new CSSGuideStyleDelegate(this, getEngine());
+		}
+		return guideStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSHintedDiagramLinkStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSHintedDiagramLinkStyleImpl.java
new file mode 100644
index 0000000..58bc621
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSHintedDiagramLinkStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.HintedDiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSHintedDiagramLinkStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSHintedDiagramLinkStyleDelegate;
+
+public class CSSHintedDiagramLinkStyleImpl extends HintedDiagramLinkStyleImpl implements CSSHintedDiagramLinkStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSHintedDiagramLinkStyle hintedDiagramLinkStyle;
+
+	protected CSSHintedDiagramLinkStyle getHintedDiagramLinkStyle() {
+		if (hintedDiagramLinkStyle == null) {
+			hintedDiagramLinkStyle = new CSSHintedDiagramLinkStyleDelegate(this, getEngine());
+		}
+		return hintedDiagramLinkStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.String getCSSHint() {
+		java.lang.String value = super.getHint();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getHintedDiagramLinkStyle_Hint(), value)) {
+			return value;
+		} else {
+			return getHintedDiagramLinkStyle().getCSSHint();
+		}
+	}
+
+
+	@Override
+	public java.lang.String getHint() {
+		return getCSSHint();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setHint(java.lang.String value) {
+		super.setHint(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getHintedDiagramLinkStyle_Hint();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageBufferStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageBufferStyleImpl.java
new file mode 100644
index 0000000..65518d2
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageBufferStyleImpl.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.ImageBufferStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSImageBufferStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSImageBufferStyleDelegate;
+
+public class CSSImageBufferStyleImpl extends ImageBufferStyleImpl implements CSSImageBufferStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSImageBufferStyle imageBufferStyle;
+
+	protected CSSImageBufferStyle getImageBufferStyle() {
+		if (imageBufferStyle == null) {
+			imageBufferStyle = new CSSImageBufferStyleDelegate(this, getEngine());
+		}
+		return imageBufferStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.Boolean getCSSAntiAlias() {
+		java.lang.Boolean value = super.getAntiAlias();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getImageStyle_AntiAlias(), value)) {
+			return value;
+		} else {
+			return getImageBufferStyle().getCSSAntiAlias();
+		}
+	}
+
+	@Override
+	public java.lang.Boolean getCSSMaintainAspectRatio() {
+		java.lang.Boolean value = super.getMaintainAspectRatio();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getImageStyle_MaintainAspectRatio(), value)) {
+			return value;
+		} else {
+			return getImageBufferStyle().getCSSMaintainAspectRatio();
+		}
+	}
+
+
+	@Override
+	public java.lang.Boolean getAntiAlias() {
+		return getCSSAntiAlias();
+	}
+
+	@Override
+	public java.lang.Boolean getMaintainAspectRatio() {
+		return getCSSMaintainAspectRatio();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setAntiAlias(java.lang.Boolean value) {
+		super.setAntiAlias(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getImageStyle_AntiAlias();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setMaintainAspectRatio(java.lang.Boolean value) {
+		super.setMaintainAspectRatio(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getImageStyle_MaintainAspectRatio();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageStyleImpl.java
new file mode 100644
index 0000000..70485f1
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSImageStyleImpl.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.ImageStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSImageStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSImageStyleDelegate;
+
+public class CSSImageStyleImpl extends ImageStyleImpl implements CSSImageStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSImageStyle imageStyle;
+
+	protected CSSImageStyle getImageStyle() {
+		if (imageStyle == null) {
+			imageStyle = new CSSImageStyleDelegate(this, getEngine());
+		}
+		return imageStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.Boolean getCSSAntiAlias() {
+		java.lang.Boolean value = super.getAntiAlias();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getImageStyle_AntiAlias(), value)) {
+			return value;
+		} else {
+			return getImageStyle().getCSSAntiAlias();
+		}
+	}
+
+	@Override
+	public java.lang.Boolean getCSSMaintainAspectRatio() {
+		java.lang.Boolean value = super.getMaintainAspectRatio();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getImageStyle_MaintainAspectRatio(), value)) {
+			return value;
+		} else {
+			return getImageStyle().getCSSMaintainAspectRatio();
+		}
+	}
+
+
+	@Override
+	public java.lang.Boolean getAntiAlias() {
+		return getCSSAntiAlias();
+	}
+
+	@Override
+	public java.lang.Boolean getMaintainAspectRatio() {
+		return getCSSMaintainAspectRatio();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setAntiAlias(java.lang.Boolean value) {
+		super.setAntiAlias(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getImageStyle_AntiAlias();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setMaintainAspectRatio(java.lang.Boolean value) {
+		super.setMaintainAspectRatio(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getImageStyle_MaintainAspectRatio();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineStyleImpl.java
new file mode 100644
index 0000000..d5a304a
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineStyleImpl.java
@@ -0,0 +1,132 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.LineStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSLineStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSLineStyleDelegate;
+
+public class CSSLineStyleImpl extends LineStyleImpl implements CSSLineStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSLineStyle lineStyle;
+
+	protected CSSLineStyle getLineStyle() {
+		if (lineStyle == null) {
+			lineStyle = new CSSLineStyleDelegate(this, getEngine());
+		}
+		return lineStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSLineColor() {
+		int value = super.getLineColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineColor(), value)) {
+			return value;
+		} else {
+			return getLineStyle().getCSSLineColor();
+		}
+	}
+
+	@Override
+	public int getCSSLineWidth() {
+		int value = super.getLineWidth();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineWidth(), value)) {
+			return value;
+		} else {
+			return getLineStyle().getCSSLineWidth();
+		}
+	}
+
+
+	@Override
+	public int getLineColor() {
+		return getCSSLineColor();
+	}
+
+	@Override
+	public int getLineWidth() {
+		return getCSSLineWidth();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setLineColor(int value) {
+		super.setLineColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setLineWidth(int value) {
+		super.setLineWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineWidth();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineTypeStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineTypeStyleImpl.java
new file mode 100644
index 0000000..9588397
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSLineTypeStyleImpl.java
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.LineType;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.LineTypeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSLineTypeStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSLineTypeStyleDelegate;
+
+public class CSSLineTypeStyleImpl extends LineTypeStyleImpl implements CSSLineTypeStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSLineTypeStyle lineTypeStyle;
+
+	protected CSSLineTypeStyle getLineTypeStyle() {
+		if (lineTypeStyle == null) {
+			lineTypeStyle = new CSSLineTypeStyleDelegate(this, getEngine());
+		}
+		return lineTypeStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public LineType getCSSLineType() {
+		LineType value = super.getLineType();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineTypeStyle_LineType(), value)) {
+			return value;
+		} else {
+			return getLineTypeStyle().getCSSLineType();
+		}
+	}
+
+
+	@Override
+	public LineType getLineType() {
+		return getCSSLineType();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setLineType(LineType value) {
+		super.setLineType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineTypeStyle_LineType();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSListCompartmentImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSListCompartmentImpl.java
new file mode 100644
index 0000000..476e547
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSListCompartmentImpl.java
@@ -0,0 +1,212 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.Filtering;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Sorting;
+import org.eclipse.emf.cdo.gmf.notation.impl.ListCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSTitleStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSTitleStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSListCompartmentImpl extends ListCompartmentImpl implements CSSDrawerStyle, CSSTitleStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	private CSSTitleStyle titleStyle;
+
+	private CSSView cssView;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected CSSTitleStyle getTitleStyle() {
+		if (titleStyle == null) {
+			titleStyle = new CSSTitleStyleDelegate(this, getEngine());
+		}
+		return titleStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+	@Override
+	public boolean isCSSShowTitle() {
+		boolean value = super.isShowTitle();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getTitleStyle_ShowTitle(), value)) {
+			return value;
+		} else {
+			return getTitleStyle().isCSSShowTitle();
+		}
+	}
+
+	@Override
+	public boolean isShowTitle() {
+		return isCSSShowTitle();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setSorting(Sorting value) {
+		super.setSorting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_Sorting();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setSortingKeys(java.util.Map value) {
+		super.setSortingKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_SortingKeys();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFiltering(Filtering value) {
+		super.setFiltering(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_Filtering();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFilteringKeys(java.util.List value) {
+		super.setFilteringKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setShowTitle(boolean value) {
+		super.setShowTitle(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getTitleStyle_ShowTitle();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSMultiDiagramLinkStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSMultiDiagramLinkStyleImpl.java
new file mode 100644
index 0000000..e6129b3
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSMultiDiagramLinkStyleImpl.java
@@ -0,0 +1,84 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.MultiDiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSMultiDiagramLinkStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSMultiDiagramLinkStyleDelegate;
+
+public class CSSMultiDiagramLinkStyleImpl extends MultiDiagramLinkStyleImpl implements CSSMultiDiagramLinkStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSMultiDiagramLinkStyle multiDiagramLinkStyle;
+
+	protected CSSMultiDiagramLinkStyle getMultiDiagramLinkStyle() {
+		if (multiDiagramLinkStyle == null) {
+			multiDiagramLinkStyle = new CSSMultiDiagramLinkStyleDelegate(this, getEngine());
+		}
+		return multiDiagramLinkStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNamedStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNamedStyleImpl.java
new file mode 100644
index 0000000..8fb3835
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNamedStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.NamedStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSNamedStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSNamedStyleDelegate;
+
+public class CSSNamedStyleImpl extends NamedStyleImpl implements CSSNamedStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSNamedStyle namedStyle;
+
+	protected CSSNamedStyle getNamedStyle() {
+		if (namedStyle == null) {
+			namedStyle = new CSSNamedStyleDelegate(this, getEngine());
+		}
+		return namedStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.String getCSSName() {
+		java.lang.String value = super.getName();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getNamedStyle_Name(), value)) {
+			return value;
+		} else {
+			return getNamedStyle().getCSSName();
+		}
+	}
+
+
+	@Override
+	public java.lang.String getName() {
+		return getCSSName();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setName(java.lang.String value) {
+		super.setName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getNamedStyle_Name();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNodeImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNodeImpl.java
new file mode 100644
index 0000000..0f216f5
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSNodeImpl.java
@@ -0,0 +1,177 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.NodeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CSSCustomStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CustomStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSNodeImpl extends NodeImpl implements CSSView.Internal, CustomStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSView cssView;
+
+	private CustomStyle customStyle;
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+	protected CustomStyle getCustomStyle() {
+		if (customStyle == null) {
+			customStyle = new CSSCustomStyleDelegate(this, getEngine());
+		}
+		return customStyle;
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the custom styles //
+	// /////////////////////////////////
+
+	@Override
+	public boolean showElementIcon() {
+		return getCustomStyle().showElementIcon();
+	}
+
+	@Override
+	public int getQualifiedNameDepth() {
+		return getCustomStyle().getQualifiedNameDepth();
+	}
+
+	@Override
+	public boolean showShadow() {
+		return getCustomStyle().showShadow();
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPageStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPageStyleImpl.java
new file mode 100644
index 0000000..969c7d7
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPageStyleImpl.java
@@ -0,0 +1,182 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.PageStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSPageStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSPageStyleDelegate;
+
+public class CSSPageStyleImpl extends PageStyleImpl implements CSSPageStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSPageStyle pageStyle;
+
+	protected CSSPageStyle getPageStyle() {
+		if (pageStyle == null) {
+			pageStyle = new CSSPageStyleDelegate(this, getEngine());
+		}
+		return pageStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSPageX() {
+		int value = super.getPageX();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageX(), value)) {
+			return value;
+		} else {
+			return getPageStyle().getCSSPageX();
+		}
+	}
+
+	@Override
+	public int getCSSPageY() {
+		int value = super.getPageY();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageY(), value)) {
+			return value;
+		} else {
+			return getPageStyle().getCSSPageY();
+		}
+	}
+
+	@Override
+	public int getCSSPageWidth() {
+		int value = super.getPageWidth();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageWidth(), value)) {
+			return value;
+		} else {
+			return getPageStyle().getCSSPageWidth();
+		}
+	}
+
+	@Override
+	public int getCSSPageHeight() {
+		int value = super.getPageHeight();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getPageStyle_PageHeight(), value)) {
+			return value;
+		} else {
+			return getPageStyle().getCSSPageHeight();
+		}
+	}
+
+
+	@Override
+	public int getPageX() {
+		// return super.getPageX();
+		return getCSSPageX();
+	}
+
+	@Override
+	public int getPageY() {
+		// return super.getPageY();
+		return getCSSPageY();
+	}
+
+	@Override
+	public int getPageWidth() {
+		return getCSSPageWidth();
+	}
+
+	@Override
+	public int getPageHeight() {
+		return getCSSPageHeight();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setPageX(int value) {
+		super.setPageX(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageX();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageY(int value) {
+		super.setPageY(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageY();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageWidth(int value) {
+		super.setPageWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageWidth();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setPageHeight(int value) {
+		super.setPageHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageHeight();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPropertiesSetStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPropertiesSetStyleImpl.java
new file mode 100644
index 0000000..3229cdf
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSPropertiesSetStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.PropertiesSetStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSPropertiesSetStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSPropertiesSetStyleDelegate;
+
+public class CSSPropertiesSetStyleImpl extends PropertiesSetStyleImpl implements CSSPropertiesSetStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSPropertiesSetStyle propertiesSetStyle;
+
+	protected CSSPropertiesSetStyle getPropertiesSetStyle() {
+		if (propertiesSetStyle == null) {
+			propertiesSetStyle = new CSSPropertiesSetStyleDelegate(this, getEngine());
+		}
+		return propertiesSetStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public java.lang.String getCSSName() {
+		java.lang.String value = super.getName();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getNamedStyle_Name(), value)) {
+			return value;
+		} else {
+			return getPropertiesSetStyle().getCSSName();
+		}
+	}
+
+
+	@Override
+	public java.lang.String getName() {
+		return getCSSName();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setName(java.lang.String value) {
+		super.setName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getNamedStyle_Name();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoundedCornersStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoundedCornersStyleImpl.java
new file mode 100644
index 0000000..2d23315
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoundedCornersStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.RoundedCornersStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSRoundedCornersStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSRoundedCornersStyleDelegate;
+
+public class CSSRoundedCornersStyleImpl extends RoundedCornersStyleImpl implements CSSRoundedCornersStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSRoundedCornersStyle roundedCornersStyle;
+
+	protected CSSRoundedCornersStyle getRoundedCornersStyle() {
+		if (roundedCornersStyle == null) {
+			roundedCornersStyle = new CSSRoundedCornersStyleDelegate(this, getEngine());
+		}
+		return roundedCornersStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getRoundedCornersStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoutingStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoutingStyleImpl.java
new file mode 100644
index 0000000..3da067f
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSRoutingStyleImpl.java
@@ -0,0 +1,280 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.JumpLinkStatus;
+import org.eclipse.gmf.runtime.notation.JumpLinkType;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Routing;
+import org.eclipse.gmf.runtime.notation.Smoothness;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.RoutingStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSRoutingStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSRoutingStyleDelegate;
+
+public class CSSRoutingStyleImpl extends RoutingStyleImpl implements CSSRoutingStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSRoutingStyle routingStyle;
+
+	protected CSSRoutingStyle getRoutingStyle() {
+		if (routingStyle == null) {
+			routingStyle = new CSSRoutingStyleDelegate(this, getEngine());
+		}
+		return routingStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+	@Override
+	public Routing getCSSRouting() {
+		Routing value = super.getRouting();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_Routing(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().getCSSRouting();
+		}
+	}
+
+	@Override
+	public Smoothness getCSSSmoothness() {
+		Smoothness value = super.getSmoothness();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_Smoothness(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().getCSSSmoothness();
+		}
+	}
+
+	@Override
+	public boolean isCSSAvoidObstructions() {
+		boolean value = super.isAvoidObstructions();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().isCSSAvoidObstructions();
+		}
+	}
+
+	@Override
+	public boolean isCSSClosestDistance() {
+		boolean value = super.isClosestDistance();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().isCSSClosestDistance();
+		}
+	}
+
+	@Override
+	public JumpLinkStatus getCSSJumpLinkStatus() {
+		JumpLinkStatus value = super.getJumpLinkStatus();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().getCSSJumpLinkStatus();
+		}
+	}
+
+	@Override
+	public JumpLinkType getCSSJumpLinkType() {
+		JumpLinkType value = super.getJumpLinkType();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().getCSSJumpLinkType();
+		}
+	}
+
+	@Override
+	public boolean isCSSJumpLinksReverse() {
+		boolean value = super.isJumpLinksReverse();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse(), value)) {
+			return value;
+		} else {
+			return getRoutingStyle().isCSSJumpLinksReverse();
+		}
+	}
+
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+	@Override
+	public Routing getRouting() {
+		return getCSSRouting();
+	}
+
+	@Override
+	public Smoothness getSmoothness() {
+		return getCSSSmoothness();
+	}
+
+	@Override
+	public boolean isAvoidObstructions() {
+		return isCSSAvoidObstructions();
+	}
+
+	@Override
+	public boolean isClosestDistance() {
+		return isCSSClosestDistance();
+	}
+
+	@Override
+	public JumpLinkStatus getJumpLinkStatus() {
+		return getCSSJumpLinkStatus();
+	}
+
+	@Override
+	public JumpLinkType getJumpLinkType() {
+		return getCSSJumpLinkType();
+	}
+
+	@Override
+	public boolean isJumpLinksReverse() {
+		return isCSSJumpLinksReverse();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setRouting(Routing value) {
+		super.setRouting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Routing();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setSmoothness(Smoothness value) {
+		super.setSmoothness(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_Smoothness();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setAvoidObstructions(boolean value) {
+		super.setAvoidObstructions(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_AvoidObstructions();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setClosestDistance(boolean value) {
+		super.setClosestDistance(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_ClosestDistance();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinkStatus(JumpLinkStatus value) {
+		super.setJumpLinkStatus(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkStatus();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinkType(JumpLinkType value) {
+		super.setJumpLinkType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinkType();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setJumpLinksReverse(boolean value) {
+		super.setJumpLinksReverse(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoutingStyle_JumpLinksReverse();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSemanticListCompartmentImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSemanticListCompartmentImpl.java
new file mode 100644
index 0000000..9fc26b3
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSemanticListCompartmentImpl.java
@@ -0,0 +1,185 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.Filtering;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Sorting;
+import org.eclipse.emf.cdo.gmf.notation.impl.SemanticListCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDrawerStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDrawerStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSSemanticListCompartmentImpl extends SemanticListCompartmentImpl implements CSSDrawerStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDrawerStyle drawerStyle;
+
+	private CSSView cssView;
+
+	protected CSSDrawerStyle getDrawerStyle() {
+		if (drawerStyle == null) {
+			drawerStyle = new CSSDrawerStyleDelegate(this, getEngine());
+		}
+		return drawerStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSCollapsed() {
+		boolean value = super.isCollapsed();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDrawerStyle_Collapsed(), value)) {
+			return value;
+		} else {
+			return getDrawerStyle().isCSSCollapsed();
+		}
+	}
+
+
+	@Override
+	public boolean isCollapsed() {
+		return isCSSCollapsed();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setCollapsed(boolean value) {
+		super.setCollapsed(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDrawerStyle_Collapsed();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setSorting(Sorting value) {
+		super.setSorting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_Sorting();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setSortingKeys(java.util.Map value) {
+		super.setSortingKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_SortingKeys();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFiltering(Filtering value) {
+		super.setFiltering(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_Filtering();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFilteringKeys(java.util.List value) {
+		super.setFilteringKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFilteringStyle_FilteringKeys();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setShowTitle(boolean value) {
+		super.setShowTitle(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getTitleStyle_ShowTitle();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeImpl.java
new file mode 100644
index 0000000..884cdad
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeImpl.java
@@ -0,0 +1,532 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2016 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus - bugs 433206, 436665
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.ShapeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CSSCustomStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.provider.CustomStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSShapeStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSShapeStyleDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+
+public class CSSShapeImpl extends ShapeImpl implements CSSShapeStyle, CustomStyle, CSSView.Internal {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSShapeStyle shapeStyle;
+
+	private CSSView cssView;
+
+	private CustomStyle customStyle;
+
+	protected CSSShapeStyle getShapeStyle() {
+		if (shapeStyle == null) {
+			shapeStyle = new CSSShapeStyleDelegate(this, getEngine());
+		}
+		return shapeStyle;
+	}
+
+	protected CustomStyle getCustomStyle() {
+		if (customStyle == null) {
+			customStyle = new CSSCustomStyleDelegate(this, getEngine());
+		}
+		return customStyle;
+	}
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+	
+	@Override
+	public void resetCSS() {
+		cssView = null;
+		engine = null;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSFontColor() {
+		int value = super.getFontColor();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_FontColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontColor();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSFontName() {
+		java.lang.String value = super.getFontName();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_FontName(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontName();
+		}
+	}
+
+	@Override
+	public int getCSSFontHeight() {
+		int value = super.getFontHeight();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_FontHeight(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontHeight();
+		}
+	}
+
+	@Override
+	public boolean isCSSBold() {
+		boolean value = super.isBold();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_Bold(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSBold();
+		}
+	}
+
+	@Override
+	public boolean isCSSItalic() {
+		boolean value = super.isItalic();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_Italic(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSItalic();
+		}
+	}
+
+	@Override
+	public boolean isCSSUnderline() {
+		boolean value = super.isUnderline();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_Underline(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSUnderline();
+		}
+	}
+
+	@Override
+	public boolean isCSSStrikeThrough() {
+		boolean value = super.isStrikeThrough();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFontStyle_StrikeThrough(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSStrikeThrough();
+		}
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSDescription() {
+		java.lang.String value = super.getDescription();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDescriptionStyle_Description(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSDescription();
+		}
+	}
+
+	@Override
+	public int getCSSFillColor() {
+		int value = super.getFillColor();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFillStyle_FillColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFillColor();
+		}
+	}
+
+	@Override
+	public int getCSSTransparency() {
+		int value = super.getTransparency();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFillStyle_Transparency(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSTransparency();
+		}
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getCSSGradient() {
+		org.eclipse.gmf.runtime.notation.datatype.GradientData value = super.getGradient();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getFillStyle_Gradient(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSGradient();
+		}
+	}
+
+	@Override
+	public int getCSSLineColor() {
+		int value = super.getLineColor();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getLineStyle_LineColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSLineColor();
+		}
+	}
+
+	@Override
+	public int getCSSLineWidth() {
+		int value = super.getLineWidth();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getLineStyle_LineWidth(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSLineWidth();
+		}
+	}
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+
+	@Override
+	public int getFontColor() {
+		return getCSSFontColor();
+	}
+
+	@Override
+	public java.lang.String getFontName() {
+		return getCSSFontName();
+	}
+
+	@Override
+	public int getFontHeight() {
+		return getCSSFontHeight();
+	}
+
+	@Override
+	public boolean isBold() {
+		return isCSSBold();
+	}
+
+	@Override
+	public boolean isItalic() {
+		return isCSSItalic();
+	}
+
+	@Override
+	public boolean isUnderline() {
+		return isCSSUnderline();
+	}
+
+	@Override
+	public boolean isStrikeThrough() {
+		return isCSSStrikeThrough();
+	}
+
+	@Override
+	public java.lang.String getDescription() {
+		return getCSSDescription();
+	}
+
+	@Override
+	public int getFillColor() {
+		return getCSSFillColor();
+	}
+
+	@Override
+	public int getTransparency() {
+		return getCSSTransparency();
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getGradient() {
+		return getCSSGradient();
+	}
+
+	@Override
+	public int getLineColor() {
+		return getCSSLineColor();
+	}
+
+	@Override
+	public int getLineWidth() {
+		return getCSSLineWidth();
+	}
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+	@Override
+	public boolean isVisible() {
+		return isCSSVisible();
+	}
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFontColor(int value) {
+		super.setFontColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontColor();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFontName(java.lang.String value) {
+		super.setFontName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontName();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFontHeight(int value) {
+		super.setFontHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontHeight();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setBold(boolean value) {
+		super.setBold(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Bold();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setItalic(boolean value) {
+		super.setItalic(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Italic();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setUnderline(boolean value) {
+		super.setUnderline(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Underline();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setStrikeThrough(boolean value) {
+		super.setStrikeThrough(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_StrikeThrough();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setDescription(java.lang.String value) {
+		super.setDescription(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDescriptionStyle_Description();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setFillColor(int value) {
+		super.setFillColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_FillColor();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setTransparency(int value) {
+		super.setTransparency(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Transparency();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setGradient(org.eclipse.gmf.runtime.notation.datatype.GradientData value) {
+		super.setGradient(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Gradient();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setLineColor(int value) {
+		super.setLineColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineColor();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setLineWidth(int value) {
+		super.setLineWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineWidth();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		if (feature != null) {
+			ForceValueHelper.unsetValue(this, feature);
+		}
+	}
+
+	// /////////////////////////////////
+	// Implements the custom styles //
+	// /////////////////////////////////
+
+	@Override
+	public boolean showElementIcon() {
+		return getCustomStyle().showElementIcon();
+	}
+
+	@Override
+	public int getQualifiedNameDepth() {
+		return getCustomStyle().getQualifiedNameDepth();
+	}
+
+	@Override
+	public boolean showShadow() {
+		return getCustomStyle().showShadow();
+	}
+
+	// ////////////////////////////////
+	// Implements the getNamedStyle //
+	// ////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeStyleImpl.java
new file mode 100644
index 0000000..067556a
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSShapeStyleImpl.java
@@ -0,0 +1,422 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.ShapeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSShapeStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSShapeStyleDelegate;
+
+public class CSSShapeStyleImpl extends ShapeStyleImpl implements CSSShapeStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSShapeStyle shapeStyle;
+
+	protected CSSShapeStyle getShapeStyle() {
+		if (shapeStyle == null) {
+			shapeStyle = new CSSShapeStyleDelegate(this, getEngine());
+		}
+		return shapeStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSFontColor() {
+		int value = super.getFontColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontColor();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSFontName() {
+		java.lang.String value = super.getFontName();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontName(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontName();
+		}
+	}
+
+	@Override
+	public int getCSSFontHeight() {
+		int value = super.getFontHeight();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_FontHeight(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFontHeight();
+		}
+	}
+
+	@Override
+	public boolean isCSSBold() {
+		boolean value = super.isBold();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Bold(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSBold();
+		}
+	}
+
+	@Override
+	public boolean isCSSItalic() {
+		boolean value = super.isItalic();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Italic(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSItalic();
+		}
+	}
+
+	@Override
+	public boolean isCSSUnderline() {
+		boolean value = super.isUnderline();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_Underline(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSUnderline();
+		}
+	}
+
+	@Override
+	public boolean isCSSStrikeThrough() {
+		boolean value = super.isStrikeThrough();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFontStyle_StrikeThrough(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().isCSSStrikeThrough();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSDescription() {
+		java.lang.String value = super.getDescription();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getDescriptionStyle_Description(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSDescription();
+		}
+	}
+
+	@Override
+	public int getCSSFillColor() {
+		int value = super.getFillColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_FillColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSFillColor();
+		}
+	}
+
+	@Override
+	public int getCSSTransparency() {
+		int value = super.getTransparency();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_Transparency(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSTransparency();
+		}
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getCSSGradient() {
+		org.eclipse.gmf.runtime.notation.datatype.GradientData value = super.getGradient();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getFillStyle_Gradient(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSGradient();
+		}
+	}
+
+	@Override
+	public int getCSSLineColor() {
+		int value = super.getLineColor();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineColor(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSLineColor();
+		}
+	}
+
+	@Override
+	public int getCSSLineWidth() {
+		int value = super.getLineWidth();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getLineStyle_LineWidth(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSLineWidth();
+		}
+	}
+
+	@Override
+	public int getCSSRoundedBendpointsRadius() {
+		int value = super.getRoundedBendpointsRadius();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius(), value)) {
+			return value;
+		} else {
+			return getShapeStyle().getCSSRoundedBendpointsRadius();
+		}
+	}
+
+
+	@Override
+	public int getFontColor() {
+		return getCSSFontColor();
+	}
+
+	@Override
+	public java.lang.String getFontName() {
+		return getCSSFontName();
+	}
+
+	@Override
+	public int getFontHeight() {
+		return getCSSFontHeight();
+	}
+
+	@Override
+	public boolean isBold() {
+		return isCSSBold();
+	}
+
+	@Override
+	public boolean isItalic() {
+		return isCSSItalic();
+	}
+
+	@Override
+	public boolean isUnderline() {
+		return isCSSUnderline();
+	}
+
+	@Override
+	public boolean isStrikeThrough() {
+		// return super.isStrikeThrough();
+		return isCSSStrikeThrough();
+	}
+
+	@Override
+	public java.lang.String getDescription() {
+		// return super.getDescription();
+		return getCSSDescription();
+	}
+
+	@Override
+	public int getFillColor() {
+		return getCSSFillColor();
+	}
+
+	@Override
+	public int getTransparency() {
+		return getCSSTransparency();
+	}
+
+	@Override
+	public org.eclipse.gmf.runtime.notation.datatype.GradientData getGradient() {
+		return getCSSGradient();
+	}
+
+	@Override
+	public int getLineColor() {
+		return getCSSLineColor();
+	}
+
+	@Override
+	public int getLineWidth() {
+		return getCSSLineWidth();
+	}
+
+	@Override
+	public int getRoundedBendpointsRadius() {
+		return getCSSRoundedBendpointsRadius();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setFontColor(int value) {
+		super.setFontColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFontName(java.lang.String value) {
+		super.setFontName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontName();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFontHeight(int value) {
+		super.setFontHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_FontHeight();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setBold(boolean value) {
+		super.setBold(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Bold();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setItalic(boolean value) {
+		super.setItalic(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Italic();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setUnderline(boolean value) {
+		super.setUnderline(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_Underline();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setStrikeThrough(boolean value) {
+		super.setStrikeThrough(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFontStyle_StrikeThrough();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setDescription(java.lang.String value) {
+		super.setDescription(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDescriptionStyle_Description();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setFillColor(int value) {
+		super.setFillColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_FillColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setTransparency(int value) {
+		super.setTransparency(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Transparency();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setGradient(org.eclipse.gmf.runtime.notation.datatype.GradientData value) {
+		super.setGradient(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getFillStyle_Gradient();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setLineColor(int value) {
+		super.setLineColor(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineColor();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setLineWidth(int value) {
+		super.setLineWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getLineStyle_LineWidth();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setRoundedBendpointsRadius(int value) {
+		super.setRoundedBendpointsRadius(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getRoundedCornersStyle_RoundedBendpointsRadius();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSortingStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSortingStyleImpl.java
new file mode 100644
index 0000000..0393b71
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSSortingStyleImpl.java
@@ -0,0 +1,133 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Sorting;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.SortingStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSSortingStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSSortingStyleDelegate;
+
+public class CSSSortingStyleImpl extends SortingStyleImpl implements CSSSortingStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSSortingStyle sortingStyle;
+
+	protected CSSSortingStyle getSortingStyle() {
+		if (sortingStyle == null) {
+			sortingStyle = new CSSSortingStyleDelegate(this, getEngine());
+		}
+		return sortingStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public Sorting getCSSSorting() {
+		Sorting value = super.getSorting();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getSortingStyle_Sorting(), value)) {
+			return value;
+		} else {
+			return getSortingStyle().getCSSSorting();
+		}
+	}
+
+	@Override
+	public java.util.Map getCSSSortingKeys() {
+		java.util.Map value = super.getSortingKeys();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getSortingStyle_SortingKeys(), value)) {
+			return value;
+		} else {
+			return getSortingStyle().getCSSSortingKeys();
+		}
+	}
+
+
+	@Override
+	public Sorting getSorting() {
+		return getCSSSorting();
+	}
+
+	@Override
+	public java.util.Map getSortingKeys() {
+		return getCSSSortingKeys();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setSorting(Sorting value) {
+		super.setSorting(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_Sorting();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	@Override
+	public void setSortingKeys(java.util.Map value) {
+		super.setSortingKeys(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getSortingStyle_SortingKeys();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSStandardDiagramImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSStandardDiagramImpl.java
new file mode 100644
index 0000000..5bc7d3d
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSStandardDiagramImpl.java
@@ -0,0 +1,230 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.MeasurementUnit;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.emf.cdo.gmf.notation.impl.StandardDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSDiagramStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSDiagramStyleDelegate;
+
+public class CSSStandardDiagramImpl extends StandardDiagramImpl implements CSSDiagramStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSDiagramStyle diagramStyle;
+
+	protected CSSDiagramStyle getDiagramStyle() {
+		if (diagramStyle == null) {
+			diagramStyle = new CSSDiagramStyleDelegate(this, getEngine());
+		}
+		return diagramStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagramImpl) getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public int getCSSPageX() {
+		int value = super.getPageX();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getPageStyle_PageX(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageX();
+		}
+	}
+
+	@Override
+	public int getCSSPageY() {
+		int value = super.getPageY();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getPageStyle_PageY(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageY();
+		}
+	}
+
+	@Override
+	public int getCSSPageWidth() {
+		int value = super.getPageWidth();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getPageStyle_PageWidth(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageWidth();
+		}
+	}
+
+	@Override
+	public int getCSSPageHeight() {
+		int value = super.getPageHeight();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getPageStyle_PageHeight(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSPageHeight();
+		}
+	}
+
+	@Override
+	public java.lang.String getCSSDescription() {
+		java.lang.String value = super.getDescription();
+
+		if (ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getDescriptionStyle_Description(), value)) {
+			return value;
+		} else {
+			return getDiagramStyle().getCSSDescription();
+		}
+	}
+
+
+	@Override
+	public int getPageX() {
+		return getCSSPageX();
+	}
+
+	@Override
+	public int getPageY() {
+		return getCSSPageY();
+	}
+
+	@Override
+	public int getPageWidth() {
+		return getCSSPageWidth();
+	}
+
+	@Override
+	public int getPageHeight() {
+		return getCSSPageHeight();
+	}
+
+	@Override
+	public java.lang.String getDescription() {
+		return getCSSDescription();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setVisible(boolean value) {
+		super.setVisible(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Visible();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setType(java.lang.String value) {
+		super.setType(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Type();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMutable(boolean value) {
+		super.setMutable(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getView_Mutable();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setName(java.lang.String value) {
+		super.setName(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDiagram_Name();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setMeasurementUnit(MeasurementUnit value) {
+		super.setMeasurementUnit(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDiagram_MeasurementUnit();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setPageX(int value) {
+		super.setPageX(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageX();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setPageY(int value) {
+		super.setPageY(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageY();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setPageWidth(int value) {
+		super.setPageWidth(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageWidth();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setPageHeight(int value) {
+		super.setPageHeight(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getPageStyle_PageHeight();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	@Override
+	public void setDescription(java.lang.String value) {
+		super.setDescription(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getDescriptionStyle_Description();
+		ForceValueHelper.setValue(this, feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(this, feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTextStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTextStyleImpl.java
new file mode 100644
index 0000000..3f3a6ae
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTextStyleImpl.java
@@ -0,0 +1,109 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.TextAlignment;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.TextStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSTextStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSTextStyleDelegate;
+
+public class CSSTextStyleImpl extends TextStyleImpl implements CSSTextStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSTextStyle textStyle;
+
+	protected CSSTextStyle getTextStyle() {
+		if (textStyle == null) {
+			textStyle = new CSSTextStyleDelegate(this, getEngine());
+		}
+		return textStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public TextAlignment getCSSTextAlignment() {
+		TextAlignment value = super.getTextAlignment();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getTextStyle_TextAlignment(), value)) {
+			return value;
+		} else {
+			return getTextStyle().getCSSTextAlignment();
+		}
+	}
+
+
+	@Override
+	public TextAlignment getTextAlignment() {
+		return getCSSTextAlignment();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setTextAlignment(TextAlignment value) {
+		super.setTextAlignment(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getTextStyle_TextAlignment();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTitleStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTitleStyleImpl.java
new file mode 100644
index 0000000..8a7b205
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/CSSTitleStyleImpl.java
@@ -0,0 +1,108 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo;
+
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EStructuralFeature;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.View;
+import org.eclipse.emf.cdo.gmf.notation.impl.TitleStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram;
+import org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSTitleStyle;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSTitleStyleDelegate;
+
+public class CSSTitleStyleImpl extends TitleStyleImpl implements CSSTitleStyle {
+
+	protected ExtendedCSSEngine engine;
+
+	private CSSTitleStyle titleStyle;
+
+	protected CSSTitleStyle getTitleStyle() {
+		if (titleStyle == null) {
+			titleStyle = new CSSTitleStyleDelegate(this, getEngine());
+		}
+		return titleStyle;
+	}
+
+	protected ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			engine = ((CSSDiagram) findView().getDiagram()).getEngine();
+		}
+		return engine;
+	}
+
+	protected View findView() {
+		EObject parent = eContainer();
+		while (!(parent instanceof View) && parent != null) {
+			parent = parent.eContainer();
+		}
+
+		if (parent != null) {
+			return (View) parent;
+		}
+
+		return null;
+	}
+
+
+	// ////////////////////////////////////////
+	// Forwards accesses to CSS properties //
+	// ////////////////////////////////////////
+
+
+	@Override
+	public boolean isCSSShowTitle() {
+		boolean value = super.isShowTitle();
+
+		if (ForceValueHelper.isSet(findView(), this, NotationPackage.eINSTANCE.getTitleStyle_ShowTitle(), value)) {
+			return value;
+		} else {
+			return getTitleStyle().isCSSShowTitle();
+		}
+	}
+
+
+	@Override
+	public boolean isShowTitle() {
+		return isCSSShowTitle();
+	}
+
+
+
+	// //////////////////////////////////////////////
+	// Implements a setter for each CSS property //
+	// //////////////////////////////////////////////
+
+	@Override
+	public void setShowTitle(boolean value) {
+		super.setShowTitle(value);
+
+		EStructuralFeature feature = NotationPackage.eINSTANCE.getTitleStyle_ShowTitle();
+		ForceValueHelper.setValue(findView(), feature, value);
+	}
+
+	// ////////////////////////////////
+	// Implements the unset method //
+	// ////////////////////////////////
+
+	@Override
+	public void eUnset(int featureId) {
+		super.eUnset(featureId);
+
+		EStructuralFeature feature = eClass().getEStructuralFeature(featureId);
+		ForceValueHelper.unsetValue(findView(), feature);
+	}
+
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/factory/CSSNotationFactory.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/factory/CSSNotationFactory.java
new file mode 100644
index 0000000..1cb2228
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/factory/CSSNotationFactory.java
@@ -0,0 +1,310 @@
+/*****************************************************************************
+ * Copyright (c) 2012 CEA LIST.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo.factory;
+
+import org.eclipse.gmf.runtime.notation.ArrowStyle;
+import org.eclipse.gmf.runtime.notation.BasicCompartment;
+import org.eclipse.gmf.runtime.notation.BasicSemanticCompartment;
+import org.eclipse.gmf.runtime.notation.CanonicalStyle;
+import org.eclipse.gmf.runtime.notation.Compartment;
+import org.eclipse.gmf.runtime.notation.Connector;
+import org.eclipse.gmf.runtime.notation.ConnectorStyle;
+import org.eclipse.gmf.runtime.notation.DataTypeStyle;
+import org.eclipse.gmf.runtime.notation.DecorationNode;
+import org.eclipse.gmf.runtime.notation.DescriptionStyle;
+import org.eclipse.gmf.runtime.notation.Diagram;
+import org.eclipse.gmf.runtime.notation.DiagramLinkStyle;
+import org.eclipse.gmf.runtime.notation.DiagramStyle;
+import org.eclipse.gmf.runtime.notation.DrawerStyle;
+import org.eclipse.gmf.runtime.notation.Edge;
+import org.eclipse.gmf.runtime.notation.FillStyle;
+import org.eclipse.gmf.runtime.notation.FilteringStyle;
+import org.eclipse.gmf.runtime.notation.FontStyle;
+import org.eclipse.gmf.runtime.notation.GuideStyle;
+import org.eclipse.gmf.runtime.notation.HintedDiagramLinkStyle;
+import org.eclipse.gmf.runtime.notation.ImageBufferStyle;
+import org.eclipse.gmf.runtime.notation.ImageStyle;
+import org.eclipse.gmf.runtime.notation.LineStyle;
+import org.eclipse.gmf.runtime.notation.LineTypeStyle;
+import org.eclipse.gmf.runtime.notation.ListCompartment;
+import org.eclipse.gmf.runtime.notation.MultiDiagramLinkStyle;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.Node;
+import org.eclipse.gmf.runtime.notation.PageStyle;
+import org.eclipse.gmf.runtime.notation.PropertiesSetStyle;
+import org.eclipse.gmf.runtime.notation.RoundedCornersStyle;
+import org.eclipse.gmf.runtime.notation.RoutingStyle;
+import org.eclipse.gmf.runtime.notation.SemanticListCompartment;
+import org.eclipse.gmf.runtime.notation.Shape;
+import org.eclipse.gmf.runtime.notation.ShapeStyle;
+import org.eclipse.gmf.runtime.notation.SortingStyle;
+import org.eclipse.gmf.runtime.notation.StandardDiagram;
+import org.eclipse.gmf.runtime.notation.TextStyle;
+import org.eclipse.gmf.runtime.notation.TitleStyle;
+import org.eclipse.emf.cdo.gmf.notation.impl.NotationFactoryImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSArrowStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSBasicCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSBasicSemanticCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSCanonicalStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSConnectorImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSConnectorStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDataTypeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDecorationNodeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDescriptionStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDiagramStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSDrawerStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSEdgeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFillStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFilteringStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSFontStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSGuideStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSHintedDiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSImageBufferStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSImageStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSLineStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSLineTypeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSListCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSMultiDiagramLinkStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSNamedStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSNodeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSPageStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSPropertiesSetStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSRoundedCornersStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSRoutingStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSSemanticListCompartmentImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSShapeImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSShapeStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSSortingStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSStandardDiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSTextStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.CSSTitleStyleImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.cdo.notation.CSSDiagramImpl;
+
+/**
+ * This factory overrides the GMF NotationFactory for implementing the Notation model
+ *
+ * It provides a CSS-Aware implementation of the Notation model.
+ *
+ * As the only way to use a custom Metamodel Factory is to replace the singleton instance, this factory may introduce
+ * noise for all GMF-based components. However, the CSS implementation of the Notation Metamodel is built in such a way
+ * that it doesn't introduce any behavioral change for non-CSS diagrams.
+ *
+ * The CSS Support must be explicitly installed on the ResourceSet in order to activate the CSS-Aware capabilities of
+ * this implementation.
+ *
+ * @see {@link org.eclipse.papyrus.infra.gmfdiag.css.helper.CSSHelper#installCSSSupport(org.eclipse.emf.ecore.resource.ResourceSet)}
+ *
+ * @author Camille Letavernier
+ *
+ */
+public class CSSNotationFactory extends NotationFactoryImpl {
+
+	public static CSSNotationFactory eINSTANCE = new CSSNotationFactory();
+
+	@Override
+	public Diagram createDiagram() {
+		return new CSSDiagramImpl();
+	}
+
+	@Override
+	public FillStyle createFillStyle() {
+		return new CSSFillStyleImpl();
+	}
+
+	@Override
+	public LineStyle createLineStyle() {
+		return new CSSLineStyleImpl();
+	}
+
+	@Override
+	public FontStyle createFontStyle() {
+		return new CSSFontStyleImpl();
+	}
+
+	@Override
+	public TitleStyle createTitleStyle() {
+		return new CSSTitleStyleImpl();
+	}
+
+	@Override
+	public SortingStyle createSortingStyle() {
+		return new CSSSortingStyleImpl();
+	}
+
+	@Override
+	public DescriptionStyle createDescriptionStyle() {
+		return new CSSDescriptionStyleImpl();
+	}
+
+	@Override
+	public RoutingStyle createRoutingStyle() {
+		return new CSSRoutingStyleImpl();
+	}
+
+	@Override
+	public CanonicalStyle createCanonicalStyle() {
+		return new CSSCanonicalStyleImpl();
+	}
+
+	@Override
+	public ShapeStyle createShapeStyle() {
+		return new CSSShapeStyleImpl();
+	}
+
+	@Override
+	public ConnectorStyle createConnectorStyle() {
+		return new CSSConnectorStyleImpl();
+	}
+
+	@Override
+	public PageStyle createPageStyle() {
+		return new CSSPageStyleImpl();
+	}
+
+	@Override
+	public DrawerStyle createDrawerStyle() {
+		return new CSSDrawerStyleImpl();
+	}
+
+	@Override
+	public GuideStyle createGuideStyle() {
+		return new CSSGuideStyleImpl();
+	}
+
+	@Override
+	public FilteringStyle createFilteringStyle() {
+		return new CSSFilteringStyleImpl();
+	}
+
+	@Override
+	public DiagramStyle createDiagramStyle() {
+		return new CSSDiagramStyleImpl();
+	}
+
+	@Override
+	public ImageStyle createImageStyle() {
+		return new CSSImageStyleImpl();
+	}
+
+	@Override
+	public ImageBufferStyle createImageBufferStyle() {
+		return new CSSImageBufferStyleImpl();
+	}
+
+	@Override
+	public PropertiesSetStyle createPropertiesSetStyle() {
+		return new CSSPropertiesSetStyleImpl();
+	}
+
+	@Override
+	public NamedStyle createNamedStyle() {
+		return new CSSNamedStyleImpl();
+	}
+
+	@Override
+	public DataTypeStyle createDataTypeStyle() {
+		return new CSSDataTypeStyleImpl();
+	}
+
+	@Override
+	public HintedDiagramLinkStyle createHintedDiagramLinkStyle() {
+		return new CSSHintedDiagramLinkStyleImpl();
+	}
+
+	@Override
+	public DiagramLinkStyle createDiagramLinkStyle() {
+		return new CSSDiagramLinkStyleImpl();
+	}
+
+	@Override
+	public MultiDiagramLinkStyle createMultiDiagramLinkStyle() {
+		return new CSSMultiDiagramLinkStyleImpl();
+	}
+
+	@Override
+	public TextStyle createTextStyle() {
+		return new CSSTextStyleImpl();
+	}
+
+	@Override
+	public LineTypeStyle createLineTypeStyle() {
+		return new CSSLineTypeStyleImpl();
+	}
+
+	@Override
+	public ArrowStyle createArrowStyle() {
+		return new CSSArrowStyleImpl();
+	}
+
+	@Override
+	public Shape createShape() {
+		return new CSSShapeImpl();
+	}
+
+	@Override
+	public Compartment createCompartment() {
+		return new CSSCompartmentImpl();
+	}
+
+	@Override
+	public ListCompartment createListCompartment() {
+		return new CSSListCompartmentImpl();
+	}
+
+	@Override
+	public Connector createConnector() {
+		return new CSSConnectorImpl();
+	}
+
+	@Override
+	public StandardDiagram createStandardDiagram() {
+		return new CSSStandardDiagramImpl();
+	}
+
+	@Override
+	public BasicCompartment createBasicCompartment() {
+		return new CSSBasicCompartmentImpl();
+	}
+
+	@Override
+	public BasicSemanticCompartment createBasicSemanticCompartment() {
+		return new CSSBasicSemanticCompartmentImpl();
+	}
+
+	@Override
+	public SemanticListCompartment createSemanticListCompartment() {
+		return new CSSSemanticListCompartmentImpl();
+	}
+
+	@Override
+	public RoundedCornersStyle createRoundedCornersStyle() {
+		return new CSSRoundedCornersStyleImpl();
+	}
+
+	@Override
+	public DecorationNode createDecorationNode() {
+		return new CSSDecorationNodeImpl();
+	}
+
+	@Override
+	public Edge createEdge() {
+		return new CSSEdgeImpl();
+	}
+
+	@Override
+	public Node createNode() {
+		return new CSSNodeImpl();
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/notation/CSSDiagramImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/notation/CSSDiagramImpl.java
new file mode 100644
index 0000000..441ae6d
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.css.cdo/src/org/eclipse/papyrus/infra/gmfdiag/css/cdo/notation/CSSDiagramImpl.java
@@ -0,0 +1,191 @@
+/*****************************************************************************
+ * Copyright (c) 2012, 2017 CEA LIST, Christian W. Damus, and others.
+ *
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *  Camille Letavernier (CEA LIST) camille.letavernier@cea.fr - Initial API and implementation
+ *  Christian W. Damus (CEA) - support adapter instead of custom resource impl for CSS (CDO)
+ *  Christian W. Damus - bugs 433206, 464443, 436665
+ *  Camille Letavernier (EclipseSource) - Bug 519412
+ *
+ *****************************************************************************/
+package org.eclipse.papyrus.infra.gmfdiag.css.cdo.notation;
+
+import java.util.LinkedList;
+import java.util.List;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.resource.Resource;
+import org.eclipse.gmf.runtime.notation.EObjectListValueStyle;
+import org.eclipse.gmf.runtime.notation.NamedStyle;
+import org.eclipse.gmf.runtime.notation.NotationPackage;
+import org.eclipse.gmf.runtime.notation.Style;
+import org.eclipse.emf.cdo.gmf.notation.impl.DiagramImpl;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.DiagramCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ExtendedCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.engine.ViewpointCSSEngine;
+import org.eclipse.papyrus.infra.gmfdiag.css.resource.CSSNotationResource;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.CSSView;
+import org.eclipse.papyrus.infra.gmfdiag.css.style.impl.CSSViewDelegate;
+import org.eclipse.papyrus.infra.gmfdiag.css.stylesheets.StyleSheet;
+
+/**
+ * Default implementation for CSSDiagram
+ *
+ * @author Camille letavernier
+ */
+@SuppressWarnings("restriction")
+public class CSSDiagramImpl extends DiagramImpl implements org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSDiagram, CSSView.Internal {
+
+	protected ExtendedCSSEngine engine;
+	private ExtendedCSSEngine viewpointEngine;
+
+	private CSSView cssView;
+
+	@Override
+	public ExtendedCSSEngine getEngine() {
+		if (engine == null) {
+			ExtendedCSSEngine modelEngine = getModelEngine();
+			viewpointEngine = new ViewpointCSSEngine(modelEngine, this);
+			engine = new DiagramCSSEngine(viewpointEngine, this);
+		}
+		return engine;
+	}
+
+	@Override
+	public void resetCSS() {
+		if (engine != null) {
+			cssView = null;
+
+			engine.dispose();
+			engine = null;
+			viewpointEngine.dispose();
+			viewpointEngine = null;
+
+			// And walk our contents to make all views forget their engine
+			eAllContents().forEachRemaining(o -> {
+				if (o instanceof CSSView.Internal) {
+					((CSSView.Internal) o).resetCSS();
+				}
+			});
+		}
+	}
+
+	@Override
+	protected void eSetDirectResource(Resource.Internal resource) {
+		Resource.Internal oldResource = eInternalResource();
+
+		super.eSetDirectResource(resource);
+
+		if (oldResource != resource) {
+			// My engine is now invalid because my resource is different than before,
+			// which makes its parent engine is obsolete
+			resetCSS();
+		}
+	}
+
+	protected ExtendedCSSEngine getModelEngine() {
+		Resource resource = eResource();
+		return (resource == null) ? null : CSSNotationResource.getEngine(resource);
+	}
+
+	@Override
+	public List<StyleSheet> getStyleSheets() {
+		List<StyleSheet> result = new LinkedList<StyleSheet>();
+
+		for (Object styleObject : getStyles()) {
+			if (styleObject instanceof NamedStyle) {
+
+				NamedStyle style = (NamedStyle) styleObject;
+
+				if (org.eclipse.papyrus.infra.gmfdiag.css.notation.CSSStyles.CSS_DIAGRAM_STYLESHEETS_KEY.equals(style.getName())) {
+					if (style instanceof EObjectListValueStyle) {
+
+						EObjectListValueStyle stylesheetsStyle = (EObjectListValueStyle) style;
+
+						for (Object eObjectValue : stylesheetsStyle.getEObjectListValue()) {
+							if (eObjectValue instanceof StyleSheet) {
+								result.add((StyleSheet) eObjectValue);
+							}
+						}
+					}
+				}
+			}
+		}
+
+		return result;
+	}
+
+	
+
+	protected CSSView getCSSView() {
+		if (cssView == null) {
+			cssView = new CSSViewDelegate(this, getEngine());
+		}
+		return cssView;
+	}
+
+	// //////////////////////////////////
+	// Implements the isVisible method //
+	// //////////////////////////////////
+
+	@Override
+	public boolean isVisible() {
+		// return super.isVisible();
+		return isCSSVisible();
+	}
+
+	@Override
+	public boolean isCSSVisible() {
+		boolean value = super.isVisible();
+
+		if (org.eclipse.papyrus.infra.gmfdiag.css.notation.ForceValueHelper.isSet(this, NotationPackage.eINSTANCE.getView_Visible(), value)) {
+			return value;
+		} else {
+			return getCSSView().isCSSVisible();
+		}
+	}
+
+	// //////////////////////////////////////
+	// Implements the getNamedStyle method //
+	// //////////////////////////////////////
+
+	@Override
+	public NamedStyle getNamedStyle(EClass eClass, String name) {
+		return getCSSNamedStyle(eClass, name);
+	}
+
+	@Override
+	public NamedStyle getCSSNamedStyle(EClass eClass, String name) {
+		NamedStyle userStyle = super.getNamedStyle(eClass, name);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSNamedStyle(eClass, name);
+	}
+
+	// /////////////////////////////////
+	// Implements the getStyle method //
+	// /////////////////////////////////
+
+	@Override
+	public Style getStyle(EClass eClass) {
+		return getCSSStyle(eClass);
+	}
+
+	@Override
+	public Style getCSSStyle(EClass eClass) {
+		Style userStyle = super.getStyle(eClass);
+		if (userStyle != null) {
+			return userStyle;
+		}
+
+		return getCSSView().getCSSStyle(eClass);
+	}
+
+}
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.classpath b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.classpath
new file mode 100644
index 0000000..26e67d6
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.classpath
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER/org.eclipse.jdt.internal.debug.ui.launcher.StandardVMType/JavaSE-1.8"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src-gen"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.project b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.project
new file mode 100644
index 0000000..7b6f238
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.project
@@ -0,0 +1,45 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.papyrus.infra.gmfdiag.style.cdo</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.pde.api.tools.apiAnalysisBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<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>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.api.tools.apiAnalysisNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.eclipse.pde.PluginNature</nature>
+	</natures>
+  <filteredResources>
+    <filter>
+      <id>1396938000000</id>
+      <name></name>
+      <type>10</type>
+      <matcher>
+        <id>org.eclipse.ui.ide.multiFilter</id>
+        <arguments>1.0-projectRelativePath-matches-true-false-target</arguments>
+      </matcher>
+    </filter>
+  </filteredResources>
+</projectDescription>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.resources.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..896a9a5
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
\ No newline at end of file
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.runtime.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.jdt.core.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..8ddd9a8
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,296 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.methodParameters=do not generate
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.8
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.8
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.source=1.8
+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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.jdt.ui.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..954281d
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.pde.api.tools.prefs b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..b2260f8
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,104 @@
+ANNOTATION_ELEMENT_TYPE_ADDED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_ADDED_METHOD_WITHOUT_DEFAULT_VALUE=Error
+ANNOTATION_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_FIELD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_METHOD=Error
+ANNOTATION_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_API_TYPE=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_API_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Warning
+API_COMPONENT_ELEMENT_TYPE_REMOVED_TYPE=Error
+API_USE_SCAN_FIELD_SEVERITY=Error
+API_USE_SCAN_METHOD_SEVERITY=Error
+API_USE_SCAN_TYPE_SEVERITY=Error
+CLASS_ELEMENT_TYPE_ADDED_FIELD=Warning
+CLASS_ELEMENT_TYPE_ADDED_METHOD=Error
+CLASS_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+CLASS_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CLASS_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+CLASS_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+CLASS_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+CLASS_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+CLASS_ELEMENT_TYPE_REMOVED_CONSTRUCTOR=Error
+CLASS_ELEMENT_TYPE_REMOVED_FIELD=Error
+CLASS_ELEMENT_TYPE_REMOVED_METHOD=Error
+CLASS_ELEMENT_TYPE_REMOVED_SUPERCLASS=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+CLASS_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+CONSTRUCTOR_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+CONSTRUCTOR_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+ENUM_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+ENUM_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+ENUM_ELEMENT_TYPE_REMOVED_ENUM_CONSTANT=Error
+ENUM_ELEMENT_TYPE_REMOVED_FIELD=Error
+ENUM_ELEMENT_TYPE_REMOVED_METHOD=Error
+ENUM_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+FIELD_ELEMENT_TYPE_ADDED_VALUE=Warning
+FIELD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+FIELD_ELEMENT_TYPE_CHANGED_FINAL_TO_NON_FINAL_STATIC_CONSTANT=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+FIELD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+FIELD_ELEMENT_TYPE_CHANGED_TYPE=Error
+FIELD_ELEMENT_TYPE_CHANGED_VALUE=Warning
+FIELD_ELEMENT_TYPE_REMOVED_TYPE_ARGUMENT=Error
+FIELD_ELEMENT_TYPE_REMOVED_VALUE=Error
+ILLEGAL_EXTEND=Warning
+ILLEGAL_IMPLEMENT=Warning
+ILLEGAL_INSTANTIATE=Warning
+ILLEGAL_OVERRIDE=Warning
+ILLEGAL_REFERENCE=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_DEFAULT_METHOD=Warning
+INTERFACE_ELEMENT_TYPE_ADDED_FIELD=Ignore
+INTERFACE_ELEMENT_TYPE_ADDED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_SUPER_INTERFACE_WITH_METHODS=Error
+INTERFACE_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_CONTRACTED_SUPERINTERFACES_SET=Error
+INTERFACE_ELEMENT_TYPE_CHANGED_TYPE_CONVERSION=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_FIELD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_METHOD=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_MEMBER=Error
+INTERFACE_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+INVALID_ANNOTATION=Ignore
+INVALID_JAVADOC_TAG=Ignore
+INVALID_REFERENCE_IN_SYSTEM_LIBRARIES=Ignore
+LEAK_EXTEND=Warning
+LEAK_FIELD_DECL=Warning
+LEAK_IMPLEMENT=Warning
+LEAK_METHOD_PARAM=Warning
+LEAK_METHOD_RETURN_TYPE=Warning
+METHOD_ELEMENT_TYPE_ADDED_RESTRICTIONS=Error
+METHOD_ELEMENT_TYPE_ADDED_TYPE_PARAMETER=Error
+METHOD_ELEMENT_TYPE_CHANGED_DECREASE_ACCESS=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_ABSTRACT_TO_ABSTRACT=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_FINAL_TO_FINAL=Error
+METHOD_ELEMENT_TYPE_CHANGED_NON_STATIC_TO_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_STATIC_TO_NON_STATIC=Error
+METHOD_ELEMENT_TYPE_CHANGED_VARARGS_TO_ARRAY=Error
+METHOD_ELEMENT_TYPE_REMOVED_ANNOTATION_DEFAULT_VALUE=Error
+METHOD_ELEMENT_TYPE_REMOVED_TYPE_PARAMETER=Error
+MISSING_EE_DESCRIPTIONS=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_ADDED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_CHANGED_INTERFACE_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_CLASS_BOUND=Error
+TYPE_PARAMETER_ELEMENT_TYPE_REMOVED_INTERFACE_BOUND=Error
+UNUSED_PROBLEM_FILTERS=Warning
+automatically_removed_unused_problem_filters=Enabled
+changed_execution_env=Warning
+eclipse.preferences.version=1
+incompatible_api_component_version=Warning
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+incompatible_api_component_version_report_major_without_breaking_change=Error
+incompatible_api_component_version_report_minor_without_api_change=Error
+invalid_since_tag_version=Error
+malformed_since_tag=Error
+missing_since_tag=Error
+report_api_breakage_when_major_version_incremented=Disabled
+report_resolution_errors_api_component=Warning
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/META-INF/MANIFEST.MF b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..691dfc3
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.papyrus.infra.gmfdiag.style.cdo;singleton:=true
+Bundle-Version: 2.0.0.qualifier
+Bundle-ClassPath: .
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Bundle-RequiredExecutionEnvironment: JavaSE-1.8
+Export-Package: org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl;version="1.0.0"
+Require-Bundle: org.eclipse.core.runtime,
+ org.eclipse.papyrus.infra.gmfdiag.style;bundle-version="[2.0.0,3.0.0)",
+ org.eclipse.emf.cdo;bundle-version="[4.6.0,5.0.0)"
+Bundle-ActivationPolicy: lazy
+Automatic-Module-Name: org.eclipse.papyrus.infra.gmfdiag.style.cdo
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/Migrate gmfdiag.style to CDO.launch b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/Migrate gmfdiag.style to CDO.launch
new file mode 100644
index 0000000..2654f4c
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/Migrate gmfdiag.style to CDO.launch
@@ -0,0 +1,18 @@
+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ant.ui.DEFAULT_VM_INSTALL" value="false"/>
+<stringAttribute key="org.eclipse.debug.core.ATTR_REFRESH_SCOPE" value="${working_set:&lt;?xml version=&quot;1.0&quot; encoding=&quot;UTF-8&quot;?&gt;&#13;&#10;&lt;resources&gt;&#13;&#10;&lt;item path=&quot;/org.eclipse.papyrus.infra.gmfdiag.style&quot; type=&quot;4&quot;/&gt;&#13;&#10;&lt;item path=&quot;/org.eclipse.papyrus.infra.gmfdiag.style.cdo&quot; type=&quot;4&quot;/&gt;&#13;&#10;&lt;/resources&gt;}"/>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_PATHS">
+<listEntry value="/org.eclipse.papyrus.infra.gmfdiag.style.cdo/migrate.ant"/>
+</listAttribute>
+<listAttribute key="org.eclipse.debug.core.MAPPED_RESOURCE_TYPES">
+<listEntry value="1"/>
+</listAttribute>
+<stringAttribute key="org.eclipse.jdt.launching.CLASSPATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.jdt.launching.PROJECT_ATTR" value="org.eclipse.papyrus.infra.gmfdiag.style.cdo"/>
+<stringAttribute key="org.eclipse.jdt.launching.SOURCE_PATH_PROVIDER" value="org.eclipse.ant.ui.AntClasspathProvider"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LAUNCH_CONFIGURATION_BUILD_SCOPE" value="${none}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_LOCATION" value="${workspace_loc:/org.eclipse.papyrus.infra.gmfdiag.style.cdo/migrate.ant}"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS" value="-Dgit.clone.papyrus=${git.clone.papyrus}"/>
+<stringAttribute key="process_factory_id" value="org.eclipse.ant.ui.remoteAntProcessFactory"/>
+</launchConfiguration>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/about.html b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/about.html
new file mode 100644
index 0000000..6e189dc
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/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>June 1, 2017</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/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/build.properties b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/build.properties
new file mode 100644
index 0000000..c579c6c
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/build.properties
@@ -0,0 +1,23 @@
+# Copyright (c) 2013 CEA LIST.
+# 
+#  All rights reserved. This program and the accompanying materials
+#  are made available under the terms of the Eclipse Public License v1.0
+#  which accompanies this distribution, and is available at
+#  http://www.eclipse.org/legal/epl-v10.html
+#  
+#  Contributors:
+#  Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+#  
+# 
+
+bin.includes = .,\
+               META-INF/,\
+               plugin.xml,\
+               plugin.properties,\
+               about.html
+jars.compile.order = .
+source.. = src-gen/
+output.. = bin/
+src.includes = Migrate gmfdiag.style to CDO.launch,\
+               migrate.ant,\
+               pom.xml
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/migrate.ant b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/migrate.ant
new file mode 100644
index 0000000..89de3e2
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/migrate.ant
@@ -0,0 +1,110 @@
+<?xml version="1.0"?>
+<!--
+	Copyright (c) 2018 CEA LIST and others.
+	All rights reserved. This program and the accompanying materials
+	are made available under the terms of the Eclipse Public License v1.0
+	which accompanies this distribution, and is available at
+	http://www.eclipse.org/legal/epl-v10.html
+
+	Contributors:
+	  Eike Stepper - initial API and implementation
+-->
+<project name="migrate" default="migrate">
+
+  <!--
+    The migration of the Style model to CDO is completely automated.
+    The 'org.eclipse.emf.cdo.migrator' plugin must be installed into the Eclipse IDE!!!
+      
+    Then execute the following tasks:
+  -->
+	<fail unless="git.clone.papyrus" message="Property 'git.clone.papyrus' is undefined! Go to Preferences -> Run/Debug -> String Substitution..." />
+	<property name="project.name" value="org.eclipse.papyrus.infra.gmfdiag.style" />
+	<property name="style" location="${git.clone.papyrus}/plugins/infra/gmfdiag/${project.name}" />
+	<fail message="The directory '${style}' does not exist!">
+		<condition>
+			<not>
+				<available file="${style}" type="dir" />
+			</not>
+		</condition>
+	</fail>
+
+	<property name="style.tmp" location="${basedir}/target/${project.name}" />
+	<echo message="Source: ${style}" />
+	<echo message="Temp: ${style.tmp}" />
+	<echo message="Target: ${basedir}" />
+
+	<target name="migrate">
+		<!--
+		  Copy the entire 'org.eclipse.papyrus.infra.gmfdiag.style' project 
+		  into the 'target' folder of the 'org.eclipse.papyrus.infra.gmfdiag.style.cdo' plugin to 
+		  be able to revert the changes that are applied below.
+		-->
+		<echo message="Backing up project ${project.name} to ${style.tmp}" />
+		<delete failonerror="false" includeemptydirs="true">
+			<fileset dir="${style.tmp}">
+				<include name="**" />
+			</fileset>
+		</delete>
+		<copy todir="${style.tmp}" verbose="false" failonerror="true" overwrite="true" includeemptydirs="true" preservelastmodified="true">
+			<fileset dir="${style}" defaultexcludes="true">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+
+		<!--
+		  Migrate the 'style.genmodel' to CDO and regenerate the model in-place.
+		-->
+		<property name="model.path" value="/${project.name}/model/style.genmodel" />
+		<echo message="Migrating ${model.path} in ${style} ..." />
+		<cdo.migrateModel modelpath="${model.path}" dynamicfeaturedelegation="true" />
+		<cdo.generateModel modelpath="${model.path}" />
+
+		<!--
+		  Copy all Java files from the generated 'impl' folder to the 'impl' folder of the
+		  'org.eclipse.papyrus.infra.gmfdiag.style.cdo' project. Apply the following refactorings:
+		  
+		  1. Rename the Java package to 'org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl'.
+		  2. Replace the eAnnotations field accesses that the generator has left in some
+		     eIsSet() methods with calls to the getEAnnotations() method.  
+		-->
+		<property name="impl" location="${basedir}/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl" />
+		<delete>
+			<fileset dir="${impl}">
+				<include name="*.java" />
+			</fileset>
+		</delete>
+		<copy todir="${impl}" verbose="true">
+			<fileset dir="${style}/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/impl">
+				<include name="*.java" />
+				<exclude name="StylePackageImpl.java" />
+			</fileset>
+			<filterchain>
+				<replacestring from="${project.name}.impl" to="${project.name}.cdo.impl" />
+				<replacestring from="eAnnotations != null &amp;&amp; !eAnnotations.isEmpty()" to="!getEAnnotations().isEmpty()" />
+			</filterchain>
+		</copy>
+
+		<!--
+		  Apply source cleanup to the 'org.eclipse.papyrus.infra.gmfdiag.style.cdo' project.
+		  This ensures that only relevant changes appear in the Git history.
+		-->
+		<cdo.cleanupProject projectname="${project.name}.cdo" />
+
+		<!--
+      Copy the entire 'org.eclipse.papyrus.infra.gmfdiag.style' project back 
+      from the 'target' folder of the 'org.eclipse.papyrus.infra.gmfdiag.style.cdo' plugin.
+    -->
+		<echo message="Restoring project ${project.name} from ${style.tmp}" />
+		<delete failonerror="true" includeemptydirs="true">
+			<fileset dir="${style}">
+				<include name="**" />
+			</fileset>
+		</delete>
+		<copy todir="${style}" verbose="false" failonerror="true" overwrite="true" includeemptydirs="true" preservelastmodified="true">
+			<fileset dir="${style.tmp}" defaultexcludes="true">
+				<include name="**/*" />
+			</fileset>
+		</copy>
+	</target>
+
+</project>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.properties b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.properties
new file mode 100644
index 0000000..2c3cbe0
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.properties
@@ -0,0 +1,14 @@
+# Copyright (c) 2013 CEA LIST.
+# 
+#  All rights reserved. This program and the accompanying materials
+#  are made available under the terms of the Eclipse Public License v1.0
+#  which accompanies this distribution, and is available at
+#  http://www.eclipse.org/legal/epl-v10.html
+#  
+#  Contributors:
+#  Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+#  
+# 
+
+pluginName = GMF Style Model (CDO Version)
+providerName = Eclipse Modeling Project
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.xml b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.xml
new file mode 100644
index 0000000..6f84f04
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/plugin.xml
@@ -0,0 +1,25 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.0"?>
+
+<!--
+ Copyright (c) 2018 CEA LIST.
+ 
+  All rights reserved. This program and the accompanying materials
+  are made available under the terms of the Eclipse Public License v1.0
+  which accompanies this distribution, and is available at
+  http://www.eclipse.org/legal/epl-v10.html
+  
+  Contributors:
+  Eike Stepper - Initial API and implementation
+-->
+
+<plugin>
+
+  <extension point="org.eclipse.emf.ecore.factory_override">
+    <factory
+      class="org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl.StyleFactoryImpl"
+      uri="http://www.eclipse.org/papyrus/infra/gmfdiag/style">
+    </factory>
+  </extension>
+
+</plugin>
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/pom.xml b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/pom.xml
new file mode 100644
index 0000000..7d1d6c0
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/pom.xml
@@ -0,0 +1,13 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+	xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/xsd/maven-4.0.0.xsd">
+	<modelVersion>4.0.0</modelVersion>
+	<parent>
+		<groupId>org.eclipse.papyrus.cdo</groupId>
+		<artifactId>org.eclipse.papyrus.cdo-bundles</artifactId>
+		<version>1.2.0-SNAPSHOT</version>
+	</parent>
+  
+	<artifactId>org.eclipse.papyrus.infra.gmfdiag.style.cdo</artifactId>
+	<version>2.0.0-SNAPSHOT</version>
+	<packaging>eclipse-plugin</packaging>
+</project>
\ No newline at end of file
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/PapyrusDiagramStyleImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/PapyrusDiagramStyleImpl.java
new file mode 100644
index 0000000..e6b4386
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/PapyrusDiagramStyleImpl.java
@@ -0,0 +1,196 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *
+ *  Contributors:
+ *  Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.internal.cdo.CDOObjectImpl;
+import org.eclipse.papyrus.infra.gmfdiag.style.PapyrusDiagramStyle;
+import org.eclipse.papyrus.infra.gmfdiag.style.StylePackage;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model object '<em><b>Papyrus Diagram Style</b></em>'.
+ * <!-- end-user-doc -->
+ * <p>
+ * The following features are implemented:
+ * </p>
+ * <ul>
+ *   <li>{@link org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl.PapyrusDiagramStyleImpl#getOwner <em>Owner</em>}</li>
+ *   <li>{@link org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl.PapyrusDiagramStyleImpl#getDiagramKindId <em>Diagram Kind Id</em>}</li>
+ * </ul>
+ *
+ * @generated
+ */
+public class PapyrusDiagramStyleImpl extends CDOObjectImpl implements PapyrusDiagramStyle {
+	/**
+	 * The default value of the '{@link #getDiagramKindId() <em>Diagram Kind Id</em>}' attribute.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @see #getDiagramKindId()
+	 * @generated
+	 * @ordered
+	 */
+	protected static final String DIAGRAM_KIND_ID_EDEFAULT = null;
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	protected PapyrusDiagramStyleImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected EClass eStaticClass() {
+		return StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	protected int eStaticFeatureCount() {
+		return 0;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject getOwner() {
+		return (EObject)eDynamicGet(StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER, StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE__OWNER, true, true);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public EObject basicGetOwner() {
+		return (EObject)eDynamicGet(StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER, StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE__OWNER, false, true);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setOwner(EObject newOwner) {
+		eDynamicSet(StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER, StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE__OWNER, newOwner);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public String getDiagramKindId() {
+		return (String)eDynamicGet(StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID, StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID, true, true);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void setDiagramKindId(String newDiagramKindId) {
+		eDynamicSet(StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID, StylePackage.Literals.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID, newDiagramKindId);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public Object eGet(int featureID, boolean resolve, boolean coreType) {
+		switch (featureID) {
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER:
+				if (resolve) {
+					return getOwner();
+				}
+				return basicGetOwner();
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID:
+				return getDiagramKindId();
+		}
+		return super.eGet(featureID, resolve, coreType);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eSet(int featureID, Object newValue) {
+		switch (featureID) {
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER:
+				setOwner((EObject)newValue);
+				return;
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID:
+				setDiagramKindId((String)newValue);
+				return;
+		}
+		super.eSet(featureID, newValue);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public void eUnset(int featureID) {
+		switch (featureID) {
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER:
+				setOwner((EObject)null);
+				return;
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID:
+				setDiagramKindId(DIAGRAM_KIND_ID_EDEFAULT);
+				return;
+		}
+		super.eUnset(featureID);
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public boolean eIsSet(int featureID) {
+		switch (featureID) {
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__OWNER:
+				return basicGetOwner() != null;
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE__DIAGRAM_KIND_ID:
+				return DIAGRAM_KIND_ID_EDEFAULT == null ? getDiagramKindId() != null : !DIAGRAM_KIND_ID_EDEFAULT.equals(getDiagramKindId());
+		}
+		return super.eIsSet(featureID);
+	}
+
+} //PapyrusDiagramStyleImpl
diff --git a/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/StyleFactoryImpl.java b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/StyleFactoryImpl.java
new file mode 100644
index 0000000..1611ccc
--- /dev/null
+++ b/plugins/cdo/bundles/org.eclipse.papyrus.infra.gmfdiag.style.cdo/src-gen/org/eclipse/papyrus/infra/gmfdiag/style/cdo/impl/StyleFactoryImpl.java
@@ -0,0 +1,107 @@
+/**
+ * Copyright (c) 2013 CEA LIST.
+ *
+ *  All rights reserved. This program and the accompanying materials
+ *  are made available under the terms of the Eclipse Public License v1.0
+ *  which accompanies this distribution, and is available at
+ *  http://www.eclipse.org/legal/epl-v10.html
+ *
+ *  Contributors:
+ *  Laurent Wouters laurent.wouters@cea.fr - Initial API and implementation
+ *
+ *
+ */
+package org.eclipse.papyrus.infra.gmfdiag.style.cdo.impl;
+
+import org.eclipse.emf.ecore.EClass;
+import org.eclipse.emf.ecore.EObject;
+import org.eclipse.emf.ecore.EPackage;
+
+import org.eclipse.emf.ecore.impl.EFactoryImpl;
+
+import org.eclipse.emf.ecore.plugin.EcorePlugin;
+import org.eclipse.papyrus.infra.gmfdiag.style.*;
+
+/**
+ * <!-- begin-user-doc -->
+ * An implementation of the model <b>Factory</b>.
+ * <!-- end-user-doc -->
+ * @generated
+ */
+public class StyleFactoryImpl extends EFactoryImpl implements StyleFactory {
+	/**
+	 * Creates the default factory implementation.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public static StyleFactory init() {
+		try {
+			StyleFactory theStyleFactory = (StyleFactory)EPackage.Registry.INSTANCE.getEFactory(StylePackage.eNS_URI);
+			if (theStyleFactory != null) {
+				return theStyleFactory;
+			}
+		}
+		catch (Exception exception) {
+			EcorePlugin.INSTANCE.log(exception);
+		}
+		return new StyleFactoryImpl();
+	}
+
+	/**
+	 * Creates an instance of the factory.
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	public StyleFactoryImpl() {
+		super();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public EObject create(EClass eClass) {
+		switch (eClass.getClassifierID()) {
+			case StylePackage.PAPYRUS_DIAGRAM_STYLE: return createPapyrusDiagramStyle();
+			default:
+				throw new IllegalArgumentException("The class '" + eClass.getName() + "' is not a valid classifier"); //$NON-NLS-1$ //$NON-NLS-2$
+		}
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public PapyrusDiagramStyle createPapyrusDiagramStyle() {
+		PapyrusDiagramStyleImpl papyrusDiagramStyle = new PapyrusDiagramStyleImpl();
+		return papyrusDiagramStyle;
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @generated
+	 */
+	@Override
+	public StylePackage getStylePackage() {
+		return (StylePackage)getEPackage();
+	}
+
+	/**
+	 * <!-- begin-user-doc -->
+	 * <!-- end-user-doc -->
+	 * @deprecated
+	 * @generated
+	 */
+	@Deprecated
+	public static StylePackage getPackage() {
+		return StylePackage.eINSTANCE;
+	}
+
+} //StyleFactoryImpl
diff --git a/plugins/cdo/bundles/pom.xml b/plugins/cdo/bundles/pom.xml
index d1e481a..3326adb 100755
--- a/plugins/cdo/bundles/pom.xml
+++ b/plugins/cdo/bundles/pom.xml
@@ -25,6 +25,11 @@
 		<module>org.eclipse.papyrus.cdo.uml.ui</module>
 		<module>org.eclipse.papyrus.cdo.validation.problems</module>
 		<module>org.eclipse.papyrus.cdo.validation.problems.edit</module>
+
+ 
+		<module>org.eclipse.papyrus.infra.gmfdiag.css.cdo</module>
+		<module>org.eclipse.papyrus.infra.gmfdiag.style.cdo</module>
+				
 	</modules>
 	
 </project>
\ No newline at end of file
diff --git a/plugins/cdo/releng/targetplatforms/eclipse/org.eclipse.papyrus.cdo.targetplatform.target b/plugins/cdo/releng/targetplatforms/eclipse/org.eclipse.papyrus.cdo.targetplatform.target
index 5c55a1f..e618767 100755
--- a/plugins/cdo/releng/targetplatforms/eclipse/org.eclipse.papyrus.cdo.targetplatform.target
+++ b/plugins/cdo/releng/targetplatforms/eclipse/org.eclipse.papyrus.cdo.targetplatform.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="CollaborativeModeling CDO - Photon" sequenceNumber="1533219115">
+<target name="CollaborativeModeling CDO - 2018-09" sequenceNumber="1537962638">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="0.0.0"/>
@@ -14,8 +14,8 @@
       <repository id="papyrusMasterToolsmithsN" location="https://hudson.eclipse.org/papyrus/job/Papyrus-Master-Toolsmiths/lastSuccessfulBuild/artifact/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.sdk.feature.group" version="4.8.0.v20180611-0826"/>
-      <repository id="eclipse-photon" location="file:/home/data/httpd/download.eclipse.org/releases/photon/"/>
+      <unit id="org.eclipse.sdk.feature.group" version="4.9.0.v20180906-1121"/>
+      <repository id="eclipse-2018-09" location="file:/home/data/httpd/download.eclipse.org/releases/2018-09"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.cdo.explorer" version="4.5.200.v20180529-1130"/>
@@ -25,6 +25,8 @@
       <unit id="org.eclipse.emf.cdo.explorer.ui" version="4.4.300.v20180529-1130"/>
       <unit id="org.eclipse.emf.cdo.ui.admin" version="4.1.500.v20180529-1130"/>
       <unit id="org.eclipse.emf.cdo.server.ocl" version="4.2.300.v20180529-1130"/>
+      <unit id="org.eclipse.emf.cdo.ecore" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.gmf.notation" version="0.0.0"/>
       <repository id="cdo" location="file:/home/data/httpd/download.eclipse.org/modeling/emf/cdo/drops/R20180613-0111"/>
     </location>
   </locations>
diff --git a/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target b/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
index 5f02319..b2b480b 100755
--- a/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
+++ b/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.target
@@ -1,7 +1,7 @@
 <?xml version="1.0" encoding="UTF-8" standalone="no"?>
 <?pde?>
 <!-- generated with https://github.com/mbarbero/fr.obeo.releng.targetplatform -->
-<target name="CollaborativeModeling CDO - Photon" sequenceNumber="1533219115">
+<target name="CollaborativeModeling CDO - 2018-09" sequenceNumber="1537962638">
   <locations>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.papyrus.sdk.feature.feature.group" version="0.0.0"/>
@@ -14,8 +14,8 @@
       <repository id="papyrusMasterToolsmithsN" location="https://hudson.eclipse.org/papyrus/job/Papyrus-Master-Toolsmiths/lastSuccessfulBuild/artifact/repository/"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
-      <unit id="org.eclipse.sdk.feature.group" version="4.8.0.v20180611-0826"/>
-      <repository id="eclipse-photon" location="http://download.eclipse.org/releases/photon/"/>
+      <unit id="org.eclipse.sdk.feature.group" version="4.9.0.v20180906-1121"/>
+      <repository id="eclipse-2018-09" location="http://download.eclipse.org/releases/2018-09"/>
     </location>
     <location includeMode="planner" includeAllPlatforms="false" includeSource="true" includeConfigurePhase="false" type="InstallableUnit">
       <unit id="org.eclipse.emf.cdo.explorer" version="4.5.200.v20180529-1130"/>
@@ -25,6 +25,8 @@
       <unit id="org.eclipse.emf.cdo.explorer.ui" version="4.4.300.v20180529-1130"/>
       <unit id="org.eclipse.emf.cdo.ui.admin" version="4.1.500.v20180529-1130"/>
       <unit id="org.eclipse.emf.cdo.server.ocl" version="4.2.300.v20180529-1130"/>
+      <unit id="org.eclipse.emf.cdo.ecore" version="0.0.0"/>
+      <unit id="org.eclipse.emf.cdo.gmf.notation" version="0.0.0"/>
       <repository id="cdo" location="http://download.eclipse.org/modeling/emf/cdo/drops/R20180613-0111"/>
     </location>
   </locations>
diff --git a/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd b/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
index 4a65dad..fa07876 100755
--- a/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
+++ b/plugins/cdo/releng/targetplatforms/org.eclipse.papyrus.cdo.targetplatform/org.eclipse.papyrus.cdo.targetplatform.tpd
@@ -1,4 +1,4 @@
-target "CollaborativeModeling CDO - Photon" with source requirements
+target "CollaborativeModeling CDO - 2018-09" with source requirements
 
 
 
@@ -16,7 +16,7 @@
  org.eclipse.papyrus.toolsmiths.feature.feature.group lazy
 }
 
-location "http://download.eclipse.org/releases/photon/" eclipse-photon {
+location "http://download.eclipse.org/releases/2018-09" eclipse-2018-09 {
  org.eclipse.sdk.feature.group 
 }
 
@@ -32,4 +32,6 @@
  org.eclipse.emf.cdo.explorer.ui
  org.eclipse.emf.cdo.ui.admin
  org.eclipse.emf.cdo.server.ocl
+ org.eclipse.emf.cdo.ecore lazy
+ org.eclipse.emf.cdo.gmf.notation lazy
 }
\ No newline at end of file