You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@cayenne.apache.org by aa...@apache.org on 2006/06/05 13:24:06 UTC

svn commit: r411747 - in /incubator/cayenne/main/branches/PROTO-3.0/swing-plugin: ./ .settings/ src/ src/main/ src/main/java/ src/main/java/org/ src/main/java/org/apache/ src/main/java/org/apache/cayenne/ src/main/java/org/apache/cayenne/swing/ src/mai...

Author: aadamchik
Date: Mon Jun  5 04:24:05 2006
New Revision: 411747

URL: http://svn.apache.org/viewvc?rev=411747&view=rev
Log:
A prototype Swing plugin shell.

Added:
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.classpath
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.project
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.core.prefs
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.ui.prefs
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/pom.xml
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/BoundsBinding.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/CayenneSwingException.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/CayennePluginEngine.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/Launcher.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameBuilderExtension.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameController.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FramePlugin.java
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/plugin.xml
    incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/test/

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.classpath
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.classpath?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.classpath (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.classpath Mon Jun  5 04:24:05 2006
@@ -0,0 +1,7 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src/main/java"/>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="org.maven.ide.eclipse.MAVEN2_CLASSPATH_CONTAINER"/>
+	<classpathentry kind="output" path="target/classes"/>
+</classpath>

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.project
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.project?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.project (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.project Mon Jun  5 04:24:05 2006
@@ -0,0 +1,23 @@
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>swing-plugin</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.maven.ide.eclipse.maven2Builder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>org.maven.ide.eclipse.maven2Nature</nature>
+	</natures>
+</projectDescription>

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.core.prefs
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.core.prefs?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.core.prefs (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.core.prefs Mon Jun  5 04:24:05 2006
@@ -0,0 +1,253 @@
+#Mon Jun 05 04:47:12 EDT 2006
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.4
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.4
+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=warning
+org.eclipse.jdt.core.compiler.source=1.4
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=48
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=48
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=48
+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=48
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=48
+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=1
+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_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=true
+org.eclipse.jdt.core.formatter.comment.format_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_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=do not insert
+org.eclipse.jdt.core.formatter.comment.line_length=90
+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_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_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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=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=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_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_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=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=90
+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

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.ui.prefs
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.ui.prefs?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.ui.prefs (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/.settings/org.eclipse.jdt.ui.prefs Mon Jun  5 04:24:05 2006
@@ -0,0 +1,8 @@
+#Mon Jun 05 04:47:12 EDT 2006
+eclipse.preferences.version=1
+formatter_settings_version=8
+internal.default.compliance=user
+org.eclipse.jdt.ui.ignorelowercasenames=true
+org.eclipse.jdt.ui.importorder=java;javax;org;com;
+org.eclipse.jdt.ui.ondemandthreshold=99
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8"?><templates><template autoinsert\="true" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"></template><template autoinsert\="true" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"></template><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment"></template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecom
 ment" name\="filecomment">/**\n * \n */</template><template autoinsert\="true" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\n * @author \n */</template><template autoinsert\="true" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"></template><template autoinsert\="true" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodcomment" name\="methodcomment"></template><template autoinsert\="true" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"></template><templ
 ate autoinsert\="false" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">/*\n *  Copyright 2006 The Apache Software Foundation\n *\n *  Licensed under the Apache License, Version 2.0 (the "License");\n *  you may not use this file except in compliance with the License.\n *  You may obtain a copy of the License at\n *\n *      http\://www.apache.org/licenses/LICENSE-2.0\n *\n *  Unless required by applicable law or agreed to in writing, software\n *  distributed under the License is distributed on an "AS IS" BASIS,\n *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.\n *  See the License for the specific language governing permissions and\n *  limitations under the License.\n */\n${package_declaration}\n\n${typecomment}\n${type_declaration}</template><template autoinsert\="true" context\="catchblock_context" deleted\="false" description\="
 Code in new catch blocks" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.catchblock" name\="catchblock">${exception_var}.printStackTrace();</template><template autoinsert\="true" context\="methodbody_context" deleted\="false" description\="Code in created method stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="true" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.constructorbody" name\="constructorbody">${body_statement}</template><template autoinsert\="true" context\="getterbody_context" deleted\="false" description\="Code in created getters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in c
 reated setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\n * ${tags}\n * ${see_to_target}\n */</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.classbody" name\="classbody">\n</template><template autoinsert\="true" context\="interfacebody_context" deleted\="false" description\="Code in new interface type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.interfacebody" name\="interfacebody">\n</template><template autoinsert\="true" context\="enumbody_context" deleted\="false" description\="Code in new enum type bodies
 " enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.enumbody" name\="enumbody">\n</template><template autoinsert\="true" context\="annotationbody_context" deleted\="false" description\="Code in new annotation type bodies" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.annotationbody" name\="annotationbody">\n</template></templates>

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/pom.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/pom.xml?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/pom.xml (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/pom.xml Mon Jun  5 04:24:05 2006
@@ -0,0 +1,40 @@
+<project xmlns="http://maven.apache.org/POM/4.0.0" xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance"
+  xsi:schemaLocation="http://maven.apache.org/POM/4.0.0 http://maven.apache.org/maven-v4_0_0.xsd">
+  <modelVersion>4.0.0</modelVersion>
+  <groupId>org.apache.cayenne</groupId>
+  <artifactId>swing-plugin</artifactId>
+  <packaging>jar</packaging>
+  <version>3.0-SNAPSHOT</version>
+  <name>Maven Quick Start Archetype</name>
+  <url>http://maven.apache.org</url>
+	<dependencies>
+		<dependency>
+			<groupId>junit</groupId>
+			<artifactId>junit</artifactId>
+			<version>3.8.1</version>
+			<scope>test</scope>
+		</dependency>
+    
+		<!-- provided dependencies -->
+		<dependency>
+			<groupId>org.platonos</groupId>
+			<artifactId>plugin-engine</artifactId>
+			<version>1.1-SNAPSHOT</version>
+			<scope>provided</scope>
+		</dependency>
+		<dependency>
+			<groupId>org.apache.cayenne</groupId>
+			<artifactId>cayenne-modeler-launcher</artifactId>
+			<version>3.0-SNAPSHOT</version>
+			<scope>provided</scope>
+		</dependency>
+  </dependencies>
+  
+  <repositories>
+		<repository>
+			<id>objectstyle</id>
+			<name>ObjectStyle Public Maven2 repo</name>
+			<url>http://objectstyle.org/maven2</url>
+		</repository>
+	</repositories>
+</project>

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/BoundsBinding.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/BoundsBinding.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/BoundsBinding.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/BoundsBinding.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,83 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.cayenne.swing;
+
+import java.awt.Component;
+import java.awt.Rectangle;
+import java.awt.event.ComponentAdapter;
+import java.awt.event.ComponentEvent;
+
+import org.objectstyle.cayenne.swing.BindingBase;
+import org.objectstyle.cayenne.swing.BindingException;
+
+/**
+ * A binding that ties a component to a Rectangle shape.
+ * 
+ * @author Andrus Adamchik
+ */
+public class BoundsBinding extends BindingBase {
+
+    protected Component component;
+
+    public BoundsBinding(Component component, String propertyExpression) {
+        super(propertyExpression);
+        this.component = component;
+
+        component.addComponentListener(new ComponentAdapter() {
+
+            public void componentMoved(ComponentEvent e) {
+                updateModel();
+            }
+
+            public void componentResized(ComponentEvent e) {
+                updateModel();
+            }
+        });
+    }
+
+    public Component getView() {
+        return component;
+    }
+
+    public void updateView() {
+        Object value = getValue();
+
+        if (value == null) {
+            return;
+        }
+
+        if (!(value instanceof Rectangle)) {
+            throw new BindingException("Expected a vlaue of class "
+                    + Rectangle.class.getName()
+                    + ", got: "
+                    + value.getClass().getName());
+        }
+
+        Rectangle r = (Rectangle) value;
+
+        modelUpdateDisabled = true;
+        try {
+            component.setBounds(r);
+        }
+        finally {
+            modelUpdateDisabled = false;
+        }
+    }
+
+    protected void updateModel() {
+        setValue(component.getBounds());
+    }
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/CayenneSwingException.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/CayenneSwingException.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/CayenneSwingException.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/CayenneSwingException.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,20 @@
+package org.apache.cayenne.swing;
+
+
+public class CayenneSwingException extends RuntimeException {
+
+	public CayenneSwingException() {
+	}
+
+	public CayenneSwingException(String message) {
+		super(message);
+	}
+
+	public CayenneSwingException(Throwable cause) {
+		super(cause);
+	}
+
+	public CayenneSwingException(String message, Throwable cause) {
+		super(message, cause);
+	}
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/CayennePluginEngine.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/CayennePluginEngine.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/CayennePluginEngine.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/CayennePluginEngine.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,93 @@
+package org.apache.cayenne.swing.plugin;
+
+import java.io.IOException;
+import java.net.URL;
+import java.util.Enumeration;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.platonos.pluginengine.PluginEngine;
+import org.platonos.pluginengine.PluginEngineException;
+import org.platonos.pluginengine.logging.ILogger;
+import org.platonos.pluginengine.logging.LoggerLevel;
+
+/**
+ * An extension of PluginEngine that allows to store arbitrary attributes in the
+ * engine and also load plugins from CLASSPATH.
+ * 
+ * @author andrus
+ */
+public class CayennePluginEngine extends PluginEngine {
+
+	public static final String PLUGIN_LOCATION = "plugin.xml";
+
+	protected Map attributes = new HashMap();
+
+	public CayennePluginEngine(String uid, ILogger logger) {
+		super(uid, logger);
+	}
+
+	public CayennePluginEngine(String uid) {
+		super(uid);
+	}
+
+	/**
+	 * Loads all plugin descriptors that are available to the current
+	 * ClassLoader.
+	 */
+	public void loadBundledPlugins() {
+		Enumeration urls;
+
+		try {
+			urls = Thread.currentThread().getContextClassLoader().getResources(
+					PLUGIN_LOCATION);
+
+		} catch (IOException e) {
+			throw new RuntimeException(
+					"Error reading plugins infor from ClassLoader", e);
+		}
+
+		while (urls.hasMoreElements()) {
+			URL pluginURL = (URL) urls.nextElement();
+			try {
+				// TODO, andrus, 6/5/2006 - plugins loaded in this fashion will
+				// only be able to resolve classes from the same filesystem
+				// folder as plugin.xml. Will need a specialized ClassLoader for
+				// this case.
+				loadPluginXML(pluginURL);
+			} catch (PluginEngineException ex) {
+				getLogger().log(LoggerLevel.SEVERE,
+						"Error loading Plugin archive from URL: " + pluginURL,
+						ex);
+			}
+		}
+	}
+
+	/**
+	 * Returns a previously stored attribute for a given key or null if no
+	 * attribute matches the key.
+	 */
+	public Object getAttribute(String key) {
+		if (key == null) {
+			throw new NullPointerException("Invalid argument: key");
+		}
+
+		return (String) attributes.get(key);
+	}
+
+	public void setAttribute(String key, Object value) {
+		if (key == null) {
+			throw new NullPointerException("Invalid argument: key");
+		}
+
+		attributes.put(key, value);
+	}
+
+	public void removeAttribute(String key) {
+		if (key == null) {
+			throw new NullPointerException("Invalid argument: key");
+		}
+
+		attributes.remove(key);
+	}
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/Launcher.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/Launcher.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/Launcher.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/Launcher.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,63 @@
+package org.apache.cayenne.swing.plugin;
+
+import java.util.Iterator;
+import java.util.StringTokenizer;
+
+import org.platonos.pluginengine.Plugin;
+import org.platonos.pluginengine.logging.LoggerLevel;
+
+/**
+ * Starts a plugin shell for a Swing application.
+ */
+public class Launcher {
+
+	public static final String COMMAND_LINE_ATTRIBUTE = "command.line";
+
+	static final String ENGINE_NAME = "Cayenne Plugin Engine";
+
+	/**
+	 * A property specifying a location of the plugins directory. It can be a
+	 * comma separated list of directories. If not set, current directory is
+	 * used.
+	 */
+	public static final String PLUGINS_DIR_PROPERTY = "plugins.dirs";
+
+	public static void main(String[] args) {
+
+		CayennePluginEngine pluginEngine = new CayennePluginEngine(ENGINE_NAME);
+		pluginEngine.setAttribute(COMMAND_LINE_ATTRIBUTE, args);
+
+		// load plugins from ClassPath
+		pluginEngine.loadBundledPlugins();
+
+		// load plugins from extra directories
+		String pluginDirectories = System.getProperty(PLUGINS_DIR_PROPERTY);
+		if (pluginDirectories != null) {
+			StringTokenizer toks = new StringTokenizer(pluginDirectories, ",");
+			while (toks.hasMoreTokens()) {
+				pluginEngine.loadPlugins(toks.nextToken());
+			}
+		}
+
+		pluginEngine.start();
+
+		boolean hasStartedPlugins = false;
+		Iterator it = pluginEngine.getPlugins().iterator();
+		while (it.hasNext()) {
+			Plugin p = (Plugin) it.next();
+			if (p.isStarted()) {
+				hasStartedPlugins = true;
+				break;
+			}
+		}
+
+		// either no plugins configured, all all of them failed to start.
+		if (!hasStartedPlugins) {
+			pluginEngine.getLogger().log(LoggerLevel.INFO,
+					"No plugins started, exiting", null);
+			
+			// must explicitly kill all UI threads
+			System.exit(0);
+		}
+	}
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameBuilderExtension.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameBuilderExtension.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameBuilderExtension.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameBuilderExtension.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,11 @@
+package org.apache.cayenne.swing.plugin.frame;
+
+
+public interface FrameBuilderExtension {
+
+    void initActions(FramePlugin plugin);
+
+    void initMenus(FramePlugin plugin);
+
+    void initFrame(FramePlugin plugin);
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameController.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameController.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameController.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FrameController.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,168 @@
+/*
+ *  Copyright 2006 The Apache Software Foundation
+ *
+ *  Licensed under the Apache License, Version 2.0 (the "License");
+ *  you may not use this file except in compliance with the License.
+ *  You may obtain a copy of the License at
+ *
+ *      http://www.apache.org/licenses/LICENSE-2.0
+ *
+ *  Unless required by applicable law or agreed to in writing, software
+ *  distributed under the License is distributed on an "AS IS" BASIS,
+ *  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+ *  See the License for the specific language governing permissions and
+ *  limitations under the License.
+ */
+package org.apache.cayenne.swing.plugin.frame;
+
+import java.awt.Component;
+import java.awt.Rectangle;
+import java.awt.event.ActionEvent;
+import java.awt.event.WindowAdapter;
+import java.awt.event.WindowEvent;
+import java.util.prefs.Preferences;
+
+import javax.swing.AbstractAction;
+import javax.swing.Action;
+import javax.swing.JFrame;
+
+import org.apache.cayenne.swing.BoundsBinding;
+import org.objectstyle.cayenne.modeler.util.CayenneController;
+import org.objectstyle.cayenne.swing.ObjectBinding;
+
+public class FrameController extends CayenneController {
+
+    protected String name;
+    protected JFrame frame;
+    protected FramePlugin framePlugin;
+    protected ObjectBinding boundsBinding;
+    protected int newFrameOffset;
+
+    public FrameController(FramePlugin framePlugin) {
+        super((CayenneController) null);
+
+        this.framePlugin = framePlugin;
+        this.frame = new JFrame();
+        this.newFrameOffset = 30;
+    }
+
+    public Component getView() {
+        return frame;
+    }
+
+    public FramePlugin getFramePlugin() {
+        return framePlugin;
+    }
+
+    public JFrame getFrame() {
+        return frame;
+    }
+
+    /**
+     * Returns an action that calls 'shutdownAction' on this controller.
+     */
+    public Action getDefaultShutdownAction() {
+        return new AbstractAction() {
+
+            public void actionPerformed(ActionEvent e) {
+                shutdown();
+            }
+        };
+    }
+
+    public Action getShutdownAction() {
+        Action action = framePlugin.getActionMap().get(FramePlugin.QUIT_ACTION);
+        return action != null ? action : getDefaultShutdownAction();
+    }
+
+    /**
+     * Starts the application frame.
+     */
+    public void startup() {
+
+        if (name == null) {
+            name = framePlugin.getPlugin().getName();
+        }
+
+        if (frame.getTitle() == null || frame.getTitle().trim().length() == 0) {
+            frame.setTitle(name);
+        }
+
+        // make closeable frame
+        frame.addWindowListener(new WindowAdapter() {
+
+            public void windowClosing(WindowEvent e) {
+                getShutdownAction().actionPerformed(new ActionEvent(this, 1, null));
+            }
+        });
+
+        // setup preferred bounds offset...
+        if (newFrameOffset > 0) {
+            Preferences prefs = getPreferences();
+
+            int xOffset = (int) (Math.random() * newFrameOffset);
+            prefs.putInt("x", prefs.getInt("x", 0) + xOffset);
+
+            int yOffset = (int) (Math.random() * newFrameOffset);
+            prefs.putInt("y", prefs.getInt("y", 0) + yOffset);
+        }
+
+        boundsBinding = new BoundsBinding(frame, "bounds");
+        boundsBinding.setContext(this);
+        boundsBinding.updateView();
+        frame.setVisible(true);
+    }
+
+    /**
+     * Shuts down the application frame.
+     */
+    public void shutdown() {
+        if (this.frame != null) {
+            this.frame.dispose();
+        }
+
+        System.exit(0);
+    }
+
+    public String getName() {
+        return name;
+    }
+
+    public void setName(String name) {
+        this.name = name;
+    }
+
+    public Rectangle getBounds() {
+        Preferences prefs = getPreferences();
+
+        int x = prefs.getInt("x", 0);
+        int y = prefs.getInt("y", 0);
+        int w = prefs.getInt("w", 600);
+        int h = prefs.getInt("h", 400);
+
+        // TODO: andrus, 6/5/2006 - validate bounds
+
+        return new Rectangle(x, y, w, h);
+    }
+
+    public void setBounds(Rectangle bounds) {
+        Preferences prefs = getPreferences();
+
+        prefs.putInt("w", frame.getWidth());
+        prefs.putInt("h", frame.getHeight());
+        prefs.putInt("x", frame.getX());
+        prefs.putInt("y", frame.getY());
+    }
+
+    protected Preferences getPreferences() {
+        return Preferences.userNodeForPackage(getClass()).node(name);
+    }
+
+    public int getNewFrameOffset() {
+        return newFrameOffset;
+    }
+
+    public void setNewFrameOffset(int newFrameOffset) {
+        this.newFrameOffset = newFrameOffset;
+    }
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FramePlugin.java
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FramePlugin.java?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FramePlugin.java (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/org/apache/cayenne/swing/plugin/frame/FramePlugin.java Mon Jun  5 04:24:05 2006
@@ -0,0 +1,95 @@
+package org.apache.cayenne.swing.plugin.frame;
+
+import java.util.Iterator;
+import java.util.List;
+
+import javax.swing.ActionMap;
+
+import org.platonos.pluginengine.Extension;
+import org.platonos.pluginengine.PluginLifecycle;
+
+/**
+ * A plugin that starts an empty closeable frame intended for customization by extension.
+ * 
+ * @author Andrus Adamchik
+ */
+public class FramePlugin extends PluginLifecycle {
+
+    public static final String QUIT_ACTION = "frame.action.quit";
+
+    public static final String FRAME_BUILDERS_EXT = "frameBuilders";
+
+    protected FrameController frameController;
+    protected ActionMap actionMap;
+
+    protected void start() {
+
+        frameController = new FrameController(this);
+        actionMap = new ActionMap();
+
+        List extensions = getExtensionPoint(FRAME_BUILDERS_EXT).getExtensions();
+
+        initActions(extensions);
+        initMenus(extensions);
+        initFrame(extensions);
+
+        frameController.startup();
+    }
+
+    protected void initActions(List extensions) {
+
+        Iterator it = extensions.iterator();
+        while (it.hasNext()) {
+            Extension extension = (Extension) it.next();
+            FrameBuilderExtension ext = (FrameBuilderExtension) extension
+                    .getExtensionInstance();
+
+            ext.initActions(this);
+        }
+
+        // add default close action
+        if (actionMap.get(QUIT_ACTION) == null) {
+            actionMap.put(QUIT_ACTION, frameController.getDefaultShutdownAction());
+        }
+    }
+
+    protected void initMenus(List extensions) {
+
+        Iterator it = extensions.iterator();
+        while (it.hasNext()) {
+            Extension extension = (Extension) it.next();
+            FrameBuilderExtension ext = (FrameBuilderExtension) extension
+                    .getExtensionInstance();
+
+            ext.initMenus(this);
+        }
+    }
+
+    protected void initFrame(List extensions) {
+
+        Iterator it = extensions.iterator();
+        while (it.hasNext()) {
+            Extension extension = (Extension) it.next();
+            FrameBuilderExtension ext = (FrameBuilderExtension) extension
+                    .getExtensionInstance();
+
+            ext.initFrame(this);
+        }
+    }
+
+    public ActionMap getActionMap() {
+        return actionMap;
+    }
+
+    public void setActionMap(ActionMap actionMap) {
+        this.actionMap = actionMap;
+    }
+
+    public FrameController getFrameController() {
+        return frameController;
+    }
+
+    public void setFrameController(FrameController frameController) {
+        this.frameController = frameController;
+    }
+}

Added: incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/plugin.xml
URL: http://svn.apache.org/viewvc/incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/plugin.xml?rev=411747&view=auto
==============================================================================
--- incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/plugin.xml (added)
+++ incubator/cayenne/main/branches/PROTO-3.0/swing-plugin/src/main/java/plugin.xml Mon Jun  5 04:24:05 2006
@@ -0,0 +1,8 @@
+<plugin start="true">
+   <uid>org.apache.cayenne:swing-frame-plugin</uid>
+   <name>Generic Application Frame</name>
+   <lifecycleclass>org.apache.cayenne.swing.plugin.frame.FramePlugin</lifecycleclass>
+   <extensionpoints>
+		<extensionpoint name="frameBuilders" interface="org.apache.cayenne.swing.plugin.frame.FrameBuilderExtension"/>
+   </extensionpoints>
+</plugin>
\ No newline at end of file