diff --git a/java/.classpath b/java/.classpath deleted file mode 100644 index fb332f2..0000000 --- a/java/.classpath +++ /dev/null @@ -1,20 +0,0 @@ - - - - - - - - - - - - - - - - - - - - diff --git a/java/.project b/java/.project deleted file mode 100644 index f73d924..0000000 --- a/java/.project +++ /dev/null @@ -1,17 +0,0 @@ - - - Mimis - - - - - - org.eclipse.jdt.core.javabuilder - - - - - - org.eclipse.jdt.core.javanature - - diff --git a/java/.settings/org.eclipse.jdt.core.prefs b/java/.settings/org.eclipse.jdt.core.prefs deleted file mode 100644 index 2ab86a5..0000000 --- a/java/.settings/org.eclipse.jdt.core.prefs +++ /dev/null @@ -1,280 +0,0 @@ -#Wed Feb 02 12:09:06 CET 2011 -eclipse.preferences.version=1 -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.assertIdentifier=error -org.eclipse.jdt.core.compiler.problem.enumIdentifier=error -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=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_assignment=0 -org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 -org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 -org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 -org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 -org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 -org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0 -org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 -org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 -org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 -org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_after_package=1 -org.eclipse.jdt.core.formatter.blank_lines_before_field=0 -org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 -org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 -org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 -org.eclipse.jdt.core.formatter.blank_lines_before_method=1 -org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 -org.eclipse.jdt.core.formatter.blank_lines_before_package=0 -org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 -org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 -org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line -org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false -org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false -org.eclipse.jdt.core.formatter.comment.format_block_comments=true -org.eclipse.jdt.core.formatter.comment.format_header=false -org.eclipse.jdt.core.formatter.comment.format_html=true -org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true -org.eclipse.jdt.core.formatter.comment.format_line_comments=true -org.eclipse.jdt.core.formatter.comment.format_source_code=true -org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true -org.eclipse.jdt.core.formatter.comment.indent_root_tags=true -org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert -org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert -org.eclipse.jdt.core.formatter.comment.line_length=80 -org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true -org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true -org.eclipse.jdt.core.formatter.compact_else_if=true -org.eclipse.jdt.core.formatter.continuation_indentation=2 -org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 -org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off -org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on -org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false -org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true -org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true -org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_empty_lines=false -org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true -org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true -org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true -org.eclipse.jdt.core.formatter.indentation.size=4 -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert -org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_after_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=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=do not 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=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=do not insert -org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert -org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert -org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert -org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert -org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert -org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert -org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert -org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert -org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert -org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert -org.eclipse.jdt.core.formatter.join_lines_in_comments=true -org.eclipse.jdt.core.formatter.join_wrapped_lines=true -org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=false -org.eclipse.jdt.core.formatter.keep_empty_array_initializer_on_one_line=false -org.eclipse.jdt.core.formatter.keep_imple_if_on_one_line=true -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=false -org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0 -org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1 -org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=false -org.eclipse.jdt.core.formatter.tabulation.char=space -org.eclipse.jdt.core.formatter.tabulation.size=4 -org.eclipse.jdt.core.formatter.use_on_off_tags=false -org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=false -org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true -org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true diff --git a/java/.settings/org.eclipse.jdt.ui.prefs b/java/.settings/org.eclipse.jdt.ui.prefs deleted file mode 100644 index 83d4c48..0000000 --- a/java/.settings/org.eclipse.jdt.ui.prefs +++ /dev/null @@ -1,4 +0,0 @@ -#Wed Feb 02 12:09:06 CET 2011 -eclipse.preferences.version=1 -formatter_profile=_Rik -formatter_settings_version=11 diff --git a/java/cfg/log4j.properties b/java/cfg/log4j.properties index 0430f10..f8a8ad4 100644 --- a/java/cfg/log4j.properties +++ b/java/cfg/log4j.properties @@ -1,4 +1,4 @@ -log4j.rootLogger=DEBUG, CA +log4j.rootLogger=TRACE, CA log4j.appender.CA=org.apache.log4j.ConsoleAppender log4j.appender.CA.layout=org.apache.log4j.PatternLayout log4j.appender.CA.layout.ConversionPattern=%-4r [%t] %-5p %c %x - %m%n \ No newline at end of file diff --git a/java/mimis.exe b/java/mimis.exe deleted file mode 100644 index d0fb364..0000000 Binary files a/java/mimis.exe and /dev/null differ diff --git a/java/src/com/dt/iTunesController/iTunes.java b/java/src/com/dt/iTunesController/iTunes.java index 42e018c..6a54d07 100644 --- a/java/src/com/dt/iTunesController/iTunes.java +++ b/java/src/com/dt/iTunesController/iTunes.java @@ -1,6 +1,7 @@ package com.dt.iTunesController; import com.jacob.activeX.ActiveXComponent; +import com.jacob.com.ComThread; import com.jacob.com.Dispatch; import com.jacob.com.DispatchEvents; @@ -17,7 +18,7 @@ public class iTunes { ActiveXComponent iTunes; iTunesEvents iTunesEvents; DispatchEvents dispatchEvents; - + /** * Initiate iTunes Controller. * @return @@ -25,7 +26,7 @@ public class iTunes { public void connect() { iTunes = new ActiveXComponent("iTunes.Application"); } - + /** * Add an event handler to the iTunes controller. * @param itef The class that will handle the iTunes events. @@ -531,4 +532,8 @@ public class iTunes { public void playlistAddCurrentTrack(String name) { playlistAddTrack(name, getCurrentTrack()); } + + public void release() { + ComThread.Release(); + } } diff --git a/java/src/mimis/Button.java b/java/src/mimis/Button.java index 6e26e42..bf20715 100644 --- a/java/src/mimis/Button.java +++ b/java/src/mimis/Button.java @@ -2,6 +2,4 @@ package mimis; import mimis.input.Input; -public interface Button extends Input { - //public String getCode(); -} +public interface Button extends Input {} diff --git a/java/src/mimis/Client.java b/java/src/mimis/Client.java index 1225539..e80edf4 100644 --- a/java/src/mimis/Client.java +++ b/java/src/mimis/Client.java @@ -1,23 +1,24 @@ package mimis; +import mimis.exception.worker.ActivateException; import mimis.util.swing.Dialog; -import org.apache.commons.logging.Log; -import org.apache.commons.logging.LogFactory; - -public class Client { - protected Log log = LogFactory.getLog(getClass()); - +public class Client extends Main { public static final String IP = "127.0.0.1"; public static final int PORT = 6789; public Client(String ip, int port) { + super(); //eventRouter = new GlobalRouter(ip, port); } + public void activate() throws ActivateException { + super.activate(); + } + public static void main(String[] args) { String ip = Dialog.question("Server IP:", IP); int port = Integer.valueOf(Dialog.question("Server Port:", PORT)); - //new Client(ip, port).start(); + new Client(ip, port).start(); } -} +} \ No newline at end of file diff --git a/java/src/mimis/Gui.java b/java/src/mimis/Gui.java index 97a0216..63970e6 100644 --- a/java/src/mimis/Gui.java +++ b/java/src/mimis/Gui.java @@ -5,10 +5,7 @@ import java.awt.TextArea; import java.awt.event.WindowEvent; import javax.swing.JFrame; -import javax.swing.JLabel; import javax.swing.JPanel; -import javax.swing.JToggleButton; -import javax.swing.SwingConstants; import javax.swing.WindowConstants; import mimis.exception.worker.ActivateException; @@ -41,7 +38,7 @@ public class Gui extends Component { createFrame(buttonManagerArray); } - public void activate() throws ActivateException { + protected void activate() throws ActivateException { listen(Feedback.class); super.activate(); } @@ -67,12 +64,7 @@ public class Gui extends Component { JPanel controlPanel = new JPanel(new GridLayout(1, 0)); for (ButtonManager buttonManager : buttonManagerArray) { if (buttonManager.count() > 0) { - JPanel panel = new JPanel(new GridLayout(0, 1)); - panel.add(new JLabel(buttonManager.getTitle(), SwingConstants.CENTER)); - for (JToggleButton button : buttonManager.getButtons()) { - panel.add(button); - } - controlPanel.add(panel); + controlPanel.add(buttonManager.createPanel()); } } return controlPanel; diff --git a/java/src/mimis/Main.java b/java/src/mimis/Main.java index ede1320..996a3d1 100644 --- a/java/src/mimis/Main.java +++ b/java/src/mimis/Main.java @@ -1,56 +1,70 @@ package mimis; -import mimis.application.TestApplication; +import javax.swing.UIManager; + +import mimis.application.cmd.windows.gomplayer.GomPlayerApplication; +import mimis.application.cmd.windows.photoviewer.PhotoViewerApplication; +import mimis.application.cmd.windows.winamp.WinampApplication; +import mimis.application.cmd.windows.wmp.WMPApplication; import mimis.application.itunes.iTunesApplication; +import mimis.application.lirc.ipod.iPodApplication; +import mimis.application.mpc.MPCApplication; +import mimis.application.vlc.VLCApplication; +import mimis.device.javainput.extreme3d.Extreme3DDevice; +import mimis.device.javainput.rumblepad.RumblepadDevice; +import mimis.device.jintellitype.JIntellitypeDevice; import mimis.device.lirc.LircDevice; +import mimis.device.network.NetworkDevice; import mimis.device.panel.PanelDevice; +import mimis.device.wiimote.WiimoteDevice; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.input.Feedback; import mimis.input.Task; import mimis.manager.ButtonManager; -import mimis.manager.Manager; -import mimis.parser.Parser; -import mimis.router.Router; -import mimis.util.ArrayCycle; +import mimis.manager.CurrentButtonManager; import mimis.value.Action; -import mimis.value.Target; -import mimis.worker.Component; -public class Main extends Component { - protected TestApplication app; - protected Manager manager; - protected ButtonManager applicationManager, deviceManager; +public class Main extends Mimis { + protected CurrentButtonManager applicationManager; + protected ButtonManager deviceManager; protected Gui gui; - protected ArrayCycle componentCycle; - public Main() { - this.router = new Router(); + static { + try { + UIManager.setLookAndFeel(UIManager.getSystemLookAndFeelClassName()); + } catch (Exception e) {} + } - public void activate() throws ActivateException { - /* Create gui from application and device managers */ - Component[] applicationArray = initialize(false, app = new TestApplication(), new iTunesApplication()); - applicationManager = new ButtonManager("Applications", applicationArray); - deviceManager = new ButtonManager("Devices", initialize(false, new PanelDevice(), new LircDevice())); - gui = new Gui(this, applicationManager, deviceManager); + public Main() { + super( + new WinampApplication(), new GomPlayerApplication(), new WMPApplication(), new MPCApplication(), // WindowsApplication + new VLCApplication(), // CMDApplication + new iPodApplication(), // LircApplication + new PhotoViewerApplication(), // RobotApplication + new iTunesApplication()); // Component - /* Create general manager */ - manager = new Manager(initialize(true, router, new Parser(), gui)); + /* Create gui from application and device managers */ + applicationManager = new CurrentButtonManager(router, componentCycle, "Applications", currentArray); + deviceManager = new ButtonManager("Devices", initialize(false, + new Extreme3DDevice(), new RumblepadDevice(), // JavaInputDevice + new JIntellitypeDevice(), new PanelDevice(), new LircDevice(), new WiimoteDevice(), new NetworkDevice())); // Component + gui = new Gui(this, applicationManager, deviceManager); + manager.add(initialize(false, gui)); + } + + public void activate() throws ActivateException { + super.activate(); + listen(Task.class); /* Start managers */ applicationManager.start(); deviceManager.start(); - manager.start(); - /* Initialize component cycle */ - componentCycle = new ArrayCycle(applicationArray); - - listen(Task.class); - super.activate(); - - app.start(); - app.test(); + /* Force display of currenct component when gui started */ + gui.start(); + while (!gui.active()); + end(Action.CURRENT); } protected void deactivate() throws DeactivateException { @@ -59,7 +73,6 @@ public class Main extends Component { log.debug("Stop managers"); applicationManager.stop(); deviceManager.stop(); - manager.stop(); } public void exit() { @@ -68,39 +81,15 @@ public class Main extends Component { log.debug("Exit managers"); applicationManager.exit(); deviceManager.exit(); - manager.exit(); - } - - public Component[] initialize(boolean start, Component... componentArray) { - for (Component component : componentArray) { - component.setRouter(router); - if (start) { - component.start(); - } - } - return componentArray; - } - - public void task(Task task) { - if (task.getTarget().equals(Target.CURRENT)) { - componentCycle.current().add(task); - } else { - super.task(task); - } } public void end(Action action) { + super.end(action); switch (action) { + case CURRENT: case NEXT: - log.debug("Next component"); - route(new Feedback("Next component: " + componentCycle.next().getTitle())); - break; case PREVIOUS: - log.debug("Previous component"); - route(new Feedback("Previous component: " + componentCycle.previous().getTitle())); - break; - case EXIT: - exit(); + applicationManager.currentChanged(); break; } } diff --git a/java/src/mimis/Mimis.java b/java/src/mimis/Mimis.java new file mode 100644 index 0000000..216c95f --- /dev/null +++ b/java/src/mimis/Mimis.java @@ -0,0 +1,79 @@ +package mimis; + +import mimis.exception.worker.ActivateException; +import mimis.exception.worker.DeactivateException; +import mimis.input.Feedback; +import mimis.input.Task; +import mimis.manager.Manager; +import mimis.parser.Parser; +import mimis.router.Router; +import mimis.util.ArrayCycle; +import mimis.value.Action; +import mimis.value.Target; +import mimis.worker.Component; + +public abstract class Mimis extends Component { + protected Component[] currentArray; + protected Manager manager; + + protected ArrayCycle componentCycle; + + public Mimis(Component... currentArray) { + this.currentArray = initialize(false, currentArray); + componentCycle = new ArrayCycle(currentArray); + router = new Router(); + manager = new Manager(initialize(true, router, new Parser())); + } + + public void activate() throws ActivateException { + manager.start(); + super.activate(); + } + + protected void deactivate() throws DeactivateException { + super.deactivate(); + manager.stop(); + } + + public void exit() { + super.exit(); + manager.exit(); + } + + public Component[] initialize(boolean start, Component... componentArray) { + for (Component component : componentArray) { + component.setRouter(router); + if (start) { + component.start(); + } + } + return componentArray; + } + + public void task(Task task) { + if (task.getTarget().equals(Target.CURRENT)) { + componentCycle.current().add(task); + } else { + super.task(task); + } + } + + public void end(Action action) { + switch (action) { + case CURRENT: + route(new Feedback("Current component: " + componentCycle.current().getTitle())); + break; + case NEXT: + log.debug("Next component"); + route(new Feedback("Next component: " + componentCycle.next().getTitle())); + break; + case PREVIOUS: + log.debug("Previous component"); + route(new Feedback("Previous component: " + componentCycle.previous().getTitle())); + break; + case EXIT: + exit(); + break; + } + } +} diff --git a/java/src/mimis/application/TestApplication.java b/java/src/mimis/application/TestApplication.java deleted file mode 100644 index 57635e6..0000000 --- a/java/src/mimis/application/TestApplication.java +++ /dev/null @@ -1,53 +0,0 @@ -package mimis.application; - -import mimis.device.lirc.button.ColorButton; -import mimis.device.wiimote.WiimoteButton; -import mimis.exception.worker.ActivateException; -import mimis.input.Input; -import mimis.input.Task; -import mimis.input.state.Hold; -import mimis.input.state.Press; -import mimis.input.state.Release; -import mimis.input.state.sequence.Sequence; -import mimis.parser.ParserInput; -import mimis.state.TaskMap; -import mimis.value.Action; -import mimis.value.Target; -import mimis.worker.Component; - -public class TestApplication extends Component { - public TestApplication() { - super("Test App"); - } - - public void activate() throws ActivateException { - TaskMap taskMap = new TaskMap(); - taskMap.add(new Sequence( - new Hold(ColorButton.BLUE), new Press(WiimoteButton.A), new Release(ColorButton.BLUE)), - new Task(Action.TEST, Target.CURRENT)); - route(new ParserInput(Action.ADD, taskMap)); - - listen(Task.class); - - super.activate(); - } - - public void test() { - while (!active()); - - route(new Press(ColorButton.BLUE)); - /*sleep(1000); - route(new ParserInput(Action.RESET, this, false));*/ - sleep(1000); - route(new Press(WiimoteButton.A)); - } - - public void input(Input input) { - if (input instanceof Task) { - Task task = (Task) input; - log.debug(task.getAction() + " " + task.getSignal() + " " + task.getTarget()); - } else { - log.debug(input.getClass()); - } - } -} diff --git a/java/src/mimis/application/cmd/CMDApplication.java b/java/src/mimis/application/cmd/CMDApplication.java index 33ef615..0b9c5d5 100644 --- a/java/src/mimis/application/cmd/CMDApplication.java +++ b/java/src/mimis/application/cmd/CMDApplication.java @@ -23,7 +23,7 @@ public abstract class CMDApplication extends Component { this.title = title; } - public void activate() throws ActivateException { + protected void activate() throws ActivateException { super.activate(); String path = getPath(); if (path == null) { @@ -40,12 +40,16 @@ public abstract class CMDApplication extends Component { } public boolean active() { - return active = Native.isRunning(program); + boolean running = Native.isRunning(program); + if (!active && running) { + active = true; + start(); + } + return active = running; } protected synchronized void deactivate() throws DeactivateException { super.deactivate(); - log.debug(process); if (process != null) { process.destroy(); } diff --git a/java/src/mimis/application/cmd/windows/WindowsApplication.java b/java/src/mimis/application/cmd/windows/WindowsApplication.java index 292dba6..abbfac2 100644 --- a/java/src/mimis/application/cmd/windows/WindowsApplication.java +++ b/java/src/mimis/application/cmd/windows/WindowsApplication.java @@ -16,14 +16,20 @@ public abstract class WindowsApplication extends CMDApplication { protected String window; protected int handle; + public WindowsApplication(String title, String window) { + this(null, title, window); + } + public WindowsApplication(String program, String title, String window) { super(program, title); this.window = window; handle = 0; } - public void activate() throws ActivateException { - super.activate(); + protected void activate() throws ActivateException { + if (program != null) { + super.activate(); + } handle = Native.getHandle(window); if (handle < 1) { sleep(START_SLEEP); @@ -36,15 +42,21 @@ public abstract class WindowsApplication extends CMDApplication { } public boolean active() { - if (!active) { + if (!active || program == null) { handle = Native.getHandle(window); - system(Command.System.MAXIMIZE); + if (handle > 0 && program == null) { + start(); + } } - return super.active(); + return program == null ? handle > 0 : super.active(); } protected void deactivate() throws DeactivateException { - super.deactivate(); + if (process == null) { + active = false; + } else { + super.deactivate(); + } close(); } @@ -62,7 +74,6 @@ public abstract class WindowsApplication extends CMDApplication { protected int user(int wParam, int lParam) { return Native.sendMessage(handle, Windows.WM_USER, wParam, lParam); - //return Windows.sendMessage(handle, Windows.WM_USER + wParam, 0, 0); } protected void system(Command.System system) { @@ -75,7 +86,8 @@ public abstract class WindowsApplication extends CMDApplication { protected void key(Type type, int code) { int scanCode = Native.mapVirtualKey(code, Windows.MAPVK_VK_TO_VSC); - Native.postMessage(handle, type.getCode(), code, 1 | (scanCode << 16)); + Native.postMessage(handle, type.getCode(), code, 1 | (scanCode << 16) | 1 << 30); + sleep(200); } protected void key(Type type, char character) { diff --git a/java/src/mimis/application/PhotoViewerApplication.java b/java/src/mimis/application/cmd/windows/photoviewer/PhotoViewerApplication.java similarity index 64% rename from java/src/mimis/application/PhotoViewerApplication.java rename to java/src/mimis/application/cmd/windows/photoviewer/PhotoViewerApplication.java index 62b42b3..9b2a024 100644 --- a/java/src/mimis/application/PhotoViewerApplication.java +++ b/java/src/mimis/application/cmd/windows/photoviewer/PhotoViewerApplication.java @@ -1,13 +1,15 @@ -package mimis.application; +package mimis.application.cmd.windows.photoviewer; -import mimis.application.robot.RobotApplication; +import mimis.application.cmd.windows.WindowsApplication; import mimis.exception.worker.DeactivateException; import mimis.value.Action; import mimis.value.Key; +import mimis.value.Type; import mimis.worker.Worker; -public class PhotoViewerApplication extends RobotApplication { +public class PhotoViewerApplication extends WindowsApplication { protected final static String TITLE = "Photo Viewer"; + protected final static String WINDOW = "Photo_Lightweight_Viewer"; protected static final int ZOOM_SLEEP = 100; protected static final int DELETE_SLEEP = 2000; @@ -16,7 +18,7 @@ public class PhotoViewerApplication extends RobotApplication { protected boolean fullscreen; public PhotoViewerApplication() { - super(TITLE); + super(TITLE, WINDOW); zoomWorker = new ZoomWorker(); fullscreen = false; } @@ -49,38 +51,44 @@ public class PhotoViewerApplication extends RobotApplication { case VOLUME_DOWN: zoomWorker.stop(); break; - case FORWARD: - break; - case REWIND: - break; case NEXT: - press(Key.RIGHT); + key(Type.DOWN, Key.RIGHT); break; case PREVIOUS: - press(Key.LEFT); + key(Type.DOWN, Key.LEFT); + break; + case FORWARD: + key(Type.DOWN, Key.CONTROL); + //key(Type.DOWN, '.'); + //key(Type.DOWN, Key.DECIMAL); + key(Type.DOWN, Key.OEM_PERIOD); + //key(Type.UP, Key.OEM_PERIOD); + //key(Type.UP, Key.CONTROL); break; case MUTE: - press(Key.CONTROL); - press(Key.NUMPAD0); - release(Key.CONTROL); + key(Type.DOWN, Key.CONTROL); + key(Type.DOWN, Key.NUMPAD0); + //press(Key.CONTROL); + //press(Key.NUMPAD0); + //release(Key.CONTROL); break; case FULLSCREEN: - press(fullscreen ? Key.ESCAPE : Key.F11); + key(Type.DOWN, fullscreen ? Key.ESCAPE : Key.F11); fullscreen = !fullscreen; break; case DISLIKE: - boolean restore = false; + /*boolean restore = false; if (fullscreen) { end(Action.FULLSCREEN); sleep(DELETE_SLEEP); restore = true; } - press(Key.F16); - press('Y'); + key(Type.DOWN, Key.F16); + key(Type.DOWN, 'Y'); if (restore) { sleep(DELETE_SLEEP); end(Action.FULLSCREEN); - } + }*/ break; } } @@ -95,7 +103,7 @@ public class PhotoViewerApplication extends RobotApplication { public void work() { Key key = zoomDirection > 0 ? Key.ADD : Key.SUBTRACT; - press(key); + key(Type.DOWN, key); sleep(ZOOM_SLEEP); } } diff --git a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java index ac3320d..be64b32 100644 --- a/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java +++ b/java/src/mimis/application/cmd/windows/winamp/WinampApplication.java @@ -3,6 +3,7 @@ package mimis.application.cmd.windows.winamp; import mimis.application.cmd.windows.WindowsApplication; import mimis.exception.worker.DeactivateException; import mimis.value.Action; +import mimis.value.Command; import mimis.worker.Worker; public class WinampApplication extends WindowsApplication { @@ -48,7 +49,7 @@ public class WinampApplication extends WindowsApplication { seekWorker = new SeekWorker(); } - protected void deactivate() throws DeactivateException { + public void deactivate() throws DeactivateException { super.deactivate(); volumeWorker.stop(); seekWorker.stop(); @@ -82,6 +83,7 @@ public class WinampApplication extends WindowsApplication { log.trace("WinampApplication end: " + action); switch (action) { case PLAY: + log.debug("play"); switch (user(0, IPC_ISPLAYING)) { case STATUS_STOPPED: command(WINAMP_BUTTON2); @@ -127,6 +129,7 @@ public class WinampApplication extends WindowsApplication { command(WINAMP_FILE_QUIT); break; case VISUALISER: + system(Command.System.MAXIMIZE); command(WINAMP_VISPLUGIN); break; } diff --git a/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java b/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java index 3e605bd..179faa9 100644 --- a/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java +++ b/java/src/mimis/application/cmd/windows/wmp/WMPApplication.java @@ -53,7 +53,7 @@ public class WMPApplication extends WindowsApplication { break; } } - + public void end(Action action) { log.trace("WMPApplication end: " + action); switch (action) { @@ -69,7 +69,7 @@ public class WMPApplication extends WindowsApplication { break; } } - + protected class VolumeWorker extends Worker { protected int volumeChangeSign; diff --git a/java/src/mimis/application/itunes/iTunesApplication.java b/java/src/mimis/application/itunes/iTunesApplication.java index 7e2ad4f..3da5bd8 100644 --- a/java/src/mimis/application/itunes/iTunesApplication.java +++ b/java/src/mimis/application/itunes/iTunesApplication.java @@ -2,7 +2,6 @@ package mimis.application.itunes; import mimis.exception.worker.ActivateException; import mimis.exception.worker.DeactivateException; -import mimis.util.Native; import mimis.value.Action; import mimis.worker.Component; import mimis.worker.Worker; @@ -14,8 +13,7 @@ import com.dt.iTunesController.iTunesEventsInterface; public class iTunesApplication extends Component implements iTunesEventsInterface { protected static final String TITLE = "iTunes"; - protected static final String PROGRAM = "iTunes.exe"; - protected static final boolean QUIT = false; + protected static final boolean EVENTS = false; protected static final int VOLUME_CHANGE_RATE = 5; protected static final int VOLUME_SLEEP = 100; @@ -24,35 +22,29 @@ public class iTunesApplication extends Component implements iTunesEventsInterfac protected iTunes iTunes; protected VolumeWorker volumeWorker; - protected boolean handle; - protected boolean quiting; + protected boolean events, handle; public iTunesApplication() { - super(TITLE); - iTunes = new iTunes(); - volumeWorker = new VolumeWorker(); - handle = quiting = false; + this(EVENTS); } - protected void activate() throws ActivateException { - synchronized (iTunes) { - iTunes.connect(); - if (!handle) { - iTunes.addEventHandler(this); - handle = true; - } + public iTunesApplication(boolean events) { + super(TITLE); + this.events = events; + volumeWorker = new VolumeWorker(); + handle = false; + } + + protected synchronized void activate() throws ActivateException { + iTunes = new iTunes(); + iTunes.connect(); + if (events) { + iTunes.addEventHandler(this); } super.activate(); } - public boolean active() { - if (!active && !quiting && Native.isRunning(PROGRAM)) { - try { - activate(); - } catch (ActivateException e) { - log.error(e); - } - } + public synchronized boolean active() { try { iTunes.getMute(); active = true; @@ -62,22 +54,29 @@ public class iTunesApplication extends Component implements iTunesEventsInterfac return active; } - protected void deactivate() throws DeactivateException { - super.deactivate(); - volumeWorker.stop(); - try { - if (QUIT) { - quiting = true; - synchronized (iTunes) { - iTunes.quit(); - } - quiting = false; + protected synchronized void deactivate() throws DeactivateException { + if (events) { + exit(); + } else { + super.deactivate(); + volumeWorker.stop(); + try { + iTunes.release(); + } catch (Exception e) { + log.error(e); + throw new DeactivateException(); } - } catch (Exception e) { - throw new DeactivateException(); } } + public synchronized void exit() { + try { + iTunes.quit(); + } catch (Exception e) {} + volumeWorker.exit(); + super.exit(); + } + protected void begin(Action action) { log.trace("iTunesApplication begin: " + action); if (!active) return; diff --git a/java/src/mimis/application/robot/RobotApplication.java b/java/src/mimis/application/robot/RobotApplication.java index 4a84408..e421db0 100644 --- a/java/src/mimis/application/robot/RobotApplication.java +++ b/java/src/mimis/application/robot/RobotApplication.java @@ -10,10 +10,6 @@ import mimis.worker.Component; public class RobotApplication extends Component { protected Robot robot; - public RobotApplication(String title) { - super(title); - } - public void activate() throws ActivateException { try { robot = new Robot(); @@ -24,7 +20,7 @@ public class RobotApplication extends Component { } super.activate(); } - + public void press(Key key) { robot.keyPress(key.getCode()); } diff --git a/java/src/mimis/device/lirc/LircDevice.java b/java/src/mimis/device/lirc/LircDevice.java index 014777d..5e82f73 100644 --- a/java/src/mimis/device/lirc/LircDevice.java +++ b/java/src/mimis/device/lirc/LircDevice.java @@ -75,6 +75,10 @@ public class LircDevice extends Component implements LircButtonListener, SignalL } public void add(Signal signal, Button button) { + add(signal, button, true); + } + + public void add(Signal signal, Button button, boolean general) { switch (signal) { case BEGIN: route(new Press(button)); @@ -84,15 +88,17 @@ public class LircDevice extends Component implements LircButtonListener, SignalL break; } - String string = button.toString(); - for (Button colorButton : ColorButton.values()) { - if (colorButton.toString().equals(string)) { - add(signal, ColorButton.valueOf(string)); + if (general) { + String string = button.toString(); + for (Button colorButton : ColorButton.values()) { + if (colorButton.toString().equals(string)) { + add(signal, ColorButton.valueOf(string), false); + } } - } - for (Button numberButton : NumberButton.values()) { - if (numberButton.toString().equals(string)) { - add(signal, ColorButton.valueOf(string)); + for (Button numberButton : NumberButton.values()) { + if (numberButton.toString().equals(string)) { + add(signal, NumberButton.valueOf(string), false); + } } } } diff --git a/java/src/mimis/device/lirc/LircService.java b/java/src/mimis/device/lirc/LircService.java index f8ba736..8217f10 100644 --- a/java/src/mimis/device/lirc/LircService.java +++ b/java/src/mimis/device/lirc/LircService.java @@ -7,6 +7,7 @@ import java.io.InputStreamReader; import java.io.OutputStream; import java.io.PrintWriter; import java.net.Socket; +import java.net.SocketTimeoutException; import java.net.UnknownHostException; import java.util.ArrayList; import java.util.HashMap; @@ -64,6 +65,7 @@ public class LircService extends Worker { log.trace("Activate LircService"); try { socket = new Socket(ip, port); + socket.setSoTimeout(SLEEP); inputStream = socket.getInputStream(); bufferedReader = new BufferedReader(new InputStreamReader(inputStream)); @@ -87,7 +89,7 @@ public class LircService extends Worker { return active; } - public synchronized void deactivate() throws DeactivateException { + public void deactivate() throws DeactivateException { log.trace("Deactivate LircService"); super.deactivate(); try { @@ -114,6 +116,7 @@ public class LircService extends Worker { } catch (UnknownButtonException e) { log.error(e); } + } catch (SocketTimeoutException e) { } catch (IOException e) { log.error(e); } diff --git a/java/src/mimis/device/lirc/remote/ColorButton.java b/java/src/mimis/device/lirc/remote/ColorButton.java new file mode 100644 index 0000000..257bf75 --- /dev/null +++ b/java/src/mimis/device/lirc/remote/ColorButton.java @@ -0,0 +1,7 @@ +package mimis.device.lirc.remote; + +import mimis.Button; + +public enum ColorButton implements Button { + RED, GREEN, YELLOW, BLUE; +} diff --git a/java/src/mimis/device/wiimote/WiimoteDiscovery.java b/java/src/mimis/device/wiimote/WiimoteDiscovery.java index b271494..afe008a 100644 --- a/java/src/mimis/device/wiimote/WiimoteDiscovery.java +++ b/java/src/mimis/device/wiimote/WiimoteDiscovery.java @@ -9,7 +9,7 @@ import mimis.exception.worker.DeactivateException; import mimis.worker.Worker; public class WiimoteDiscovery extends Worker { - protected static final String WIISCAN = "wiiscan.exe"; + protected static final String WIISCAN = "wiiscan"; protected static final int TIMEOUT = 1000; protected WiimoteDevice wiimoteDevice; protected Process process; @@ -36,7 +36,6 @@ public class WiimoteDiscovery extends Worker { Scanner scanner = new Scanner(process.getInputStream()); while (scanner.hasNext()) { String line = scanner.nextLine(); - log.error(line); if (line.contains("error: BluetoothSetServiceState()")) { disconnect = true; return false; diff --git a/java/src/mimis/manager/ButtonManager.java b/java/src/mimis/manager/ButtonManager.java index bc95473..884fc84 100644 --- a/java/src/mimis/manager/ButtonManager.java +++ b/java/src/mimis/manager/ButtonManager.java @@ -1,10 +1,14 @@ package mimis.manager; +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; import java.util.Calendar; import java.util.HashMap; import java.util.Map; +import javax.swing.JPanel; import javax.swing.JToggleButton; +import javax.swing.border.TitledBorder; import mimis.worker.Worker; @@ -19,7 +23,7 @@ public class ButtonManager extends Manager { } public ButtonManager(String title, Worker... workerArray) { - this.workerArray = workerArray; + super(workerArray); this.title = title; createButtons(); } @@ -27,22 +31,47 @@ public class ButtonManager extends Manager { public String getTitle() { return title; } - - public JToggleButton[] getButtons() { - return buttonMap.values().toArray(new JToggleButton[]{}); + + public WorkerButton[] getButtons() { + return buttonMap.values().toArray(new WorkerButton[]{}); } protected void createButtons() { buttonMap = new HashMap(); - for (Worker worker : workerArray) { + for (Worker worker : workerList) { WorkerButton button = new WorkerButton(worker); buttonMap.put(worker, button); } } + public JPanel createPanel() { + /* Initialize components */ + GridBagLayout gridBagLayout = new GridBagLayout(); + GridBagConstraints gridBagConstraints = new GridBagConstraints(); + JPanel panel = new JPanel(gridBagLayout); + + /* Set border */ + TitledBorder border = new TitledBorder(getTitle()); + border.setTitleJustification(TitledBorder.CENTER); + panel.setBorder(border); + + /* Initialize constraints */ + gridBagConstraints.fill = GridBagConstraints.BOTH; + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.weightx = 1; + gridBagConstraints.weighty = 1; + + /* Add buttons */ + for (JToggleButton button : getButtons()) { + gridBagLayout.setConstraints(button, gridBagConstraints); + panel.add(button); + } + return panel; + } + protected void work() { long before = Calendar.getInstance().getTimeInMillis(); - for (Worker worker : workerArray) { + for (Worker worker : workerList) { buttonMap.get(worker).setPressed(worker.active()); } long after = Calendar.getInstance().getTimeInMillis(); diff --git a/java/src/mimis/manager/CurrentButtonManager.java b/java/src/mimis/manager/CurrentButtonManager.java new file mode 100644 index 0000000..c8bac0a --- /dev/null +++ b/java/src/mimis/manager/CurrentButtonManager.java @@ -0,0 +1,99 @@ +package mimis.manager; + +import java.awt.GridBagConstraints; +import java.awt.GridBagLayout; +import java.awt.event.ActionEvent; +import java.awt.event.ActionListener; +import java.util.HashMap; +import java.util.Map; +import java.util.Map.Entry; + +import javax.swing.ButtonGroup; +import javax.swing.JPanel; +import javax.swing.JRadioButton; +import javax.swing.border.TitledBorder; + +import mimis.input.Task; +import mimis.router.Router; +import mimis.util.ArrayCycle; +import mimis.value.Action; +import mimis.value.Signal; +import mimis.value.Target; +import mimis.worker.Component; +import mimis.worker.Worker; + +public class CurrentButtonManager extends ButtonManager implements ActionListener { + protected Router router; + protected ArrayCycle componentCycle; + protected Map radioButtonMap; + + public CurrentButtonManager(Router router, ArrayCycle componentCycle, String title, Worker... workerArray) { + super(title, workerArray); + this.componentCycle = componentCycle; + this.router = router; + radioButtonMap = new HashMap(); + } + + public JPanel createPanel() { + /* Initialize components */ + ButtonGroup buttonGroup = new ButtonGroup(); + GridBagLayout gridBagLayout = new GridBagLayout(); + GridBagConstraints gridBagConstraints = new GridBagConstraints(); + JPanel panel = new JPanel(gridBagLayout); + + /* Set border */ + TitledBorder border = new TitledBorder(getTitle()); + border.setTitleJustification(TitledBorder.CENTER); + panel.setBorder(border); + + /* Initialize constraints */ + gridBagConstraints.fill = GridBagConstraints.BOTH; + gridBagConstraints.weighty = 1; + + for (WorkerButton button : getButtons()) { + /* Add button */ + gridBagConstraints.gridwidth = GridBagConstraints.RELATIVE; + gridBagConstraints.weightx = 1; + gridBagLayout.setConstraints(button, gridBagConstraints); + panel.add(button); + + /* Add radio button */ + JRadioButton radioButton = new JRadioButton(); + buttonGroup.add(radioButton); + radioButton.addActionListener(this); + radioButtonMap.put(radioButton, button.worker); + gridBagConstraints.gridwidth = GridBagConstraints.REMAINDER; + gridBagConstraints.weightx = 0; + gridBagLayout.setConstraints(radioButton, gridBagConstraints); + panel.add(radioButton); + } + return panel; + } + + public void actionPerformed(ActionEvent event) { + JRadioButton radioButton = (JRadioButton) event.getSource(); + if (radioButtonMap.containsKey(radioButton)) { + Worker worker = radioButtonMap.get(radioButton); + if (componentCycle.contains(worker)) { + while (!componentCycle.current().equals(worker)) { + componentCycle.next(); + } + router.add(new Task(Action.CURRENT, Target.MAIN, Signal.END)); + } + } + } + + public void currentChanged() { + Worker worker = componentCycle.current(); + if (radioButtonMap.containsValue(worker)) { + for (Entry entry : radioButtonMap.entrySet()) { + if (entry.getValue().equals(worker)) { + JRadioButton radioButton = (JRadioButton) entry.getKey(); + radioButton.setSelected(true); + return; + } + } + } + + } +} diff --git a/java/src/mimis/manager/Manager.java b/java/src/mimis/manager/Manager.java index 4bb6192..ee50661 100644 --- a/java/src/mimis/manager/Manager.java +++ b/java/src/mimis/manager/Manager.java @@ -1,5 +1,7 @@ package mimis.manager; +import java.util.ArrayList; +import java.util.Arrays; import java.util.Calendar; import mimis.exception.worker.DeactivateException; @@ -8,33 +10,42 @@ import mimis.worker.Worker; public class Manager extends Worker { protected static final int INTERVAL = 1000; - protected Worker[] workerArray; + protected ArrayList workerList; public Manager(Worker... workerArray) { - this.workerArray = workerArray; + workerList = new ArrayList(); + add(workerArray); + } + + public void add(Worker... workerArray) { + workerList.addAll(Arrays.asList(workerArray)); + } + + public void remove(Worker... workerArray) { + workerList.removeAll(Arrays.asList(workerArray)); } protected void deactivate() throws DeactivateException { super.deactivate(); - for (Worker worker : workerArray) { + for (Worker worker : workerList) { worker.stop(); } } public void exit() { super.exit(); - for (Worker worker : workerArray) { + for (Worker worker : workerList) { worker.exit(); } } public int count() { - return workerArray.length; + return workerList.size(); } protected void work() { long before = Calendar.getInstance().getTimeInMillis(); - for (Worker worker : workerArray) { + for (Worker worker : workerList) { worker.active(); } long after = Calendar.getInstance().getTimeInMillis(); diff --git a/java/src/mimis/parser/Parser.java b/java/src/mimis/parser/Parser.java index f914283..dd1a177 100644 --- a/java/src/mimis/parser/Parser.java +++ b/java/src/mimis/parser/Parser.java @@ -62,7 +62,7 @@ public class Parser extends Component { } public void input(State state) { - log.trace("input(State)"); + //log.trace("input(State)"); Component component = state.getComponent(); if (!activeMap.containsKey(component)) { activeMap.put(component, new ArrayList()); diff --git a/java/src/mimis/router/LocalRouter.java b/java/src/mimis/router/LocalRouter.java deleted file mode 100644 index b7bf438..0000000 --- a/java/src/mimis/router/LocalRouter.java +++ /dev/null @@ -1,31 +0,0 @@ -package mimis.event.router; - -import mimis.Event; -import mimis.event.EventListener; -import mimis.event.EventRouter; -import mimis.event.Task; -import mimis.event.feedback.TextFeedback; -import mimis.value.Target; - -public class LocalRouter extends EventRouter { - public void event(Event event) { - Target target = event.getTarget(); - switch (target) { - case APPLICATION: - if (application != null) { - application.add(event); - } - if (event instanceof Task) { - Task task = (Task) event; - add(new TextFeedback(String.format("Action (%s): %s", task.getSignal(), task.getAction()))); - } - break; - default: - for (EventListener eventListener : eventListenerList) { - if (event.compatible(eventListener)) { - eventListener.add(event); - } - } - } - } -} diff --git a/java/src/mimis/util/Native.java b/java/src/mimis/util/Native.java index ff50145..966360a 100644 --- a/java/src/mimis/util/Native.java +++ b/java/src/mimis/util/Native.java @@ -8,28 +8,6 @@ public class Native { System.loadLibrary("mimis"); } - public void start() { - int handle = getHandle("Winamp v1.x"); - System.out.println(handle); - //sendMessage(handle, Windows.WM_CLOSE, 0, 0); - /* - while (true) {//Winamp v1.x - System.out.println(isRunning("winamp.exe")); - //System.out.println(new Native().terminate("winamp.exe")); - //System.out.println(new Native().running("wmplayer.exe")); - try { - Thread.sleep(500); - } catch (InterruptedException e) { - // TODO Auto-generated catch block - e.printStackTrace(); - } - }*/ - } - - public static void main(String[] args) { - new Native().start(); - } - public native static int getHandle(String window); public static int sendMessage(int handle, Windows windows, int wParam, int lParam) { diff --git a/java/src/mimis/value/Action.java b/java/src/mimis/value/Action.java index 45d4691..293d67c 100644 --- a/java/src/mimis/value/Action.java +++ b/java/src/mimis/value/Action.java @@ -1,5 +1,5 @@ package mimis.value; public enum Action { - EXIT, FORWARD, MUTE, NEXT, PAUSE, PLAY, PREVIOUS, REPEAT, RESUME, REWIND, START, TEST, VOLUME_DOWN, VOLUME_UP, FULLSCREEN, TRAIN, STOP, SAVE, RECOGNIZE, LOAD, SHUFFLE, FADEOUT, QUIT, VISUALISER, LIKE, DISLIKE, ACTIVATE, SHIFT, UNSHIFT, ADD, REMOVE, RESET; + EXIT, FORWARD, MUTE, NEXT, PAUSE, PLAY, PREVIOUS, REPEAT, RESUME, REWIND, START, TEST, VOLUME_DOWN, VOLUME_UP, FULLSCREEN, TRAIN, STOP, SAVE, RECOGNIZE, LOAD, SHUFFLE, FADEOUT, QUIT, VISUALISER, LIKE, DISLIKE, ACTIVATE, SHIFT, UNSHIFT, ADD, REMOVE, RESET, CURRENT; } diff --git a/java/src/mimis/value/Target.java b/java/src/mimis/value/Target.java index a038b67..aab5a5b 100644 --- a/java/src/mimis/value/Target.java +++ b/java/src/mimis/value/Target.java @@ -1,5 +1,5 @@ package mimis.value; public enum Target { - ALL, MAIN, DEVICES, APPLICATIONS, SELF, CURRENT; + ALL, MAIN, DEVICES, APPLICATIONS, SELF, CURRENT, MIMIS, APPLICATION; } \ No newline at end of file diff --git a/java/src/mimis/worker/Component.java b/java/src/mimis/worker/Component.java index d494fa1..38a099d 100644 --- a/java/src/mimis/worker/Component.java +++ b/java/src/mimis/worker/Component.java @@ -61,6 +61,7 @@ public abstract class Component extends Listener { public void input(Input input) { if (input instanceof Task) { + log.debug("task " + ((Task) input).getAction()); task((Task) input); } else if (input instanceof Feedback) { feedback((Feedback) input); diff --git a/java/src/mimis/worker/Periodic.java b/java/src/mimis/worker/Periodic.java deleted file mode 100644 index af7d805..0000000 --- a/java/src/mimis/worker/Periodic.java +++ /dev/null @@ -1,73 +0,0 @@ -package mimis.worker; - -import java.util.Timer; -import java.util.TimerTask; - -import mimis.exception.worker.ActivateException; -import mimis.exception.worker.DeactivateException; - -public class Periodic extends Worker { - public static final int PERIOD = 500; - - protected TimerTask timerTask; - protected Timer timer; - protected int period; - - public Periodic() { - this(PERIOD); - } - - public Periodic(int period) { - this.period = period; - timerTask = new TimerTask() { - public void run() { - if (deactivate) { - cancel(); - } - work(); - } - }; - timer = new Timer(); - } - - protected void activate() throws ActivateException { - timer.scheduleAtFixedRate(timerTask, 0, period); - - } - - protected void deactivate() throws DeactivateException { - //timer.cancel(); - } - - protected void work() { - log.debug("work!"); - } - - public void test() { - Periodic periodic = new Periodic(); - periodic.start(); - sleep(1000); - periodic.stop(); - sleep(1000); - periodic.start(); - sleep(10000); - System.exit(1); - Worker worker = new Worker() { - protected void work() { - log.debug("work()"); - sleep(); - } - }; - worker.start(); - sleep(1000); - worker.stop(); - sleep(1000); - worker.start(); - worker.start(); - } - - public static void main(String[] args) { - new Periodic().test(); - } - -} diff --git a/java/src/mimis/worker/Worker.java b/java/src/mimis/worker/Worker.java index 906fde6..9172c3b 100644 --- a/java/src/mimis/worker/Worker.java +++ b/java/src/mimis/worker/Worker.java @@ -9,9 +9,11 @@ import org.apache.commons.logging.LogFactory; public abstract class Worker implements Runnable { protected Log log = LogFactory.getLog(getClass()); - protected static final boolean THREAD = true; + protected static final boolean THREAD = false; + protected static final boolean INTERRUPT = false; protected static final int SLEEP = 100; + protected boolean interrupt; protected boolean run = false; protected boolean active = false; protected boolean activate = false; @@ -24,11 +26,11 @@ public abstract class Worker implements Runnable { if (!run) { run = true; if (thread) { - log.debug("Start thread"); - new Thread(this, getClass().getName()).start(); - } else { log.debug("Run directly"); run(); + } else { + log.debug("Start thread"); + new Thread(this, getClass().getName()).start(); } } else { notifyAll(); diff --git a/java/src/wiiusej/wiiusejevents/physicalevents/BalanceBoardEvent.java b/java/src/wiiusej/wiiusejevents/physicalevents/BalanceBoardEvent.java index 87e8950..ff402c7 100644 --- a/java/src/wiiusej/wiiusejevents/physicalevents/BalanceBoardEvent.java +++ b/java/src/wiiusej/wiiusejevents/physicalevents/BalanceBoardEvent.java @@ -1,13 +1,11 @@ package wiiusej.wiiusejevents.physicalevents; public class BalanceBoardEvent extends ExpansionEvent { - protected BalanceBoardButtonsEvent buttonsEvent; protected JoystickEvent balanceBoardJoystickEvent; public BalanceBoardEvent(int id, float topRight, float bottomRight, float bottomLeft, float topLeft) { super(id); - System.out.println(String.format("%f %f %f %f", topRight, bottomRight, bottomLeft, topLeft)); /*balanceBoardJoystickEvent = new JoystickEvent(id, angle, magnitude, max1, max2, min1, min2, center1, center2);*/ @@ -30,4 +28,4 @@ public class BalanceBoardEvent extends ExpansionEvent { return out; } -} +} \ No newline at end of file diff --git a/java/wiiscan-bb.exe b/java/wiiscan-bb.exe deleted file mode 100644 index 7822c04..0000000 Binary files a/java/wiiscan-bb.exe and /dev/null differ diff --git a/java/wiiuse.dll b/java/wiiuse.dll index 2f07a85..24df528 100644 Binary files a/java/wiiuse.dll and b/java/wiiuse.dll differ diff --git a/java/wiiusej.dll b/java/wiiusej.dll index f320600..0c30f4f 100644 Binary files a/java/wiiusej.dll and b/java/wiiusej.dll differ