diff --git a/app/.settings/org.eclipse.jdt.core.prefs b/app/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index da7176c57..000000000 --- a/app/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,377 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.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=ignore -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore -org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled -org.eclipse.jdt.core.compiler.problem.fieldHiding=warning -org.eclipse.jdt.core.compiler.problem.finalParameterBound=ignore -org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning -org.eclipse.jdt.core.compiler.problem.forbiddenReference=error -org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning -org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=ignore -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=ignore -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=ignore -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=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.6 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=18 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 -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=36 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=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=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.indentation.size=2 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=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=80 -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=true -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_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/app/.settings/org.eclipse.ltk.core.refactoring.prefs b/app/.settings/org.eclipse.ltk.core.refactoring.prefs new file mode 100644 index 000000000..b196c64a3 --- /dev/null +++ b/app/.settings/org.eclipse.ltk.core.refactoring.prefs @@ -0,0 +1,2 @@ +eclipse.preferences.version=1 +org.eclipse.ltk.core.refactoring.enable.project.refactoring.history=false diff --git a/app/build.xml b/app/build.xml index 1dc84edc3..4122ed0e8 100755 --- a/app/build.xml +++ b/app/build.xml @@ -25,6 +25,7 @@ + @@ -49,6 +50,14 @@ message="Please build the core library first and make sure it sits in ../core/library/core.jar" /> + + + + + + + + diff --git a/app/src/processing/app/Base.java b/app/src/processing/app/Base.java index 9e1313434..233178ac0 100644 --- a/app/src/processing/app/Base.java +++ b/app/src/processing/app/Base.java @@ -170,7 +170,10 @@ public class Base { // Make sure a full JDK is installed initRequirements(); - + + // Load the languages + Language.init(); + // run static initialization that grabs all the prefs Preferences.init(); @@ -833,7 +836,8 @@ public class Base { extensions.add(mode.getDefaultExtension()); } - final String prompt = "Open a Processing sketch..."; + + final String prompt = Language.text("open"); // don't use native dialogs on Linux (or anyone else w/ override) if (Preferences.getBoolean("chooser.files.native")) { //$NON-NLS-1$ @@ -2302,13 +2306,12 @@ public class Base { "b { font: 13pt \"Lucida Grande\" }"+ "p { font: 11pt \"Lucida Grande\"; margin-top: 8px; width: 300px }"+ " " + - "Do you want to save changes to this sketch
" + - " before closing?
" + - "

If you don't save, your changes will be lost.", + "" + Language.text("save.title") + "" + + "

" + Language.text("save.hint") + "

", JOptionPane.QUESTION_MESSAGE); String[] options = new String[] { - "Save", "Cancel", "Don't Save" + Language.text("save.btn.save"), Language.text("prompt.cancel"), Language.text("save.btn.dont_save") }; pane.setOptions(options); diff --git a/app/src/processing/app/Editor.java b/app/src/processing/app/Editor.java index 6f4e53531..18aa9f26f 100644 --- a/app/src/processing/app/Editor.java +++ b/app/src/processing/app/Editor.java @@ -420,7 +420,7 @@ public abstract class Editor extends JFrame implements RunnerListener { } modeMenu.addSeparator(); - JMenuItem addLib = new JMenuItem("Add Mode..."); + JMenuItem addLib = new JMenuItem(Language.text("toolbar.add_mode")); addLib.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleOpenModeManager(); @@ -588,9 +588,9 @@ public abstract class Editor extends JFrame implements RunnerListener { protected JMenu buildFileMenu(JMenuItem[] exportItems) { JMenuItem item; - JMenu fileMenu = new JMenu("File"); + JMenu fileMenu = new JMenu(Language.text("menu.file")); - item = Toolkit.newJMenuItem("New", 'N'); + item = Toolkit.newJMenuItem(Language.text("menu.file.new"), 'N'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleNew(); @@ -598,7 +598,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); fileMenu.add(item); - item = Toolkit.newJMenuItem("Open...", 'O'); + item = Toolkit.newJMenuItem(Language.text("menu.file.open"), 'O'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleOpenPrompt(); @@ -619,7 +619,7 @@ public abstract class Editor extends JFrame implements RunnerListener { fileMenu.add(sbMenu); // fileMenu.add(mode.getExamplesMenu()); - item = Toolkit.newJMenuItemShift("Examples...", 'O'); + item = Toolkit.newJMenuItemShift(Language.text("menu.file.examples"), 'O'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { mode.showExamplesFrame(); @@ -627,7 +627,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); fileMenu.add(item); - item = Toolkit.newJMenuItem("Close", 'W'); + item = Toolkit.newJMenuItem(Language.text("menu.file.close"), 'W'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleClose(Editor.this, false); @@ -635,7 +635,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); fileMenu.add(item); - item = Toolkit.newJMenuItem("Save", 'S'); + item = Toolkit.newJMenuItem(Language.text("menu.file.save"), 'S'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleSave(false); @@ -644,7 +644,7 @@ public abstract class Editor extends JFrame implements RunnerListener { // saveMenuItem = item; fileMenu.add(item); - item = Toolkit.newJMenuItemShift("Save As...", 'S'); + item = Toolkit.newJMenuItemShift(Language.text("menu.file.save_as"), 'S'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleSaveAs(); @@ -660,7 +660,7 @@ public abstract class Editor extends JFrame implements RunnerListener { } fileMenu.addSeparator(); - item = Toolkit.newJMenuItemShift("Page Setup", 'P'); + item = Toolkit.newJMenuItemShift(Language.text("menu.file.page_setup"), 'P'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handlePageSetup(); @@ -668,7 +668,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); fileMenu.add(item); - item = Toolkit.newJMenuItem("Print", 'P'); + item = Toolkit.newJMenuItem(Language.text("menu.file.print"), 'P'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handlePrint(); @@ -681,7 +681,7 @@ public abstract class Editor extends JFrame implements RunnerListener { if (!Base.isMacOS()) { fileMenu.addSeparator(); - item = Toolkit.newJMenuItem("Preferences", ','); + item = Toolkit.newJMenuItem(Language.text("menu.file.preferences"), ','); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handlePrefs(); @@ -691,7 +691,7 @@ public abstract class Editor extends JFrame implements RunnerListener { fileMenu.addSeparator(); - item = Toolkit.newJMenuItem("Quit", 'Q'); + item = Toolkit.newJMenuItem(Language.text("menu.file.quit"), 'Q'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleQuit(); @@ -714,19 +714,19 @@ public abstract class Editor extends JFrame implements RunnerListener { protected JMenu buildEditMenu() { - JMenu menu = new JMenu("Edit"); + JMenu menu = new JMenu(Language.text("menu.edit")); JMenuItem item; - undoItem = Toolkit.newJMenuItem("Undo", 'Z'); + undoItem = Toolkit.newJMenuItem(Language.text("menu.edit.undo"), 'Z'); undoItem.addActionListener(undoAction = new UndoAction()); menu.add(undoItem); // Gotta follow them interface guidelines // http://code.google.com/p/processing/issues/detail?id=363 if (Base.isWindows()) { - redoItem = Toolkit.newJMenuItem("Redo", 'Y'); + redoItem = Toolkit.newJMenuItem(Language.text("menu.edit.redo"), 'Y'); } else { // Linux and OS X - redoItem = Toolkit.newJMenuItemShift("Redo", 'Z'); + redoItem = Toolkit.newJMenuItemShift(Language.text("menu.edit.redo"), 'Z'); } redoItem.addActionListener(redoAction = new RedoAction()); menu.add(redoItem); @@ -735,7 +735,7 @@ public abstract class Editor extends JFrame implements RunnerListener { // TODO "cut" and "copy" should really only be enabled // if some text is currently selected - item = Toolkit.newJMenuItem("Cut", 'X'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.cut"), 'X'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCut(); @@ -743,7 +743,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Copy", 'C'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.copy"), 'C'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textarea.copy(); @@ -751,7 +751,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItemShift("Copy as HTML", 'C'); + item = Toolkit.newJMenuItemShift(Language.text("menu.edit.copy_as_html"), 'C'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCopyAsHTML(); @@ -759,7 +759,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Paste", 'V'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.paste"), 'V'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textarea.paste(); @@ -768,7 +768,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Select All", 'A'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.select_all"), 'A'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { textarea.selectAll(); @@ -808,7 +808,7 @@ public abstract class Editor extends JFrame implements RunnerListener { menu.addSeparator(); - item = Toolkit.newJMenuItem("Auto Format", 'T'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.auto_format"), 'T'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleAutoFormat(); @@ -816,7 +816,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Comment/Uncomment", '/'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.comment_uncomment"), '/'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCommentUncomment(); @@ -824,7 +824,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Increase Indent", ']'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.increase_indent"), ']'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleIndentOutdent(true); @@ -832,7 +832,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItem("Decrease Indent", '['); + item = Toolkit.newJMenuItem(Language.text("menu.edit.decrease_indent"), '['); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleIndentOutdent(false); @@ -842,7 +842,7 @@ public abstract class Editor extends JFrame implements RunnerListener { menu.addSeparator(); - item = Toolkit.newJMenuItem("Find...", 'F'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.find"), 'F'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (find == null) { @@ -856,7 +856,7 @@ public abstract class Editor extends JFrame implements RunnerListener { // TODO find next should only be enabled after a // search has actually taken place - item = Toolkit.newJMenuItem("Find Next", 'G'); + item = Toolkit.newJMenuItem(Language.text("menu.edit.find_next"), 'G'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (find != null) { @@ -866,7 +866,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); menu.add(item); - item = Toolkit.newJMenuItemShift("Find Previous", 'G'); + item = Toolkit.newJMenuItemShift(Language.text("menu.edit.find_previous"), 'G'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (find != null) { @@ -877,7 +877,7 @@ public abstract class Editor extends JFrame implements RunnerListener { menu.add(item); // For Arduino and Mac, this should be command-E, but that currently conflicts with Export Applet - item = Toolkit.newJMenuItemAlt("Use Selection for Find", 'F'); + item = Toolkit.newJMenuItemAlt(Language.text("menu.edit.use_selection_for_find"), 'F'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (find == null) { @@ -897,7 +897,7 @@ public abstract class Editor extends JFrame implements RunnerListener { protected JMenu buildSketchMenu(JMenuItem[] runItems) { JMenuItem item; - sketchMenu = new JMenu("Sketch"); + sketchMenu = new JMenu(Language.text("menu.sketch")); for (JMenuItem mi : runItems) { sketchMenu.add(mi); @@ -907,7 +907,7 @@ public abstract class Editor extends JFrame implements RunnerListener { sketchMenu.add(mode.getImportMenu()); - item = Toolkit.newJMenuItem("Show Sketch Folder", 'K'); + item = Toolkit.newJMenuItem(Language.text("menu.sketch.show_sketch_folder"), 'K'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Base.openFolder(sketch.getFolder()); @@ -916,7 +916,7 @@ public abstract class Editor extends JFrame implements RunnerListener { sketchMenu.add(item); item.setEnabled(Base.openFolderAvailable()); - item = new JMenuItem("Add File..."); + item = new JMenuItem(Language.text("menu.sketch.add_file")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { sketch.handleAddFile(); @@ -998,7 +998,7 @@ public abstract class Editor extends JFrame implements RunnerListener { public void rebuildToolMenu() { if (toolsMenu == null) { - toolsMenu = new JMenu("Tools"); + toolsMenu = new JMenu(Language.text("menu.tools")); } else { toolsMenu.removeAll(); } @@ -1012,7 +1012,7 @@ public abstract class Editor extends JFrame implements RunnerListener { addTools(toolsMenu, contribTools); toolsMenu.addSeparator(); - JMenuItem item = new JMenuItem("Add Tool..."); + JMenuItem item = new JMenuItem(Language.text("menu.tools.add_tool")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleOpenToolManager(); @@ -1266,7 +1266,7 @@ public abstract class Editor extends JFrame implements RunnerListener { class UndoAction extends AbstractAction { public UndoAction() { - super("Undo"); + super(Language.text("menu.edit.undo")); this.setEnabled(false); } @@ -1305,8 +1305,8 @@ public abstract class Editor extends JFrame implements RunnerListener { } else { this.setEnabled(false); undoItem.setEnabled(false); - undoItem.setText("Undo"); - putValue(Action.NAME, "Undo"); + undoItem.setText(Language.text("menu.edit.undo")); + putValue(Action.NAME, Language.text("menu.edit.undo")); // if (sketch != null) { // sketch.setModified(false); // 0107 // } @@ -1317,7 +1317,7 @@ public abstract class Editor extends JFrame implements RunnerListener { class RedoAction extends AbstractAction { public RedoAction() { - super("Redo"); + super(Language.text("menu.edit.redo")); this.setEnabled(false); } @@ -1351,8 +1351,8 @@ public abstract class Editor extends JFrame implements RunnerListener { } else { this.setEnabled(false); redoItem.setEnabled(false); - redoItem.setText("Redo"); - putValue(Action.NAME, "Redo"); + redoItem.setText(Language.text("menu.edit.redo")); + putValue(Action.NAME, Language.text("menu.edit.redo")); } } } @@ -2220,13 +2220,12 @@ public abstract class Editor extends JFrame implements RunnerListener { "b { font: 13pt \"Lucida Grande\" }"+ "p { font: 11pt \"Lucida Grande\"; margin-top: 8px }"+ " " + - "Do you want to save changes to this sketch
" + - " before closing?
" + - "

If you don't save, your changes will be lost.", + "" + Language.text("save.title") + "" + + "

" + Language.text("save.hint") + "

", JOptionPane.QUESTION_MESSAGE); String[] options = new String[] { - "Save", "Cancel", "Don't Save" + Language.text("save.btn.save"), Language.text("prompt.cancel"), Language.text("save.btn.dont_save") }; pane.setOptions(options); @@ -2804,7 +2803,7 @@ public abstract class Editor extends JFrame implements RunnerListener { public TextAreaPopup() { JMenuItem item; - cutItem = new JMenuItem("Cut"); + cutItem = new JMenuItem(Language.text("menu.edit.cut")); cutItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCut(); @@ -2812,7 +2811,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(cutItem); - copyItem = new JMenuItem("Copy"); + copyItem = new JMenuItem(Language.text("menu.edit.copy")); copyItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCopy(); @@ -2820,7 +2819,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(copyItem); - discourseItem = new JMenuItem("Copy as HTML"); + discourseItem = new JMenuItem(Language.text("menu.edit.copy_as_html")); discourseItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCopyAsHTML(); @@ -2828,7 +2827,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(discourseItem); - item = new JMenuItem("Paste"); + item = new JMenuItem(Language.text("menu.edit.paste")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handlePaste(); @@ -2836,7 +2835,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(item); - item = new JMenuItem("Select All"); + item = new JMenuItem(Language.text("menu.edit.select_all")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleSelectAll(); @@ -2846,7 +2845,7 @@ public abstract class Editor extends JFrame implements RunnerListener { this.addSeparator(); - item = new JMenuItem("Comment/Uncomment"); + item = new JMenuItem(Language.text("menu.edit.comment_uncomment")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleCommentUncomment(); @@ -2854,7 +2853,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(item); - item = new JMenuItem("Increase Indent"); + item = new JMenuItem(Language.text("menu.edit.increase_indent")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleIndentOutdent(true); @@ -2862,7 +2861,7 @@ public abstract class Editor extends JFrame implements RunnerListener { }); this.add(item); - item = new JMenuItem("Decrease Indent"); + item = new JMenuItem(Language.text("menu.edit.decrease_indent")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleIndentOutdent(false); @@ -2872,7 +2871,7 @@ public abstract class Editor extends JFrame implements RunnerListener { this.addSeparator(); - referenceItem = new JMenuItem("Find in Reference"); + referenceItem = new JMenuItem(Language.text("find_in_reference")); referenceItem.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { handleFindReference(); diff --git a/app/src/processing/app/EditorHeader.java b/app/src/processing/app/EditorHeader.java index 334d0e91d..671095f14 100644 --- a/app/src/processing/app/EditorHeader.java +++ b/app/src/processing/app/EditorHeader.java @@ -508,7 +508,7 @@ public class EditorHeader extends JComponent { */ //item = new JMenuItem("New Tab"); - item = Toolkit.newJMenuItemShift("New Tab", 'N'); + item = Toolkit.newJMenuItemShift(Language.text("editor.header.new_tab"), 'N'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { editor.getSketch().handleNewCode(); @@ -516,7 +516,7 @@ public class EditorHeader extends JComponent { }); menu.add(item); - item = new JMenuItem("Rename"); + item = new JMenuItem(Language.text("editor.header.rename")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { editor.getSketch().handleRenameCode(); @@ -530,16 +530,15 @@ public class EditorHeader extends JComponent { }); menu.add(item); - item = new JMenuItem("Delete"); + item = new JMenuItem(Language.text("editor.header.delete")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { Sketch sketch = editor.getSketch(); if (!Base.isMacOS() && // ok on OS X editor.base.editors.size() == 1 && // mmm! accessor sketch.getCurrentCodeIndex() == 0) { - Base.showWarning("Yeah, no." , - "You can't delete the last tab " + - "of the last open sketch.", null); + Base.showWarning(Language.text("editor.header.delete.warning.title"), + Language.text("editor.header.delete.warning.text"), null); } else { editor.getSketch().handleDeleteCode(); } @@ -551,7 +550,7 @@ public class EditorHeader extends JComponent { // KeyEvent.VK_LEFT and VK_RIGHT will make Windows beep - item = new JMenuItem("Previous Tab"); + item = new JMenuItem(Language.text("editor.header.previous_tab")); KeyStroke ctrlAltLeft = KeyStroke.getKeyStroke(KeyEvent.VK_LEFT, Toolkit.SHORTCUT_ALT_KEY_MASK); item.setAccelerator(ctrlAltLeft); @@ -565,7 +564,7 @@ public class EditorHeader extends JComponent { */ menu.add(item); - item = new JMenuItem("Next Tab"); + item = new JMenuItem(Language.text("editor.header.next_tab")); KeyStroke ctrlAltRight = KeyStroke.getKeyStroke(KeyEvent.VK_RIGHT, Toolkit.SHORTCUT_ALT_KEY_MASK); item.setAccelerator(ctrlAltRight); diff --git a/app/src/processing/app/FindReplace.java b/app/src/processing/app/FindReplace.java index 57c851dd7..de6e1b34a 100644 --- a/app/src/processing/app/FindReplace.java +++ b/app/src/processing/app/FindReplace.java @@ -64,15 +64,15 @@ public class FindReplace extends JFrame { public FindReplace(Editor editor) { - super("Find"); + super(Language.text("find")); setResizable(false); this.editor = editor; Container pain = getContentPane(); pain.setLayout(null); - JLabel findLabel = new JLabel("Find:"); - JLabel replaceLabel = new JLabel("Replace with:"); + JLabel findLabel = new JLabel(Language.text("find.find")); + JLabel replaceLabel = new JLabel(Language.text("find.replace_with")); Dimension labelDimension = replaceLabel.getPreferredSize(); pain.add(findLabel); @@ -85,7 +85,7 @@ public class FindReplace extends JFrame { if (findString != null) findField.setText(findString); if (replaceString != null) replaceField.setText(replaceString); - ignoreCaseBox = new JCheckBox("Ignore Case"); + ignoreCaseBox = new JCheckBox(Language.text("find.ignore_case")); ignoreCaseBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { ignoreCase = ignoreCaseBox.isSelected(); @@ -94,7 +94,7 @@ public class FindReplace extends JFrame { ignoreCaseBox.setSelected(ignoreCase); pain.add(ignoreCaseBox); - allTabsBox = new JCheckBox("All Tabs"); + allTabsBox = new JCheckBox(Language.text("find.all_tabs")); allTabsBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { allTabs = allTabsBox.isSelected(); @@ -104,7 +104,7 @@ public class FindReplace extends JFrame { allTabsBox.setEnabled(true); pain.add(allTabsBox); - wrapAroundBox = new JCheckBox("Wrap Around"); + wrapAroundBox = new JCheckBox(Language.text("find.wrap_around")); wrapAroundBox.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { wrapAround = wrapAroundBox.isSelected(); @@ -116,11 +116,11 @@ public class FindReplace extends JFrame { JPanel buttons = new JPanel(); buttons.setLayout(new FlowLayout(FlowLayout.CENTER,BUTTON_GAP, 0)); - replaceAllButton = new JButton("Replace All"); - replaceButton = new JButton("Replace"); - replaceAndFindButton = new JButton("Replace & Find"); - previousButton = new JButton("Previous"); - findButton = new JButton("Find"); + replaceAllButton = new JButton(Language.text("find.btn.replace_all")); + replaceButton = new JButton(Language.text("find.btn.replace")); + replaceAndFindButton = new JButton(Language.text("find.btn.find_and_replace")); + previousButton = new JButton(Language.text("find.btn.previous")); + findButton = new JButton(Language.text("find.btn.find")); // ordering is different on mac versus pc if (Base.isMacOS()) { diff --git a/app/src/processing/app/Language.java b/app/src/processing/app/Language.java new file mode 100644 index 000000000..e83285ddf --- /dev/null +++ b/app/src/processing/app/Language.java @@ -0,0 +1,161 @@ +package processing.app; + +import java.io.File; +import java.io.IOException; +import java.io.InputStream; +import java.io.InputStreamReader; +import java.net.URL; +import java.net.URLConnection; +import java.util.HashMap; +import java.util.Locale; +import java.util.PropertyResourceBundle; +import java.util.ResourceBundle; + +import processing.core.PApplet; + +/** + * Internationalization (i18n) + * + * @author Darius Morawiec + */ +public class Language { + + private static Language instance = null; + private String language; + private HashMap languages; + private ResourceBundle bundle; + private static final String FILE = "processing.app.languages.PDE"; + + private Language() { + + // Get system language + this.language = Locale.getDefault().getLanguage(); + + // Set available languages + this.languages = new HashMap(); + + // Language code: + // http://en.wikipedia.org/wiki/ISO_639-1 + // http://en.wikipedia.org/wiki/List_of_ISO_639-1_codes + + // en, English, English + this.languages.put(Locale.ENGLISH.getLanguage(), Locale.ENGLISH.getDisplayLanguage(Locale.ENGLISH)); + // de, German, Deutsch + this.languages.put(Locale.GERMAN.getLanguage(), Locale.GERMAN.getDisplayLanguage(Locale.GERMAN)); + + // Set default language + if (!this.languages.containsKey(this.language)) { + this.language = "en"; + } + + // Get saved language + try { + File file = Base.getContentFile("lib/language.txt"); + if (file.exists()) { + String language = PApplet.loadStrings(file)[0]; + language = language.trim().toLowerCase(); + if (!language.equals("")) { + this.language = language; + } else { + Base.saveFile(this.language, file); + } + } + } catch (Exception e) { + e.printStackTrace(); + } + + // Get bundle with translations (processing.app.language.PDE) + this.bundle = ResourceBundle.getBundle(Language.FILE, new Locale(this.language), new UTF8Control()); + } + + /** + * Singleton constructor + * + * @return + */ + public static synchronized Language init() { + if (instance == null) { + instance = new Language(); + } + return instance; + } + + /** + * Get translation from bundles. + * + * @param text + * @return + */ + public static String text(String text) { + return init().bundle.getString(text); + } + + /** + * Get all available languages + * + * @return + */ + public static HashMap getLanguages() { + return init().languages; + } + + /** + * Get current language + * + * @return + */ + public static String getLanguage() { + return init().language; + } + + /** + * Set new language + * + * @param language + */ + public static void setLanguage(String language) { + try { + File file = Base.getContentFile("lib/language.txt"); + Base.saveFile(language, file); + } catch (Exception e) { + e.printStackTrace(); + } + } + + /** + * Custom Control class for consitent encoding. + * http://stackoverflow.com/questions/4659929/how-to-use-utf-8-in-resource-properties-with-resourcebundle + */ + public class UTF8Control extends ResourceBundle.Control { + public ResourceBundle newBundle(String baseName, Locale locale, String format, ClassLoader loader, boolean reload) throws IllegalAccessException, InstantiationException,IOException { + // The below is a copy of the default implementation. + String bundleName = toBundleName(baseName, locale); + String resourceName = toResourceName(bundleName, "properties"); + ResourceBundle bundle = null; + InputStream stream = null; + if (reload) { + URL url = loader.getResource(resourceName); + if (url != null) { + URLConnection connection = url.openConnection(); + if (connection != null) { + connection.setUseCaches(false); + stream = connection.getInputStream(); + } + } + } else { + stream = loader.getResourceAsStream(resourceName); + } + if (stream != null) { + try { + // Only this line is changed to make it to read properties + // files as UTF-8. + bundle = new PropertyResourceBundle(new InputStreamReader(stream, "UTF-8")); + } finally { + stream.close(); + } + } + return bundle; + } + } + +} \ No newline at end of file diff --git a/app/src/processing/app/Mode.java b/app/src/processing/app/Mode.java index 5f0779e3d..666ec7f0d 100644 --- a/app/src/processing/app/Mode.java +++ b/app/src/processing/app/Mode.java @@ -423,13 +423,13 @@ public abstract class Mode { public void rebuildImportMenu() { //JMenu importMenu) { if (importMenu == null) { - importMenu = new JMenu("Import Library..."); + importMenu = new JMenu(Language.text("menu.library")); } else { //System.out.println("rebuilding import menu"); importMenu.removeAll(); } - JMenuItem addLib = new JMenuItem("Add Library..."); + JMenuItem addLib = new JMenuItem(Language.text("menu.library.add_library")); addLib.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { base.handleOpenLibraryManager(); @@ -453,7 +453,7 @@ public abstract class Mode { // } if (coreLibraries.size() == 0) { - JMenuItem item = new JMenuItem(getTitle() + " mode has no core libraries"); + JMenuItem item = new JMenuItem(getTitle() + " " + Language.text("menu.library.no_core_libraries")); item.setEnabled(false); importMenu.add(item); } else { @@ -467,7 +467,7 @@ public abstract class Mode { if (contribLibraries.size() != 0) { importMenu.addSeparator(); - JMenuItem contrib = new JMenuItem("Contributed"); + JMenuItem contrib = new JMenuItem(Language.text("menu.library.contributed")); contrib.setEnabled(false); importMenu.add(contrib); @@ -674,7 +674,7 @@ public abstract class Mode { public void showExamplesFrame() { if (examplesFrame == null) { - examplesFrame = new JFrame(getTitle() + " Examples"); + examplesFrame = new JFrame(getTitle() + " "+Language.text("menu.file.examples")); Toolkit.setIcon(examplesFrame); Toolkit.registerWindowCloseKeys(examplesFrame.getRootPane(), new ActionListener() { public void actionPerformed(ActionEvent e) { diff --git a/app/src/processing/app/Preferences.java b/app/src/processing/app/Preferences.java index 3f2dcbc0f..3b5f2a826 100644 --- a/app/src/processing/app/Preferences.java +++ b/app/src/processing/app/Preferences.java @@ -31,6 +31,8 @@ import javax.swing.*; import javax.swing.border.*; import javax.swing.event.*; +import processing.app.ColorChooser; +import processing.app.Language; import processing.core.*; @@ -72,17 +74,17 @@ public class Preferences { // prompt text stuff - static final String PROMPT_YES = "Yes"; - static final String PROMPT_NO = "No"; - static final String PROMPT_CANCEL = "Cancel"; - static final String PROMPT_OK = "OK"; - static final String PROMPT_BROWSE = "Browse"; + static final String PROMPT_YES = Language.text("prompt.yes"); + static final String PROMPT_NO = Language.text("prompt.no"); + static final String PROMPT_CANCEL = Language.text("prompt.cancel"); + static final String PROMPT_OK = Language.text("prompt.ok"); + static final String PROMPT_BROWSE = Language.text("prompt.browse"); /** * Standardized width for buttons. Mac OS X 10.3 wants 70 as its default, * Windows XP needs 66, and my Ubuntu machine needs 80+, so 80 seems proper. */ - static public int BUTTON_WIDTH = 80; + static public int BUTTON_WIDTH = Integer.valueOf(Language.text("preferences.button.width")); /** * Standardized button height. Mac OS X 10.3 (Java 1.4) wants 29, @@ -133,6 +135,8 @@ public class Preferences { JCheckBox codeCompletionTriggerBox; JComboBox displaySelectionBox; + JComboBox languageSelectionBox; + int displayCount; String[] monoFontFamilies; @@ -228,7 +232,7 @@ public class Preferences { public Preferences(Base base) { this.base = base; //dialog = new JDialog(editor, "Preferences", true); - dialog = new JFrame("Preferences"); + dialog = new JFrame(Language.text("preferences")); dialog.setResizable(false); Container pain = dialog.getContentPane(); @@ -248,7 +252,7 @@ public class Preferences { // Sketchbook location: // [...............................] [ Browse ] - label = new JLabel("Sketchbook location:"); + label = new JLabel(Language.text("preferences.sketchbook_location")+":"); pain.add(label); d = label.getPreferredSize(); label.setBounds(left, top, d.width, d.height); @@ -262,7 +266,7 @@ public class Preferences { button.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { File dflt = new File(sketchbookLocationField.getText()); - PApplet.selectFolder("Select new sketchbook location", + PApplet.selectFolder(Language.text("preferences.sketchbook_location.popup"), "sketchbookCallback", dflt, Preferences.this, dialog); } @@ -281,6 +285,32 @@ public class Preferences { right = Math.max(right, h + d2.width + GUI_BIG); top += vmax + GUI_BETWEEN; + + // Language: [ English ] (requires restart of Processing) + + Container languageBox = Box.createHorizontalBox(); + JLabel languageLabel = new JLabel(Language.text("preferences.language")+": "); + languageBox.add(languageLabel); + languageSelectionBox = new JComboBox(); + + HashMap languages = Language.getLanguages(); + String[] languageSelection = new String[languages.size()]; + languageSelection[0] = languages.get(Language.getLanguage()); + int i = 1; + for (Map.Entry lang : languages.entrySet()) { + if(!lang.getKey().equals(Language.getLanguage())){ + languageSelection[i++] = lang.getValue(); + } + } + languageSelectionBox.setModel(new DefaultComboBoxModel(languageSelection)); + languageBox.add(languageSelectionBox); + label = new JLabel(" ("+Language.text("preferences.requires_restart")+")"); + languageBox.add(label); + pain.add(languageBox); + d = languageBox.getPreferredSize(); + languageBox.setBounds(left, top, d.width, d.height); + top += d.height + GUI_BETWEEN; + // Editor and console font [ Source Code Pro ] @@ -293,7 +323,7 @@ public class Preferences { // updated in the background. Container fontBox = Box.createHorizontalBox(); - JLabel fontLabel = new JLabel("Editor and Console font "); + JLabel fontLabel = new JLabel(Language.text("preferences.editor_and_console_font")+": "); final String fontTip = "" + "Select the font used in the Editor and the Console.
" + "Only monospaced (fixed-width) fonts may be used,
" + @@ -318,16 +348,18 @@ public class Preferences { // Editor font size [ 12 ] Console font size [ 10 ] Container box = Box.createHorizontalBox(); - - label = new JLabel("Editor font size: "); + label = new JLabel(Language.text("preferences.editor_font_size")+": "); box.add(label); fontSizeField = new JComboBox(FONT_SIZES); +// fontSizeField = new JComboBox(FONT_SIZES); fontSizeField.setEditable(true); box.add(fontSizeField); box.add(Box.createHorizontalStrut(GUI_BETWEEN)); - label = new JLabel("Console font size: "); + label = new JLabel(Language.text("preferences.console_font_size")+": "); + box.add(label); +// consoleSizeField = new JComboBox(FONT_SIZES); consoleSizeField = new JComboBox(FONT_SIZES); consoleSizeField.setEditable(true); box.add(consoleSizeField); @@ -341,7 +373,7 @@ public class Preferences { Container colorBox = Box.createHorizontalBox(); - label = new JLabel("Background color when Presenting: "); + label = new JLabel(Language.text("preferences.background_color")+": "); colorBox.add(label); final String colorTip = "" @@ -451,11 +483,8 @@ public class Preferences { label = new JLabel("#"); colorBox.add(label); - colorBox.add(presentColorHex); - colorBox.add(Box.createHorizontalStrut(GUI_SMALL + 2 / 3 * GUI_SMALL)); - colorBox.add(presentColor); pain.add(colorBox); @@ -464,9 +493,10 @@ public class Preferences { top += d.height + GUI_BETWEEN; + // [ ] Use smooth text in editor window - - editorAntialiasBox = new JCheckBox("Use smooth text in editor window"); + + editorAntialiasBox = new JCheckBox(Language.text("preferences.use_smooth_text")); pain.add(editorAntialiasBox); d = editorAntialiasBox.getPreferredSize(); // adding +10 because ubuntu + jre 1.5 truncating items @@ -474,22 +504,25 @@ public class Preferences { right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; - + // [ ] Enable complex text input (for Japanese et al, requires restart) inputMethodBox = - new JCheckBox("Enable complex text input " + - "(i.e. Japanese, requires restart of Processing)"); + new JCheckBox(Language.text("preferences.enable_complex_text_input")+ + " ("+Language.text("preferences.enable_complex_text_input_example")+ + ", "+Language.text("preferences.requires_restart")+")"); pain.add(inputMethodBox); d = inputMethodBox.getPreferredSize(); inputMethodBox.setBounds(left, top, d.width + 10, d.height); right = Math.max(right, left + d.width); top += d.height + GUI_BETWEEN; + // [ ] Continuously check for errors - PDE X errorCheckerBox = - new JCheckBox("Continuously check for errors"); + new JCheckBox(Language.text("preferences.continuously_check")); + pain.add(errorCheckerBox); d = errorCheckerBox.getPreferredSize(); errorCheckerBox.setBounds(left, top, d.width + 10, d.height); @@ -497,30 +530,33 @@ public class Preferences { //top += d.height + GUI_BETWEEN; int warningLeft = left + d.width; + // [ ] Show Warnings - PDE X warningsCheckerBox = - new JCheckBox("Show warnings"); + new JCheckBox(Language.text("preferences.show_warnings")); pain.add(warningsCheckerBox); d = warningsCheckerBox.getPreferredSize(); warningsCheckerBox.setBounds(warningLeft, top, d.width + 10, d.height); right = Math.max(right, warningLeft + d.width); top += d.height + GUI_BETWEEN; + // [ ] Enable Code Completion - PDE X codeCompletionBox = - new JCheckBox("Enable code completion"); + new JCheckBox(Language.text("preferences.code_completion")); pain.add(codeCompletionBox); d = codeCompletionBox.getPreferredSize(); codeCompletionBox.setBounds(left, top, d.width + 10, d.height); int toggleLeft = left + d.width; + // [ ] Toggle Code Completion Trigger - PDE X final String modifier = Base.isMacOS() ? "\u2318" : "Ctrl"; codeCompletionTriggerBox = - new JCheckBox("Trigger with " + modifier + "-space"); + new JCheckBox(Language.text("preferences.trigger_with")+" " + modifier + "-"+Language.text("preferences.cmd_space")); pain.add(codeCompletionTriggerBox); d = codeCompletionTriggerBox.getPreferredSize(); codeCompletionTriggerBox.setBounds(toggleLeft, top, d.width + 10, d.height); @@ -531,7 +567,7 @@ public class Preferences { // [ ] Increase maximum available memory to [______] MB Container memoryBox = Box.createHorizontalBox(); - memoryOverrideBox = new JCheckBox("Increase maximum available memory to "); + memoryOverrideBox = new JCheckBox(Language.text("preferences.increase_max_memory")+": "); memoryBox.add(memoryOverrideBox); memoryField = new JTextField(4); memoryBox.add(memoryField); @@ -545,7 +581,7 @@ public class Preferences { // [ ] Delete previous application folder on export deletePreviousBox = - new JCheckBox("Delete previous application folder on export"); + new JCheckBox(Language.text("preferences.delete_previous_folder_on_export")); pain.add(deletePreviousBox); d = deletePreviousBox.getPreferredSize(); deletePreviousBox.setBounds(left, top, d.width + 10, d.height); @@ -555,7 +591,8 @@ public class Preferences { // [ ] Hide tab/toolbar background image - whinyBox = new JCheckBox("Hide tab/toolbar background image (requires restart)"); + whinyBox = new JCheckBox(Language.text("preferences.hide_toolbar_background_image")+ + " ("+Language.text("preferences.requires_restart")+")"); pain.add(whinyBox); d = whinyBox.getPreferredSize(); whinyBox.setBounds(left, top, d.width + 10, d.height); @@ -565,7 +602,7 @@ public class Preferences { // [ ] Check for updates on startup - checkUpdatesBox = new JCheckBox("Check for updates on startup"); + checkUpdatesBox = new JCheckBox(Language.text("preferences.check_for_updates_on_startup")); pain.add(checkUpdatesBox); d = checkUpdatesBox.getPreferredSize(); checkUpdatesBox.setBounds(left, top, d.width + 10, d.height); @@ -576,12 +613,8 @@ public class Preferences { // Run sketches on display [ 1 ] Container displayBox = Box.createHorizontalBox(); - JLabel displayLabel = new JLabel("Run sketches on display "); - final String tip = "" + - "Sets the display where sketches are initially placed.
" + - "As usual, if the sketch window is moved, it will re-open
" + - "at the same location, however when running in present
" + - "(full screen) mode, this display will always be used."; + JLabel displayLabel = new JLabel(Language.text("preferences.run_sketches_on_display")+": "); + final String tip = "" + Language.text("preferences.run_sketches_on_display.tip"); displayLabel.setToolTipText(tip); displayBox.add(displayLabel); displaySelectionBox = new JComboBox(); @@ -591,13 +624,13 @@ public class Preferences { d = displayBox.getPreferredSize(); displayBox.setBounds(left, top, d.width, d.height); top += d.height + GUI_BETWEEN; - + // [ ] Automatically associate .pde files with Processing if (Base.isWindows()) { autoAssociateBox = - new JCheckBox("Automatically associate .pde files with Processing"); + new JCheckBox(Language.text("preferences.automatically_associate_pde_files")); pain.add(autoAssociateBox); d = autoAssociateBox.getPreferredSize(); autoAssociateBox.setBounds(left, top, d.width + 10, d.height); @@ -608,7 +641,7 @@ public class Preferences { // More preferences are in the ... - label = new JLabel("More preferences can be edited directly in the file"); + label = new JLabel(Language.text("preferences.file")+":"); pain.add(label); d = label.getPreferredSize(); label.setForeground(Color.gray); @@ -637,7 +670,7 @@ public class Preferences { right = Math.max(right, left + d.width); top += d.height; - label = new JLabel("(edit only when Processing is not running)"); + label = new JLabel("("+Language.text("preferences.file.hint")+")"); pain.add(label); d = label.getPreferredSize(); label.setForeground(Color.gray); @@ -772,7 +805,20 @@ public class Preferences { // setBoolean("editor.external", externalEditorBox.isSelected()); setBoolean("update.check", checkUpdatesBox.isSelected()); //$NON-NLS-1$ - + + // Save Language + HashMap languages = Language.getLanguages(); + String language = ""; + for (Map.Entry lang : languages.entrySet()) { + if( lang.getValue().equals( String.valueOf(languageSelectionBox.getSelectedItem()) ) ){ + language = lang.getKey().trim().toLowerCase(); + break; + } + } + if(!language.equals(Language.getLanguage()) && !language.equals("")){ + Language.setLanguage(language); + } + int oldDisplayIndex = getInteger("run.display"); //$NON-NLS-1$ int displayIndex = 0; for (int d = 0; d < displaySelectionBox.getItemCount(); d++) { diff --git a/app/src/processing/app/Sketch.java b/app/src/processing/app/Sketch.java index 7c00152a3..d0a644c7c 100644 --- a/app/src/processing/app/Sketch.java +++ b/app/src/processing/app/Sketch.java @@ -806,7 +806,7 @@ public class Sketch { final String oldName2 = folder.getName(); // TODO rewrite this to use shared version from PApplet - final String PROMPT = "Save sketch folder as..."; + final String PROMPT = Language.text("save"); if (Preferences.getBoolean("chooser.files.native")) { // get new name for folder FileDialog fd = new FileDialog(editor, PROMPT, FileDialog.SAVE); @@ -1033,8 +1033,7 @@ public class Sketch { } // get a dialog, select a file to add to the sketch - String prompt = - "Select an image or other data file to copy to your sketch"; + String prompt = Language.text("file"); //FileDialog fd = new FileDialog(new Frame(), prompt, FileDialog.LOAD); FileDialog fd = new FileDialog(editor, prompt, FileDialog.LOAD); fd.setVisible(true); diff --git a/app/src/processing/app/contrib/ContributionManagerDialog.java b/app/src/processing/app/contrib/ContributionManagerDialog.java index 9d46e21cb..a4a4e4f70 100644 --- a/app/src/processing/app/contrib/ContributionManagerDialog.java +++ b/app/src/processing/app/contrib/ContributionManagerDialog.java @@ -60,7 +60,7 @@ public class ContributionManagerDialog { title = "Update Manager"; filter = ContributionType.createUpdateFilter(); } else { - title = type.getTitle() + " Manager"; + // title = type.getTitle() + " Manager"; filter = type.createFilter(); } contribListing = ContributionListing.getInstance(); @@ -151,7 +151,7 @@ public class ContributionManagerDialog { filterPanel.add(Box.createHorizontalStrut(6)); - JLabel categoryLabel = new JLabel("Category:"); + JLabel categoryLabel = new JLabel(Language.text("library.category")); filterPanel.add(categoryLabel); filterPanel.add(Box.createHorizontalStrut(5)); @@ -374,12 +374,13 @@ public class ContributionManagerDialog { class FilterField extends JTextField { - final static String filterHint = "Filter your search..."; + String filterHint; boolean showingHint; List filters; public FilterField () { - super(filterHint); + super(Language.text("library.filter_your_search")); + filterHint = Language.text("library.filter_your_search"); showingHint = true; filters = new ArrayList(); diff --git a/app/src/processing/app/languages/PDE.properties b/app/src/processing/app/languages/PDE.properties new file mode 100644 index 000000000..09414dada --- /dev/null +++ b/app/src/processing/app/languages/PDE.properties @@ -0,0 +1,214 @@ + + +# --------------------------------------- +# Language: English (en) (default) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Library | Tools | Help | +# | File | +menu.file = File +menu.file.new = New +menu.file.open = Open... +menu.file.sketchbook = Sketchbook +menu.file.recent = Recent +menu.file.examples = Examples... +menu.file.close = Close +menu.file.save = Save +menu.file.save_as = Save As... +menu.file.export_application = Export Application... +menu.file.page_setup = Page Setup +menu.file.print = Print... +menu.file.preferences = Preferences... +menu.file.quit = Quit + +# | File | Edit | Sketch | Library | Tools | Help | +# | Edit | +menu.edit = Edit +menu.edit.undo = Undo +menu.edit.redo = Redo +menu.edit.cut = Cut +menu.edit.copy = Copy +menu.edit.copy_as_html = Copy as HTML +menu.edit.paste = Paste +menu.edit.select_all = Select All +menu.edit.auto_format = Auto Format +menu.edit.comment_uncomment = Comment/Uncomment +menu.edit.increase_indent = \u2192 Increase Indent +menu.edit.decrease_indent = \u2190 Decrease Indent +menu.edit.find = Find... +menu.edit.find_next = Find Next +menu.edit.find_previous = Find Previous +menu.edit.use_selection_for_find = Use Selection for Find + +# | File | Edit | Sketch | Library | Tools | Help | +# | Sketch | +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Show Sketch Folder +menu.sketch.add_file = Add File... + +# | File | Edit | Sketch | Library | Tools | Help | +# | Library | +menu.library = Import Library... +menu.library.add_library = Add Library... +menu.library.contributed = Contributed +menu.library.no_core_libraries = mode has no core libraries + +# | File | Edit | Sketch | Library | Tools | Help | +# | Tools | +menu.tools = Tools +menu.tools.color_selector = Color Selector... +menu.tools.create_font = Create Font... +menu.tools.archive_sketch = Archive Sketch +menu.tools.fix_the_serial_lbrary = Fix the Serial Library +menu.tools.install_processing_java = Install "processing-java" +menu.tools.add_tool = Add Tool... + +# | File | Edit | Sketch | Library | Tools | Help | +# | Help | +menu.help = Help +menu.help.about = About Processing +menu.help.environment = Environment +menu.help.reference = Reference +menu.help.find_in_reference = Find in Reference +menu.help.online = Online +menu.help.getting_started = Getting Started +menu.help.getting_started.url = http://processing.org/learning/gettingstarted/ +menu.help.troubleshooting = Troubleshooting +menu.help.troubleshooting.url = http://wiki.processing.org/w/Troubleshooting +menu.help.faq = Frequently Asked Questions +menu.help.faq.url = http://wiki.processing.org/w/FAQ +menu.help.foundation = The Processing Foundation +menu.help.foundation.url = http://processing.org/foundation/ +menu.help.visit = Visit Processing.org +menu.help.visit.url = http://processing.org/ + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Yes +prompt.no = No +prompt.cancel = Cancel +prompt.ok = OK +prompt.browse = Browse +prompt.export = Export + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Open a Processing sketch... + +# Save (Frame) +save = Save sketch folder as... +save.title = Do you want to save changes to this sketch
before closing? +save.hint = If you don't save, your changes will be lost. +save.btn.save = Save +save.btn.dont_save = Don't Save + +# Preferences (Frame) +preferences = Preferences +preferences.button.width = 80 +preferences.requires_restart = requires restart of Processing +preferences.sketchbook_location = Sketchook location +preferences.language = Language +preferences.editor_and_console_font = Editor and Console font +preferences.editor_font_size = Editor font size +preferences.console_font_size = Console font size +preferences.background_color = Background color when Presenting +preferences.use_smooth_text = Use smooth text in editor window +preferences.enable_complex_text_input = Enable complex text input +preferences.enable_complex_text_input_example = i.e. Japanese +preferences.continuously_check = Continuously check for errors +preferences.show_warnings = Show warnings +preferences.code_completion = Code completion +preferences.trigger_with = Trigger with +preferences.cmd_space = space +preferences.increase_max_memory = Increase maximum available memory to +preferences.delete_previous_folder_on_export = Delete previous folder on export +preferences.hide_toolbar_background_image = Hide tab/toolbar background image +preferences.check_for_updates_on_startup = Check for updates on startup +preferences.run_sketches_on_display = Run sketches on display +preferences.run_sketches_on_display.tip = \ +Sets the display where sketches are initially placed.
\ +As usual, if the sketch window is moved, it will re-open
\ +at the same location, however when running in present
\ +(full screen) mode, this display will always be used. +preferences.automatically_associate_pde_files = Automatically associate .pde files with Processing +preferences.launch_programs_in = Launch programs in +preferences.launch_programs_in.mode = mode +preferences.file = More preferences can be edited directly in the file +preferences.file.hint = edit only when Processing is not running + +# Sketchbook Location (Frame) +sketchbook_location = Select new sketchbook location + +# Export (Frame) +export = Export Options +export.platforms = Platforms +export.options = Options +export.options.fullscreen = Full Screen (Present mode) +export.options.show_stop_button = Show a Stop button +export.description.line1 = Export to Application creates double-clickable, +export.description.line2 = standalone applications for the selected plaforms. + +# Find (Frame) +find = Find +find.find = Find: +find.replace_with = Replace with: +find.ignore_case = Ignore Case +find.all_tabs = All Tabs +find.wrap_around Wrap Around +find.btn.replace_all = Replace All +find.btn.replace = Replace +find.btn.find_and_replace = Find & Replace +find.btn.previous = Previous +find.btn.find = Find + +# Find in reference (Frame) +find_in_reference = Find in Reference + +# Library Manager (Frame) +library.category = Category: +library.filter_your_search = Filter your search... + +# File (Frame) +file = Select an image or other data file to copy to your sketch + +# Create Font (Frame) +create_font = Create Font + +# Color Selector (Frame) +color_selector = Color Selector + +# Archive Sketch (Frame) +archive_sketch = Archive sketch as... + + +# --------------------------------------- +# Toolbar + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Run +toolbar.present = Present +toolbar.stop = Stop +toolbar.new = New +toolbar.open = Open +toolbar.save = Save +toolbar.export_application = Export Application +toolbar.add_mode = Add mode... + +# [Tab1] [Tab2] [v] +editor.header.new_tab = New Tab +editor.header.rename = Rename +editor.header.delete = Delete +editor.header.previous_tab = Previous Tab +editor.header.next_tab = Next Tab +editor.header.delete.warning.title = Yeah, no. +editor.header.delete.warning.text = You can't delete the last tab of the last open sketch. \ No newline at end of file diff --git a/app/src/processing/app/languages/PDE_de.properties b/app/src/processing/app/languages/PDE_de.properties new file mode 100644 index 000000000..ce5aeb197 --- /dev/null +++ b/app/src/processing/app/languages/PDE_de.properties @@ -0,0 +1,204 @@ + + +# --------------------------------------- +# Language: German (Deutsch) (de) +# --------------------------------------- + + +# --------------------------------------- +# Menu + +# | File | Edit | Sketch | Library | Tools | Help | +# | File | +menu.file = Datei +menu.file.new = Neu +menu.file.open = Öffnen ... +menu.file.sketchbook = Sketchbook +menu.file.recent = Letzte Dateien öffnen +menu.file.examples = Beispiele ... +menu.file.close = Schließen +menu.file.save = Speichern +menu.file.save_as = Speichern unter ... +menu.file.export_application = Exportieren +menu.file.page_setup = Eine Kopie drucken +menu.file.print = Drucken ... +menu.file.preferences = Einstellungen ... +menu.file.quit = Beenden + +# | File | Edit | Sketch | Library | Tools | Help | +# | Edit | +menu.edit = Bearbeiten +menu.edit.undo = Rückgängig +menu.edit.redo = Wiederholen +menu.edit.cut = Ausschneiden +menu.edit.copy = Kopieren +menu.edit.copy_as_html = Kopieren als HTML +menu.edit.paste = Einfügen +menu.edit.select_all = Alle auswählen +menu.edit.auto_format = Autoformatierung +menu.edit.comment_uncomment = Ein- und Auskommentieren +menu.edit.increase_indent = \u2192 Ausrücken +menu.edit.decrease_indent = \u2190 Einrücken +menu.edit.find = Suchen ... +menu.edit.find_next = Weiter suchen +menu.edit.find_previous = Vorher suchen +menu.edit.use_selection_for_find = Suche in Auswahl + +# | File | Edit | Sketch | Library | Tools | Help | +# | Sketch | +menu.sketch = Sketch +menu.sketch.show_sketch_folder = Zeige Sketch Verzeichnis +menu.sketch.add_file = Datei hinzufügen ... + +# | File | Edit | Sketch | Library | Tools | Help | +# | Library | +menu.library = Library importieren... +menu.library.add_library = Library hinzufügen... +menu.library.contributed = Contributed +menu.library.no_core_libraries = Mode weist keine Kern-Libraries auf + +# | File | Edit | Sketch | Library | Tools | Help | +# | Tools | +menu.tools = Tools +menu.tools.color_selector = Farbauswahl ... +menu.tools.create_font = Schrift erstellen ... +menu.tools.archive_sketch = Sketch archivieren ... +menu.tools.fix_the_serial_lbrary = "Serial Library" beheben ... +menu.tools.install_processing_java = "processing-java" installieren ... +menu.tools.add_tool = Tool hinzufügen ... + +# | File | Edit | Sketch | Library | Tools | Help | +# | Help | +menu.help = Hilfe +menu.help.about = Über Processing +menu.help.environment = Entwicklungsumgebung +menu.help.reference = Referenz +menu.help.find_in_reference = Suche in Referenz +menu.help.online = Online +menu.help.getting_started = Erste Schritte +menu.help.troubleshooting = Fehlerbehandlung +menu.help.faq = Häufig gestellte Fragen +menu.help.foundation = "The Processing Foundation" +menu.help.visit = Processing.org besuchen + + +# --------------------------------------- +# Basics + +# Buttons +prompt.yes = Ja +prompt.no = Nein +prompt.cancel = Abbrechen +prompt.ok = Ok +prompt.browse = Durchsuchen +prompt.export = Exportieren + + +# --------------------------------------- +# Frames + +# Open (Frame) +open = Processing Sketch öffnen ... + +# Save (Frame) +save = Sketch speichern unter ... +save.title = Änderungen speichern? +save.hint = Wenn nicht, gehen alle Änderungen verloren. +save.btn.save = Speichern +save.btn.dont_save = Nicht speichern + +# Preferences (Frame) +preferences = Einstellungen +preferences.button.width = 110 +preferences.requires_restart = nach Neustart von Processing aktiv +preferences.sketchbook_location = Sketchbook Pfad +preferences.language = Sprache +preferences.editor_and_console_font = Editor und Konsolen Schriftart +preferences.editor_font_size = Editor Schriftgröße +preferences.console_font_size = Konsolen Schriftgröße +preferences.background_color = Hintergrundfarbe im Present Modus +preferences.use_smooth_text = Editor Textglättung +preferences.enable_complex_text_input = Komplexe Sprachen erlauben +preferences.enable_complex_text_input_example = z.B. Japanisch +preferences.continuously_check = Kontinuierliche Fehlererkennung +preferences.show_warnings = Zeige Warnungen +preferences.code_completion = Codevervollständigung +preferences.trigger_with = Trigger mit +preferences.cmd_space = Leerzeichen +preferences.increase_max_memory = Maximalen Speicher erhöhen auf +preferences.delete_previous_folder_on_export = Leere Verzeichnis beim Exportieren +preferences.hide_toolbar_background_image = Hintergrundgrafik der Toolbar ausblenden +preferences.check_for_updates_on_startup = Prüfung auf Updates bei Programmstart +preferences.run_sketches_on_display = Starte Sketch auf Bildschirm +preferences.automatically_associate_pde_files = Öffne .pde Dateien automatisch mit Processing +preferences.launch_programs_in = Anwendungen starten im +preferences.launch_programs_in.mode = Modus +preferences.file = Weitere Einstellungen können in der folgenden Datei bearbeitet werden +preferences.file.hint = Processing darf während der Bearbeitung nicht laufen + +# Sketchbook Location (Frame) +sketchbook_location = Neuen Sketchbook Pfad auswählen + +# Export (Frame) +export = Export Optionen +export.platforms = Plattformen +export.options = Optionen +export.options.fullscreen = Bildschirmfüllend (Present Mode) +export.options.show_stop_button = Sichtbarer Stopp Button +export.description.line1 = Exportierte Sketches sind ausführbare An- +export.description.line2 = wendungen für die ausgewählten Plattformen. + +# Find (Frame) +find = Suchen +find.find = Suche: +find.replace_with = Ersetzen durch: +find.ignore_case = Groß-/Kleinschreibung ignorieren +find.all_tabs = Alle Tabs +find.wrap_around = Nächsten Zeilen +find.btn.replace_all = Alle ersetzen +find.btn.replace = Ersetzen +find.btn.find_and_replace = Suchen & Ersetzen +find.btn.previous = Vorherige +find.btn.find = Suchen + +# Find in reference (Frame) +find_in_reference = Suche in Referenz + +# Library Manager (Frame) +library.category = Kategorie: +library.filter_your_search = Suche filtern ... + +# File (Frame) +file = Grafik oder andere Datei zum Sketch kopieren + +# Create Font (Frame) +create_font = Schrift erstellen + +# Color Selector (Frame) +color_selector = Farbauswahl + +# Archive Sketch (Frame) +archive_sketch = Sketch archivieren unter ... + + +# --------------------------------------- +# Toolbar + +# [Run/Present] [Stop] [New] [Open] [Save] +toolbar.run = Starten +toolbar.present = Starten in Vollbild +toolbar.stop = Stoppen +toolbar.new = Neu +toolbar.open = Öffnen +toolbar.save = Speichern +toolbar.export_application = Exportieren +toolbar.add_mode = Modus hinzufügen ... + +# [Tab1] [Tab2] [v] +editor.header.new_tab = Neuer Tab +editor.header.rename = Unbenennen +editor.header.delete = Löschen +editor.header.previous_tab = Nächster Tab +editor.header.next_tab = Vorheriger Tab +editor.header.delete.warning.title = Yeah, nein. +editor.header.delete.warning.text = Du kannst nicht den letzten Tab des letzten Sketches löschen. \ No newline at end of file diff --git a/app/src/processing/app/languages/PDE_en.properties b/app/src/processing/app/languages/PDE_en.properties new file mode 100644 index 000000000..a657df494 --- /dev/null +++ b/app/src/processing/app/languages/PDE_en.properties @@ -0,0 +1 @@ +# -> PDE.properties \ No newline at end of file diff --git a/app/src/processing/app/tools/Archiver.java b/app/src/processing/app/tools/Archiver.java index 4e34b9748..a10643649 100644 --- a/app/src/processing/app/tools/Archiver.java +++ b/app/src/processing/app/tools/Archiver.java @@ -44,7 +44,7 @@ public class Archiver implements Tool { public String getMenuTitle() { - return "Archive Sketch"; + return Language.text("menu.tools.archive_sketch"); } @@ -95,7 +95,7 @@ public class Archiver implements Tool { } while (newbie.exists()); // open up a prompt for where to save this fella - PApplet.selectOutput("Archive sketch as...", "fileSelected", newbie, this, editor); + PApplet.selectOutput(Language.text("archive_sketch"), "fileSelected", newbie, this, editor); } diff --git a/app/src/processing/app/tools/ColorSelector.java b/app/src/processing/app/tools/ColorSelector.java index 68bc92b68..59cce7760 100644 --- a/app/src/processing/app/tools/ColorSelector.java +++ b/app/src/processing/app/tools/ColorSelector.java @@ -47,11 +47,14 @@ public class ColorSelector implements Tool { public String getMenuTitle() { - return "Color Selector"; + return Language.text("menu.tools.color_selector"); } public void init(Editor editor) { + + // Language.text("color_selector") + if (selector == null) { selector = new ColorChooser(editor, false, Color.WHITE, "Copy", new ActionListener() { diff --git a/app/src/processing/app/tools/CreateFont.java b/app/src/processing/app/tools/CreateFont.java index 17d6cbc73..d119e76d3 100644 --- a/app/src/processing/app/tools/CreateFont.java +++ b/app/src/processing/app/tools/CreateFont.java @@ -74,12 +74,12 @@ public class CreateFont extends JFrame implements Tool { public CreateFont() { - super("Create Font"); + super(Language.text("create_font")); } public String getMenuTitle() { - return "Create Font..."; + return Language.text("menu.tools.create_font"); } diff --git a/app/src/processing/app/tools/InstallCommander.java b/app/src/processing/app/tools/InstallCommander.java index 3f5b47748..1967c4e30 100644 --- a/app/src/processing/app/tools/InstallCommander.java +++ b/app/src/processing/app/tools/InstallCommander.java @@ -29,6 +29,7 @@ import javax.swing.JOptionPane; import processing.app.Base; import processing.app.Editor; +import processing.app.Language; import processing.core.PApplet; @@ -37,7 +38,7 @@ public class InstallCommander implements Tool { public String getMenuTitle() { - return "Install “processing-java”"; + return Language.text("menu.tools.install_processing_java"); } diff --git a/app/src/processing/app/tools/SerialFixer.java b/app/src/processing/app/tools/SerialFixer.java new file mode 100644 index 000000000..6e5e1612d --- /dev/null +++ b/app/src/processing/app/tools/SerialFixer.java @@ -0,0 +1,90 @@ +/* -*- mode: java; c-basic-offset: 2; indent-tabs-mode: nil -*- */ + +/* + Part of the Processing project - http://processing.org + + Copyright (c) 2012 The Processing Foundation + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License as published by + the Free Software Foundation, version 2. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software Foundation, + Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA +*/ + +package processing.app.tools; + +import java.io.File; + +import javax.swing.JOptionPane; + +import processing.app.Base; +import processing.app.Editor; +import processing.app.Language; +import processing.core.PApplet; + + +public class SerialFixer implements Tool { + Editor editor; + + + public String getMenuTitle() { + return Language.text("menu.tools.fix_the_serial_lbrary"); + } + + + public void init(Editor editor) { + this.editor = editor; + } + + + public void run() { + final String primary = + "Attempt to fix common serial port problems?"; + final String secondary = + "Click “OK” to perform additional installation steps to enable " + + "the Serial library. An administrator password will be required."; + + int result = + JOptionPane.showConfirmDialog(editor, + " " + + " " + + "" + primary + "" + + "

" + secondary + "

", + "Commander", + JOptionPane.OK_CANCEL_OPTION, + JOptionPane.QUESTION_MESSAGE); + + if (result == JOptionPane.OK_OPTION) { + String shellScript = "mkdir -p /var/lock && chmod 777 /var/lock"; + String appleScript = + "do shell script \"" + shellScript + "\" with administrator privileges"; + PApplet.exec(new String[] { "osascript", "-e", appleScript }); + } + editor.statusNotice("Finished."); + } + + + static public boolean isNeeded() { + if (Base.isMacOS()) { + File lockFolder = new File("/var/lock"); + if (!lockFolder.exists() || + !lockFolder.canRead() || + !lockFolder.canWrite() || + !lockFolder.canExecute()) { + return true; + } + } + return false; + } +} \ No newline at end of file diff --git a/app/src/processing/mode/java/JavaEditor.java b/app/src/processing/mode/java/JavaEditor.java index 270209ef2..2bdc199da 100644 --- a/app/src/processing/mode/java/JavaEditor.java +++ b/app/src/processing/mode/java/JavaEditor.java @@ -96,12 +96,12 @@ public class JavaEditor extends Editor { public JMenu buildHelpMenu() { // To deal with a Mac OS X 10.5 bug, add an extra space after the name // so that the OS doesn't try to insert its slow help menu. - JMenu menu = new JMenu("Help "); + JMenu menu = new JMenu(Language.text("menu.help")+" "); JMenuItem item; // macosx already has its own about menu if (!Base.isMacOS()) { - item = new JMenuItem("About Processing"); + item = new JMenuItem(Language.text("menu.help.about")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { new About(JavaEditor.this); @@ -110,7 +110,7 @@ public class JavaEditor extends Editor { menu.add(item); } - item = new JMenuItem("Environment"); + item = new JMenuItem(Language.text("menu.help.environment")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { showReference("environment" + File.separator + "index.html"); @@ -118,7 +118,7 @@ public class JavaEditor extends Editor { }); menu.add(item); - item = new JMenuItem("Reference"); + item = new JMenuItem(Language.text("menu.help.reference")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { showReference("index.html"); @@ -126,7 +126,7 @@ public class JavaEditor extends Editor { }); menu.add(item); - item = Toolkit.newJMenuItemShift("Find in Reference", 'F'); + item = Toolkit.newJMenuItemShift(Language.text("menu.help.find_in_reference"), 'F'); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { if (textarea.isSelectionActive()) { @@ -137,46 +137,46 @@ public class JavaEditor extends Editor { menu.add(item); menu.addSeparator(); - item = new JMenuItem("Online"); + item = new JMenuItem(Language.text("menu.help.online")); item.setEnabled(false); menu.add(item); - item = new JMenuItem("Getting Started"); + item = new JMenuItem(Language.text("menu.help.getting_started")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL("http://processing.org/learning/gettingstarted/"); + Base.openURL(Language.text("menu.help.getting_started.url")); } }); menu.add(item); - item = new JMenuItem("Troubleshooting"); + item = new JMenuItem(Language.text("menu.help.troubleshooting")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL("http://wiki.processing.org/w/Troubleshooting"); + Base.openURL(Language.text("menu.help.troubleshooting.url")); } }); menu.add(item); - item = new JMenuItem("Frequently Asked Questions"); + item = new JMenuItem(Language.text("menu.help.faq")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL("http://wiki.processing.org/w/FAQ"); + Base.openURL(Language.text("menu.help.faq.url")); } }); menu.add(item); - item = new JMenuItem("The Processing Foundation"); + item = new JMenuItem(Language.text("menu.help.foundation")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL("http://processing.org/foundation/"); + Base.openURL(Language.text("menu.help.foundation.url")); } }); menu.add(item); - item = new JMenuItem("Visit Processing.org"); + item = new JMenuItem(Language.text("menu.help.visit")); item.addActionListener(new ActionListener() { public void actionPerformed(ActionEvent e) { - Base.openURL("http://processing.org/"); + Base.openURL(Language.text("menu.help.visit.url")); } }); menu.add(item); @@ -260,8 +260,14 @@ public class JavaEditor extends Editor { panel.setLayout(new BoxLayout(panel, BoxLayout.Y_AXIS)); panel.add(Box.createVerticalStrut(6)); - String line1 = "Export to Application creates double-clickable,"; - String line2 = "standalone applications for the selected plaforms."; +// Box panel = Box.createVerticalBox(); +// Box labelBox = Box.createHorizontalBox(); +// String msg = "Click Export to Application to create a standalone, " + +// "double-clickable application for the selected plaforms."; +// String msg = "Export to Application creates a standalone, \n" + +// "double-clickable application for the selected plaforms."; + String line1 = Language.text("export.description.line1"); + String line2 = Language.text("export.description.line2"); //String line2 = "standalone application for the current plaform."; JLabel label1 = new JLabel(line1, SwingConstants.CENTER); JLabel label2 = new JLabel(line2, SwingConstants.CENTER); @@ -316,20 +322,18 @@ public class JavaEditor extends Editor { platformPanel.add(macosxButton); platformPanel.add(Box.createHorizontalStrut(6)); platformPanel.add(linuxButton); - platformPanel.setBorder(new TitledBorder("Platforms")); + platformPanel.setBorder(new TitledBorder(Language.text("export.platforms"))); //Dimension goodIdea = new Dimension(wide, platformPanel.getPreferredSize().height); //platformPanel.setMaximumSize(goodIdea); // wide = Math.max(wide, platformPanel.getPreferredSize().width); platformPanel.setAlignmentX(Component.LEFT_ALIGNMENT); panel.add(platformPanel); int divWidth = platformPanel.getPreferredSize().width; - - // //int indent = new JCheckBox().getPreferredSize().width; int indent = 0; - final JCheckBox showStopButton = new JCheckBox("Show a Stop button"); + final JCheckBox showStopButton = new JCheckBox(Language.text("export.options.show_stop_button")); showStopButton.setSelected(Preferences.getBoolean("export.application.stop")); showStopButton.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { @@ -339,7 +343,8 @@ public class JavaEditor extends Editor { showStopButton.setEnabled(Preferences.getBoolean("export.application.fullscreen")); showStopButton.setBorder(new EmptyBorder(3, 13 + indent, 6, 13)); - final JCheckBox fullScreenButton = new JCheckBox("Full Screen (Present mode)"); + final JCheckBox fullScreenButton = new JCheckBox(Language.text("export.options.fullscreen")); + //fullscreenButton.setMnemonic(KeyEvent.VK_F); fullScreenButton.setSelected(Preferences.getBoolean("export.application.fullscreen")); fullScreenButton.addItemListener(new ItemListener() { public void itemStateChanged(ItemEvent e) { @@ -530,7 +535,8 @@ public class JavaEditor extends Editor { // - String[] options = { "Export", "Cancel" }; + String[] options = { Language.text("prompt.export"), Language.text("prompt.cancel") }; + final JOptionPane optionPane = new JOptionPane(panel, JOptionPane.PLAIN_MESSAGE, JOptionPane.YES_NO_OPTION, @@ -538,7 +544,8 @@ public class JavaEditor extends Editor { options, options[0]); - final JDialog dialog = new JDialog(this, "Export Application", true); + + final JDialog dialog = new JDialog(this, Language.text("export"), true); dialog.setContentPane(optionPane); // System.out.println(optionPane.getLayout()); diff --git a/app/src/processing/mode/java/JavaToolbar.java b/app/src/processing/mode/java/JavaToolbar.java index 182e95c2b..7cf02a68b 100644 --- a/app/src/processing/mode/java/JavaToolbar.java +++ b/app/src/processing/mode/java/JavaToolbar.java @@ -27,6 +27,7 @@ import javax.swing.JPopupMenu; import processing.app.Base; import processing.app.Editor; import processing.app.EditorToolbar; +import processing.app.Language; public class JavaToolbar extends EditorToolbar { @@ -67,13 +68,13 @@ public class JavaToolbar extends EditorToolbar { static public String getTitle(int index, boolean shift) { switch (index) { - case RUN: return !shift ? "Run" : "Present"; - case STOP: return "Stop"; - case NEW: return "New"; - case OPEN: return "Open"; - case SAVE: return "Save"; + case RUN: return !shift ? Language.text("toolbar.run") : Language.text("toolbar.present"); + case STOP: return Language.text("toolbar.stop"); + case NEW: return Language.text("toolbar.new"); + case OPEN: return Language.text("toolbar.open"); + case SAVE: return Language.text("toolbar.save"); // case EXPORT: return !shift ? "Export Application" : "Export Applet"; - case EXPORT: return "Export Application"; + case EXPORT: return Language.text("toolbar.export_application"); } return null; } diff --git a/build/shared/lib/language.txt b/build/shared/lib/language.txt new file mode 100644 index 000000000..8b1378917 --- /dev/null +++ b/build/shared/lib/language.txt @@ -0,0 +1 @@ + diff --git a/core/.settings/org.eclipse.jdt.core.prefs b/core/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 8e54f4641..000000000 --- a/core/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,381 +0,0 @@ -eclipse.preferences.version=1 -org.eclipse.jdt.core.compiler.annotation.inheritNullAnnotations=disabled -org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore -org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull -org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault -org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable -org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled -org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled -org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6 -org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve -org.eclipse.jdt.core.compiler.compliance=1.6 -org.eclipse.jdt.core.compiler.debug.lineNumber=generate -org.eclipse.jdt.core.compiler.debug.localVariable=generate -org.eclipse.jdt.core.compiler.debug.sourceFile=generate -org.eclipse.jdt.core.compiler.problem.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=ignore -org.eclipse.jdt.core.compiler.problem.deprecation=warning -org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=disabled -org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=disabled -org.eclipse.jdt.core.compiler.problem.discouragedReference=warning -org.eclipse.jdt.core.compiler.problem.emptyStatement=ignore -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore -org.eclipse.jdt.core.compiler.problem.fallthroughCase=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.includeNullInfoFromAsserts=disabled -org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning -org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=warning -org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=warning -org.eclipse.jdt.core.compiler.problem.localVariableHiding=ignore -org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning -org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore -org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=ignore -org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled -org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning -org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=disabled -org.eclipse.jdt.core.compiler.problem.missingSerialVersion=ignore -org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore -org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning -org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning -org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore -org.eclipse.jdt.core.compiler.problem.nonnullParameterAnnotationDropped=warning -org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error -org.eclipse.jdt.core.compiler.problem.nullReference=warning -org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error -org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning -org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning -org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore -org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning -org.eclipse.jdt.core.compiler.problem.potentialNullReference=ignore -org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore -org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore -org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning -org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore -org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore -org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore -org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore -org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled -org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning -org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled -org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled -org.eclipse.jdt.core.compiler.problem.syntacticNullAnalysisForFields=disabled -org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore -org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning -org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled -org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning -org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning -org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore -org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning -org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore -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.unusedTypeParameter=ignore -org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning -org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning -org.eclipse.jdt.core.compiler.source=1.6 -org.eclipse.jdt.core.formatter.align_type_members_on_columns=false -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=18 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=18 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=18 -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=36 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=18 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=18 -org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=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=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=false -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=1 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=1 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false -org.eclipse.jdt.core.formatter.indentation.size=2 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=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=80 -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=true -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_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true