diff options
author | Martin Fluegge | 2010-05-16 16:04:14 +0000 |
---|---|---|
committer | Martin Fluegge | 2010-05-16 16:04:14 +0000 |
commit | 468ae2103a4d6cf24aab3a2cabd4d764c5daaa5d (patch) | |
tree | b1e8a80a173025cd6bd3b0924b1efddc50775ed8 /plugins/org.eclipse.emf.cdo.dawn.codegen | |
parent | d1c0df56d49e38b5c5f5d8b9457973f63c468ad3 (diff) | |
download | cdo-468ae2103a4d6cf24aab3a2cabd4d764c5daaa5d.tar.gz cdo-468ae2103a4d6cf24aab3a2cabd4d764c5daaa5d.tar.xz cdo-468ae2103a4d6cf24aab3a2cabd4d764c5daaa5d.zip |
[308232] [Dawn] Develop collaborative support for GMF on CDO
https://bugs.eclipse.org/bugs/show_bug.cgi?id=308232
Diffstat (limited to 'plugins/org.eclipse.emf.cdo.dawn.codegen')
29 files changed, 3350 insertions, 0 deletions
diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.classpath b/plugins/org.eclipse.emf.cdo.dawn.codegen/.classpath new file mode 100644 index 0000000000..64c5e31b7a --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.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.emf.cdo.dawn.codegen/.project b/plugins/org.eclipse.emf.cdo.dawn.codegen/.project new file mode 100644 index 0000000000..da9eeacda0 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.project @@ -0,0 +1,34 @@ +<?xml version="1.0" encoding="UTF-8"?> +<projectDescription> + <name>org.eclipse.emf.cdo.dawn.codegen</name> + <comment></comment> + <projects> + </projects> + <buildSpec> + <buildCommand> + <name>org.eclipse.jdt.core.javabuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.ManifestBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.pde.SchemaBuilder</name> + <arguments> + </arguments> + </buildCommand> + <buildCommand> + <name>org.eclipse.xtend.shared.ui.xtendBuilder</name> + <arguments> + </arguments> + </buildCommand> + </buildSpec> + <natures> + <nature>org.eclipse.pde.PluginNature</nature> + <nature>org.eclipse.jdt.core.javanature</nature> + <nature>org.eclipse.xtend.shared.ui.xtendXPandNature</nature> + </natures> +</projectDescription> diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.core.resources.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.core.resources.prefs new file mode 100644 index 0000000000..a1cef9a448 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.core.resources.prefs @@ -0,0 +1,3 @@ +#Thu Dec 18 13:30:26 CET 2008 +eclipse.preferences.version=1 +encoding//model/org.eclipse.emf.cdo.defs.ecorediag=UTF-8 diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.core.prefs new file mode 100644 index 0000000000..5d87a43b27 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.core.prefs @@ -0,0 +1,361 @@ +#Sun May 16 17:47:01 CEST 2010 +eclipse.preferences.version=1 +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.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=warning +org.eclipse.jdt.core.compiler.problem.enumIdentifier=error +org.eclipse.jdt.core.compiler.problem.fallthroughCase=warning +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.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=warning +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=warning +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.missingJavadocTagsOverriding=disabled +org.eclipse.jdt.core.compiler.problem.missingJavadocTagsVisibility=public +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning +org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled +org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning +org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=warning +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=warning +org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore +org.eclipse.jdt.core.compiler.problem.rawTypeReference=warning +org.eclipse.jdt.core.compiler.problem.redundantNullCheck=warning +org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=warning +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.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=warning +org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=warning +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.compiler.taskCaseSensitive=enabled +org.eclipse.jdt.core.compiler.taskPriorities=NORMAL,HIGH,HIGH,LOW,LOW,LOW,LOW,LOW +org.eclipse.jdt.core.compiler.taskTags=TODO,FIXME,XXX,PERF,MEM,POLISH,@generated NOT,@ADDED +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_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_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=1 +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=next_line +org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line +org.eclipse.jdt.core.formatter.brace_position_for_block=next_line +org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=next_line +org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=next_line +org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=next_line +org.eclipse.jdt.core.formatter.brace_position_for_switch=next_line +org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=next_line +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=true +org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true +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=120 +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.format_guardian_clause_on_one_line=false +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=2 +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_member=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_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=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=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=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=do not 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=space +org.eclipse.jdt.core.formatter.tabulation.size=2 +org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false +org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.ui.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.ui.prefs new file mode 100644 index 0000000000..724b873437 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.jdt.ui.prefs @@ -0,0 +1,120 @@ +#Thu Feb 04 09:44:24 CET 2010 +cleanup.add_default_serial_version_id=true +cleanup.add_generated_serial_version_id=false +cleanup.add_missing_annotations=true +cleanup.add_missing_deprecated_annotations=true +cleanup.add_missing_methods=false +cleanup.add_missing_nls_tags=false +cleanup.add_missing_override_annotations=true +cleanup.add_missing_override_annotations_interface_methods=true +cleanup.add_serial_version_id=true +cleanup.always_use_blocks=true +cleanup.always_use_parentheses_in_expressions=false +cleanup.always_use_this_for_non_static_field_access=false +cleanup.always_use_this_for_non_static_method_access=false +cleanup.convert_to_enhanced_for_loop=false +cleanup.correct_indentation=true +cleanup.format_source_code=true +cleanup.format_source_code_changes_only=false +cleanup.make_local_variable_final=true +cleanup.make_parameters_final=false +cleanup.make_private_fields_final=true +cleanup.make_type_abstract_if_missing_method=false +cleanup.make_variable_declarations_final=false +cleanup.never_use_blocks=false +cleanup.never_use_parentheses_in_expressions=true +cleanup.organize_imports=true +cleanup.qualify_static_field_accesses_with_declaring_class=false +cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true +cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true +cleanup.qualify_static_member_accesses_with_declaring_class=false +cleanup.qualify_static_method_accesses_with_declaring_class=false +cleanup.remove_private_constructors=true +cleanup.remove_trailing_whitespaces=true +cleanup.remove_trailing_whitespaces_all=true +cleanup.remove_trailing_whitespaces_ignore_empty=false +cleanup.remove_unnecessary_casts=true +cleanup.remove_unnecessary_nls_tags=true +cleanup.remove_unused_imports=true +cleanup.remove_unused_local_variables=false +cleanup.remove_unused_private_fields=true +cleanup.remove_unused_private_members=false +cleanup.remove_unused_private_methods=true +cleanup.remove_unused_private_types=true +cleanup.sort_members=false +cleanup.sort_members_all=false +cleanup.use_blocks=true +cleanup.use_blocks_only_for_return_and_throw=false +cleanup.use_parentheses_in_expressions=true +cleanup.use_this_for_non_static_field_access=true +cleanup.use_this_for_non_static_field_access_only_if_necessary=true +cleanup.use_this_for_non_static_method_access=true +cleanup.use_this_for_non_static_method_access_only_if_necessary=true +cleanup_profile=_EMFT +cleanup_settings_version=2 +eclipse.preferences.version=1 +editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true +formatter_profile=_EMFT +formatter_settings_version=11 +org.eclipse.jdt.ui.exception.name=ex +org.eclipse.jdt.ui.gettersetter.use.is=true +org.eclipse.jdt.ui.ignorelowercasenames=true +org.eclipse.jdt.ui.importorder=org.eclipse.emf.cdo;org.eclipse.emf.internal.cdo;org.eclipse.net4j;org.eclipse.internal.net4j;org.eclipse.emf;org.eclipse;com;org;javax;java; +org.eclipse.jdt.ui.javadoc=true +org.eclipse.jdt.ui.keywordthis=false +org.eclipse.jdt.ui.ondemandthreshold=99 +org.eclipse.jdt.ui.overrideannotation=true +org.eclipse.jdt.ui.staticondemandthreshold=99 +org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="false" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"/><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others.\r\n * All rights reserved. This program and the accompanying materials\r\n * are made available under the terms of the Eclipse Public License v1.0\r\n * which accompanies this distribution, and is available at\r\n * http\://www.eclipse.org/legal/epl-v10.html\r\n * \r\n * Contributors\:\r\n * Martin Fluegge - initial API and implementation\r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * @author Martin Fluegge\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"/><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="false" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment"/><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\r\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\r\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates> +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=true +sp_cleanup.format_source_code=true +sp_cleanup.format_source_code_changes_only=false +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=false +sp_cleanup.never_use_blocks=false +sp_cleanup.never_use_parentheses_in_expressions=true +sp_cleanup.on_save_use_additional_actions=true +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=true +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=true +sp_cleanup.remove_unused_imports=true +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=true +sp_cleanup.use_blocks_only_for_return_and_throw=false +sp_cleanup.use_parentheses_in_expressions=true +sp_cleanup.use_this_for_non_static_field_access=true +sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true +sp_cleanup.use_this_for_non_static_method_access=true +sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.ltk.core.refactoring.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 0000000000..864e30fe5d --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.tasks.ui.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.tasks.ui.prefs new file mode 100644 index 0000000000..b050639a54 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.tasks.ui.prefs @@ -0,0 +1,4 @@ +#Thu Feb 04 09:44:24 CET 2010 +eclipse.preferences.version=1 +project.repository.kind=bugzilla +project.repository.url=https\://bugs.eclipse.org/bugs diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.team.ui.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.team.ui.prefs new file mode 100644 index 0000000000..2f50f36c0c --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.mylyn.team.ui.prefs @@ -0,0 +1,3 @@ +#Thu Feb 04 09:44:24 CET 2010 +commit.comment.template=[${task.id}] ${task.description} \r\n${task.url} +eclipse.preferences.version=1 diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.api.tools.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.api.tools.prefs new file mode 100644 index 0000000000..bf3053a36e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.api.tools.prefs @@ -0,0 +1,94 @@ +#Thu Feb 04 09:44:24 CET 2010 +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 +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=Enabled +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.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.prefs b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.prefs new file mode 100644 index 0000000000..c6b96bb45e --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/.settings/org.eclipse.pde.prefs @@ -0,0 +1,31 @@ +#Thu Feb 04 09:44:24 CET 2010 +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.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=1 +compilers.p.missing-version-export-package=1 +compilers.p.missing-version-import-package=1 +compilers.p.missing-version-require-bundle=1 +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.emf.cdo.dawn.codegen/META-INF/MANIFEST.MF b/plugins/org.eclipse.emf.cdo.dawn.codegen/META-INF/MANIFEST.MF new file mode 100644 index 0000000000..31a1529a38 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/META-INF/MANIFEST.MF @@ -0,0 +1,39 @@ +Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Codegen +Bundle-SymbolicName: org.eclipse.emf.cdo.dawn.codegen;singleton:=true +Bundle-Version: 0.2.0.qualifier +Bundle-Activator: org.eclipse.emf.cdo.dawn.codegen.DawnCodeGenPlugin +Require-Bundle: com.ibm.icu;bundle-version="[4.0.0,5.0.0)", + org.apache.commons.logging;bundle-version="[1.1.0,2.0.0)", + org.apache.commons.lang;bundle-version="[2.4.0,3.0.0)", + org.antlr.runtime;bundle-version="[3.0.0,4.0.0)", + org.eclipse.core.runtime;bundle-version="[3.5.0,4.0.0)", + org.eclipse.core.resources;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui;bundle-version="[3.4.0,4.0.0)", + org.eclipse.ui.ide;bundle-version="[3.4.0,4.0.0)", + org.eclipse.jdt.launching;bundle-version="[3.4.0,4.0.0)", + org.eclipse.emf.ecore;bundle-version="[2.5.0,3.0.0)", + org.eclipse.emf.ecore.xmi;bundle-version="[2.5.0,3.0.0)", + org.eclipse.emf.codegen.ecore;bundle-version="[2.6.0,3.0.0)", + org.eclipse.emf.codegen;bundle-version="[2.6.0,3.0.0)", + org.eclipse.emf.mwe.core;bundle-version="[1.0.0,2.0.0)", + org.eclipse.emf.mwe.utils;bundle-version="[0.7.0,2.0.0)", + org.eclipse.jdt.core;bundle-version="[3.4.0,4.0.0)", + org.eclipse.pde;bundle-version="[3.4.0,4.0.0)", + org.eclipse.pde.core;bundle-version="[3.4.0,4.0.0)", + org.eclipse.jface.text;bundle-version="[3.5.0,4.0.0)", + org.eclipse.xpand;bundle-version="[0.7.0,2.0.0)", + org.eclipse.xtend;bundle-version="[0.7.0,2.0.0)", + org.eclipse.xtend.typesystem.emf;bundle-version="[0.7.0,2.0.0)", + org.eclipse.gmf.codegen;bundle-version="[2.2.0,3.0.0)", + org.eclipse.gmf.graphdef.codegen;bundle-version="[2.0.0,3.0.0)", + org.eclipse.gmf.validate;bundle-version="[1.2.0,2.0.0)", + org.eclipse.emf.cdo.dawn.codegen.dawngenmodel;bundle-version="[0.2.0,1.0.0)" +Bundle-ActivationPolicy: lazy +Bundle-RequiredExecutionEnvironment: JavaSE-1.6 +Export-Package: org.eclipse.emf.cdo.dawn.codegen;version="0.2.0", + org.eclipse.emf.cdo.dawn.codegen.actions;version="0.2.0", + org.eclipse.emf.cdo.dawn.codegen.creators;version="0.2.0", + org.eclipse.emf.cdo.dawn.codegen.creators.impl;version="0.2.0", + org.eclipse.emf.cdo.dawn.codegen.util;version="0.2.0" diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/about.html b/plugins/org.eclipse.emf.cdo.dawn.codegen/about.html new file mode 100644 index 0000000000..d35d5aed64 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/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, 2007</p> +<h3>License</h3> + +<p>The Eclipse Foundation makes available all content in this plug-in ("Content"). Unless otherwise +indicated below, the Content is provided to you under the terms and conditions of the +Eclipse Public License Version 1.0 ("EPL"). 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, "Program" 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 ("Redistributor") 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> diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/build.properties b/plugins/org.eclipse.emf.cdo.dawn.codegen/build.properties new file mode 100644 index 0000000000..c3858e87de --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/build.properties @@ -0,0 +1,20 @@ +# Copyright (c) 2004 - 2010 Martin Fluegge (Berlin, Germany) and others. +# All rights reserved. This program and the accompanying materials +# are made available under the terms of the Eclipse Public License v1.0 +# which accompanies this distribution, and is available at +# http://www.eclipse.org/legal/epl-v10.html +# +# Contributors: +# Martin Fluegge - initial API and implementation + +# NLS_MESSAGEFORMAT_VAR +source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + plugin.xml,\ + about.html,\ + copyright.txt,\ + license.html +src.includes = about.html,\ + copyright.txt diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/copyright.txt b/plugins/org.eclipse.emf.cdo.dawn.codegen/copyright.txt new file mode 100644 index 0000000000..2ff5009e83 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/copyright.txt @@ -0,0 +1,8 @@ +Copyright (c) 2010 Martin Fluegge(Berlin, Germany) and others. +All rights reserved. This program and the accompanying materials +are made available under the terms of the Eclipse Public License v1.0 +which accompanies this distribution, and is available at +http://www.eclipse.org/legal/epl-v10.html + +Contributors: + Martin Fluegge - initial API and implementation
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/license.html b/plugins/org.eclipse.emf.cdo.dawn.codegen/license.html new file mode 100644 index 0000000000..d7b88e9416 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/license.html @@ -0,0 +1,319 @@ +<html xmlns:o="urn:schemas-microsoft-com:office:office" xmlns:w="urn:schemas-microsoft-com:office:word" xmlns="http://www.w3.org/TR/REC-html40"><head> +<meta http-equiv="Content-Type" content="text/html; charset=windows-1252"> +<meta name="ProgId" content="Word.Document"> +<meta name="Generator" content="Microsoft Word 9"> +<meta name="Originator" content="Microsoft Word 9"> +<link rel="File-List" href="http://www.eclipse.org/org/documents/Eclipse%20EPL%202003_11_10%20Final_files/filelist.xml"><title>Eclipse Public License - Version 1.0</title><!--[if gte mso 9]><xml> + <o:DocumentProperties> + <o:Revision>2</o:Revision> + <o:TotalTime>3</o:TotalTime> + <o:Created>2004-03-05T23:03:00Z</o:Created> + <o:LastSaved>2004-03-05T23:03:00Z</o:LastSaved> + <o:Pages>4</o:Pages> + <o:Words>1626</o:Words> + <o:Characters>9270</o:Characters> + <o:Lines>77</o:Lines> + <o:Paragraphs>18</o:Paragraphs> + <o:CharactersWithSpaces>11384</o:CharactersWithSpaces> + <o:Version>9.4402</o:Version> + </o:DocumentProperties> +</xml><![endif]--><!--[if gte mso 9]><xml> + <w:WordDocument> + <w:TrackRevisions/> + </w:WordDocument> +</xml><![endif]--> + + +<style> +<!-- + /* Font Definitions */ +@font-face + {font-family:Tahoma; + panose-1:2 11 6 4 3 5 4 4 2 4; + mso-font-charset:0; + mso-generic-font-family:swiss; + mso-font-pitch:variable; + mso-font-signature:553679495 -2147483648 8 0 66047 0;} + /* Style Definitions */ +p.MsoNormal, li.MsoNormal, div.MsoNormal + {mso-style-parent:""; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p + {margin-right:0in; + mso-margin-top-alt:auto; + mso-margin-bottom-alt:auto; + margin-left:0in; + mso-pagination:widow-orphan; + font-size:12.0pt; + font-family:"Times New Roman"; + mso-fareast-font-family:"Times New Roman";} +p.BalloonText, li.BalloonText, div.BalloonText + {mso-style-name:"Balloon Text"; + margin:0in; + margin-bottom:.0001pt; + mso-pagination:widow-orphan; + font-size:8.0pt; + font-family:Tahoma; + mso-fareast-font-family:"Times New Roman";} +@page Section1 + {size:8.5in 11.0in; + margin:1.0in 1.25in 1.0in 1.25in; + mso-header-margin:.5in; + mso-footer-margin:.5in; + mso-paper-source:0;} +div.Section1 + {page:Section1;} +--> +</style></head> + +<body style="" lang="EN-US"> + +<div class="Section1"> + +<p style="text-align: center;" align="center"><b>Eclipse Public License - v 1.0</b> +</p> + +<p><span style="font-size: 10pt;">THE ACCOMPANYING PROGRAM IS PROVIDED UNDER +THE TERMS OF THIS ECLIPSE PUBLIC LICENSE ("AGREEMENT"). ANY USE, +REPRODUCTION OR DISTRIBUTION OF THE PROGRAM CONSTITUTES RECIPIENT'S ACCEPTANCE +OF THIS AGREEMENT.</span> </p> + +<p><b><span style="font-size: 10pt;">1. DEFINITIONS</span></b> </p> + +<p><span style="font-size: 10pt;">"Contribution" means:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +in the case of the initial Contributor, the initial code and documentation +distributed under this Agreement, and<br clear="left"> +b) in the case of each subsequent Contributor:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +changes to the Program, and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +additions to the Program;</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">where +such changes and/or additions to the Program originate from and are distributed +by that particular Contributor. A Contribution 'originates' from a Contributor +if it was added to the Program by such Contributor itself or anyone acting on +such Contributor's behalf. Contributions do not include additions to the +Program which: (i) are separate modules of software distributed in conjunction +with the Program under their own license agreement, and (ii) are not derivative +works of the Program. </span></p> + +<p><span style="font-size: 10pt;">"Contributor" means any person or +entity that distributes the Program.</span> </p> + +<p><span style="font-size: 10pt;">"Licensed Patents " mean patent +claims licensable by a Contributor which are necessarily infringed by the use +or sale of its Contribution alone or when combined with the Program. </span></p> + +<p><span style="font-size: 10pt;">"Program" means the Contributions +distributed in accordance with this Agreement.</span> </p> + +<p><span style="font-size: 10pt;">"Recipient" means anyone who +receives the Program under this Agreement, including all Contributors.</span> </p> + +<p><b><span style="font-size: 10pt;">2. GRANT OF RIGHTS</span></b> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +Subject to the terms of this Agreement, each Contributor hereby grants Recipient +a non-exclusive, worldwide, royalty-free copyright license to<span style="color: red;"> </span>reproduce, prepare derivative works of, publicly +display, publicly perform, distribute and sublicense the Contribution of such +Contributor, if any, and such derivative works, in source code and object code +form.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +Subject to the terms of this Agreement, each Contributor hereby grants +Recipient a non-exclusive, worldwide,<span style="color: green;"> </span>royalty-free +patent license under Licensed Patents to make, use, sell, offer to sell, import +and otherwise transfer the Contribution of such Contributor, if any, in source +code and object code form. This patent license shall apply to the combination +of the Contribution and the Program if, at the time the Contribution is added +by the Contributor, such addition of the Contribution causes such combination +to be covered by the Licensed Patents. The patent license shall not apply to +any other combinations which include the Contribution. No hardware per se is +licensed hereunder. </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">c) +Recipient understands that although each Contributor grants the licenses to its +Contributions set forth herein, no assurances are provided by any Contributor +that the Program does not infringe the patent or other intellectual property +rights of any other entity. Each Contributor disclaims any liability to Recipient +for claims brought by any other entity based on infringement of intellectual +property rights or otherwise. As a condition to exercising the rights and +licenses granted hereunder, each Recipient hereby assumes sole responsibility +to secure any other intellectual property rights needed, if any. For example, +if a third party patent license is required to allow Recipient to distribute +the Program, it is Recipient's responsibility to acquire that license before +distributing the Program.</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">d) +Each Contributor represents that to its knowledge it has sufficient copyright +rights in its Contribution, if any, to grant the copyright license set forth in +this Agreement. </span></p> + +<p><b><span style="font-size: 10pt;">3. REQUIREMENTS</span></b> </p> + +<p><span style="font-size: 10pt;">A Contributor may choose to distribute the +Program in object code form under its own license agreement, provided that:</span> +</p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it complies with the terms and conditions of this Agreement; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) +its license agreement:</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">i) +effectively disclaims on behalf of all Contributors all warranties and +conditions, express and implied, including warranties or conditions of title +and non-infringement, and implied warranties or conditions of merchantability +and fitness for a particular purpose; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">ii) +effectively excludes on behalf of all Contributors all liability for damages, +including direct, indirect, special, incidental and consequential damages, such +as lost profits; </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iii) +states that any provisions which differ from this Agreement are offered by that +Contributor alone and not by any other party; and</span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">iv) +states that source code for the Program is available from such Contributor, and +informs licensees how to obtain it in a reasonable manner on or through a +medium customarily used for software exchange.<span style="color: blue;"> </span></span></p> + +<p><span style="font-size: 10pt;">When the Program is made available in source +code form:</span> </p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">a) +it must be made available under this Agreement; and </span></p> + +<p class="MsoNormal" style="margin-left: 0.5in;"><span style="font-size: 10pt;">b) a +copy of this Agreement must be included with each copy of the Program. </span></p> + +<p><span style="font-size: 10pt;">Contributors may not remove or alter any +copyright notices contained within the Program. </span></p> + +<p><span style="font-size: 10pt;">Each Contributor must identify itself as the +originator of its Contribution, if any, in a manner that reasonably allows +subsequent Recipients to identify the originator of the Contribution. </span></p> + +<p><b><span style="font-size: 10pt;">4. COMMERCIAL DISTRIBUTION</span></b> </p> + +<p><span style="font-size: 10pt;">Commercial distributors of software may +accept certain responsibilities with respect to end users, business partners +and the like. While this license is intended to facilitate the commercial use +of the Program, the Contributor who includes the Program in a commercial +product offering should do so in a manner which does not create potential +liability for other Contributors. Therefore, if a Contributor includes the +Program in a commercial product offering, such Contributor ("Commercial +Contributor") hereby agrees to defend and indemnify every other +Contributor ("Indemnified Contributor") against any losses, damages and +costs (collectively "Losses") arising from claims, lawsuits and other +legal actions brought by a third party against the Indemnified Contributor to +the extent caused by the acts or omissions of such Commercial Contributor in +connection with its distribution of the Program in a commercial product +offering. The obligations in this section do not apply to any claims or Losses +relating to any actual or alleged intellectual property infringement. In order +to qualify, an Indemnified Contributor must: a) promptly notify the Commercial +Contributor in writing of such claim, and b) allow the Commercial Contributor +to control, and cooperate with the Commercial Contributor in, the defense and +any related settlement negotiations. The Indemnified Contributor may participate +in any such claim at its own expense.</span> </p> + +<p><span style="font-size: 10pt;">For example, a Contributor might include the +Program in a commercial product offering, Product X. That Contributor is then a +Commercial Contributor. If that Commercial Contributor then makes performance +claims, or offers warranties related to Product X, those performance claims and +warranties are such Commercial Contributor's responsibility alone. Under this +section, the Commercial Contributor would have to defend claims against the +other Contributors related to those performance claims and warranties, and if a +court requires any other Contributor to pay any damages as a result, the +Commercial Contributor must pay those damages.</span> </p> + +<p><b><span style="font-size: 10pt;">5. NO WARRANTY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, THE PROGRAM IS PROVIDED ON AN "AS IS" BASIS, WITHOUT +WARRANTIES OR CONDITIONS OF ANY KIND, EITHER EXPRESS OR IMPLIED INCLUDING, +WITHOUT LIMITATION, ANY WARRANTIES OR CONDITIONS OF TITLE, NON-INFRINGEMENT, +MERCHANTABILITY OR FITNESS FOR A PARTICULAR PURPOSE. Each Recipient is solely +responsible for determining the appropriateness of using and distributing the +Program and assumes all risks associated with its exercise of rights under this +Agreement , including but not limited to the risks and costs of program errors, +compliance with applicable laws, damage to or loss of data, programs or +equipment, and unavailability or interruption of operations. </span></p> + +<p><b><span style="font-size: 10pt;">6. DISCLAIMER OF LIABILITY</span></b> </p> + +<p><span style="font-size: 10pt;">EXCEPT AS EXPRESSLY SET FORTH IN THIS +AGREEMENT, NEITHER RECIPIENT NOR ANY CONTRIBUTORS SHALL HAVE ANY LIABILITY FOR +ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL DAMAGES +(INCLUDING WITHOUT LIMITATION LOST PROFITS), HOWEVER CAUSED AND ON ANY THEORY +OF LIABILITY, WHETHER IN CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING +NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY OUT OF THE USE OR DISTRIBUTION OF +THE PROGRAM OR THE EXERCISE OF ANY RIGHTS GRANTED HEREUNDER, EVEN IF ADVISED OF +THE POSSIBILITY OF SUCH DAMAGES.</span> </p> + +<p><b><span style="font-size: 10pt;">7. GENERAL</span></b> </p> + +<p><span style="font-size: 10pt;">If any provision of this Agreement is invalid +or unenforceable under applicable law, it shall not affect the validity or +enforceability of the remainder of the terms of this Agreement, and without +further action by the parties hereto, such provision shall be reformed to the +minimum extent necessary to make such provision valid and enforceable.</span> </p> + +<p><span style="font-size: 10pt;">If Recipient institutes patent litigation +against any entity (including a cross-claim or counterclaim in a lawsuit) +alleging that the Program itself (excluding combinations of the Program with +other software or hardware) infringes such Recipient's patent(s), then such +Recipient's rights granted under Section 2(b) shall terminate as of the date +such litigation is filed. </span></p> + +<p><span style="font-size: 10pt;">All Recipient's rights under this Agreement +shall terminate if it fails to comply with any of the material terms or +conditions of this Agreement and does not cure such failure in a reasonable +period of time after becoming aware of such noncompliance. If all Recipient's +rights under this Agreement terminate, Recipient agrees to cease use and +distribution of the Program as soon as reasonably practicable. However, +Recipient's obligations under this Agreement and any licenses granted by +Recipient relating to the Program shall continue and survive. </span></p> + +<p><span style="font-size: 10pt;">Everyone is permitted to copy and distribute +copies of this Agreement, but in order to avoid inconsistency the Agreement is +copyrighted and may only be modified in the following manner. The Agreement +Steward reserves the right to publish new versions (including revisions) of +this Agreement from time to time. No one other than the Agreement Steward has +the right to modify this Agreement. The Eclipse Foundation is the initial +Agreement Steward. The Eclipse Foundation may assign the responsibility to +serve as the Agreement Steward to a suitable separate entity. Each new version +of the Agreement will be given a distinguishing version number. The Program +(including Contributions) may always be distributed subject to the version of +the Agreement under which it was received. In addition, after a new version of +the Agreement is published, Contributor may elect to distribute the Program +(including its Contributions) under the new version. Except as expressly stated +in Sections 2(a) and 2(b) above, Recipient receives no rights or licenses to +the intellectual property of any Contributor under this Agreement, whether +expressly, by implication, estoppel or otherwise. All rights in the Program not +expressly granted under this Agreement are reserved.</span> </p> + +<p><span style="font-size: 10pt;">This Agreement is governed by the laws of the +State of New York and the intellectual property laws of the United States of +America. No party to this Agreement will bring a legal action under this +Agreement more than one year after the cause of action arose. Each party waives +its rights to a jury trial in any resulting litigation.</span> </p> + +<p class="MsoNormal"><!--[if !supportEmptyParas]--> <!--[endif]--><o:p></o:p></p> + +</div> + +</body></html>
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/plugin.xml b/plugins/org.eclipse.emf.cdo.dawn.codegen/plugin.xml new file mode 100644 index 0000000000..eaca51fc91 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/plugin.xml @@ -0,0 +1,30 @@ +<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<plugin> + <extension + point="org.eclipse.ui.popupMenus"> + <objectContribution + adaptable="false" + id="org.eclipse.emf.cdo.dawn.codegen.generate" + nameFilter="*.dawngenmodel" + objectClass="org.eclipse.core.resources.IFile"> + <action + class="org.eclipse.emf.cdo.dawn.codegen.actions.GenerateClientCodeAction" + id="org.eclipse.emf.cdo.dawn.codegen.generateClientaction" + label="Generate Dawn GMF Fragment"> + </action> + </objectContribution> + <objectContribution + adaptable="false" + id="org.eclipse.emf.cdo.dawn.codegen.generate.client" + nameFilter="*.gmfgen" + objectClass="org.eclipse.core.resources.IFile"> + <action + class="org.eclipse.emf.cdo.dawn.codegen.actions.GenerateDawnGenModelAction" + id="org.eclipse.emf.cdo.dawn.codegen.dawngenmodelaction" + label="Generate Dawn GenModel"> + </action> + </objectContribution> + </extension> + +</plugin> diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/Checks.chk b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/Checks.chk new file mode 100644 index 0000000000..e69de29bb2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/Checks.chk diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/DawnCodeGen.ecore b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/DawnCodeGen.ecore new file mode 100644 index 0000000000..1fa1b67a82 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/metamodel/DawnCodeGen.ecore @@ -0,0 +1,28 @@ +<?xml version="1.0" encoding="UTF-8"?> +<ecore:EPackage xmi:version="2.0" + xmlns:xmi="http://www.omg.org/XMI" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance" + xmlns:ecore="http://www.eclipse.org/emf/2002/Ecore" name="dawngenmodel" + nsURI="http://www.eclipse.org/emf/cdo/dawn/2010/GenModel" nsPrefix="dawngenmodel"> + <eClassifiers xsi:type="ecore:EClass" name="DawnGMFGenerator"> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="fragmentName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnEditorClassName" eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnDocumentProviderClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnEditorUtilClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnCreationWizardClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnCanonicalEditingPolicyClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnDiagramEditPartClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnEditPartFactoryClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnEditPartProviderClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EAttribute" name="dawnEditPolicyProviderClassName" + eType="ecore:EDataType platform:/plugin/org.eclipse.emf.ecore/model/Ecore.ecore#//EString"/> + <eStructuralFeatures xsi:type="ecore:EReference" name="GMFGenEditorGenerator" + eType="ecore:EClass platform:/plugin/org.eclipse.gmf.codegen/models/gmfgen.ecore#//GenEditorGenerator"/> + </eClassifiers> +</ecore:EPackage> diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/DawnCodeGenPlugin.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/DawnCodeGenPlugin.java new file mode 100644 index 0000000000..9f25b452b2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/DawnCodeGenPlugin.java @@ -0,0 +1,53 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen; + +import org.eclipse.core.runtime.Plugin; + +import org.osgi.framework.BundleContext; + +/** + * @author Martin Fluegge + */ +public class DawnCodeGenPlugin extends Plugin +{ + public static final String PLUGIN_ID = "org.eclipse.emf.cdo.dawn.codegen"; //$NON-NLS-1$ + + private static DawnCodeGenPlugin plugin; + + public DawnCodeGenPlugin() + { + } + + @Override + public void start(BundleContext context) throws Exception + { + super.start(context); + plugin = this; + } + + @Override + public void stop(BundleContext context) throws Exception + { + plugin = null; + super.stop(context); + } + + /** + * Returns the shared instance + * + * @return the shared instance + */ + public static DawnCodeGenPlugin getDefault() + { + return plugin; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateClientCodeAction.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateClientCodeAction.java new file mode 100644 index 0000000000..2fbd43ada4 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateClientCodeAction.java @@ -0,0 +1,87 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.actions; + +import org.eclipse.emf.cdo.dawn.codegen.creators.Creator; +import org.eclipse.emf.cdo.dawn.codegen.creators.impl.GMFFragmentCreator; + +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; + +/** + * @author Martin Fluegge + */ +public class GenerateClientCodeAction implements IObjectActionDelegate +{ + private IResource selectedElement; + + private Object part; + + public void setActivePart(IAction action, IWorkbenchPart targetPart) + { + part = targetPart; + } + + public void run(IAction action) + { + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + try + { + window.run(true, true, new IRunnableWithProgress() + { + + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException + { + monitor.beginTask("Generate Dawn Code", 1000); + ArrayList<Creator> creators = new ArrayList<Creator>(); + creators.add(new GMFFragmentCreator(selectedElement)); + + for (Creator creator : creators) + { + creator.create(new SubProgressMonitor(monitor, 1000 / creators.size())); + } + } + }); + } + catch (InvocationTargetException e) + { + e.printStackTrace(); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + public void selectionChanged(IAction action, ISelection selection) + { + if (selection instanceof IStructuredSelection) + { + Object sel = ((IStructuredSelection)selection).getFirstElement(); + if (sel instanceof IResource) + { + selectedElement = (IResource)sel; + } + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateDawnGenModelAction.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateDawnGenModelAction.java new file mode 100644 index 0000000000..25cb4311e5 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/actions/GenerateDawnGenModelAction.java @@ -0,0 +1,163 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.actions; + +import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawnGMFGenerator; +import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawngenmodelFactory; +import org.eclipse.emf.cdo.dawn.codegen.util.ProjectCreationHelper; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.codegen.gmfgen.GenEditorGenerator; +import org.eclipse.jface.action.IAction; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.ui.IObjectActionDelegate; +import org.eclipse.ui.IWorkbenchPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.PlatformUI; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.util.Collections; + +/** + * @author Martin Fluegge + */ +public class GenerateDawnGenModelAction implements IObjectActionDelegate +{ + + private IResource selectedElement; + + public static final String dawngenmodelFileExtension = "dawngenmodel"; + + private final String generalPrefix = "Dawn"; + + private Object part; + + public void setActivePart(IAction action, IWorkbenchPart targetPart) + { + part = targetPart; + } + + public void run(IAction action) + { + IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); + try + { + window.run(true, true, new IRunnableWithProgress() + { + public void run(IProgressMonitor monitor) throws InvocationTargetException, InterruptedException + { + monitor.beginTask("Generate Dawn Code", 1000); + IFile gmfGen = (IFile)selectedElement; + + String gmfGenModelFile = gmfGen.getRawLocationURI().toString(); + String path = gmfGenModelFile.replace(gmfGen.getName(), ""); + String modelname = gmfGen.getName().replace(".gmfgen", ""); + + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("gmfgen", + new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put("genmodel", + new XMIResourceFactoryImpl()); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put(dawngenmodelFileExtension, + new XMIResourceFactoryImpl()); + + URI gmfGenModelResourceUri = URI.createURI(gmfGenModelFile); + Resource gmfGenModelResource = resourceSet.getResource(gmfGenModelResourceUri, true); + + String dawnGenModelResourcePath = path + "" + modelname + "." + dawngenmodelFileExtension; + Resource dawnGenModelResource = resourceSet.createResource(URI.createURI(dawnGenModelResourcePath)); + + GenEditorGenerator editorGenerator = (GenEditorGenerator)gmfGenModelResource.getContents().get(0); + + DawnGMFGenerator dawnGMFGenerator = DawngenmodelFactory.eINSTANCE.createDawnGMFGenerator(); + + String dawnEditorClassName = getDawnEditorClassName(editorGenerator); + + dawnGMFGenerator.setDawnEditorClassName(dawnEditorClassName); + dawnGMFGenerator.setFragmentName(editorGenerator.getPlugin().getID() + ".dawn"); + dawnGMFGenerator.setDawnCanonicalEditingPolicyClassName(generalPrefix + + editorGenerator.getDiagram().getCanonicalEditPolicyClassName()); + dawnGMFGenerator.setDawnCreationWizardClassName(generalPrefix + + editorGenerator.getDiagram().getCreationWizardClassName()); + dawnGMFGenerator.setDawnDiagramEditPartClassName(generalPrefix + + editorGenerator.getDiagram().getEditPartClassName()); + dawnGMFGenerator.setDawnDocumentProviderClassName(generalPrefix + + editorGenerator.getDiagram().getDocumentProviderClassName()); + dawnGMFGenerator.setDawnEditorUtilClassName(generalPrefix + + editorGenerator.getDiagram().getDiagramEditorUtilClassName()); + dawnGMFGenerator.setDawnEditPartFactoryClassName(generalPrefix + + editorGenerator.getDiagram().getEditPartFactoryClassName()); + dawnGMFGenerator.setDawnEditPartProviderClassName(generalPrefix + + editorGenerator.getDiagram().getEditPartProviderClassName()); + dawnGMFGenerator.setDawnEditPolicyProviderClassName(generalPrefix + + editorGenerator.getDiagram().getEditPartProviderClassName().replace("EditPart", "EditPolicy")); + + dawnGMFGenerator.setGMFGenEditorGenerator(editorGenerator); + + dawnGenModelResource.getContents().add(dawnGMFGenerator); + + try + { + dawnGenModelResource.save(Collections.EMPTY_MAP); + } + catch (IOException e) + { + e.printStackTrace(); + } + + ProjectCreationHelper.refreshProject(null, monitor); + } + }); + } + catch (InvocationTargetException e) + { + e.printStackTrace(); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + } + + private String getDawnEditorClassName(GenEditorGenerator editorGenerator) + { + String dawnEditorClassName = editorGenerator.getEditor().getClassName(); + if (dawnEditorClassName == null || dawnEditorClassName.equals("")) + { + dawnEditorClassName = "Dawn" + editorGenerator.getDomainGenModel() + "DiagramEditor"; + } + dawnEditorClassName = generalPrefix + dawnEditorClassName; + return dawnEditorClassName; + } + + public void selectionChanged(IAction action, ISelection selection) + { + if (selection instanceof IStructuredSelection) + { + Object sel = ((IStructuredSelection)selection).getFirstElement(); + if (sel instanceof IResource) + { + selectedElement = (IResource)sel; + } + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/Creator.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/Creator.java new file mode 100644 index 0000000000..b8cd362343 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/Creator.java @@ -0,0 +1,21 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.creators; + +import org.eclipse.core.runtime.IProgressMonitor; + +/** + * @author Martin Fluegge + */ +public interface Creator +{ + public void create(IProgressMonitor monitor); +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/impl/GMFFragmentCreator.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/impl/GMFFragmentCreator.java new file mode 100644 index 0000000000..c481c5ccf2 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/creators/impl/GMFFragmentCreator.java @@ -0,0 +1,141 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.creators.impl; + +import org.eclipse.emf.cdo.dawn.codegen.actions.GenerateDawnGenModelAction; +import org.eclipse.emf.cdo.dawn.codegen.creators.Creator; +import org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawnGMFGenerator; +import org.eclipse.emf.cdo.dawn.codegen.util.ProjectCreationHelper; +import org.eclipse.emf.cdo.dawn.codegen.util.Utils; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.ecore.resource.impl.ResourceSetImpl; +import org.eclipse.emf.ecore.xmi.impl.XMIResourceFactoryImpl; +import org.eclipse.emf.mwe.core.WorkflowRunner; +import org.eclipse.emf.mwe.core.monitor.NullProgressMonitor; + +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.FileLocator; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.pde.internal.core.natures.PDE; + +import java.io.IOException; +import java.lang.reflect.InvocationTargetException; +import java.net.URL; +import java.util.HashMap; +import java.util.Map; + +/** + * @author Martin Fluegge + */ +public class GMFFragmentCreator implements Creator +{ + private final IResource selectedElement; + + public GMFFragmentCreator(IResource selectedElement) + { + this.selectedElement = selectedElement; + } + + public void create(IProgressMonitor monitor) + { + IFile dawnGenModelFile = (IFile)selectedElement; + + ResourceSet resourceSet = new ResourceSetImpl(); + resourceSet.getResourceFactoryRegistry().getExtensionToFactoryMap().put( + GenerateDawnGenModelAction.dawngenmodelFileExtension, new XMIResourceFactoryImpl()); + + Resource dawnGenModelResource = resourceSet.getResource(URI.createURI(dawnGenModelFile.getRawLocationURI() + .toString()), true); + + DawnGMFGenerator dawnGMFGenerator = (DawnGMFGenerator)dawnGenModelResource.getContents().get(0); + + monitor.subTask("Create client fragment's basic structure"); + + String[] natures = new String[] { JavaCore.NATURE_ID, PDE.PLUGIN_NATURE }; + ProjectCreationHelper projectCreationHelper = new ProjectCreationHelper(); + projectCreationHelper.setName(dawnGMFGenerator.getFragmentName()); + projectCreationHelper.setNatures(natures); + IProject project; + try + { + project = projectCreationHelper.createProject(); + projectCreationHelper.createJavaProject(project); + + monitor.worked(100); + + monitor.subTask("Creating folder structure..."); + projectCreationHelper.createFolder("lib", project); + projectCreationHelper.createFolder("META-INF", project); + projectCreationHelper.createFolder("icons", project); + + monitor.worked(100); + + monitor.subTask("Creating generic content..."); + createGenericContent(monitor, project.getLocation()); + ProjectCreationHelper.refreshProject(project, monitor); + } + catch (CoreException e1) + { + e1.printStackTrace(); + } + catch (InvocationTargetException e) + { + e.printStackTrace(); + } + catch (InterruptedException e) + { + e.printStackTrace(); + } + + monitor.worked(100); + + } + + private void createGenericContent(IProgressMonitor monitor, IPath location) + { + IFile file = (IFile)selectedElement; + Map<String, String> properties = new HashMap<String, String>(); + + Map<String, ?> slotMap = new HashMap<String, Object>(); + try + { + String dawnGenFile = file.getRawLocationURI().toString();// ;file.getLocation().toFile().getAbsoluteFile().toURI().toURL().toString(); + + IFile dawnGen = (IFile)selectedElement; + IProject hostProject = dawnGen.getProject(); + + Utils.setPackage(hostProject.getName()); + + String ouputFolder = location.toFile().getAbsoluteFile().toString();// + "/" + hostProject.getName()+".diagram"; + + properties.put("model", dawnGenFile); + properties.put("src-gen", ouputFolder); + + URL workFlowURL = this.getClass().getClassLoader().getResource("/workflow/gmfFragmentGenerator.oaw"); + WorkflowRunner workflowRunner = new WorkflowRunner(); + String workflow = FileLocator.toFileURL(workFlowURL).getFile(); + + workflowRunner.run(workflow, new NullProgressMonitor(), properties, slotMap); + } + catch (IOException e) + { + e.printStackTrace(); + } + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/ProjectCreationHelper.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/ProjectCreationHelper.java new file mode 100644 index 0000000000..23c590da65 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/ProjectCreationHelper.java @@ -0,0 +1,499 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.util; + +import org.eclipse.core.internal.resources.ResourceException; +import org.eclipse.core.resources.IFile; +import org.eclipse.core.resources.IFolder; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.resources.IProjectDescription; +import org.eclipse.core.resources.IResource; +import org.eclipse.core.resources.IWorkspaceRoot; +import org.eclipse.core.resources.ResourcesPlugin; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.NullProgressMonitor; +import org.eclipse.core.runtime.Path; +import org.eclipse.jdt.core.IClasspathEntry; +import org.eclipse.jdt.core.IJavaProject; +import org.eclipse.jdt.core.JavaCore; +import org.eclipse.jdt.core.JavaModelException; +import org.eclipse.jdt.launching.JavaRuntime; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import java.io.ByteArrayInputStream; +import java.io.InputStream; +import java.lang.reflect.InvocationTargetException; +import java.util.ArrayList; +import java.util.List; + +/** + * @author Martin Fluegge + */ +public class ProjectCreationHelper +{ + + private String name; + + private String[] natures; + + public String getName() + { + return name; + } + + public IProject getProject() + { + return ResourcesPlugin.getWorkspace().getRoot().getProject(name); + } + + public IProject createProject() throws CoreException + { + IProject project = ResourcesPlugin.getWorkspace().getRoot().getProject(name); + List<IClasspathEntry> classpathEntries = new ArrayList<IClasspathEntry>(); + + // if (project.exists()) + // { + // try + // { + // project.delete(true, null); + // } + // catch (Exception e) + // { + // System.out.println("Project could not be deleted!!!"); + // } + // } + if (!project.exists()) + { + project.create(null); + } + + if (!project.isOpen()) + { + project.open(null); + } + + IProjectDescription description = project.getDescription(); + description.setNatureIds(natures); + project.setDescription(description, null); + + return project; + } + + /** + * @param path + * @param javaProject + * @throws JavaModelException + */ + public static void addJarToBuildPath(String path, IJavaProject javaProject) throws JavaModelException + { + IClasspathEntry newLibraryEntry = JavaCore.newLibraryEntry(new Path(path), null, null); + ProjectCreationHelper.addToClasspath(javaProject, newLibraryEntry); + } + + public static void addJarToBuildPath(IPath path, IJavaProject javaProject) throws JavaModelException + { + IClasspathEntry newLibraryEntry = JavaCore.newLibraryEntry(path, null, null); + ProjectCreationHelper.addToClasspath(javaProject, newLibraryEntry); + } + + public static void addVariableEntryToBuildPath(IPath path, IJavaProject javaProject) throws JavaModelException + { + IClasspathEntry newLibraryEntry = JavaCore.newVariableEntry(path, null, null); + ProjectCreationHelper.addToClasspath(javaProject, newLibraryEntry); + } + + /** + * adds all jar files in this folder to the build path. Searches only on level 1 + * + * @param folder + * the folder which contains the jar files + * @param javaProject + * @throws CoreException + */ + public static void addAllJarsToBuildPath(IFolder folder, IJavaProject javaProject) throws CoreException + { + try + { + folder.refreshLocal(100, new NullProgressMonitor()); + for (IResource resource : folder.members()) + { + + if (resource instanceof IFile && resource.getRawLocation().toString().endsWith(".jar")) + { + addJarToBuildPath(resource.getRawLocation(), javaProject); + } + } + } + catch (Exception e) + { + e.printStackTrace(); + } + } + + /** + * @param javaProject + * @param newEntry + * @throws JavaModelException + */ + public final static void addToClasspath(IJavaProject javaProject, IClasspathEntry newEntry) throws JavaModelException + { + if (newEntry == null) + { + return; + } + IClasspathEntry[] oldEntries = javaProject.getRawClasspath(); + IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1]; + System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length); + + newEntries[oldEntries.length] = newEntry; + javaProject.setRawClasspath(newEntries, null); + } + + /** + * @param javaProject + * @param toBeRemoved + * @throws JavaModelException + */ + private final static void removeFromClasspath(IJavaProject javaProject, IPath toBeRemoved) throws JavaModelException + { + IClasspathEntry[] oldEntries = javaProject.getRawClasspath(); + ArrayList<IClasspathEntry> newEntries = new ArrayList<IClasspathEntry>(); + + for (IClasspathEntry classpathEntry : oldEntries) + { + if (!classpathEntry.getPath().equals(toBeRemoved)) + { + newEntries.add(classpathEntry); + } + } + // IClasspathEntry[] newEntries = new IClasspathEntry[oldEntries.length + 1]; + // System.arraycopy(oldEntries, 0, newEntries, 0, oldEntries.length); + + // newEntries[oldEntries.length] = newEntry; + IClasspathEntry[] newEntriesArray = new IClasspathEntry[newEntries.size()]; + javaProject.setRawClasspath(newEntries.toArray(newEntriesArray), null); + } + + /** + * @return + * @throws CoreException + */ + public IJavaProject createJavaProject() throws CoreException + { + IProject project = createProject(); + return createJavaProject(project); + } + + /** + * @param project + * @return + */ + public IJavaProject createJavaProject(IProject project) + { + try + { + // addJavaNature(project); + IJavaProject javaProject = JavaCore.create(project); + if (!javaProject.isOpen()) + { + javaProject.open(null); + } + createBinFolder(project, javaProject); + clearSourcePath(javaProject); + + IClasspathEntry sourceFolder = createSourceFolder("src", project); + + addToClasspath(javaProject, sourceFolder); + addJREContainerToProject(javaProject); + return javaProject; + } + catch (CoreException e) + { + e.printStackTrace(); + } + return null; + + } + + /** + * create a sysdeo Plugin Project + * + * @param project + * @return + */ + public IJavaProject createSysdeoTomcatProject(IProject project) + { + try + { + IJavaProject javaProject = JavaCore.create(project); + createOutputFolder("WEB-INF/classes", project, javaProject); + + /* + * quickfix because I could not figure out how the exclude "source" folder from root + */ + clearSourcePath(javaProject); + + addTomcatLibraries(javaProject); + addSourceFolder(project, javaProject); + addJREContainerToProject(javaProject); + + return javaProject; + } + catch (CoreException e) + { + + e.printStackTrace(); + } + return null; + + } + + /** + * @param project + * @param javaProject + * @throws CoreException + * @throws JavaModelException + */ + private void addSourceFolder(IProject project, IJavaProject javaProject) throws CoreException, JavaModelException + { + IClasspathEntry sourceFolder = createSourceFolder("WEB-INF/src", project); + addToClasspath(javaProject, sourceFolder); + } + + /** + * @param javaProject + * @throws JavaModelException + */ + private void addJREContainerToProject(IJavaProject javaProject) throws JavaModelException + { + addToClasspath(javaProject, JavaRuntime.getDefaultJREContainerEntry()); + } + + /** + * this adds the Tomcat project typical Variable entries to the project + * + * @param javaProject + * @throws JavaModelException + */ + private void addTomcatLibraries(IJavaProject javaProject) throws JavaModelException + { + addVariableEntryToBuildPath(new Path("TOMCAT_HOME/lib/annotations-api.jar"), javaProject); + addVariableEntryToBuildPath(new Path("TOMCAT_HOME/lib/el-api.jar"), javaProject); + addVariableEntryToBuildPath(new Path("TOMCAT_HOME/lib/jasper.jar"), javaProject); + addVariableEntryToBuildPath(new Path("TOMCAT_HOME/lib/jsp-api.jar"), javaProject); + addVariableEntryToBuildPath(new Path("TOMCAT_HOME/lib/servlet-api.jar"), javaProject); + } + + /** + * @param javaProject + * @throws JavaModelException + */ + private void clearSourcePath(IJavaProject javaProject) throws JavaModelException + { + javaProject.setRawClasspath(new IClasspathEntry[] {}, new NullProgressMonitor()); // clean classpath, means remove + // Project root from classpath + } + + /** + * @param project + * @throws CoreException + */ + private void addJavaNature(IProject project) throws CoreException + { + IProjectDescription description = project.getDescription(); + String[] natures = description.getNatureIds(); + String[] newNatures = new String[natures.length + 1]; + System.arraycopy(natures, 0, newNatures, 0, natures.length); + newNatures[natures.length] = JavaCore.NATURE_ID; + description.setNatureIds(newNatures); + project.setDescription(description, new NullProgressMonitor()); + } + + /** + * @param path + * @param project + * @return + * @throws CoreException + */ + private IClasspathEntry createSourceFolder(String path, IProject project) throws CoreException + { + IFolder srcFolder = project.getFolder(new Path(path)); + if (!srcFolder.exists()) + { + srcFolder.create(false, true, null); + IPath sourceFolderPath = srcFolder.getFullPath(); + IClasspathEntry entry = JavaCore.newSourceEntry(sourceFolderPath); + + return entry; + } + return null; + } + + /** + * @param path + * @param project + * @param javaProject + * @return + * @throws CoreException + */ + public IFolder createSourceFolder(String path, IProject project, IJavaProject javaProject) throws CoreException + { + IFolder srcFolder = project.getFolder(new Path(path)); + if (!srcFolder.exists()) + { + srcFolder.create(false, true, null); + IPath sourceFolderPath = srcFolder.getFullPath(); + IClasspathEntry entry = JavaCore.newSourceEntry(sourceFolderPath); + addToClasspath(javaProject, entry); + return srcFolder; + } + return null; + } + + /** + * @param project + * @param javaProject + * @throws CoreException + * @throws JavaModelException + */ + private void createBinFolder(IProject project, IJavaProject javaProject) throws CoreException, JavaModelException + { + createOutputFolder("bin", project, javaProject); + } + + /** + * @param project + * @param javaProject + * @throws CoreException + * @throws JavaModelException + */ + private void createOutputFolder(String path, IProject project, IJavaProject javaProject) throws CoreException, + JavaModelException + { + try + { + IFolder binFolder = project.getFolder(new Path(path)); + if (!binFolder.exists()) + { + binFolder.create(true, true, null); + javaProject.setOutputLocation(binFolder.getFullPath(), null); + } + } + catch (ResourceException e) + { + e.printStackTrace(); + } + } + + /** + * @param name + * @param project + * @return + */ + public IFolder createFolder(String name, IProject project) + { + IFolder folder = project.getFolder(name); + + if (!folder.exists()) + { + try + { + folder.create(IResource.NONE, true, null); + } + catch (CoreException e) + { + e.printStackTrace(); + } + } + return folder; + } + + public IFolder getFolder(String name, IProject project) + { + IFolder folder = project.getFolder(name); + + return folder; + } + + /** + * @param name + * @param folder + * @param content + * @return + */ + public IFile createFile(String name, IFolder folder, String content) + { + IFile file = folder.getFile("web.xml"); + + try + { + + if (!file.exists()) + { + byte[] bytes = content.getBytes(); + InputStream source = new ByteArrayInputStream(bytes); + file.create(source, IResource.NONE, null); + + } + } + catch (CoreException e) + { + e.printStackTrace(); + } + return file; + } + + public void setName(String name) + { + this.name = name; + } + + public String[] getNatures() + { + return natures; + } + + public void setNatures(String[] natures) + { + this.natures = natures; + } + + public ProjectCreationHelper() + { + } + + public static void refreshProject(IResource resource, IProgressMonitor monitor) throws InvocationTargetException, + InterruptedException + { + IRunnableWithProgress op = new WorkspaceModifyOperation(null) + { + @Override + protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException + { + try + { + IWorkspaceRoot root = ResourcesPlugin.getWorkspace().getRoot(); + root.refreshLocal(IResource.DEPTH_INFINITE, monitor); + + } + catch (CoreException e) + { + + e.printStackTrace(); + } + } + }; + op.run(monitor); + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/Utils.java b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/Utils.java new file mode 100644 index 0000000000..5da2a13e89 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/Utils.java @@ -0,0 +1,103 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +package org.eclipse.emf.cdo.dawn.codegen.util; + +import org.eclipse.swt.widgets.Canvas; + +/** + * @author Martin Fluegge + */ +public class Utils +{ + public static String packagePath = ""; + + public static String packageName = ""; + + public static String diagramPluginID = ""; + + public static String diagramPackage = ""; + + public static String timestamp() + { + return String.valueOf(System.currentTimeMillis()); + } + + public static String getPackagePath() + { + return packagePath; + } + + public static String getPackageName() + { + return packageName; + } + + public static String getDiagramPluginID() + { + return diagramPluginID; + } + + public static String setGlobals(Canvas e) + { + // packageName=e.getName(); + // packagePath=e.getName().replace(".", "/"); + return ""; + } + + public static String setPackage(String pName) + { + diagramPluginID = pName + ".diagram"; + packageName = pName.replace("class", "clazz"); + packagePath = pName.replace(".", "/"); + return ""; + } + + public static String setDiagramPackage(String pName) + { + diagramPackage = pName; + return ""; + } + + public static String getDiagramPackage() + { + return diagramPackage; + } + + public static String getRootPackage() + { + String ret = diagramPackage.replace(".diagram", ""); + return ret; + } + + public static String getDiagramPackagePath() + { + return diagramPackage.replace(".", "/"); + } + + public static String getUniqueIdentifierName(String uniqueIdentifier) + { + String ret = uniqueIdentifier.substring(uniqueIdentifier.lastIndexOf(".") + 1, uniqueIdentifier.length()); + return ret; + } + + public static String toModelName(String uniqueIdentifier) + { + String ret = uniqueIdentifier.substring(uniqueIdentifier.lastIndexOf(".") + 1, uniqueIdentifier.length()); + ret = ret.substring(0, ret.lastIndexOf("_")); + return ret; + } + + public static String toModelNameFromGetterName(String uniqueIdentifier) + { + String ret = uniqueIdentifier.replace("getFigure", ""); + return ret; + } +} diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/util.ext b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/util.ext new file mode 100644 index 0000000000..756e770819 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/org/eclipse/emf/cdo/dawn/codegen/util/util.ext @@ -0,0 +1,52 @@ +/** + * Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Martin Fluegge - initial API and implementation + */ +import gmfgraph; +import gmfgen; +import emf; +import genmodel; +import ecore; + +String timestamp() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.timestamp(); + + String setGlobals( Canvas e ) : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.setGlobals(org.eclipse.gmf.gmfgraph.Canvas); + + String getPackagePath() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getPackagePath(); + + String getPackageName() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getPackageName(); + + String getDiagramPluginID() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getDiagramPluginID(); + + String setDiagramPackage(String s) : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.setDiagramPackage(java.lang.String); + + String getDiagramPackage() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getDiagramPackage(); + + String getDiagramPackagePath() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getDiagramPackagePath(); + + String getRootPackage() : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getRootPackage(); + + String getUniqueIdentifierName(String s ) : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.getUniqueIdentifierName(java.lang.String); + + String toModelName(String s ) : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.toModelName(java.lang.String); + + String toModelNameFromGetterName(String s ) : + JAVA org.eclipse.emf.cdo.dawn.codegen.util.Utils.toModelNameFromGetterName(java.lang.String); +
\ No newline at end of file diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt new file mode 100644 index 0000000000..660425ab15 --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GMFFragmentTemplate.xpt @@ -0,0 +1,1005 @@ +«REM» + Copyright (c) 2010 Martin Fluegge (Berlin, Germany). + 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: + Martin Fluegge - initial API and implementation + +«ENDREM» + +«IMPORT gmfgen» +«IMPORT gmfgraph» +«IMPORT emf» +«IMPORT genmodel» +«IMPORT ecore» +«IMPORT dawngenmodel» + +«EXTENSION org::eclipse::emf::cdo::dawn::codegen::util::util» + +«DEFINE main FOR DawnGMFGenerator» + «setDiagramPackage(this.GMFGenEditorGenerator.packageNamePrefix)» + + «EXPAND dawnEditor FOR this» + «EXPAND dawnEditPart FOR this» + «EXPAND dawnEditPartFactory FOR this» + «EXPAND dawnCanonicalEditingPolicy FOR this» + «EXPAND dawnCreationWizard FOR this» + «EXPAND dawnEditorUtil FOR this» + «EXPAND dawnDocumentProvider FOR this» + «EXPAND dawnEditPartProvider FOR this» + «EXPAND fragmentXML FOR this» + «EXPAND dawnEditPolicyProvider FOR this» + «EXPAND manifestMF FOR this.GMFGenEditorGenerator» + «EXPAND buildPROPERTIES FOR this.GMFGenEditorGenerator» + «EXPAND classpath FOR this.GMFGenEditorGenerator» + +«ENDDEFINE» + +«REM»############################################ Extended Editor ##################################################################«ENDREM» +«DEFINE dawnEditor FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/part/"+this.dawnEditorClassName+".java"» + +package «this.GMFGenEditorGenerator.editor.packageName»; + +import «this.GMFGenEditorGenerator.diagram.domainDiagramElement.genPackage.basePackage».«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.ePackage.name».«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.name»; +import org.eclipse.emf.cdo.dawn.runtime.diagram.part.IDawnDiagramEditor; +import org.eclipse.emf.cdo.dawn.runtime.notifications.DawnNotificationUtil; +import org.eclipse.emf.cdo.dawn.ui.DawnEditorInput; +import org.eclipse.emf.cdo.transaction.CDOTransaction; +import org.eclipse.emf.cdo.ui.CDOEditorInput; +import org.eclipse.emf.cdo.view.CDOView; + +import org.eclipse.net4j.util.transaction.TransactionException; + +import org.eclipse.emf.common.ui.URIEditorInput; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.AbstractDocumentProvider; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.swt.widgets.Display; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.IFileEditorInput; + +«EXPAND generatedComment -» +public class «this.dawnEditorClassName» extends «GMFGenEditorGenerator.editor.className» implements IDawnDiagramEditor +{ + + private CDOTransaction transaction; + + private boolean dirty; + + public static String ID = "«this.GMFGenEditorGenerator.editor.packageName».«this.dawnEditorClassName» "; + + + «EXPAND generatedComment -» + public «this.dawnEditorClassName» () + { + super(); + setDocumentProvider(new «this.dawnDocumentProviderClassName»()); + } + + «EXPAND generatedComment -» + @Override + public void setInput(IEditorInput input) + { + try + { + doSetInput(input, true); + } + catch (CoreException x) + { + x.printStackTrace(System.err); + String title = x.getMessage(); + String msg = x.getMessage(); + Shell shell = getSite().getShell(); + ErrorDialog.openError(shell, title, msg, x.getStatus()); + } + transaction = (CDOTransaction)((DawnEditorInput)input).getView(); + + DawnNotificationUtil.registerResourceListeners(getEditingDomain().getResourceSet(), this); + DawnNotificationUtil.registerTransactionListeners(transaction, this); + DawnNotificationUtil.setChangeSubscriptionPolicy(transaction); + } + + «EXPAND generatedComment -» + @Override + protected void initializeGraphicalViewer() + { + super.initializeGraphicalViewer(); + } + + «EXPAND generatedComment -» + @Override + public void doSave(IProgressMonitor monitor) + { + try + { + dirty = false; + updateState(getEditorInput()); + validateState(getEditorInput()); + performSave(false, monitor); + } + catch (TransactionException e) + { + if (e.getMessage().contains("conflict")) + { + MessageDialog.openError(Display.getDefault().getActiveShell(), "conflict", + "Your Resource is in conflict and cannot be committed"); + } + else + { + throw e; + } + } + } + + «EXPAND generatedComment -» + @Override + public boolean isDirty() + { + return dirty; + } + + «EXPAND generatedComment -» + public String getContributorID() + { + return null; + } + + «EXPAND generatedComment -» + @Override + protected void setDocumentProvider(IEditorInput input) + { + if (input instanceof IFileEditorInput || input instanceof URIEditorInput || input instanceof CDOEditorInput) + { + setDocumentProvider(getDocumentProvider()); + } + else + { + super.setDocumentProvider(input); + } + } + + «EXPAND generatedComment -» + @Override + public void dispose() + { + try + { + super.dispose(); + } + finally + { + if (transaction != null && !transaction.isClosed()) + { + transaction.close(); + } + } + } + + «EXPAND generatedComment -» + public CDOView getView() + { + return transaction; + } + + «EXPAND generatedComment -» + public void setDirty() + { + dirty = true; + ((AbstractDocumentProvider)getDocumentProvider()).changed(getEditorInput()); + } +} + +«ENDFILE» +«ENDDEFINE» + + +«REM»############################################ DawnXXXEditPart ##################################################################«ENDREM» +«DEFINE dawnEditPart FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/edit/parts/"+this.dawnDiagramEditPartClassName+".java"» +package «this.GMFGenEditorGenerator.diagram.editPartsPackageName»; + +import org.eclipse.emf.cdo.dawn.runtime.synchronize.DawnConflictHelper; + +import org.eclipse.emf.ecore.EObject; + +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.notation.View; + +«EXPAND generatedComment -» +public class «this.dawnDiagramEditPartClassName» extends «this.GMFGenEditorGenerator.diagram.editPartClassName» +{ + + «EXPAND generatedComment -» + public «this.dawnDiagramEditPartClassName»(View view) + { + super(view); + } + + «EXPAND generatedComment -» + @Override + protected void removeChild(EditPart child) + { + if (DawnConflictHelper.isConflicted((EObject)child.getModel())) + { + return; + } + super.removeChild(child); + } +} +«ENDFILE» +«ENDDEFINE» + + +«REM»############################################ DawnXXXEditPartFactory ##################################################################«ENDREM» +«DEFINE dawnEditPartFactory FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/edit/parts/"+this.dawnEditPartFactoryClassName+".java"» +package «this.GMFGenEditorGenerator.diagram.editPartsPackageName»; + + +import «this.GMFGenEditorGenerator.editor.packageName».«this.GMFGenEditorGenerator.diagram.visualIDRegistryClassName»; + +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.notation.View; + +«EXPAND generatedComment -» +public class «this.dawnEditPartFactoryClassName» extends «this.GMFGenEditorGenerator.diagram.editPartFactoryClassName» +{ + «EXPAND generatedComment -» + public «this.dawnEditPartFactoryClassName»() + { + super(); + } + + «EXPAND generatedComment -» + @Override + public EditPart createEditPart(EditPart context, Object model) + { + if (model instanceof View) + { + View view = (View)model; + switch («this.GMFGenEditorGenerator.diagram.visualIDRegistryClassName».getVisualID(view)) + { + case «this.dawnDiagramEditPartClassName».VISUAL_ID: + return new «this.dawnDiagramEditPartClassName»(view); + } + } + + return super.createEditPart(context, model); + } +} + +«ENDFILE» +«ENDDEFINE» + + +«REM»############################################ DawnXXXCanonicalEditingPolicy ##################################################################«ENDREM» +«DEFINE dawnCanonicalEditingPolicy FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/edit/policies/"+this.dawnCanonicalEditingPolicyClassName+".java"» +package «this.GMFGenEditorGenerator.diagram.editPoliciesPackageName»; + +«EXPAND generatedComment -» +public class «this.dawnCanonicalEditingPolicyClassName» extends «this.GMFGenEditorGenerator.diagram.canonicalEditPolicyClassName» +{ + «EXPAND generatedComment -» + public «this.dawnCanonicalEditingPolicyClassName»() + { + super(); + } +} +«ENDFILE» +«ENDDEFINE» + +«REM»############################################ DawnXXXCreationWizard ##################################################################«ENDREM» +«DEFINE dawnCreationWizard FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/part/"+this.dawnCreationWizardClassName+".java"» +package «this.GMFGenEditorGenerator.editor.packageName»; + +import org.eclipse.emf.cdo.dawn.runtime.preferences.PreferenceConstants; +import org.eclipse.emf.cdo.dawn.ui.wizards.DawnCreateNewDiagramResourceWizardPage; +import org.eclipse.emf.cdo.dawn.ui.wizards.DawnCreateNewResourceWizardPage; +import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.view.CDOView; + +import org.eclipse.emf.common.util.URI; + +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.jface.dialogs.ErrorDialog; +import org.eclipse.jface.operation.IRunnableWithProgress; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.actions.WorkspaceModifyOperation; + +import java.lang.reflect.InvocationTargetException; + +«EXPAND generatedComment -» +public class «this.dawnCreationWizardClassName» extends «this.GMFGenEditorGenerator.diagram.creationWizardClassName» +{ + private CDOView view; + + private DawnCreateNewDiagramResourceWizardPage dawnDiagramModelFilePage; + + private DawnCreateNewResourceWizardPage dawnDomainModelFilePage; + + «EXPAND generatedComment -» + public «this.dawnCreationWizardClassName»() + { + super(); + CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(), + PreferenceConstants.getServerName()); + CDOSession session = CDOConnectionUtil.instance.openSession(); + view = CDOConnectionUtil.instance.openView(session); + } + + «EXPAND generatedComment -» + @Override + public boolean performFinish() + { + IRunnableWithProgress op = new WorkspaceModifyOperation(null) + { + @Override + protected void execute(IProgressMonitor monitor) throws CoreException, InterruptedException + { + URI diagramResourceURI = dawnDiagramModelFilePage.getURI(); + URI domainModelResourceURI = dawnDomainModelFilePage.getURI(); + + diagram = «this.dawnEditorUtilClassName».createDiagram(diagramResourceURI, domainModelResourceURI, monitor); + + if (isOpenNewlyCreatedDiagramEditor() && diagram != null) + { + try + { + «this.dawnEditorUtilClassName».openDiagram(diagram); + } + catch (PartInitException e) + { + ErrorDialog.openError(getContainer().getShell(), Messages.ClassdiagramCreationWizardOpenEditorError, null, + e.getStatus()); + } + } + } + }; + try + { + getContainer().run(false, true, op); + } + catch (InterruptedException e) + { + return false; + } + catch (InvocationTargetException e) + { + if (e.getTargetException() instanceof CoreException) + { + ErrorDialog.openError(getContainer().getShell(), "Error while creating diagram", null, + ((CoreException)e.getTargetException()).getStatus()); + } + else + { + «this.GMFGenEditorGenerator.plugin.activatorClassName».getInstance().logError("Error creating diagram", e.getTargetException()); //$NON-NLS-1$ + } + return false; + } + return diagram != null; + } + + «EXPAND generatedComment -» + @Override + public void addPages() + { + + dawnDiagramModelFilePage = new DawnCreateNewDiagramResourceWizardPage("«this.GMFGenEditorGenerator.diagramFileExtension»", false, view); + dawnDiagramModelFilePage.setTitle(Messages.«this.GMFGenEditorGenerator.diagram.creationWizardClassName»_DiagramModelFilePageTitle); + dawnDiagramModelFilePage.setDescription(Messages.«this.GMFGenEditorGenerator.diagram.creationWizardClassName»_DiagramModelFilePageDescription); + dawnDiagramModelFilePage.setCreateAutomaticResourceName(true); + addPage(dawnDiagramModelFilePage); + + dawnDomainModelFilePage = new DawnCreateNewResourceWizardPage("", true, view) + { + @Override + public void setVisible(boolean visible) + { + if (visible) + { + URI uri = dawnDiagramModelFilePage.getURI(); + String fileName = uri.lastSegment(); + fileName = fileName.substring(0, fileName.length() - ".«this.GMFGenEditorGenerator.diagramFileExtension»".length()); //$NON-NLS-1$ + fileName += ".«this.GMFGenEditorGenerator.domainFileExtension»"; + dawnDomainModelFilePage.setResourceNamePrefix(fileName); + dawnDomainModelFilePage.setResourcePath(dawnDiagramModelFilePage.getResourcePath()); + } + super.setVisible(visible); + } + }; + dawnDomainModelFilePage.setTitle(Messages.«this.GMFGenEditorGenerator.diagram.creationWizardClassName»_DomainModelFilePageTitle); + dawnDomainModelFilePage.setDescription(Messages.«this.GMFGenEditorGenerator.diagram.creationWizardClassName»_DomainModelFilePageDescription); + + dawnDomainModelFilePage.setResourceValidationType(DawnCreateNewResourceWizardPage.VALIDATION_WARN); + addPage(dawnDomainModelFilePage); + } + + «EXPAND generatedComment -» + @Override + public void dispose() + { + view.close(); + } +} +«ENDFILE» +«ENDDEFINE» + +«REM»############################################ DawnXXXEditorUtil ##################################################################«ENDREM» +«DEFINE dawnEditorUtil FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/part/"+this.dawnEditorUtilClassName+".java"» +package «this.GMFGenEditorGenerator.editor.packageName»; + +import «this.GMFGenEditorGenerator.diagram.domainDiagramElement.genPackage.basePackage».«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.ePackage.name».«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.name»; +import «this.GMFGenEditorGenerator.diagram.domainDiagramElement.genPackage.basePackage».«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.ePackage.name».«this.GMFGenEditorGenerator.domainGenModel.modelName»Factory; + +import «this.GMFGenEditorGenerator.diagram.editPartsPackageName».«this.dawnDiagramEditPartClassName»; +import org.eclipse.emf.cdo.dawn.runtime.commands.CreateSemanticResourceRecordingCommand; +import org.eclipse.emf.cdo.dawn.runtime.preferences.PreferenceConstants; +import org.eclipse.emf.cdo.dawn.runtime.transaction.DawnGMFEditingDomainFactory; +import org.eclipse.emf.cdo.dawn.ui.DawnEditorInput; +import org.eclipse.emf.cdo.dawn.util.connection.CDOConnectionUtil; +import org.eclipse.emf.cdo.session.CDOSession; +import org.eclipse.emf.cdo.transaction.CDOTransaction; + +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.transaction.TransactionalEditingDomain; +import org.eclipse.emf.workspace.util.WorkspaceSynchronizer; + +import org.eclipse.core.commands.ExecutionException; +import org.eclipse.core.commands.operations.OperationHistoryFactory; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IProgressMonitor; +import org.eclipse.core.runtime.SubProgressMonitor; +import org.eclipse.gmf.runtime.common.core.command.CommandResult; +import org.eclipse.gmf.runtime.diagram.core.services.ViewService; +import org.eclipse.gmf.runtime.emf.commands.core.command.AbstractTransactionalCommand; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.jface.dialogs.IDialogSettings; +import org.eclipse.jface.wizard.Wizard; +import org.eclipse.jface.wizard.WizardDialog; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.ui.IWorkbenchPage; +import org.eclipse.ui.PartInitException; +import org.eclipse.ui.PlatformUI; + +import java.io.IOException; +import java.util.Collections; + +«EXPAND generatedComment -» +public class «this.dawnEditorUtilClassName» extends «this.GMFGenEditorGenerator.diagram.diagramEditorUtilClassName» +{ + + «EXPAND generatedComment -» + public static boolean openDiagram(Resource diagram) throws PartInitException + { + IWorkbenchPage page = PlatformUI.getWorkbench().getActiveWorkbenchWindow().getActivePage(); + return null != page.openEditor(new DawnEditorInput(diagram.getURI()), «this.dawnEditorClassName».ID); + } + + «EXPAND generatedComment -» + public static void runWizard(Shell shell, Wizard wizard, String settingsKey) + { + IDialogSettings pluginDialogSettings = «this.GMFGenEditorGenerator.plugin.activatorClassName».getInstance().getDialogSettings(); + IDialogSettings wizardDialogSettings = pluginDialogSettings.getSection(settingsKey); + if (wizardDialogSettings == null) + { + wizardDialogSettings = pluginDialogSettings.addNewSection(settingsKey); + } + wizard.setDialogSettings(wizardDialogSettings); + WizardDialog dialog = new WizardDialog(shell, wizard); + dialog.create(); + dialog.getShell().setSize(Math.max(500, dialog.getShell().getSize().x), 500); + dialog.open(); + } + + «EXPAND generatedComment -» + public static Resource createDiagram(URI diagramURI, URI modelURI, IProgressMonitor progressMonitor) + { + TransactionalEditingDomain editingDomain = DawnGMFEditingDomainFactory.getInstance().createEditingDomain(); + + progressMonitor.beginTask(Messages.«this.GMFGenEditorGenerator.diagram.diagramEditorUtilClassName»_CreateDiagramProgressTask, 3); + + CDOConnectionUtil.instance.init(PreferenceConstants.getRepositoryName(), PreferenceConstants.getProtocol(), + PreferenceConstants.getServerName()); + CDOConnectionUtil.instance.openSession(); + ResourceSet resourceSet = editingDomain.getResourceSet(); + + CDOTransaction transaction = CDOConnectionUtil.instance.openCurrentTransaction(resourceSet, diagramURI.toString()); + + final Resource diagramResource = resourceSet.createResource(diagramURI); + + + CreateSemanticResourceRecordingCommand createSemanticResourceCommand = new CreateSemanticResourceRecordingCommand( + editingDomain, transaction, modelURI.toString()); + + editingDomain.getCommandStack().execute(createSemanticResourceCommand); + final Resource modelResource = createSemanticResourceCommand.getResource(); + + final String diagramName = diagramURI.lastSegment(); + AbstractTransactionalCommand command = new AbstractTransactionalCommand(editingDomain, + Messages.«this.GMFGenEditorGenerator.diagram.diagramEditorUtilClassName»_CreateDiagramCommandLabel, Collections.EMPTY_LIST) + { + @Override + protected CommandResult doExecuteWithResult(IProgressMonitor monitor, IAdaptable info) throws ExecutionException + { + EObject model = null; + if (modelResource.getContents().size() > 0) + { + model = modelResource.getContents().get(0); + } + else + { + model = createInitialModel(); + attachModelToResource(model, modelResource); + } + + Diagram diagram = ViewService.createDiagram(model, «this.dawnDiagramEditPartClassName».MODEL_ID, + «this.GMFGenEditorGenerator.plugin.activatorClassName».DIAGRAM_PREFERENCES_HINT); + if (diagram != null) + { + diagramResource.getContents().add(diagram); + diagram.setName(diagramName); + diagram.setElement(model); + } + + try + { + modelResource.save(Collections.EMPTY_MAP); + diagramResource.save(Collections.EMPTY_MAP); + } + catch (IOException e) + { + «this.GMFGenEditorGenerator.plugin.activatorClassName».getInstance().logError("Unable to store model and diagram resources", e); //$NON-NLS-1$ + } + + return CommandResult.newOKCommandResult(); + } + }; + try + { + OperationHistoryFactory.getOperationHistory().execute(command, new SubProgressMonitor(progressMonitor, 1), null); + } + catch (ExecutionException e) + { + «this.GMFGenEditorGenerator.plugin.activatorClassName».getInstance().logError("Unable to create model and diagram", e); //$NON-NLS-1$ + } + setCharset(WorkspaceSynchronizer.getFile(modelResource)); + setCharset(WorkspaceSynchronizer.getFile(diagramResource)); + return diagramResource; + } + + «EXPAND generatedComment -» + private static EObject createInitialModel() + { + return «this.GMFGenEditorGenerator.domainGenModel.modelName»Factory.eINSTANCE.create«this.GMFGenEditorGenerator.diagram.domainDiagramElement.ecoreClass.name»(); + } + + «EXPAND generatedComment -» + private static void attachModelToResource(EObject model, Resource resource) + { + resource.getContents().add(model); + } +} + + +«ENDFILE» +«ENDDEFINE» + +«REM»############################################ DawnXXXDocumentProvider ##################################################################«ENDREM» +«DEFINE dawnDocumentProvider FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/part/"+this.dawnDocumentProviderClassName+".java"» +package «this.GMFGenEditorGenerator.editor.packageName»; + +import org.eclipse.emf.cdo.dawn.runtime.transaction.DawnDiagramEditingDomainFactory; +import org.eclipse.emf.cdo.dawn.ui.DawnEditorInput; +import org.eclipse.emf.cdo.dawn.util.DawnDiagramUpdater; +import org.eclipse.emf.cdo.eresource.CDOResource; + +import org.eclipse.emf.common.notify.Adapter; +import org.eclipse.emf.common.notify.Notification; +import org.eclipse.emf.common.notify.Notifier; +import org.eclipse.emf.common.ui.URIEditorInput; +import org.eclipse.emf.common.util.URI; +import org.eclipse.emf.ecore.EObject; +import org.eclipse.emf.ecore.resource.Resource; +import org.eclipse.emf.ecore.resource.ResourceSet; +import org.eclipse.emf.transaction.NotificationFilter; +import org.eclipse.emf.transaction.TransactionalEditingDomain; + +import org.eclipse.core.resources.IStorage; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IStatus; +import org.eclipse.core.runtime.Status; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.DiagramDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDiagramDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.document.IDocument; +import org.eclipse.gmf.runtime.diagram.ui.resources.editor.internal.util.DiagramIOUtil; +import org.eclipse.gmf.runtime.emf.core.resources.GMFResourceFactory; +import org.eclipse.gmf.runtime.notation.Diagram; +import org.eclipse.osgi.util.NLS; +import org.eclipse.ui.IEditorInput; +import org.eclipse.ui.part.FileEditorInput; + +import java.io.IOException; +import java.util.HashMap; +import java.util.Iterator; +import java.util.Map; + +«EXPAND generatedComment -» +public class «this.dawnDocumentProviderClassName» extends «this.GMFGenEditorGenerator.diagram.documentProviderClassName» +{ + + «EXPAND generatedComment -» + public «this.dawnDocumentProviderClassName» () + { + super(); + } + + «EXPAND generatedComment -» + @Override + protected IDocument createEmptyDocument() + { + DiagramDocument document = new DiagramDocument(); + document.setEditingDomain(createEditingDomain()); + return document; + } + + «EXPAND generatedComment -» + private TransactionalEditingDomain createEditingDomain() + { + TransactionalEditingDomain editingDomain = DawnDiagramEditingDomainFactory.getInstance().createEditingDomain(); + editingDomain.setID("org.eclipse.emf.cdo.dawn.reference.editor.diagram.EditingDomain"); //$NON-NLS-1$ + final NotificationFilter diagramResourceModifiedFilter = NotificationFilter.createNotifierFilter( + editingDomain.getResourceSet()).and(NotificationFilter.createEventTypeFilter(Notification.ADD)).and( + NotificationFilter.createFeatureFilter(ResourceSet.class, ResourceSet.RESOURCE_SET__RESOURCES)); + editingDomain.getResourceSet().eAdapters().add(new Adapter() + { + private Notifier myTarger; + + public Notifier getTarget() + { + return myTarger; + } + + public boolean isAdapterForType(Object type) + { + return false; + } + + public void notifyChanged(Notification notification) + { + if (diagramResourceModifiedFilter.matches(notification)) + { + Object value = notification.getNewValue(); + if (value instanceof Resource) + { + ((Resource)value).setTrackingModification(true); + } + } + } + + public void setTarget(Notifier newTarget) + { + myTarger = newTarget; + } + }); + + return editingDomain; + } + + + «EXPAND generatedComment -» + @Override + protected void setDocumentContent(IDocument document, IEditorInput element) throws CoreException + { + IDiagramDocument diagramDocument = (IDiagramDocument)document; + TransactionalEditingDomain domain = diagramDocument.getEditingDomain(); + if (element instanceof FileEditorInput) + { + IStorage storage = ((FileEditorInput)element).getStorage(); + Diagram diagram = DiagramIOUtil.load(domain, storage, true, getProgressMonitor()); + document.setContent(diagram); + } + else if (element instanceof URIEditorInput) + { + URIEditorInput editorInput = (URIEditorInput)element; + + URI uri = editorInput.getURI(); + Resource resource = null; + try + { + URI dawnURI = URI.createURI(uri.toString().replace("cdo", "dawn")); + resource = domain.getResourceSet().getResource(dawnURI, false); + if (resource == null) + { + resource = domain.getResourceSet().getResource(dawnURI, true); + } + + if (editorInput instanceof DawnEditorInput) + { + ((DawnEditorInput)editorInput).setResource((CDOResource)resource); + } + if (!resource.isLoaded()) + { + try + { + Map options = new HashMap(GMFResourceFactory.getDefaultLoadOptions()); + resource.load(options); + } + catch (IOException e) + { + resource.unload(); + throw e; + } + } + if (uri.fragment() != null) + { + EObject rootElement = resource.getEObject(uri.fragment()); + if (rootElement instanceof Diagram) + { + Diagram diagram = (Diagram)rootElement; + DawnDiagramUpdater.initializeElement(diagram); + document.setContent(diagram); + + return; + } + } + else + { + for (Iterator<?> it = resource.getContents().iterator(); it.hasNext();) + { + Object rootElement = it.next(); + if (rootElement instanceof Diagram) + { + Diagram diagram = (Diagram)rootElement; + DawnDiagramUpdater.initializeElement(diagram); + document.setContent(diagram); + + return; + } + } + } + throw new RuntimeException(Messages.ClassdiagramDocumentProvider_NoDiagramInResourceError); + } + catch (Exception e) + { + CoreException thrownExcp = null; + if (e instanceof CoreException) + { + thrownExcp = (CoreException)e; + } + else + { + String msg = e.getLocalizedMessage(); + thrownExcp = new CoreException(new Status(IStatus.ERROR, «this.GMFGenEditorGenerator.plugin.activatorClassName».ID, 0, + msg != null ? msg : Messages.«this.GMFGenEditorGenerator.diagram.documentProviderClassName»_DiagramLoadingError, e)); + } + throw thrownExcp; + } + } + else + { + throw new CoreException(new Status(IStatus.ERROR, ClassdiagramDiagramEditorPlugin.ID, 0, NLS.bind( + Messages.«this.GMFGenEditorGenerator.diagram.documentProviderClassName»_IncorrectInputError, new Object[] { element, + "org.eclipse.ui.part.FileEditorInput", "org.eclipse.emf.common.ui.URIEditorInput" }), //$NON-NLS-1$ //$NON-NLS-2$ + null)); + } + } + + «EXPAND generatedComment -» + @Override + public void changed(Object element) + { + if (element instanceof IEditorInput) + { + fireElementDirtyStateChanged(element, true); + } + } +} +«ENDFILE» +«ENDDEFINE» + + +«REM»############################################ DawnXXXEditPartProvider ##################################################################«ENDREM» +«DEFINE dawnEditPartProvider FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/providers/"+this.dawnEditPartProviderClassName+".java"» +package «this.GMFGenEditorGenerator.diagram.providersPackageName»; + +import «this.GMFGenEditorGenerator.diagram.editPartsPackageName».«this.dawnEditPartFactoryClassName»; +import «this.GMFGenEditorGenerator.editor.packageName».«this.GMFGenEditorGenerator.plugin.activatorClassName»; + +«EXPAND generatedComment -» +public class «this.dawnEditPartProviderClassName» extends «this.GMFGenEditorGenerator.diagram.editPartProviderClassName» +{ + + «EXPAND generatedComment -» + public «this.dawnEditPartProviderClassName»() + { + super(); + setFactory(new «this.dawnEditPartFactoryClassName»()); + } +} + + +«ENDFILE» +«ENDDEFINE» + +«REM»############################################ DawnXXXEditPolicyProvider ##################################################################«ENDREM» +«DEFINE dawnEditPolicyProvider FOR DawnGMFGenerator» +«FILE "src/"+getDiagramPackagePath()+"/providers/"+dawnEditPolicyProviderClassName+".java"» +package «this.GMFGenEditorGenerator.diagram.providersPackageName»; + +import «this.GMFGenEditorGenerator.diagram.editPartsPackageName».«this.GMFGenEditorGenerator.diagram.editPartClassName»; +import «this.GMFGenEditorGenerator.diagram.editPoliciesPackageName».«this.dawnCanonicalEditingPolicyClassName»; +import «this.GMFGenEditorGenerator.editor.packageName».«this.GMFGenEditorGenerator.plugin.activatorClassName»; + +import org.eclipse.gef.EditPart; +import org.eclipse.gmf.runtime.common.core.service.AbstractProvider; +import org.eclipse.gmf.runtime.common.core.service.IOperation; +import org.eclipse.gmf.runtime.diagram.ui.editpolicies.EditPolicyRoles; +import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.CreateEditPoliciesOperation; +import org.eclipse.gmf.runtime.diagram.ui.services.editpolicy.IEditPolicyProvider; + +«EXPAND generatedComment -» +public class «dawnEditPolicyProviderClassName» extends AbstractProvider implements IEditPolicyProvider +{ + public static String ID = "«this.GMFGenEditorGenerator.diagram.providersPackageName».«this.dawnEditPolicyProviderClassName»"; + + «EXPAND generatedComment -» + public boolean provides(IOperation operation) + { + if (operation instanceof CreateEditPoliciesOperation) + { + CreateEditPoliciesOperation editPoliciesOperation = (CreateEditPoliciesOperation)operation; + if (editPoliciesOperation.getEditPart() instanceof «this.GMFGenEditorGenerator.diagram.editPartClassName») + { + return true; + } + } + return false; + } + + «EXPAND generatedComment -» + public void createEditPolicies(EditPart editPart) + { + if (editPart instanceof «this.GMFGenEditorGenerator.diagram.editPartClassName») + { + editPart.installEditPolicy(EditPolicyRoles.CANONICAL_ROLE, new «this.dawnCanonicalEditingPolicyClassName»()); + } + } +} + +«ENDFILE» +«ENDDEFINE» + +«REM»########################################## fragment.xml ####################################################################«ENDREM» +«DEFINE fragmentXML FOR DawnGMFGenerator» +«FILE "fragment.xml"»<?xml version="1.0" encoding="UTF-8"?> +<?eclipse version="3.4"?> +<fragment> +<extension + point="org.eclipse.ui.editors"> + <editor + + class="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnEditorClassName»" + contributorClass="«this.GMFGenEditorGenerator.editor.packageName».«this.GMFGenEditorGenerator.editor.actionBarContributorClassName»" + default="true" + extensions="«this.GMFGenEditorGenerator.diagramFileExtension»" + icon="«this.GMFGenEditorGenerator.editor.iconPath»" + id="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnEditorClassName»" + matchingStrategy="«this.GMFGenEditorGenerator.editor.packageName».«this.GMFGenEditorGenerator.diagram.matchingStrategyClassName»" + name="Dawn «this.GMFGenEditorGenerator.modelID» Diagram"> + </editor> + </extension> + <extension + point="org.eclipse.ui.newWizards"> + <wizard + category="org.eclipse.ui.Examples" + class="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnCreationWizardClassName»" + icon="«this.GMFGenEditorGenerator.editor.iconPath»" + id="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnCreationWizardClassName»" + name="Dawn «this.GMFGenEditorGenerator.modelID» Diagram"> + <description> + description body text + </description> + </wizard> + + </extension> + <extension + point="org.eclipse.gmf.runtime.diagram.ui.resources.editor.documentProviders"> + <provider + class="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnDocumentProviderClassName»" + documentType="org.eclipse.gmf.runtime.diagram.ui.editor.IDocument" + id="«this.GMFGenEditorGenerator.editor.packageName».«this.dawnDocumentProviderClassName»" + inputTypes="org.eclipse.emf.common.ui.URIEditorInput"> + </provider> + </extension> + <extension + point="org.eclipse.gmf.runtime.diagram.ui.editpolicyProviders"> + <editpolicyProvider + class="«this.GMFGenEditorGenerator.diagram.providersPackageName».«this.dawnEditPolicyProviderClassName»"> + <Priority + name="Low"> + </Priority> + </editpolicyProvider> + </extension> + <extension point="org.eclipse.gmf.runtime.diagram.ui.editpartProviders" id="ep-provider"> + <?gmfgen generated="true"?> + <editpartProvider class="«this.GMFGenEditorGenerator.diagram.providersPackageName».«this.dawnEditPartProviderClassName»"> + <Priority name="Medium"/> + <object class="org.eclipse.gmf.runtime.notation.Diagram" id="generated-diagram"> + <method name="getType()" value="«this.GMFGenEditorGenerator.modelID»"/> + </object> + <context views="generated-diagram"/> + </editpartProvider> + </extension> +</fragment> + +«ENDFILE» +«ENDDEFINE» + + + +«REM»##############################################################################################################«ENDREM» +«DEFINE manifestMF FOR GenEditorGenerator» +«FILE "META-INF/MANIFEST.MF"»Manifest-Version: 1.0 +Bundle-ManifestVersion: 2 +Bundle-Name: Dawn +Bundle-SymbolicName: org.eclipse.emf.cdo.dawn.reference.editor.diagram.dawn;singleton:=true +Bundle-Version: 0.2.0.qualifier +Fragment-Host: org.eclipse.emf.cdo.dawn.reference.editor.diagram;bundle-version="0.2.0" +Bundle-RequiredExecutionEnvironment: J2SE-1.5 +Require-Bundle: org.eclipse.emf.cdo.dawn.runtime;bundle-version="0.2.0", + org.eclipse.emf.cdo.dawn.util;bundle-version="0.0", + org.eclipse.emf.cdo.ui;bundle-version="3.0.0", + org.eclipse.emf.cdo.dawn.ui;bundle-version="0.2.0" +Export-Package: org.eclipse.emf.cdo.dawn.reference.editor.classdiagram.diagram.edit.parts;version="0.2.0", + org.eclipse.emf.cdo.dawn.reference.editor.classdiagram.diagram.edit.policies;version="0.2.0", + org.eclipse.emf.cdo.dawn.reference.editor.classdiagram.diagram.part;version="0.2.0", + org.eclipse.emf.cdo.dawn.reference.editor.classdiagram.diagram.providers;version="0.2.0" +«ENDFILE» +«ENDDEFINE» + + +«DEFINE buildPROPERTIES FOR GenEditorGenerator» +«FILE "build.properties"»source.. = src/ +output.. = bin/ +bin.includes = META-INF/,\ + .,\ + fragment.xml +«ENDFILE» +«ENDDEFINE» +«REM»################################### . classpath ###########################################################################«ENDREM» + +«DEFINE classpath FOR GenEditorGenerator» +«FILE ".classpath"»<?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> +«ENDFILE» +«ENDDEFINE» + +«DEFINE generatedComment FOR Object-» +/** + *@generated + */ + «ENDDEFINE» + diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GeneratorExtensions.ext b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GeneratorExtensions.ext new file mode 100644 index 0000000000..a09f8d3b2f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/template/GeneratorExtensions.ext @@ -0,0 +1,3 @@ + + + diff --git a/plugins/org.eclipse.emf.cdo.dawn.codegen/src/workflow/gmfFragmentGenerator.oaw b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/workflow/gmfFragmentGenerator.oaw new file mode 100644 index 0000000000..82afa8e03f --- /dev/null +++ b/plugins/org.eclipse.emf.cdo.dawn.codegen/src/workflow/gmfFragmentGenerator.oaw @@ -0,0 +1,91 @@ +<?xml version="1.0"?> +<!-- + Copyright (c) 2010 Martin Fluegge (Berlin, Germany) and others. + All rights reserved. This program and the accompanying materials + are made available under the terms of the Eclipse Public License v1.0 + which accompanies this distribution, and is available at + http://www.eclipse.org/legal/epl-v10.html + + Contributors: + Martin Fluegge - initial API and implementation +--> + +<workflow> + + <!--<property name="model" value="file:/D:/Development/CDO/org.eclipse.emf.cdo.dawn.reference.editor/model/classdiagram.gmfgen" />--> + <property name="model" value="file:/D:/Development/INSTANCES/Dawn_Instance1/Dawn/model/classdiagram.dawngenmodel" /> + + <property name="src-gen" value="d:/temp/source" /> + <!--<property name="src-gen" /> --> <!--just declare it to make it accessable --> + + <!-- set up EMF for standalone execution --> + <bean class="org.eclipse.emf.mwe.utils.StandaloneSetup" > + <platformUri value=".."/> + </bean> + + <!-- load model and store it in slot 'model' --> + <component class="org.eclipse.emf.mwe.utils.Reader"> + <uri value="${model}" /> + <modelSlot value="model" /> + </component> + + + + <!-- check model --> + <!--loads different metamodels--> + <component class="org.eclipse.xtend.check.CheckComponent"> + <metaModel id="ecore" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.ecore.EcorePackage"/> + </metaModel> + + <metaModel id="genmodel" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage"/> + </metaModel> + + <metaModel id="dawngenmodel" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawngenmodelPackage"/> + </metaModel> + + <metaModel id="mmGGr" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.gmf.gmfgraph.GMFGraphPackage"/> + </metaModel> + + <metaModel id="mmGGen" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.gmf.codegen.gmfgen.GMFGenPackage"/> + </metaModel> + <checkFile value="metamodel::Checks" /> + <emfAllChildrenSlot value="model" /> + </component> + + <!-- generate code for the meta specified templates --> + <component class="org.eclipse.xpand2.Generator"> + + <metaModel id="ecore" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.ecore.EcorePackage"/> + </metaModel> + + <metaModel id="genmodel" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.codegen.ecore.genmodel.GenModelPackage"/> + </metaModel> + + <metaModel id="dawngenmodel" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.emf.cdo.dawn.codegen.dawngenmodel.DawngenmodelPackage"/> + </metaModel> + + <metaModel id="mmGGr" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.gmf.gmfgraph.GMFGraphPackage"/> + </metaModel> + + <metaModel id="mmGGen" class="org.eclipse.xtend.typesystem.emf.EmfMetaModel"> + <metaModelPackage value="org.eclipse.gmf.codegen.gmfgen.GMFGenPackage"/> + </metaModel> + + <expand value="template::GMFFragmentTemplate::main FOR model" /> + <outlet path="${src-gen}" > + <postprocessor class="org.eclipse.xpand2.output.JavaBeautifier" /> + </outlet> + + <!--<prSrcPaths value="${src-gen}"/> + <prExcludes value=", *.xml, *.hbm"/>--> + </component> +</workflow> |