diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.classpath b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.classpath
new file mode 100644
index 0000000..2d1a430
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.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/J2SE-1.5"/>
+	<classpathentry kind="con" path="org.eclipse.pde.core.requiredPlugins"/>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="output" path="bin"/>
+</classpath>
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.project b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.project
new file mode 100644
index 0000000..57bc2e3
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.project
@@ -0,0 +1,28 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>org.eclipse.graphiti.tools.newprojectwizard</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.ManifestBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.pde.SchemaBuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.pde.PluginNature</nature>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+	</natures>
+</projectDescription>
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..92bf135
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,388 @@
+#Wed Nov 09 14:31:36 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.core.builder.cleanOutputFolder=clean
+org.eclipse.jdt.core.builder.duplicateResourceTask=warning
+org.eclipse.jdt.core.builder.invalidClasspath=abort
+org.eclipse.jdt.core.builder.recreateModifiedClassFileInOutputFolder=ignore
+org.eclipse.jdt.core.builder.resourceCopyExclusionFilter=*.launch
+org.eclipse.jdt.core.circularClasspath=error
+org.eclipse.jdt.core.classpath.exclusionPatterns=enabled
+org.eclipse.jdt.core.classpath.multipleOutputLocations=enabled
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFinalFieldSuffixes=
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.5
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.5
+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.doc.comment.support=enabled
+org.eclipse.jdt.core.compiler.maxProblemPerUnit=100
+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.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=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadoc=ignore
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTags=enabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsDeprecatedRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsNotVisibleRef=disabled
+org.eclipse.jdt.core.compiler.problem.invalidJavadocTagsVisibility=public
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocComments=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocCommentsVisibility=public
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagDescription=return_tag
+org.eclipse.jdt.core.compiler.problem.missingJavadocTags=ignore
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsMethodTypeParameters=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public
+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.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=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.syntheticAccessEmulation=ignore
+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.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+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.unusedImport=warning
+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.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.5
+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_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.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_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=80
+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_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_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_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_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_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_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_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_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=true
+org.eclipse.jdt.core.formatter.join_wrapped_lines=true
+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=120
+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=1
+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_outer_expressions_when_nested=true
+org.eclipse.jdt.core.incompatibleJDKLevel=ignore
+org.eclipse.jdt.core.incompleteClasspath=error
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.launching.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.launching.prefs
new file mode 100644
index 0000000..8b7e88c
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.launching.prefs
@@ -0,0 +1,3 @@
+#Wed Nov 09 14:32:40 CET 2011
+eclipse.preferences.version=1
+org.eclipse.jdt.launching.PREF_STRICTLY_COMPATIBLE_JRE_NOT_AVAILABLE=error
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..c0261da
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,65 @@
+#Wed Oct 05 10:08:12 CEST 2011
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Eclipse adapted
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.staticondemandthreshold=99
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=true
+sp_cleanup.add_missing_deprecated_annotations=true
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=true
+sp_cleanup.add_missing_override_annotations_interface_methods=false
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=false
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=true
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=true
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=false
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=false
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=true
+sp_cleanup.remove_unnecessary_nls_tags=false
+sp_cleanup.remove_unused_imports=false
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=false
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.ltk.core.refactoring.prefs
new file mode 100644
index 0000000..6753061
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.ltk.core.refactoring.prefs
@@ -0,0 +1,3 @@
+#Wed Oct 05 10:12:22 CEST 2011
+eclipse.preferences.version=1
+org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.api.tools.prefs
new file mode 100644
index 0000000..7732d74
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.api.tools.prefs
@@ -0,0 +1,97 @@
+#Wed Nov 09 14:33:45 CET 2011
+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=Error
+API_COMPONENT_ELEMENT_TYPE_REMOVED_REEXPORTED_TYPE=Error
+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_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=Error
+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=Error
+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_FIELD=Error
+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_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
+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=false
+eclipse.preferences.version=1
+incompatible_api_component_version=Error
+incompatible_api_component_version_include_major_without_breaking_change=Disabled
+incompatible_api_component_version_include_minor_without_api_change=Disabled
+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/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.prefs
new file mode 100644
index 0000000..3fe79ed
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.pde.prefs
@@ -0,0 +1,33 @@
+#Wed Oct 05 10:15:22 CEST 2011
+compilers.f.unresolved-features=1
+compilers.f.unresolved-plugins=1
+compilers.incompatible-environment=1
+compilers.p.build=1
+compilers.p.build.bin.includes=1
+compilers.p.build.encodings=2
+compilers.p.build.java.compiler=2
+compilers.p.build.java.compliance=1
+compilers.p.build.missing.output=2
+compilers.p.build.output.library=1
+compilers.p.build.source.library=1
+compilers.p.build.src.includes=1
+compilers.p.deprecated=1
+compilers.p.discouraged-class=1
+compilers.p.internal=1
+compilers.p.missing-packages=2
+compilers.p.missing-version-export-package=2
+compilers.p.missing-version-import-package=2
+compilers.p.missing-version-require-bundle=2
+compilers.p.no-required-att=0
+compilers.p.not-externalized-att=2
+compilers.p.unknown-attribute=1
+compilers.p.unknown-class=1
+compilers.p.unknown-element=1
+compilers.p.unknown-identifier=1
+compilers.p.unknown-resource=1
+compilers.p.unresolved-ex-points=0
+compilers.p.unresolved-import=0
+compilers.s.create-docs=false
+compilers.s.doc-folder=doc
+compilers.s.open-tags=1
+eclipse.preferences.version=1
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.html.core.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.html.core.prefs
new file mode 100644
index 0000000..f2eaec3
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.html.core.prefs
@@ -0,0 +1,39 @@
+#Wed Nov 09 13:52:23 CET 2011
+attrDuplicate=2
+attrInvalidName=2
+attrInvalidValue=2
+attrNameMismatch=2
+attrUndefName=-1
+attrUndefValue=2
+attrValueEqualsMissing=2
+attrValueMismatch=1
+attrValueUnclosed=2
+cdataInvalidContent=2
+cdataUnclosed=1
+commentInvalidContent=2
+commentUnclosed=1
+docDoctypeUnclosed=1
+docDuplicateTag=1
+docInvalidChar=2
+docInvalidContent=2
+eclipse.preferences.version=1
+elemCoexistence=2
+elemDuplicate=2
+elemEndInvalidCase=1
+elemInvalidContent=2
+elemInvalidDirective=1
+elemInvalidEmptyTag=2
+elemInvalidName=1
+elemInvalidText=2
+elemMissingEnd=2
+elemMissingStart=2
+elemStartInvalidCase=2
+elemUnclosedEndTag=1
+elemUnclosedStartTag=1
+elemUnknownName=2
+elemUnnecessaryEnd=2
+piInvalidContent=2
+piUnclosed=1
+piUndefined=2
+refInvalidContent=2
+use-project-settings=true
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.xml.core.prefs b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.xml.core.prefs
new file mode 100644
index 0000000..4abcc9e
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/.settings/org.eclipse.wst.xml.core.prefs
@@ -0,0 +1,19 @@
+#Wed Nov 09 13:53:04 CET 2011
+attributeHasNoValue=2
+eclipse.preferences.version=1
+endTagWithAttributes=2
+honourAllSchemaLocations=true
+indicateNoGrammar=-1
+indiciateNoDocumentElement=-1
+markupValidation=false
+missingClosingBracket=2
+missingClosingQuote=2
+missingEndTag=2
+missingQuotes=2
+missingStartTag=2
+missingTagName=2
+namespaceInPITarget=2
+use-project-settings=true
+whitespaceAtStart=2
+whitespaceBeforeTagName=2
+xinclude=true
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/META-INF/MANIFEST.MF b/plugins/org.eclipse.graphiti.tools.newprojectwizard/META-INF/MANIFEST.MF
new file mode 100644
index 0000000..4633fe3
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/META-INF/MANIFEST.MF
@@ -0,0 +1,15 @@
+Manifest-Version: 1.0
+Bundle-ManifestVersion: 2
+Bundle-Name: %pluginName
+Bundle-SymbolicName: org.eclipse.graphiti.tools.newprojectwizard;singleton:=true
+Bundle-Version: 0.9.0.qualifier
+Bundle-Activator: org.eclipse.graphiti.tools.newprojectwizard.internal.Activator
+Bundle-Vendor: %providerName
+Bundle-Localization: plugin
+Require-Bundle: org.eclipse.ui;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.core.runtime;bundle-version="[3.7.0,4.0.0)",
+ org.eclipse.pde.ui;bundle-version="[3.6.0,4.0.0)",
+ org.eclipse.core.resources;bundle-version="[3.7.0,4.0.0)"
+Bundle-RequiredExecutionEnvironment: J2SE-1.5
+Bundle-ActivationPolicy: lazy
+
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/about.html b/plugins/org.eclipse.graphiti.tools.newprojectwizard/about.html
new file mode 100644
index 0000000..c258ef5
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/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 5, 2006</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/org.eclipse.graphiti.tools.newprojectwizard/build.properties b/plugins/org.eclipse.graphiti.tools.newprojectwizard/build.properties
new file mode 100644
index 0000000..135cb65
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/build.properties
@@ -0,0 +1,12 @@
+source.. = src/
+output.. = bin/
+bin.includes = META-INF/,\
+               .,\
+               plugin.xml,\
+               templates_3.4/,\
+               icons/,\
+               plugin.properties,\
+               about.html
+src.includes = icons/,\
+               templates_3.4/,\
+               about.html
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/icons/diagram.gif b/plugins/org.eclipse.graphiti.tools.newprojectwizard/icons/diagram.gif
new file mode 100644
index 0000000..1575151
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/icons/diagram.gif
Binary files differ
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.properties b/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.properties
new file mode 100644
index 0000000..26231da
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.properties
@@ -0,0 +1,32 @@
+###############################################################################
+# <copyright>
+#
+# Copyright (c) 2012, 2012 SAP AG.
+# 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:
+#    SAP AG - initial API, implementation and documentation
+#
+# </copyright>
+#
+###############################################################################
+pluginName = Graphiti New Project Wizard (Incubation)
+providerName = Eclipse Modeling Project
+
+pluginContent.newgraphitieditorwizard.name = Plug-in with a Graphiti Editor
+
+wizard.name.0 = Graphiti Plugin Project
+pluginContent.newgraphitieditorwizard.description =\
+<p>This wizard creates a standard plug-in directory structure and adds\
+the following:</p><li>A sample Graphiti <b>Diagram Type</b>.</li><li>A\
+sample Graphiti <b>Diagram Type Provider</b>. Defines the Eclipse editor\
+and its feature provider.</li><li>A sample <b>Feature Provider</b> that\
+is used in the Diagram Type Provider and registers a default set of features\
+for the editor.</li><li>A feature set for a generic domain object consisting\
+of a create, and add and a layout feature.</li><li>A feature set for a generic\
+connection consisting of a create and an add feature.</li><p><b>Extensions\
+Used</b></p><li>org.eclipse.graphiti.ui.diagramTypes</li>\
+<li>org.eclipse.graphiti.ui.diagramTypeProviders</li>
\ No newline at end of file
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.xml b/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.xml
new file mode 100644
index 0000000..9dbecff
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/plugin.xml
@@ -0,0 +1,48 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<?eclipse version="3.4"?>
+<!--
+    <copyright>
+   
+    Copyright (c) 2012, 2012 SAP AG.
+    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:
+       SAP AG - initial API, implementation and documentation
+   
+    </copyright>
+ -->
+<plugin>
+   <extension
+         point="org.eclipse.pde.ui.pluginContent">
+      <wizard
+            class="org.eclipse.graphiti.tools.newprojectwizard.internal.NewGraphitiEditorWizard"
+            icon="icons/diagram.gif"
+            id="org.eclipse.graphiti.tools.newprojectwizard.newgraphitieditorwizard"
+            java="true"
+            name="%pluginContent.newgraphitieditorwizard.name"
+            pureOSGi="false"
+            rcp="false"
+            requiresActivator="false"
+            ui-content="true">
+         <description>
+            %pluginContent.newgraphitieditorwizard.description
+         </description>
+      </wizard>
+   </extension>
+   <extension
+         point="org.eclipse.ui.newWizards">
+      <wizard
+            class="org.eclipse.graphiti.tools.newprojectwizard.internal.NewGraphitiPluginProjectWizard"
+            finalPerspective="org.eclipse.pde.ui.PDEPerspective"
+            hasPages="true"
+            icon="icons/diagram.gif"
+            id="org.eclipse.graphiti.tools.newprojectwizard.newgraphitipluginwizard"
+            name="%wizard.name.0"
+            project="true">
+      </wizard>
+   </extension>
+
+</plugin>
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Activator.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Activator.java
new file mode 100644
index 0000000..13faa31
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Activator.java
@@ -0,0 +1,64 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.ui.plugin.AbstractUIPlugin;
+import org.osgi.framework.BundleContext;
+
+/**
+ * The activator class controls the plug-in life cycle
+ */
+public class Activator extends AbstractUIPlugin {
+
+	// The plug-in ID
+	public static final String PLUGIN_ID = "org.eclipse.graphiti.tools.newprojectwizard"; //$NON-NLS-1$
+
+	// The shared instance
+	private static Activator plugin;
+	
+	/**
+	 * The constructor
+	 */
+	public Activator() {
+		super();
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#start(org.osgi.framework.BundleContext)
+	 */
+	public void start(BundleContext context) throws Exception {
+		super.start(context);
+		plugin = this;
+	}
+
+	/*
+	 * (non-Javadoc)
+	 * @see org.eclipse.ui.plugin.AbstractUIPlugin#stop(org.osgi.framework.BundleContext)
+	 */
+	public void stop(BundleContext context) throws Exception {
+		plugin = null;
+		super.stop(context);
+	}
+
+	/**
+	 * Returns the shared instance
+	 *
+	 * @return the shared instance
+	 */
+	public static Activator getDefault() {
+		return plugin;
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GraphitiEditorTemplateSection.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GraphitiEditorTemplateSection.java
new file mode 100644
index 0000000..8246a9e
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GraphitiEditorTemplateSection.java
@@ -0,0 +1,254 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import java.net.URL;
+import java.util.ArrayList;
+import java.util.Locale;
+import java.util.ResourceBundle;
+
+import org.eclipse.core.runtime.CoreException;
+import org.eclipse.core.runtime.IProgressMonitor;
+import org.eclipse.jface.wizard.Wizard;
+import org.eclipse.jface.wizard.WizardPage;
+import org.eclipse.pde.core.plugin.IPluginBase;
+import org.eclipse.pde.core.plugin.IPluginElement;
+import org.eclipse.pde.core.plugin.IPluginExtension;
+import org.eclipse.pde.core.plugin.IPluginModelBase;
+import org.eclipse.pde.core.plugin.IPluginModelFactory;
+import org.eclipse.pde.core.plugin.IPluginReference;
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.templates.OptionTemplateSection;
+import org.eclipse.pde.ui.templates.PluginReference;
+import org.eclipse.pde.ui.templates.StringOption;
+import org.eclipse.pde.ui.templates.TemplateOption;
+
+public class GraphitiEditorTemplateSection extends OptionTemplateSection {
+
+	private static final String KEY_DT_ID = "diagramTypeId"; //$NON-NLS-1$
+	private static final String KEY_DT_NAME = "diagramTypeName"; //$NON-NLS-1$
+	private static final String KEY_DT_TYPE = "diagramTypeType"; //$NON-NLS-1$
+	private static final String KEY_DT_DESCRIPTION = "diagramTypeDescription"; //$NON-NLS-1$
+
+	private static final String KEY_DTP_CLASS_NAME = "diagramTypeProviderClassName"; //$NON-NLS-1$
+	private static final String KEY_DTP_ID = "diagramTypeProviderId"; //$NON-NLS-1$
+	private static final String KEY_DTP_NAME = "diagramTypeProviderName"; //$NON-NLS-1$
+	private static final String KEY_DTP_DESCRIPTION = "diagramTypeProviderDescription"; //$NON-NLS-1$
+
+	private static final String KEY_FEATURE_PROVIDER_CLASS_NAME = "featureProviderClassName"; //$NON-NLS-1$
+
+	public GraphitiEditorTemplateSection() {
+		super();
+		setPageCount(1);
+		createOptions();
+	}
+
+	private void createOptions() {
+
+		GroupOption diagramTypeGroupOption = addGroupOption(0, Messages.GraphitiEditorTemplateSection_groupNameDiagramType);
+		addGroupedOption(KEY_DT_ID, Messages.GraphitiEditorTemplateSection_fieldNameId, null, 0, diagramTypeGroupOption);
+		addGroupedOption(KEY_DT_NAME, Messages.GraphitiEditorTemplateSection_fieldNameName, null, 0, diagramTypeGroupOption);
+		addGroupedOption(KEY_DT_TYPE, Messages.GraphitiEditorTemplateSection_fieldNameType, null, 0, diagramTypeGroupOption);
+		TemplateOption diagramTypeDescriptionOption = addGroupedOption(KEY_DT_DESCRIPTION, Messages.GraphitiEditorTemplateSection_fieldNameDescription, "", 0, //$NON-NLS-2$ //$NON-NLS-1$
+				diagramTypeGroupOption);
+		diagramTypeDescriptionOption.setRequired(false);
+
+		GroupOption diagramTypeProviderGroupOption = addGroupOption(0, Messages.GraphitiEditorTemplateSection_groupNameDiagramTypeProvider);
+		addGroupedOption(KEY_PACKAGE_NAME, Messages.GraphitiEditorTemplateSection_fieldNamePackageName, null, 0, diagramTypeProviderGroupOption);
+		addGroupedOption(KEY_DTP_ID, Messages.GraphitiEditorTemplateSection_fieldNameId, null, 0, diagramTypeProviderGroupOption);
+		addGroupedOption(KEY_DTP_NAME, Messages.GraphitiEditorTemplateSection_fieldNameName, null, 0, diagramTypeProviderGroupOption);
+		addGroupedOption(KEY_DTP_CLASS_NAME, Messages.GraphitiEditorTemplateSection_fieldNameClassName, null, 0, diagramTypeProviderGroupOption);
+		TemplateOption diagramTypeProviderDescriptionOption = addGroupedOption(KEY_DTP_DESCRIPTION, Messages.GraphitiEditorTemplateSection_fieldNameDescription, "", //$NON-NLS-2$ //$NON-NLS-1$
+				0, diagramTypeProviderGroupOption);
+		diagramTypeProviderDescriptionOption.setRequired(false);
+
+		GroupOption featureProviderGroupOption = addGroupOption(0, Messages.GraphitiEditorTemplateSection_groupNameFeatureProvider);
+		addGroupedOption(KEY_FEATURE_PROVIDER_CLASS_NAME, Messages.GraphitiEditorTemplateSection_fieldNameClassName,
+				null, 0, featureProviderGroupOption);
+	}
+
+	private GroupOption addGroupOption(int pageIndex, String label) {
+		GroupOption option = new GroupOption(this, label);
+		registerOption(option, "", pageIndex); //$NON-NLS-1$
+		return option;
+	}
+
+	private TemplateOption addGroupedOption(String name, String label, String value, int pageIndex,
+			GroupOption groupOption) {
+		StringOption option = new GroupableStringOption(this, name, label, groupOption);
+		registerOption(option, value, pageIndex);
+		return option;
+	}
+
+	@Override
+	public boolean isDependentOnParentWizard() {
+		// Return true to indicate that the data collection in previous steps of
+		// the wizard (like plugin id and name) need to be propagated to the
+		// initializyFields methods in this instance
+		return true;
+	}
+
+	@Override
+	protected void initializeFields(IFieldData data) {
+		initializeFields(data.getId(), data.getName());
+	}
+
+	@Override
+	public void initializeFields(IPluginModelBase model) {
+		super.initializeFields(model);
+		initializeFields(model.getPluginBase().getId(), model.getPluginBase().getName());
+	}
+
+	private void initializeFields(String pluginId, String pluginName) {
+		// Get the root package name
+		String rootPackageName = getFormattedPackageName(pluginId);
+		initializeOption(KEY_PACKAGE_NAME, rootPackageName);
+
+		// Create a prefix
+		String prefix;
+		int lastDot = pluginId.lastIndexOf('.');
+		if (lastDot != -1) {
+			prefix = pluginId.substring(lastDot + 1);
+		} else {
+			prefix = pluginId;
+		}
+
+		// Diagram type
+		initializeOption(KEY_DT_ID, pluginId + "." + prefix + "DiagramType"); //$NON-NLS-1$ //$NON-NLS-2$
+		initializeOption(KEY_DT_NAME, pluginName + " Diagram Type"); //$NON-NLS-1$
+		initializeOption(KEY_DT_TYPE, prefix);
+
+		// Diagram type provider
+		initializeOption(KEY_DTP_ID, pluginId + "." + prefix + "DiagramTypeProvider"); //$NON-NLS-1$ //$NON-NLS-2$
+		initializeOption(KEY_DTP_NAME, pluginName + " Diagram Type Provider"); //$NON-NLS-1$
+		String classNamePrefix = prefix.substring(0, 1).toUpperCase(Locale.ENGLISH) + prefix.substring(1);
+		initializeOption(KEY_DTP_CLASS_NAME, classNamePrefix + "DiagramTypeProvider"); //$NON-NLS-1$
+
+		// Feature provider
+		initializeOption(KEY_FEATURE_PROVIDER_CLASS_NAME, classNamePrefix + "FeatureProvider"); //$NON-NLS-1$
+	}
+
+	private String getFormattedPackageName(String name) {
+		StringBuffer buffer = new StringBuffer();
+		for (int i = 0; i < name.length(); i++) {
+			char ch = name.charAt(i);
+			if (buffer.length() == 0) {
+				if (Character.isJavaIdentifierStart(ch))
+					buffer.append(Character.toLowerCase(ch));
+			} else {
+				if (Character.isJavaIdentifierPart(ch) || ch == '.')
+					buffer.append(ch);
+			}
+		}
+		return buffer.toString().toLowerCase(Locale.ENGLISH);
+	}
+
+	@Override
+	public void addPages(Wizard wizard) {
+		WizardPage page = createPage(0);
+		page.setTitle(Messages.GraphitiEditorTemplateSection_pageName);
+		page.setDescription(Messages.GraphitiEditorTemplateSection_pageDescription);
+		wizard.addPage(page);
+		markPagesAdded();
+	}
+
+	@Override
+	public IPluginReference[] getDependencies(String schemaVersion) {
+		ArrayList<IPluginReference> result = new ArrayList<IPluginReference>();
+
+		IPluginReference[] superDependencies = super.getDependencies(schemaVersion);
+		for (IPluginReference dependency : superDependencies) {
+			result.add(dependency);
+		}
+
+		result.add(new PluginReference("org.eclipse.graphiti", null, 0)); //$NON-NLS-1$
+		result.add(new PluginReference("org.eclipse.graphiti.ui", null, 0)); //$NON-NLS-1$
+
+		return (IPluginReference[]) result.toArray(new IPluginReference[result.size()]);
+	}
+
+	@Override
+	protected URL getInstallURL() {
+		return Activator.getDefault().getBundle().getEntry("/"); //$NON-NLS-1$
+	}
+
+	@Override
+	public String getSectionId() {
+		return "newgraphitieditor"; //$NON-NLS-1$
+	}
+
+	public String getUsedExtensionPoint() {
+		return "org.eclipse.graphiti"; //$NON-NLS-1$
+	}
+
+	public String[] getNewFiles() {
+		return new String[] {};
+	}
+
+	@Override
+	protected ResourceBundle getPluginResourceBundle() {
+		return null;
+	}
+
+	@Override
+	protected void updateModel(IProgressMonitor monitor) throws CoreException {
+		IPluginBase plugin = model.getPluginBase();
+		IPluginModelFactory factory = model.getPluginFactory();
+
+		// Diagram type
+		{
+			IPluginExtension extension = createExtension("org.eclipse.graphiti.ui.diagramTypes", true); //$NON-NLS-1$
+
+			IPluginElement element = factory.createElement(extension);
+			element.setName("diagramType"); //$NON-NLS-1$
+			element.setAttribute("id", getStringOption(KEY_DT_ID)); //$NON-NLS-1$
+			element.setAttribute("name", getStringOption(KEY_DT_NAME)); //$NON-NLS-1$
+			element.setAttribute("type", getStringOption(KEY_DT_TYPE)); //$NON-NLS-1$
+			String description = getStringOption(KEY_DT_DESCRIPTION);
+			if (description != null && description.length() > 0) {
+				element.setAttribute("description", description); //$NON-NLS-1$
+			}
+
+			extension.add(element);
+			plugin.add(extension);
+		}
+
+		// Diagram type provider
+		{
+			IPluginExtension extension = createExtension("org.eclipse.graphiti.ui.diagramTypeProviders", true); //$NON-NLS-1$
+
+			IPluginElement element = factory.createElement(extension);
+			element.setName("diagramTypeProvider"); //$NON-NLS-1$
+			element.setAttribute("id", getStringOption(KEY_DTP_ID)); //$NON-NLS-1$
+			element.setAttribute("name", getStringOption(KEY_DTP_NAME)); //$NON-NLS-1$
+			String description = getStringOption(KEY_DTP_DESCRIPTION);
+			if (description != null && description.length() > 0) {
+				element.setAttribute("description", description); //$NON-NLS-1$
+			}
+
+			String fullClassName = getStringOption(KEY_PACKAGE_NAME) + ".diagram." //$NON-NLS-1$
+					+ getStringOption(KEY_DTP_CLASS_NAME);
+			element.setAttribute("class", fullClassName); //$NON-NLS-1$
+
+			IPluginElement diagramTypeElement = factory.createElement(element);
+			diagramTypeElement.setName("diagramType"); //$NON-NLS-1$
+			diagramTypeElement.setAttribute("id", getStringOption(KEY_DT_ID)); //$NON-NLS-1$
+			element.add(diagramTypeElement);
+
+			extension.add(element);
+			plugin.add(extension);
+		}
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupOption.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupOption.java
new file mode 100644
index 0000000..f0ac592
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupOption.java
@@ -0,0 +1,66 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.pde.ui.templates.BaseOptionTemplateSection;
+import org.eclipse.pde.ui.templates.TemplateOption;
+import org.eclipse.swt.SWT;
+import org.eclipse.swt.layout.GridData;
+import org.eclipse.swt.layout.GridLayout;
+import org.eclipse.swt.widgets.Composite;
+import org.eclipse.swt.widgets.Group;
+
+/**
+ * An option that realizes a group.
+ */
+public class GroupOption extends TemplateOption {
+
+	private final static String OPTION_NAME = "groupOption"; //$NON-NLS-1$
+	private static int NUM_CREATED = 0;
+
+	private Group groupControl;
+
+	public GroupOption(BaseOptionTemplateSection section, String label) {
+		super(section, getUniqueName(), label);
+		setRequired(false);
+	}
+
+	private static String getUniqueName() {
+		return OPTION_NAME + Integer.toString(NUM_CREATED++);
+	}
+
+	/**
+	 * Creates the goup option control.
+	 * 
+	 * @param parent
+	 *            parent composite of the string option widget
+	 * @param span
+	 *            the number of columns that the widget should span
+	 */
+	public void createControl(Composite parent, int span) {
+		groupControl = new Group(parent, SWT.None);
+		GridLayout layout = new GridLayout(span, false);
+		groupControl.setLayout(layout);
+		GridData gd = new GridData(GridData.FILL_HORIZONTAL);
+		gd.horizontalSpan = span;
+		gd.verticalIndent = 5;
+		groupControl.setLayoutData(gd);
+		groupControl.setText(getLabel());
+	}
+
+	public Group getGroup() {
+		return groupControl;
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupableStringOption.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupableStringOption.java
new file mode 100644
index 0000000..74e8452
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/GroupableStringOption.java
@@ -0,0 +1,37 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.pde.ui.templates.BaseOptionTemplateSection;
+import org.eclipse.pde.ui.templates.StringOption;
+import org.eclipse.swt.widgets.Composite;
+
+/**
+ * A string option that can be added to a group
+ */
+public class GroupableStringOption extends StringOption {
+
+	private GroupOption groupOption;
+
+	public GroupableStringOption(BaseOptionTemplateSection section, String name, String label, GroupOption groupOption) {
+		super(section, name, label);
+		this.groupOption = groupOption;
+	}
+
+	@Override
+	public void createControl(Composite parent, int span) {
+		super.createControl(groupOption.getGroup(), span);
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Messages.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Messages.java
new file mode 100644
index 0000000..5dbc027
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/Messages.java
@@ -0,0 +1,26 @@
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.osgi.util.NLS;
+
+public class Messages extends NLS {
+	private static final String BUNDLE_NAME = "org.eclipse.graphiti.tools.newprojectwizard.internal.messages"; //$NON-NLS-1$
+	public static String GraphitiEditorTemplateSection_fieldNameClassName;
+	public static String GraphitiEditorTemplateSection_fieldNameDescription;
+	public static String GraphitiEditorTemplateSection_fieldNameId;
+	public static String GraphitiEditorTemplateSection_fieldNameName;
+	public static String GraphitiEditorTemplateSection_fieldNamePackageName;
+	public static String GraphitiEditorTemplateSection_fieldNameType;
+	public static String GraphitiEditorTemplateSection_groupNameDiagramType;
+	public static String GraphitiEditorTemplateSection_groupNameDiagramTypeProvider;
+	public static String GraphitiEditorTemplateSection_groupNameFeatureProvider;
+	public static String GraphitiEditorTemplateSection_pageDescription;
+	public static String GraphitiEditorTemplateSection_pageName;
+	public static String NewGraphitiEditorWizard_windowTitle;
+	static {
+		// initialize resource bundle
+		NLS.initializeMessages(BUNDLE_NAME, Messages.class);
+	}
+
+	private Messages() {
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiEditorWizard.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiEditorWizard.java
new file mode 100644
index 0000000..c368427
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiEditorWizard.java
@@ -0,0 +1,37 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.pde.ui.IFieldData;
+import org.eclipse.pde.ui.templates.ITemplateSection;
+import org.eclipse.pde.ui.templates.NewPluginTemplateWizard;
+
+public class NewGraphitiEditorWizard extends NewPluginTemplateWizard {
+
+	public NewGraphitiEditorWizard() {
+		super();
+	}
+
+	@Override
+	public void init(IFieldData data) {
+		super.init(data);
+		setWindowTitle(Messages.NewGraphitiEditorWizard_windowTitle);
+	}
+
+	@Override
+	public ITemplateSection[] createTemplateSections() {
+		return new ITemplateSection[] { new GraphitiEditorTemplateSection() };
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiPluginProjectWizard.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiPluginProjectWizard.java
new file mode 100644
index 0000000..28ef73f
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/NewGraphitiPluginProjectWizard.java
@@ -0,0 +1,30 @@
+/**
+ * <copyright>
+ * 
+ * Copyright (c) 2012, 2012 SAP AG.
+ * 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:
+ *    SAP AG - initial API, implementation and documentation
+ * 
+ * </copyright>
+ */
+package org.eclipse.graphiti.tools.newprojectwizard.internal;
+
+import org.eclipse.pde.ui.templates.NewPluginProjectFromTemplateWizard;
+
+
+public class NewGraphitiPluginProjectWizard extends NewPluginProjectFromTemplateWizard {
+
+	public NewGraphitiPluginProjectWizard() {
+		super();
+	}
+
+	@Override
+	protected String getTemplateID() {
+		return "org.eclipse.graphiti.tools.newprojectwizard.newgraphitieditorwizard"; //$NON-NLS-1$
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/messages.properties b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/messages.properties
new file mode 100644
index 0000000..1cd7feb
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/src/org/eclipse/graphiti/tools/newprojectwizard/internal/messages.properties
@@ -0,0 +1,12 @@
+GraphitiEditorTemplateSection_fieldNameClassName=Class Name 
+GraphitiEditorTemplateSection_fieldNameDescription=Description
+GraphitiEditorTemplateSection_fieldNameId=ID
+GraphitiEditorTemplateSection_fieldNameName=Name
+GraphitiEditorTemplateSection_fieldNamePackageName=Package Name
+GraphitiEditorTemplateSection_fieldNameType=Type
+GraphitiEditorTemplateSection_groupNameDiagramType=Diagram Type
+GraphitiEditorTemplateSection_groupNameDiagramTypeProvider=Diagram Type Provider
+GraphitiEditorTemplateSection_groupNameFeatureProvider=Feature Provider
+GraphitiEditorTemplateSection_pageDescription=Define how the new Graphiti editor will be registered to the plug-in.
+GraphitiEditorTemplateSection_pageName=Graphiti Providers
+NewGraphitiEditorWizard_windowTitle=New Plug-In Project with a Sample Graphiti Editor
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$diagramTypeProviderClassName$.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$diagramTypeProviderClassName$.java
new file mode 100644
index 0000000..6b770c5
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$diagramTypeProviderClassName$.java
@@ -0,0 +1,11 @@
+package $packageName$.diagram;
+
+import org.eclipse.graphiti.dt.AbstractDiagramTypeProvider;
+
+public class $diagramTypeProviderClassName$ extends AbstractDiagramTypeProvider {
+
+	public $diagramTypeProviderClassName$() {
+		super();
+		setFeatureProvider(new $featureProviderClassName$(this));
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$featureProviderClassName$.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$featureProviderClassName$.java
new file mode 100644
index 0000000..af28ae0
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/diagram/$featureProviderClassName$.java
@@ -0,0 +1,57 @@
+package $packageName$.diagram;
+
+import org.eclipse.graphiti.dt.IDiagramTypeProvider;
+import org.eclipse.graphiti.features.IAddFeature;
+import org.eclipse.graphiti.features.ICreateConnectionFeature;
+import org.eclipse.graphiti.features.ICreateFeature;
+import org.eclipse.graphiti.features.ILayoutFeature;
+import org.eclipse.graphiti.features.context.IAddConnectionContext;
+import org.eclipse.graphiti.features.context.IAddContext;
+import org.eclipse.graphiti.features.context.ILayoutContext;
+import org.eclipse.graphiti.mm.pictograms.ContainerShape;
+import org.eclipse.graphiti.ui.features.DefaultFeatureProvider;
+
+import $packageName$.features.AddDomainObjectConnectionFeature;
+import $packageName$.features.AddDomainObjectFeature;
+import $packageName$.features.CreateDomainObjectConnectionFeature;
+import $packageName$.features.CreateDomainObjectFeature;
+import $packageName$.features.LayoutDomainObjectFeature;
+
+
+public class $featureProviderClassName$ extends DefaultFeatureProvider {
+
+	public $featureProviderClassName$(IDiagramTypeProvider dtp) {
+		super(dtp);
+	}
+
+	@Override
+	public ICreateFeature[] getCreateFeatures() {
+		return new ICreateFeature[] {new CreateDomainObjectFeature(this)};
+	}
+	
+	@Override
+	public ICreateConnectionFeature[] getCreateConnectionFeatures() {
+		return new ICreateConnectionFeature[] {new CreateDomainObjectConnectionFeature(this)};
+	}
+	
+	@Override
+	public IAddFeature getAddFeature(IAddContext context) {
+		// TODO: check for right domain object instances below
+		if (context instanceof IAddConnectionContext /* && context.getNewObject() instanceof <DomainObject> */) {
+			return new AddDomainObjectConnectionFeature(this);
+		} else if (context instanceof IAddContext /* && context.getNewObject() instanceof <DomainObject> */) {
+			return new AddDomainObjectFeature(this);
+		}
+		return super.getAddFeature(context);
+	}
+	
+	@Override
+	public ILayoutFeature getLayoutFeature(ILayoutContext context) {
+		// TODO: check for right domain object instances below
+		if (context.getPictogramElement() instanceof ContainerShape /* && getBusinessObjectForPictogramElement(context.getPictogramElement()) instanceof <DomainObject> */) {
+			return  new LayoutDomainObjectFeature(this);
+		}
+
+		return super.getLayoutFeature(context);
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectConnectionFeature.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectConnectionFeature.java
new file mode 100644
index 0000000..908dc2a
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectConnectionFeature.java
@@ -0,0 +1,52 @@
+package $packageName$.features;
+
+import org.eclipse.graphiti.features.IAddFeature;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.IAddConnectionContext;
+import org.eclipse.graphiti.features.context.IAddContext;
+import org.eclipse.graphiti.features.impl.AbstractAddFeature;
+import org.eclipse.graphiti.mm.algorithms.Polyline;
+import org.eclipse.graphiti.mm.pictograms.Connection;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.services.Graphiti;
+import org.eclipse.graphiti.services.IGaService;
+import org.eclipse.graphiti.services.IPeCreateService;
+import org.eclipse.graphiti.util.IColorConstant;
+
+public class AddDomainObjectConnectionFeature extends AbstractAddFeature implements
+		IAddFeature {
+
+	public AddDomainObjectConnectionFeature(IFeatureProvider fp) {
+		super(fp);
+	}
+
+	@Override
+	public boolean canAdd(IAddContext context) {
+		// TODO: check for right domain object instance below
+		if (context instanceof IAddConnectionContext /* && context.getNewObject() instanceof <DomainObject> */) {
+			return true;
+		}
+		return false;
+	}
+
+	@Override
+	public PictogramElement add(IAddContext context) {
+		IAddConnectionContext addConContext = (IAddConnectionContext) context;
+		IPeCreateService peCreateService = Graphiti.getPeCreateService();
+		IGaService gaService = Graphiti.getGaService();
+
+		Connection connection = peCreateService.createFreeFormConnection(getDiagram());
+		connection.setStart(addConContext.getSourceAnchor());
+		connection.setEnd(addConContext.getTargetAnchor());
+
+		Polyline polyline = gaService.createPlainPolyline(connection);
+		polyline.setForeground(manageColor(IColorConstant.BLACK));
+
+		// TODO: enable the link to the domain object
+		// Object addedDomainObjectConnection = context.getNewObject();
+		// link(connection, addedDomainObjectConnection);
+		
+		return connection;
+	}
+
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectFeature.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectFeature.java
new file mode 100644
index 0000000..6de649b
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/AddDomainObjectFeature.java
@@ -0,0 +1,58 @@
+package $packageName$.features;
+
+import org.eclipse.graphiti.features.IAddFeature;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.IAddContext;
+import org.eclipse.graphiti.features.impl.AbstractAddFeature;
+import org.eclipse.graphiti.mm.algorithms.RoundedRectangle;
+import org.eclipse.graphiti.mm.algorithms.Text;
+import org.eclipse.graphiti.mm.algorithms.styles.Orientation;
+import org.eclipse.graphiti.mm.pictograms.ContainerShape;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.eclipse.graphiti.services.Graphiti;
+import org.eclipse.graphiti.services.IGaService;
+import org.eclipse.graphiti.services.IPeCreateService;
+
+public class AddDomainObjectFeature extends AbstractAddFeature implements
+		IAddFeature {
+
+	public AddDomainObjectFeature(IFeatureProvider fp) {
+		super(fp);
+	}
+
+	@Override
+	public boolean canAdd(IAddContext context) {
+		// TODO: check for right domain object instance below
+		return /* context.getNewObject() instanceof <DomainObject> && */ context.getTargetContainer() instanceof Diagram;
+	}
+
+	@Override
+	public PictogramElement add(IAddContext context) {
+
+		Diagram targetDiagram = (Diagram) context.getTargetContainer();
+		IPeCreateService peCreateService = Graphiti.getPeCreateService();
+		IGaService gaService = Graphiti.getGaService();
+
+		ContainerShape containerShape = peCreateService.createContainerShape(targetDiagram, true);
+		RoundedRectangle roundedRectangle = gaService.createRoundedRectangle(containerShape, 5, 5);
+		gaService.setLocationAndSize(roundedRectangle, context.getX(), context.getY(), context.getWidth(), context.getHeight());
+		roundedRectangle.setFilled(false);
+		
+		Shape shape = peCreateService.createShape(containerShape, false);
+		Text text = gaService.createText(shape, "Domain Object");
+		text.setHorizontalAlignment(Orientation.ALIGNMENT_CENTER);
+		text.setVerticalAlignment(Orientation.ALIGNMENT_CENTER);
+		gaService.setLocationAndSize(text, 0, 0, context.getWidth(), context.getHeight());
+
+		peCreateService.createChopboxAnchor(containerShape);
+
+		// TODO: enable the link to the domain object
+		// Object addedDomainObject = context.getNewObject();
+		// link(containerShape, addedDomainObject);
+
+		return containerShape;
+	}
+
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectConnectionFeature.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectConnectionFeature.java
new file mode 100644
index 0000000..dda0baa
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectConnectionFeature.java
@@ -0,0 +1,52 @@
+package $packageName$.features;
+
+import org.eclipse.graphiti.features.ICreateConnectionFeature;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.ICreateConnectionContext;
+import org.eclipse.graphiti.features.context.impl.AddConnectionContext;
+import org.eclipse.graphiti.features.impl.AbstractCreateConnectionFeature;
+import org.eclipse.graphiti.mm.pictograms.Connection;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+
+public class CreateDomainObjectConnectionFeature extends AbstractCreateConnectionFeature
+		implements ICreateConnectionFeature {
+
+	public CreateDomainObjectConnectionFeature(IFeatureProvider fp) {
+		super(fp, "Connection", "Creates a new connection between two domain objects");
+	}
+
+	@Override
+	public boolean canStartConnection(ICreateConnectionContext context) {
+		// TODO: check for right domain object instance below
+		// return getBusinessObjectForPictogramElement(context.getSourcePictogramElement()) instanceof <DomainObject>;
+
+		return true;
+	}
+
+	@Override
+	public boolean canCreate(ICreateConnectionContext context) {
+		PictogramElement sourcePictogramElement = context.getSourcePictogramElement();
+		PictogramElement targetPictogramElement = context.getTargetPictogramElement();
+
+		// TODO: check for right domain object instance below
+		// if (getBusinessObjectForPictogramElement(sourcePictogramElement) instanceof <DomainObject> && getBusinessObjectForPictogramElement(targetPictogramElement) instanceof <DomainObject>) {
+		//  	return true;
+		// }
+		
+		return sourcePictogramElement != null && targetPictogramElement != null;
+	}
+
+	@Override
+	public Connection create(ICreateConnectionContext context) {
+		Connection newConnection = null;
+
+		// TODO: create the domain object connection here
+		Object newDomainObjectConnetion = null;
+
+		AddConnectionContext addContext = new AddConnectionContext(context.getSourceAnchor(), context.getTargetAnchor());
+		addContext.setNewObject(newDomainObjectConnetion);
+		newConnection = (Connection) getFeatureProvider().addIfPossible(addContext);
+
+		return newConnection;
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectFeature.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectFeature.java
new file mode 100644
index 0000000..9c83365
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/CreateDomainObjectFeature.java
@@ -0,0 +1,32 @@
+package $packageName$.features;
+
+import org.eclipse.graphiti.features.ICreateFeature;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.context.ICreateContext;
+import org.eclipse.graphiti.features.impl.AbstractCreateFeature;
+import org.eclipse.graphiti.mm.pictograms.Diagram;
+
+public class CreateDomainObjectFeature extends AbstractCreateFeature implements
+		ICreateFeature {
+
+	public CreateDomainObjectFeature(IFeatureProvider fp) {
+		super(fp, "Domain Object", "Creates a new domain object");
+	}
+
+	@Override
+	public boolean canCreate(ICreateContext context) {
+		return context.getTargetContainer() instanceof Diagram;
+	}
+
+	@Override
+	public Object[] create(ICreateContext context) {
+		// TODO: create the domain object here
+		Object newDomainObject = null;
+		
+		// TODO: in case of an EMF object add the new object to a suitable resource
+		// getDiagram().eResource().getContents().add(newDomainObject);
+		
+		addGraphicalRepresentation(context, newDomainObject);
+		return new Object[] { newDomainObject };
+	}
+}
diff --git a/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/LayoutDomainObjectFeature.java b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/LayoutDomainObjectFeature.java
new file mode 100644
index 0000000..34dc746
--- /dev/null
+++ b/plugins/org.eclipse.graphiti.tools.newprojectwizard/templates_3.4/newgraphitieditor/java/features/LayoutDomainObjectFeature.java
@@ -0,0 +1,50 @@
+package $packageName$.features;
+
+import org.eclipse.emf.common.util.EList;
+import org.eclipse.graphiti.features.IFeatureProvider;
+import org.eclipse.graphiti.features.ILayoutFeature;
+import org.eclipse.graphiti.features.context.ILayoutContext;
+import org.eclipse.graphiti.features.impl.AbstractLayoutFeature;
+import org.eclipse.graphiti.mm.algorithms.GraphicsAlgorithm;
+import org.eclipse.graphiti.mm.algorithms.RoundedRectangle;
+import org.eclipse.graphiti.mm.algorithms.Text;
+import org.eclipse.graphiti.mm.pictograms.ContainerShape;
+import org.eclipse.graphiti.mm.pictograms.PictogramElement;
+import org.eclipse.graphiti.mm.pictograms.Shape;
+import org.eclipse.graphiti.services.Graphiti;
+
+public class LayoutDomainObjectFeature extends AbstractLayoutFeature implements
+		ILayoutFeature {
+
+	public LayoutDomainObjectFeature(IFeatureProvider fp) {
+		super(fp);
+	}
+
+	@Override
+	public boolean canLayout(ILayoutContext context) {
+		// TODO: check for right domain object instances below
+		return context.getPictogramElement() instanceof ContainerShape /* && getBusinessObjectForPictogramElement(context.getPictogramElement()) instanceof <DomainObject> */;
+	}
+
+	@Override
+	public boolean layout(ILayoutContext context) {
+		PictogramElement pictogramElement = context.getPictogramElement();
+		if (pictogramElement instanceof ContainerShape) {
+			ContainerShape containerShape = (ContainerShape) pictogramElement;
+			GraphicsAlgorithm outerGraphicsAlgorithm = containerShape.getGraphicsAlgorithm();
+			if (outerGraphicsAlgorithm instanceof RoundedRectangle) {
+				RoundedRectangle roundedRectangle = (RoundedRectangle) outerGraphicsAlgorithm;
+				EList<Shape> children = containerShape.getChildren();
+				if (children.size() > 0) {
+					Shape shape = children.get(0);
+					GraphicsAlgorithm graphicsAlgorithm = shape.getGraphicsAlgorithm();
+					if (graphicsAlgorithm instanceof Text) {
+						Graphiti.getGaLayoutService().setLocationAndSize(graphicsAlgorithm, 0, 0, roundedRectangle.getWidth(), roundedRectangle.getHeight());
+						return true;
+					}
+				}
+			}
+		}
+		return false;
+	}
+}
