diff options
author | eutarass | 2009-09-01 00:22:43 +0000 |
---|---|---|
committer | eutarass | 2009-09-01 00:22:43 +0000 |
commit | d1598d1e38275606cade2dbcfed327bf9593ff5f (patch) | |
tree | 29a3f9e3236e68215e606c6643c2c24d25a032d6 | |
parent | 7fdeaa34f2c825cad27477882c068527baed123f (diff) | |
download | org.eclipse.tcf-d1598d1e38275606cade2dbcfed327bf9593ff5f.tar.gz org.eclipse.tcf-d1598d1e38275606cade2dbcfed327bf9593ff5f.tar.xz org.eclipse.tcf-d1598d1e38275606cade2dbcfed327bf9593ff5f.zip |
TCF Debugger: implemented launch configuration shortcuts
14 files changed, 765 insertions, 231 deletions
diff --git a/plugins/org.eclipse.tm.tcf.cdt.ui/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.tm.tcf.cdt.ui/.settings/org.eclipse.jdt.core.prefs index e115508c0..1487e0f31 100644 --- a/plugins/org.eclipse.tm.tcf.cdt.ui/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.tm.tcf.cdt.ui/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Mon Sep 22 12:28:22 PDT 2008 +#Mon Aug 31 11:21:25 PDT 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.builder.cleanOutputFolder=clean org.eclipse.jdt.core.builder.duplicateResourceTask=warning @@ -14,5 +14,261 @@ org.eclipse.jdt.core.compiler.maxProblemPerUnit=100 org.eclipse.jdt.core.compiler.problem.assertIdentifier=error org.eclipse.jdt.core.compiler.problem.enumIdentifier=error org.eclipse.jdt.core.compiler.source=1.5 +org.eclipse.jdt.core.formatter.align_type_members_on_columns=false +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_assignment=0 +org.eclipse.jdt.core.formatter.alignment_for_binary_expression=16 +org.eclipse.jdt.core.formatter.alignment_for_compact_if=16 +org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=80 +org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0 +org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=16 +org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=16 +org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16 +org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16 +org.eclipse.jdt.core.formatter.blank_lines_after_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_after_package=1 +org.eclipse.jdt.core.formatter.blank_lines_before_field=1 +org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0 +org.eclipse.jdt.core.formatter.blank_lines_before_imports=1 +org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1 +org.eclipse.jdt.core.formatter.blank_lines_before_method=1 +org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1 +org.eclipse.jdt.core.formatter.blank_lines_before_package=0 +org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1 +org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1 +org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=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.compact_else_if=true +org.eclipse.jdt.core.formatter.continuation_indentation=2 +org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2 +org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true +org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true +org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_empty_lines=false +org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true +org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true +org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=false +org.eclipse.jdt.core.formatter.indentation.size=8 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert +org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert +org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert +org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert +org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert +org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert +org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert +org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert +org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert +org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert +org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert +org.eclipse.jdt.core.formatter.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=true +org.eclipse.jdt.core.formatter.tabulation.char=space +org.eclipse.jdt.core.formatter.tabulation.size=4 +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.incompatibleJDKLevel=ignore org.eclipse.jdt.core.incompleteClasspath=error diff --git a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/Activator.java b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/Activator.java index 9a5060fcd..d612afb9e 100644 --- a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/Activator.java +++ b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/Activator.java @@ -1,3 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2008 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ package org.eclipse.tm.internal.tcf.cdt.ui; import org.eclipse.core.runtime.IStatus; @@ -14,63 +24,59 @@ import org.osgi.framework.BundleContext; */ public class Activator extends AbstractUIPlugin { - public static final String PLUGIN_ID = "org.eclipse.tm.tcf.cdt.ui"; - private static Activator plugin; - - public void start(BundleContext context) throws Exception { - super.start(context); - plugin = this; - } + public static final String PLUGIN_ID = "org.eclipse.tm.tcf.cdt.ui"; + private static Activator plugin; - public void stop(BundleContext context) throws Exception { - plugin = null; - super.stop(context); - } + public void start(BundleContext context) throws Exception { + super.start(context); + plugin = this; + } - public static Activator getDefault() { - return plugin; - } + public void stop(BundleContext context) throws Exception { + plugin = null; + super.stop(context); + } - public static void log(IStatus status) { - getDefault().getLog().log(status); - } + public static Activator getDefault() { + return plugin; + } - public static void log(Throwable e) { - log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, e.getMessage(), e)); - } + public static void log(IStatus status) { + getDefault().getLog().log(status); + } - public static IWorkbenchWindow getActiveWorkbenchWindow() { - return getDefault().getWorkbench().getActiveWorkbenchWindow(); - } + public static void log(Throwable e) { + log(new Status(IStatus.ERROR, PLUGIN_ID, IStatus.ERROR, e.getMessage(), e)); + } - public static IWorkbenchPage getActivePage() { - IWorkbenchWindow w = getActiveWorkbenchWindow(); - if (w != null) { - return w.getActivePage(); - } - return null; - } + public static IWorkbenchWindow getActiveWorkbenchWindow() { + return getDefault().getWorkbench().getActiveWorkbenchWindow(); + } - public static Shell getActiveWorkbenchShell() { - IWorkbenchWindow window = getActiveWorkbenchWindow(); - if (window != null) { - return window.getShell(); - } - return null; - } + public static IWorkbenchPage getActivePage() { + IWorkbenchWindow w = getActiveWorkbenchWindow(); + if (w != null) return w.getActivePage(); + return null; + } - public static void errorDialog(String message, IStatus status) { - log(status); - Shell shell = getActiveWorkbenchShell(); - if (shell == null) return; - ErrorDialog.openError(shell, "Error", message, status); - } + public static Shell getActiveWorkbenchShell() { + IWorkbenchWindow window = getActiveWorkbenchWindow(); + if (window != null) return window.getShell(); + return null; + } - public static void errorDialog(String message, Throwable t) { - log(t); - Shell shell = getActiveWorkbenchShell(); - if (shell == null) return; - IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, 1, t.getMessage(), null); - ErrorDialog.openError(shell, "Error", message, status); - } + public static void errorDialog(String message, IStatus status) { + log(status); + Shell shell = getActiveWorkbenchShell(); + if (shell == null) return; + ErrorDialog.openError(shell, "Error", message, status); + } + + public static void errorDialog(String message, Throwable t) { + log(t); + Shell shell = getActiveWorkbenchShell(); + if (shell == null) return; + IStatus status = new Status(IStatus.ERROR, PLUGIN_ID, 1, t.getMessage(), null); + ErrorDialog.openError(shell, "Error", message, status); + } } diff --git a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/TCFLaunchContext.java b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/TCFLaunchContext.java index 83c5fb75a..98ac112a6 100644 --- a/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/TCFLaunchContext.java +++ b/plugins/org.eclipse.tm.tcf.cdt.ui/src/org/eclipse/tm/internal/tcf/cdt/ui/TCFLaunchContext.java @@ -13,7 +13,6 @@ package org.eclipse.tm.internal.tcf.cdt.ui; import org.eclipse.cdt.core.CCorePlugin; import org.eclipse.cdt.core.IBinaryParser; import org.eclipse.cdt.core.ICExtensionReference; -import org.eclipse.cdt.core.IBinaryParser.IBinaryObject; import org.eclipse.cdt.core.model.CModelException; import org.eclipse.cdt.core.model.CoreModel; import org.eclipse.cdt.core.model.ICElement; @@ -48,19 +47,38 @@ import org.eclipse.ui.dialogs.TwoPaneElementSelector; public class TCFLaunchContext implements ITCFLaunchContext { - public boolean isActive() { - return getContext(null) != null; + public boolean isActive() { + return getContext(null) != null; + } + + public boolean isSupportedSelection(Object selection) { + if (selection instanceof IProject) { + return CoreModel.getDefault().getCModel().getCProject(((IProject)selection).getName()) != null; } + return selection instanceof ICElement; + } - public boolean isSupportedProject(IProject project) { - return CoreModel.getDefault().getCModel().getCProject(project.getName()) != null; + public IPath getPath(Object selection) { + if (selection instanceof IResource) { + return ((IResource)selection).getLocation(); + } + if (selection instanceof ICElement) { + return ((ICElement)selection).getResource().getLocation(); } + return null; + } - public void setDefaults(ILaunchConfigurationDialog dlg, ILaunchConfigurationWorkingCopy config) { - ICElement cElement = getContext(config); - if (cElement != null) { - initializeCProject(cElement, config); - initializeProgramName(cElement, dlg, config); + public IProject getProject(Object selection) { + if (selection instanceof IProject) return (IProject)selection; + if (selection instanceof ICElement) return ((ICElement)selection).getCProject().getProject(); + return null; + } + + public void setDefaults(ILaunchConfigurationDialog dlg, ILaunchConfigurationWorkingCopy config) { + ICElement element = getContext(config); + if (element != null) { + initializeCProject(element, config); + initializeProgramName(element, dlg, config); } } @@ -76,13 +94,13 @@ public class TCFLaunchContext implements ITCFLaunchContext { String projectName = null; String programName = null; if (config != null) { - try { - projectName = config.getAttribute(TCFLaunchDelegate.ATTR_PROJECT_NAME, (String)null); - programName = config.getAttribute(TCFLaunchDelegate.ATTR_LOCAL_PROGRAM_FILE, (String)null); - } - catch (CoreException e) { - Activator.log(e); - } + try { + projectName = config.getAttribute(TCFLaunchDelegate.ATTR_PROJECT_NAME, (String)null); + programName = config.getAttribute(TCFLaunchDelegate.ATTR_LOCAL_PROGRAM_FILE, (String)null); + } + catch (CoreException e) { + Activator.log(e); + } } Object obj = null; IWorkbenchPage page = Activator.getActivePage(); @@ -230,23 +248,23 @@ public class TCFLaunchContext implements ITCFLaunchContext { /** * Return true if given file path names a binary file. * @param project - * @param exePath + * @param path * @return true if binary file. * @throws CoreException */ - public boolean isBinary(IProject project, IPath exePath) throws CoreException { + public boolean isBinary(IProject project, IPath path) throws CoreException { ICExtensionReference[] parserRef = CCorePlugin.getDefault().getBinaryParserExtensions(project); for (int i = 0; i < parserRef.length; i++) { try { IBinaryParser parser = (IBinaryParser)parserRef[i].createExtension(); - if ((IBinaryObject)parser.getBinary(exePath) != null) return true; + if (parser.getBinary(path) != null) return true; } catch (Exception e) { } } IBinaryParser parser = CCorePlugin.getDefault().getDefaultBinaryParser(); try { - return (IBinaryObject)parser.getBinary(exePath) != null; + return parser.getBinary(path) != null; } catch (Exception e) { } diff --git a/plugins/org.eclipse.tm.tcf.core/activator/org/eclipse/tm/internal/tcf/Activator.java b/plugins/org.eclipse.tm.tcf.core/activator/org/eclipse/tm/internal/tcf/Activator.java index d726ff6e0..11fa1e12e 100644 --- a/plugins/org.eclipse.tm.tcf.core/activator/org/eclipse/tm/internal/tcf/Activator.java +++ b/plugins/org.eclipse.tm.tcf.core/activator/org/eclipse/tm/internal/tcf/Activator.java @@ -1,3 +1,13 @@ +/******************************************************************************* + * Copyright (c) 2009 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ package org.eclipse.tm.internal.tcf; import org.osgi.framework.Bundle; diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/META-INF/MANIFEST.MF b/plugins/org.eclipse.tm.tcf.debug.ui/META-INF/MANIFEST.MF index 218f33382..0249afef6 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/META-INF/MANIFEST.MF +++ b/plugins/org.eclipse.tm.tcf.debug.ui/META-INF/MANIFEST.MF @@ -19,11 +19,12 @@ Require-Bundle: org.eclipse.ui, com.jcraft.jsch;bundle-version="0.1.37", org.eclipse.jsch.core;bundle-version="1.1.100", org.eclipse.jsch.ui;bundle-version="1.1.100" -Import-Package: org.eclipse.tm.tcf.core;version="0.2.0", +Import-Package: org.eclipse.core.expressions, + org.eclipse.tm.tcf.core;version="0.2.0", org.eclipse.tm.tcf.protocol;version="0.2.0", org.eclipse.tm.tcf.services;version="0.2.0", - org.eclipse.tm.tcf.util;version="0.2.0", - org.eclipse.tm.tcf.ssl;version="0.2.0" + org.eclipse.tm.tcf.ssl;version="0.2.0", + org.eclipse.tm.tcf.util;version="0.2.0" Bundle-RequiredExecutionEnvironment: J2SE-1.5 Bundle-ActivationPolicy: lazy Eclipse-LazyStart: true diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/plugin.xml b/plugins/org.eclipse.tm.tcf.debug.ui/plugin.xml index 5393b8e64..dbb5df199 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/plugin.xml +++ b/plugins/org.eclipse.tm.tcf.debug.ui/plugin.xml @@ -25,16 +25,14 @@ </factory> </extension> - <extension - point="org.eclipse.debug.ui.debugModelPresentations"> + <extension point="org.eclipse.debug.ui.debugModelPresentations"> <debugModelPresentation class = "org.eclipse.tm.internal.tcf.debug.ui.model.TCFModelPresentation" id = "org.eclipse.tm.tcf.debug"> </debugModelPresentation> </extension> - <extension - point="org.eclipse.debug.ui.launchConfigurationTypeImages"> + <extension point="org.eclipse.debug.ui.launchConfigurationTypeImages"> <launchConfigurationTypeImage icon="icons/tcf.gif" configTypeID="org.eclipse.tm.tcf.debug.LaunchConfigurationType" @@ -42,8 +40,7 @@ </launchConfigurationTypeImage> </extension> - <extension - point="org.eclipse.debug.ui.launchConfigurationTabGroups"> + <extension point="org.eclipse.debug.ui.launchConfigurationTabGroups"> <launchConfigurationTabGroup type="org.eclipse.tm.tcf.debug.LaunchConfigurationType" description="Run or debug a program using Target Communication Framework" @@ -52,6 +49,51 @@ </launchConfigurationTabGroup> </extension> + <extension point="org.eclipse.core.expressions.propertyTesters"> + <propertyTester + namespace="org.eclipse.tm.tcf.launch" + properties="isExecutable" + type="org.eclipse.core.runtime.IAdaptable" + class="org.eclipse.tm.internal.tcf.debug.ui.launch.TCFPropertyTester" + id="org.eclipse.tm.tcf.launch.PropertyTester"> + </propertyTester> + </extension> + + <extension point="org.eclipse.debug.ui.launchShortcuts"> + <shortcut + label="TCF Application" + icon="icons/tcf.gif" + helpContextId="org.eclipse.tm.tcf.debug.ui.shortcut_tcf_application" + modes="run, debug" + class="org.eclipse.tm.internal.tcf.debug.ui.launch.TCFLaunchShortcut" + description="Launch an application using Target Communication Framework (TCF)" + id="org.eclipse.tm.tcf.debug.ui.TCFShortcut"> + <description + description="Runs an application using Target Communication Framework (TCF)" + mode="run"> + </description> + <description + description="Debugs an application using Target Communication Framework (TCF)" + mode="debug"> + </description> + <contextualLaunch> + <enablement> + <with variable="selection"> + <count value="1"/> + <iterate> + <test + forcePluginActivation="true" + property="org.eclipse.tm.tcf.launch.isExecutable"/> + </iterate> + </with> + </enablement> + </contextualLaunch> + <configurationType + id="org.eclipse.tm.tcf.debug.LaunchConfigurationType"> + </configurationType> + </shortcut> + </extension> + <extension point="org.eclipse.ui.contexts"> <context diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/ITCFLaunchContext.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/ITCFLaunchContext.java index 90be235bc..e00ef465f 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/ITCFLaunchContext.java +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/ITCFLaunchContext.java @@ -39,11 +39,25 @@ public interface ITCFLaunchContext { boolean isActive(); /** - * Check if this context recognizes type of a project. - * @param project - * @return true if the project is supported by this context. + * Check if this context recognizes type of a selection. + * @param selection + * @return true if the selection is supported by this context. + */ + boolean isSupportedSelection(Object selection); + + /** + * Get selection project. + * @param selection + * @return selection project or null if selection is not part of a project + */ + IProject getProject(Object selection); + + /** + * Get selection file path. + * @param selection + * @return selection file path or null if selection is not a file */ - boolean isSupportedProject(IProject project); + IPath getPath(Object selection); /** * Set launch configuration attributes to default values best suited for current context. @@ -71,7 +85,7 @@ public interface ITCFLaunchContext { /** * Check if a path represents an executable binary file. * @param project - * @param path + * @param path - full path to a file in the project * @return * @throws CoreException */ diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchContext.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchContext.java new file mode 100644 index 000000000..8fbffd059 --- /dev/null +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchContext.java @@ -0,0 +1,69 @@ +/******************************************************************************* + * Copyright (c) 2008, 2009 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tm.internal.tcf.debug.ui.launch; + +import org.eclipse.core.runtime.IConfigurationElement; +import org.eclipse.core.runtime.IExtension; +import org.eclipse.core.runtime.IExtensionPoint; +import org.eclipse.core.runtime.Platform; +import org.eclipse.tm.internal.tcf.debug.ui.Activator; +import org.osgi.framework.Bundle; + +/** + * TCF clients can implement ITCFLaunchContext to provide information about + * workspace projects to TCF Launch Configuration. + * + * The information includes default values for launch configuration attributes, + * list of executable binary files, etc. + * + * Since each project type can have its own methods to retrieve relevant information, + * there should be implementation of this interface for each project type that support TCF. + * + * Implementation should be able to examine current IDE state (like active editor input source, + * project explorer selection, etc.) and figure out an "active project". + */ +public class TCFLaunchContext { + + public static ITCFLaunchContext getLaunchContext(Object selection) { + try { + IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(Activator.PLUGIN_ID, "launch_context"); + IExtension[] extensions = point.getExtensions(); + for (int i = 0; i < extensions.length; i++) { + try { + Bundle bundle = Platform.getBundle(extensions[i].getNamespaceIdentifier()); + bundle.start(); + IConfigurationElement[] e = extensions[i].getConfigurationElements(); + for (int j = 0; j < e.length; j++) { + String nm = e[j].getName(); + if (nm.equals("class")) { //$NON-NLS-1$ + Class<?> c = bundle.loadClass(e[j].getAttribute("name")); //$NON-NLS-1$ + ITCFLaunchContext launch_context = (ITCFLaunchContext)c.newInstance(); + if (selection != null) { + if (launch_context.isSupportedSelection(selection)) return launch_context; + } + else { + if (launch_context.isActive()) return launch_context; + } + } + } + } + catch (Throwable x) { + Activator.log("Cannot access launch context extension points", x); + } + } + } + catch (Exception x) { + Activator.log("Cannot access launch context extension points", x); + } + return null; + } + +} diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchShortcut.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchShortcut.java new file mode 100644 index 000000000..3783db2b5 --- /dev/null +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFLaunchShortcut.java @@ -0,0 +1,132 @@ +/******************************************************************************* + * Copyright (c) 2009 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tm.internal.tcf.debug.ui.launch; + +import java.util.ArrayList; +import java.util.List; + +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.CoreException; +import org.eclipse.core.runtime.IPath; +import org.eclipse.debug.core.DebugPlugin; +import org.eclipse.debug.core.ILaunchConfiguration; +import org.eclipse.debug.core.ILaunchConfigurationType; +import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; +import org.eclipse.debug.core.ILaunchManager; +import org.eclipse.debug.ui.DebugUITools; +import org.eclipse.debug.ui.IDebugModelPresentation; +import org.eclipse.debug.ui.ILaunchShortcut; +import org.eclipse.jface.dialogs.MessageDialog; +import org.eclipse.jface.viewers.ISelection; +import org.eclipse.jface.viewers.IStructuredSelection; +import org.eclipse.jface.window.Window; +import org.eclipse.swt.widgets.Shell; +import org.eclipse.tm.internal.tcf.debug.launch.TCFLaunchDelegate; +import org.eclipse.tm.internal.tcf.debug.ui.Activator; +import org.eclipse.ui.IEditorPart; +import org.eclipse.ui.IWorkbenchWindow; +import org.eclipse.ui.dialogs.ElementListSelectionDialog; + +/** + * This class implements extension point that provides support for selection sensitive launching using TCF. + * Extensions register a shortcut which appears in the run and/or debug cascade menus to launch + * the workbench selection or active editor. + */ +public class TCFLaunchShortcut implements ILaunchShortcut { + + private static final String LAUNCH_CONFIGURATION_TYPE_ID = "org.eclipse.tm.tcf.debug.LaunchConfigurationType"; //$NON-NLS-1$ + + public void launch(ISelection selection, String mode) { + if (selection instanceof IStructuredSelection) { + IStructuredSelection ss = (IStructuredSelection)selection; + Object obj = ss.getFirstElement(); + ITCFLaunchContext context = TCFLaunchContext.getLaunchContext(obj); + IProject project = context.getProject(obj); + IPath path = context.getPath(obj); + ILaunchConfiguration config = null; + List<ILaunchConfiguration> list = searchConfigurations(project, path); + if (list != null) { + int count = list.size(); + if (count == 0) { + config = createConfiguration(project, path); + } + else if (count == 1) { + config = list.get(0); + } + else { + config = chooseConfiguration(list); + } + if (config != null) DebugUITools.launch(config, mode); + } + } + } + + public void launch(IEditorPart editor, String mode) { + } + + private List<ILaunchConfiguration> searchConfigurations(IProject project, IPath path) { + try { + List<ILaunchConfiguration> list = new ArrayList<ILaunchConfiguration>(); + ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType type = manager.getLaunchConfigurationType(LAUNCH_CONFIGURATION_TYPE_ID); + ILaunchConfiguration[] configs = DebugPlugin.getDefault().getLaunchManager().getLaunchConfigurations(type); + for (ILaunchConfiguration config : configs) { + if (config.getAttribute(TCFLaunchDelegate.ATTR_LOCAL_PROGRAM_FILE, "").equals(path.toOSString()) && //$NON-NLS-1$ + config.getAttribute(TCFLaunchDelegate.ATTR_PROJECT_NAME, "").equals(project.getName())) { //$NON-NLS-1$ + list.add(config); + } + } + return list; + } + catch (CoreException x) { + MessageDialog.openError(getShell(), "Error searching available launch configurations", x.getStatus().getMessage()); + return null; + } + } + + private ILaunchConfiguration chooseConfiguration(List<ILaunchConfiguration> list) { + IDebugModelPresentation labelProvider = DebugUITools.newDebugModelPresentation(); + ElementListSelectionDialog dialog= new ElementListSelectionDialog(getShell(), labelProvider); + dialog.setElements(list.toArray()); + dialog.setTitle("TCF Launch Configuration"); + dialog.setMessage("&Select existing configuration:"); + dialog.setMultipleSelection(false); + int result = dialog.open(); + labelProvider.dispose(); + if (result == Window.OK) return (ILaunchConfiguration) dialog.getFirstResult(); + return null; + } + + private ILaunchConfiguration createConfiguration(IProject project, IPath path) { + ILaunchConfiguration config = null; + ILaunchConfigurationWorkingCopy wc = null; + try { + ILaunchManager manager = DebugPlugin.getDefault().getLaunchManager(); + ILaunchConfigurationType type = manager.getLaunchConfigurationType(LAUNCH_CONFIGURATION_TYPE_ID); + wc = type.newInstance(null, manager.generateUniqueLaunchConfigurationNameFrom("TCF Local Host " + path.lastSegment())); + wc.setAttribute(TCFLaunchDelegate.ATTR_LOCAL_PROGRAM_FILE, path.toOSString()); + wc.setAttribute(TCFLaunchDelegate.ATTR_PROJECT_NAME, project.getName()); + // wc.setMappedResources(new IResource[] { }); + config = wc.doSave(); + } + catch (CoreException x) { + MessageDialog.openError(getShell(), "Cannot create launch configuration", x.getStatus().getMessage()); + } + return config; + } + + private Shell getShell() { + Shell shell = null; + IWorkbenchWindow window = Activator.getDefault().getWorkbench().getActiveWorkbenchWindow(); + if (window != null) shell = window.getShell(); + return shell; + } +} diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFMainTab.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFMainTab.java index 713e23fea..1aaa1bbc9 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFMainTab.java +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFMainTab.java @@ -15,12 +15,8 @@ import java.io.File; import org.eclipse.core.resources.IProject; import org.eclipse.core.resources.ResourcesPlugin; import org.eclipse.core.runtime.CoreException; -import org.eclipse.core.runtime.IConfigurationElement; -import org.eclipse.core.runtime.IExtension; -import org.eclipse.core.runtime.IExtensionPoint; import org.eclipse.core.runtime.IPath; import org.eclipse.core.runtime.Path; -import org.eclipse.core.runtime.Platform; import org.eclipse.debug.core.ILaunchConfiguration; import org.eclipse.debug.core.ILaunchConfigurationWorkingCopy; import org.eclipse.debug.ui.AbstractLaunchConfigurationTab; @@ -46,7 +42,6 @@ import org.eclipse.tm.internal.tcf.debug.launch.TCFLaunchDelegate; import org.eclipse.tm.internal.tcf.debug.ui.Activator; import org.eclipse.tm.internal.tcf.debug.ui.ImageCache; import org.eclipse.ui.dialogs.ElementListSelectionDialog; -import org.osgi.framework.Bundle; public class TCFMainTab extends AbstractLaunchConfigurationTab { @@ -213,40 +208,6 @@ public class TCFMainTab extends AbstractLaunchConfigurationTab { working_dir_text.setEnabled(!default_dir_button.getSelection()); } - private ITCFLaunchContext getLaunchContext(IProject project) { - try { - IExtensionPoint point = Platform.getExtensionRegistry().getExtensionPoint(Activator.PLUGIN_ID, "launch_context"); - IExtension[] extensions = point.getExtensions(); - for (int i = 0; i < extensions.length; i++) { - try { - Bundle bundle = Platform.getBundle(extensions[i].getNamespaceIdentifier()); - bundle.start(); - IConfigurationElement[] e = extensions[i].getConfigurationElements(); - for (int j = 0; j < e.length; j++) { - String nm = e[j].getName(); - if (nm.equals("class")) { //$NON-NLS-1$ - Class<?> c = bundle.loadClass(e[j].getAttribute("name")); //$NON-NLS-1$ - ITCFLaunchContext launch_context = (ITCFLaunchContext)c.newInstance(); - if (project != null) { - if (launch_context.isSupportedProject(project)) return launch_context; - } - else { - if (launch_context.isActive()) return launch_context; - } - } - } - } - catch (Throwable x) { - Activator.log("Cannot access launch context extension points", x); - } - } - } - catch (Exception x) { - Activator.log("Cannot access launch context extension points", x); - } - return null; - } - private void createTerminalOption(Composite parent, int colSpan) { Composite terminal_comp = new Composite(parent, SWT.NONE); GridLayout terminal_layout = new GridLayout(); @@ -316,7 +277,7 @@ public class TCFMainTab extends AbstractLaunchConfigurationTab { "Enter project before searching for program"); return; } - ITCFLaunchContext launch_context = getLaunchContext(project); + ITCFLaunchContext launch_context = TCFLaunchContext.getLaunchContext(project); if (launch_context == null) return; String path = launch_context.chooseBinary(getShell(), project); if (path != null) local_program_text.setText(path); @@ -449,7 +410,7 @@ public class TCFMainTab extends AbstractLaunchConfigurationTab { } if (project != null) { try { - ITCFLaunchContext launch_context = getLaunchContext(project); + ITCFLaunchContext launch_context = TCFLaunchContext.getLaunchContext(project); if (launch_context != null && !launch_context.isBinary(project, program_path)) { setErrorMessage("Program is not a recongnized executable"); return false; @@ -469,7 +430,7 @@ public class TCFMainTab extends AbstractLaunchConfigurationTab { config.setAttribute(TCFLaunchDelegate.ATTR_PROJECT_NAME, ""); config.setAttribute(TCFLaunchDelegate.ATTR_USE_TERMINAL, true); config.setAttribute(TCFLaunchDelegate.ATTR_WORKING_DIRECTORY, (String)null); - ITCFLaunchContext launch_context = getLaunchContext(null); + ITCFLaunchContext launch_context = TCFLaunchContext.getLaunchContext(null); if (launch_context != null) launch_context.setDefaults(getLaunchConfigurationDialog(), config); } diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFPropertyTester.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFPropertyTester.java new file mode 100644 index 000000000..a2778b0a5 --- /dev/null +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/launch/TCFPropertyTester.java @@ -0,0 +1,44 @@ +/******************************************************************************* + * Copyright (c) 2008, 2009 Wind River Systems, Inc. and others. + * All rights reserved. This program and the accompanying materials + * are made available under the terms of the Eclipse Public License v1.0 + * which accompanies this distribution, and is available at + * http://www.eclipse.org/legal/epl-v10.html + * + * Contributors: + * Wind River Systems - initial API and implementation + *******************************************************************************/ +package org.eclipse.tm.internal.tcf.debug.ui.launch; + +import org.eclipse.core.expressions.PropertyTester; +import org.eclipse.core.resources.IProject; +import org.eclipse.core.runtime.IAdaptable; +import org.eclipse.core.runtime.IPath; +import org.eclipse.tm.internal.tcf.debug.ui.Activator; + +public class TCFPropertyTester extends PropertyTester { + + public boolean test(Object receiver, String property, Object[] args, Object expected_value) { + Object value = null; + try { + if (receiver instanceof IAdaptable) { + IAdaptable selection = (IAdaptable)receiver; + ITCFLaunchContext context = TCFLaunchContext.getLaunchContext(selection); + if (context != null) { + if (property.equals("isExecutable")) { + IProject project = context.getProject(selection); + IPath path = context.getPath(selection); + if (project != null && path != null) { + value = context.isBinary(project, path); + } + } + } + } + } + catch (Throwable x) { + Activator.log(x); + } + if (expected_value != null) return expected_value.equals(value); + return (value instanceof Boolean) && ((Boolean)value).booleanValue(); + } +} diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModel.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModel.java index 27b142554..7bf3cd845 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModel.java +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModel.java @@ -45,8 +45,6 @@ import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelProxyFactor import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelSelectionPolicy; import org.eclipse.debug.internal.ui.viewers.model.provisional.IModelSelectionPolicyFactory; import org.eclipse.debug.internal.ui.viewers.model.provisional.IPresentationContext; -import org.eclipse.debug.internal.ui.viewers.model.provisional.TreeModelViewer; -import org.eclipse.debug.ui.AbstractDebugView; import org.eclipse.debug.ui.IDebugUIConstants; import org.eclipse.debug.ui.IDebugView; import org.eclipse.debug.ui.ISourcePresentation; @@ -765,39 +763,30 @@ public class TCFModel implements IElementContentProvider, IElementLabelProvider, if (initial_selection && debug_view_selection_set) return; debug_view_selection_set = true; final int cnt = ++debug_view_selection_cnt; - display.asyncExec(new Runnable() { + Protocol.invokeLater(200, new Runnable() { public void run() { + TCFNode node = getNode(node_id); + if (node == null) return; + if (node.disposed) return; + if (!node.validateNode(this)) return; if (cnt != debug_view_selection_cnt) return; - final IWorkbenchWindow window = PlatformUI.getWorkbench().getActiveWorkbenchWindow(); - if (window == null) return; - final IDebugView view = (IDebugView)window.getActivePage().findView(IDebugUIConstants.ID_DEBUG_VIEW); - if (view == null) return; - if (!((AbstractDebugView)view).isAvailable()) return; - Protocol.invokeLater(100, new Runnable() { - public void run() { - TCFNode node = getNode(node_id); - if (node == null) return; - if (node.disposed) return; - if (!node.validateNode(this)) return; - if (node instanceof TCFNodeExecContext) { - TCFNode frame = ((TCFNodeExecContext)node).getTopFrame(); - if (frame != null && !frame.disposed) { - if (!frame.validateNode(this)) return; - node = frame; - } - } - final TreeModelViewer viewer = (TreeModelViewer)view.getViewer(); - for (TCFModelProxy proxy : model_proxies.values()) { - if (proxy.getProxyViewer() == viewer) { - proxy.fireModelChanged(); - proxy.addDelta(node, IModelDelta.REVEAL); - proxy.fireModelChanged(); - proxy.addDelta(node, IModelDelta.SELECT); - proxy.fireModelChanged(); - } - } + if (node instanceof TCFNodeExecContext) { + if (!((TCFNodeExecContext)node).isSuspended()) return; + TCFNode frame = ((TCFNodeExecContext)node).getTopFrame(); + if (frame != null && !frame.disposed) { + if (!frame.validateNode(this)) return; + node = frame; } - }); + } + for (TCFModelProxy proxy : model_proxies.values()) { + if (proxy.getPresentationContext().getId().equals(IDebugUIConstants.ID_DEBUG_VIEW)) { + proxy.fireModelChanged(); + proxy.addDelta(node, IModelDelta.REVEAL); + proxy.fireModelChanged(); + proxy.addDelta(node, IModelDelta.SELECT); + proxy.fireModelChanged(); + } + } } }); } @@ -807,85 +796,74 @@ public class TCFModel implements IElementContentProvider, IElementLabelProvider, * The method is part of ISourceDisplay interface. * The method is normally called from SourceLookupService. */ - public void displaySource(Object element, final IWorkbenchPage page, boolean forceSourceLookup) { + public void displaySource(final Object element, final IWorkbenchPage page, boolean forceSourceLookup) { final int cnt = ++display_source_cnt; - if (element instanceof TCFNodeExecContext) { - final TCFNodeExecContext node = (TCFNodeExecContext)element; - element = new TCFTask<TCFNode>() { - public void run() { - if (node.disposed) { - done(null); - } - else { - if (!node.validateNode(this)) return; - if (!node.isSuspended()) { - done(null); + Protocol.invokeLater(new Runnable() { + public void run() { + if (cnt != display_source_cnt) return; + TCFNodeStackFrame stack_frame = null; + IChannel channel = getLaunch().getChannel(); + if (!disposed && channel.getState() == IChannel.STATE_OPEN) { + if (element instanceof TCFNodeExecContext) { + TCFNodeExecContext node = (TCFNodeExecContext)element; + if (!node.disposed) { + if (!node.validateNode(this)) return; + if (node.isSuspended()) stack_frame = node.getTopFrame(); } - else { - TCFNodeStackFrame f = node.getTopFrame(); - done(f == null ? node : f); + } + else if (element instanceof TCFNodeStackFrame) { + TCFNodeStackFrame node = (TCFNodeStackFrame)element; + if (!node.disposed) { + stack_frame = (TCFNodeStackFrame)element; } } } - }.getE(); - } - if (element instanceof TCFNodeStackFrame) { - final TCFNodeStackFrame stack_frame = (TCFNodeStackFrame)element; - Protocol.invokeLater(new Runnable() { - public void run() { - if (cnt != display_source_cnt) return; - IChannel channel = getLaunch().getChannel(); - if (!disposed && channel.getState() == IChannel.STATE_OPEN && !stack_frame.disposed) { - TCFDataCache<TCFSourceRef> line_info = stack_frame.getLineInfo(); - if (!line_info.validate()) { - line_info.wait(this); + if (stack_frame != null) { + TCFDataCache<TCFSourceRef> line_info = stack_frame.getLineInfo(); + if (!line_info.validate()) { + line_info.wait(this); + return; + } + String editor_id = null; + IEditorInput editor_input = null; + Throwable error = line_info.getError(); + TCFSourceRef src_ref = line_info.getData(); + int line = 0; + if (error == null && src_ref != null) error = src_ref.error; + if (error != null) Activator.log("Error retrieving source mapping for a stack frame", error); + if (src_ref != null && src_ref.area != null) { + ISourceLocator locator = getLaunch().getSourceLocator(); + Object source_element = null; + if (locator instanceof ISourceLookupDirector) { + source_element = ((ISourceLookupDirector)locator).getSourceElement(src_ref.area); + } + if (source_element == null) { + ILaunchConfiguration cfg = launch.getLaunchConfiguration(); + editor_input = editor_not_found.get(cfg); + if (editor_input == null) { + editor_not_found.put(cfg, editor_input = new CommonSourceNotFoundEditorInput(cfg)); + } + editor_id = IDebugUIConstants.ID_COMMON_SOURCE_NOT_FOUND_EDITOR; } else { - String editor_id = null; - IEditorInput editor_input = null; - Throwable error = line_info.getError(); - TCFSourceRef src_ref = line_info.getData(); - int line = 0; - if (error == null && src_ref != null) error = src_ref.error; - if (error != null) Activator.log("Error retrieving source mapping for a stack frame", error); - if (src_ref != null && src_ref.area != null) { - ISourceLocator locator = getLaunch().getSourceLocator(); - Object source_element = null; - if (locator instanceof ISourceLookupDirector) { - source_element = ((ISourceLookupDirector)locator).getSourceElement(src_ref.area); - } - if (source_element == null) { - ILaunchConfiguration cfg = launch.getLaunchConfiguration(); - editor_input = editor_not_found.get(cfg); - if (editor_input == null) { - editor_not_found.put(cfg, editor_input = new CommonSourceNotFoundEditorInput(cfg)); - } - editor_id = IDebugUIConstants.ID_COMMON_SOURCE_NOT_FOUND_EDITOR; - } - else { - ISourcePresentation presentation = TCFModelPresentation.getDefault(); - if (presentation != null) { - editor_input = presentation.getEditorInput(source_element); - } - if (editor_input != null) { - editor_id = presentation.getEditorId(editor_input, source_element); - } - line = src_ref.area.start_line; - } + ISourcePresentation presentation = TCFModelPresentation.getDefault(); + if (presentation != null) { + editor_input = presentation.getEditorInput(source_element); } - displaySource(cnt, editor_id, editor_input, page, - stack_frame.parent.id, stack_frame.getFrameNo() == 0, line); + if (editor_input != null) { + editor_id = presentation.getEditorId(editor_input, source_element); + } + line = src_ref.area.start_line; } } - else { - displaySource(cnt, null, null, page, null, false, 0); - } + displaySource(cnt, editor_id, editor_input, page, + stack_frame.parent.id, stack_frame.getFrameNo() == 0, line); } - }); - } - else { - displaySource(cnt, null, null, page, null, false, 0); - } + else { + displaySource(cnt, null, null, page, null, false, 0); + } + } + }); } private void displaySource(final int cnt, diff --git a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModelSelectionPolicy.java b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModelSelectionPolicy.java index 488a33cff..883b869e0 100644 --- a/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModelSelectionPolicy.java +++ b/plugins/org.eclipse.tm.tcf.debug.ui/src/org/eclipse/tm/internal/tcf/debug/ui/model/TCFModelSelectionPolicy.java @@ -54,13 +54,13 @@ class TCFModelSelectionPolicy implements IModelSelectionPolicy { if (n instanceof TCFNodeExecContext) { if (!n.validateNode(this)) return; if (((TCFNodeExecContext)n).isSuspended()) { - done(Boolean.TRUE); + done(true); return; } } n = n.parent; } - done(Boolean.FALSE); + done(false); } }.getE(); } diff --git a/plugins/org.eclipse.tm.tcf/.settings/org.eclipse.jdt.core.prefs b/plugins/org.eclipse.tm.tcf/.settings/org.eclipse.jdt.core.prefs index 2c3fcf15c..2b81612ac 100644 --- a/plugins/org.eclipse.tm.tcf/.settings/org.eclipse.jdt.core.prefs +++ b/plugins/org.eclipse.tm.tcf/.settings/org.eclipse.jdt.core.prefs @@ -1,4 +1,4 @@ -#Thu Apr 30 00:11:15 PDT 2009 +#Mon Aug 31 11:20:47 PDT 2009 eclipse.preferences.version=1 org.eclipse.jdt.core.builder.cleanOutputFolder=clean org.eclipse.jdt.core.builder.duplicateResourceTask=warning @@ -85,6 +85,9 @@ 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=8 +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_member=insert +org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert |