Commits

shuji.w6e  committed 93ab0aa

import first

  • Participants

Comments (0)

Files changed (122)

+<?xml version="1.0" encoding="UTF-8"?>
+<classpath>
+	<classpathentry kind="src" path="src"/>
+	<classpathentry kind="src" path="test"/>
+	<classpathentry kind="con" path="com.google.appengine.eclipse.core.GAE_CONTAINER"/>
+	<classpathentry kind="lib" path="war/WEB-INF/lib/junit-4.7.jar"/>
+	<classpathentry kind="lib" path="war/WEB-INF/lib/slim3-1.0.4.jar" sourcepath="libsrc/slim3-1.0.4-sources.jar"/>
+	<classpathentry kind="src" path=".apt_generated">
+		<attributes>
+			<attribute name="optional" value="true"/>
+		</attributes>
+	</classpathentry>
+	<classpathentry kind="con" path="org.eclipse.jdt.launching.JRE_CONTAINER"/>
+	<classpathentry kind="con" path="com.google.gwt.eclipse.core.GWT_CONTAINER"/>
+	<classpathentry kind="output" path="war/WEB-INF/classes"/>
+</classpath>

File .externalToolBuilders/com.google.appengine.eclipse.core.enhancerbuilder (3).launch

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="com.google.appengine.eclipse.core.enhancerbuilder"/>
+<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+</launchConfiguration>

File .externalToolBuilders/com.google.appengine.eclipse.core.projectValidator (2).launch

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ui.externaltools.ProgramBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="com.google.appengine.eclipse.core.projectValidator"/>
+<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+</launchConfiguration>

File .externalToolBuilders/com.google.gdt.eclipse.core.webAppProjectValidator.launch

+<?xml version="1.0" encoding="UTF-8" standalone="no"?>
+<launchConfiguration type="org.eclipse.ant.AntBuilderLaunchConfigurationType">
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_BUILDER_ENABLED" value="false"/>
+<stringAttribute key="org.eclipse.ui.externaltools.ATTR_DISABLED_BUILDER" value="com.google.gdt.eclipse.core.webAppProjectValidator"/>
+<mapAttribute key="org.eclipse.ui.externaltools.ATTR_TOOL_ARGUMENTS"/>
+<booleanAttribute key="org.eclipse.ui.externaltools.ATTR_TRIGGERS_CONFIGURED" value="true"/>
+</launchConfiguration>

File .factorypath

+<factorypath>
+    <factorypathentry kind="WKSPJAR" id="/es-learning/lib/slim3-gen-1.0.4.jar" enabled="true" runInBatchMode="false"/>
+</factorypath>
+<?xml version="1.0" encoding="UTF-8"?>
+<projectDescription>
+	<name>eWorkBook</name>
+	<comment></comment>
+	<projects>
+	</projects>
+	<buildSpec>
+		<buildCommand>
+			<name>org.eclipse.jdt.core.javabuilder</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>LaunchConfigHandle</key>
+					<value>&lt;project&gt;/.externalToolBuilders/com.google.appengine.eclipse.core.enhancerbuilder (3).launch</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>LaunchConfigHandle</key>
+					<value>&lt;project&gt;/.externalToolBuilders/com.google.appengine.eclipse.core.projectValidator (2).launch</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>org.eclipse.ui.externaltools.ExternalToolBuilder</name>
+			<triggers>full,incremental,</triggers>
+			<arguments>
+				<dictionary>
+					<key>LaunchConfigHandle</key>
+					<value>&lt;project&gt;/.externalToolBuilders/com.google.gdt.eclipse.core.webAppProjectValidator.launch</value>
+				</dictionary>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.google.gdt.eclipse.core.webAppProjectValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+		<buildCommand>
+			<name>com.google.gwt.eclipse.core.gwtProjectValidator</name>
+			<arguments>
+			</arguments>
+		</buildCommand>
+	</buildSpec>
+	<natures>
+		<nature>org.eclipse.jdt.core.javanature</nature>
+		<nature>com.google.appengine.eclipse.core.gaeNature</nature>
+		<nature>com.google.gdt.eclipse.core.webAppNature</nature>
+		<nature>com.google.gwt.eclipse.core.gwtNature</nature>
+	</natures>
+</projectDescription>

File .settings/com.google.appengine.eclipse.core.prefs

+#Wed Jul 07 21:53:31 JST 2010
+eclipse.preferences.version=1
+filesCopiedToWebInfLib=appengine-api-1.0-sdk-1.3.5.jar|appengine-api-labs-1.3.5.jar|appengine-jsr107cache-1.3.5.jar|jsr107cache-1.1.jar|datanucleus-appengine-1.0.7.final.jar|datanucleus-core-1.1.5.jar|datanucleus-jpa-1.1.5.jar|geronimo-jpa_3.0_spec-1.1.1.jar|geronimo-jta_1.1_spec-1.1.1.jar|jdo2-api-2.3-eb.jar
+ormEnhancementInclusions=

File .settings/com.google.gdt.eclipse.core.prefs

+#Sun Dec 13 10:07:49 JST 2009
+eclipse.preferences.version=1
+jarsExcludedFromWebInfLib=

File .settings/com.google.gwt.eclipse.core.prefs

+#Thu Jul 08 21:26:07 JST 2010
+eclipse.preferences.version=1
+entryPointModules=
+filesCopiedToWebInfLib=
+gwtCompileSettings=PGd3dC1jb21waWxlLXNldHRpbmdzPjxsb2ctbGV2ZWw+SU5GTzwvbG9nLWxldmVsPjxvdXRwdXQtc3R5bGU+T0JGVVNDQVRFRDwvb3V0cHV0LXN0eWxlPjxleHRyYS1hcmdzPjwhW0NEQVRBW11dPjwvZXh0cmEtYXJncz48dm0tYXJncz48IVtDREFUQVstWG14NTEybV1dPjwvdm0tYXJncz48L2d3dC1jb21waWxlLXNldHRpbmdzPg\=\=

File .settings/org.eclipse.jdt.apt.core.prefs

+#Sat May 30 11:23:36 JST 2009
+eclipse.preferences.version=1
+org.eclipse.jdt.apt.aptEnabled=true
+org.eclipse.jdt.apt.genSrcDir=.apt_generated
+org.eclipse.jdt.apt.reconcileEnabled=false

File .settings/org.eclipse.jdt.core.prefs

+#Wed Jul 07 21:50:59 JST 2010
+eclipse.preferences.version=1
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.processAnnotations=enabled
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=52
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=16
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=52
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=52
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=52
+org.eclipse.jdt.core.formatter.alignment_for_assignment=52
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=52
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=16
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=52
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=52
+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=52
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=16
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=0
+org.eclipse.jdt.core.formatter.blank_lines_before_first_class_body_declaration=0
+org.eclipse.jdt.core.formatter.blank_lines_before_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_before_member_type=1
+org.eclipse.jdt.core.formatter.blank_lines_before_method=1
+org.eclipse.jdt.core.formatter.blank_lines_before_new_chunk=1
+org.eclipse.jdt.core.formatter.blank_lines_before_package=0
+org.eclipse.jdt.core.formatter.blank_lines_between_import_groups=1
+org.eclipse.jdt.core.formatter.blank_lines_between_type_declarations=1
+org.eclipse.jdt.core.formatter.brace_position_for_annotation_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_anonymous_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_array_initializer=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_block_in_case=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_constructor_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_constant=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_enum_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_method_declaration=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_switch=end_of_line
+org.eclipse.jdt.core.formatter.brace_position_for_type_declaration=end_of_line
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_block_comment=false
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=false
+org.eclipse.jdt.core.formatter.comment.format_block_comments=true
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=true
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=80
+org.eclipse.jdt.core.formatter.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=4
+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=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_paren_in_cast=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_case=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_colon_in_labeled_statement=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_allocation_expression=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_annotation=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_constructor_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_constant_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_enum_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_explicitconstructorcall_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_increments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_for_inits=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_declaration_throws=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_method_invocation_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_field_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_multiple_local_declarations=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_parameterized_type_reference=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_superinterfaces=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_comma_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_ellipsis=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_brace_in_array_initializer=insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_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=false
+org.eclipse.jdt.core.formatter.keep_then_statement_on_same_line=false
+org.eclipse.jdt.core.formatter.lineSplit=80
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=false
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=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

File .settings/org.eclipse.jdt.ui.prefs

+#Wed Jun 03 10:26:01 JST 2009
+eclipse.preferences.version=1
+formatter_profile=_Slim3
+formatter_settings_version=11

File build.properties

+ver=1.0.4
+srcDir=src
+testDir=test
+warDir=war
+<project name="slim3-blank" default="gen-controller" basedir=".">
+    <property file="build.properties" />
+
+    <path id="classpath">
+        <fileset dir="war/WEB-INF/classes">
+            <include name="**/*.class" />
+        </fileset>
+        <fileset dir="war/WEB-INF/lib">
+            <include name="**/*.jar" />
+        </fileset>
+        <fileset dir="lib">
+            <include name="**/*.jar" />
+        </fileset>
+    </path>
+
+    <taskdef name="gen-model" classname="org.slim3.gen.task.GenModelTask" classpathref="classpath"/>
+    <taskdef name="gen-view" classname="org.slim3.gen.task.GenViewTask" classpathref="classpath"/>
+	<taskdef name="gen-service" classname="org.slim3.gen.task.GenServiceTask" classpathref="classpath"/>
+	<taskdef name="gen-controller" classname="org.slim3.gen.task.GenControllerTask" classpathref="classpath"/>
+    <taskdef name="gen-gwt-service" classname="org.slim3.gen.task.GenGWTServiceTask" classpathref="classpath"/>
+    <taskdef name="gen-gwt-service-impl" classname="org.slim3.gen.task.GenGWTServiceImplTask" classpathref="classpath"/>
+    
+    <target name="gen-controller">
+        <input message="Input a controller path." addproperty="controllerPath"/>
+        <gen-controller srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" controllerpath="${controllerPath}"
+             useView="true"/>
+        <gen-view wardir="${warDir}" controllerPath="${controllerPath}"/>
+    </target>
+
+    <target name="gen-controller-without-view">
+        <input message="Input a controller path." addproperty="controllerPath"/>
+        <gen-controller srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" controllerpath="${controllerPath}"
+            useView="false"/>
+    </target>
+
+    <target name="gen-model">
+        <input message="Input a model name. (ex.  Foo -> root.model.Foo,  bar.Foo -> root.model.bar.Foo). Sub-model extends Super-model." addproperty="modelDefinition"/>
+        <gen-model srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" modelDefinition="${modelDefinition}" modelClassNameProperty="modelClassName"/>
+    </target>
+
+    <target name="gen-service">
+        <input message="Input a service name. (ex.  FooService -> root.service.FooService,  bar.FooService -> root.service.bar.FooService)" addproperty="serviceDefinition"/>
+        <gen-service srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" serviceDefinition="${serviceDefinition}"/>
+    </target>
+   
+	<target name="gen-gwt-service">
+        <input message="Input a GWT service name. (ex.  FooService -> root.client.service.FooService,  bar.FooService -> root.client.service.bar.FooService)" addproperty="serviceDefinition"/>
+        <gen-gwt-service srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" serviceDefinition="${serviceDefinition}" serviceClassNameProperty="serviceClassName"/>
+        <gen-gwt-service-impl srcdir="${srcDir}" testdir="${testDir}" wardir="${warDir}" serviceDefinition="${serviceDefinition}" serviceClassName="${serviceClassName}"/>
+    </target>
+    
+    <target name="copy">
+        <copy todir="war/WEB-INF/lib" file="../slim3/target/slim3-${ver}.jar"/>
+        <copy todir="libsrc" file="../slim3/target/slim3-${ver}-sources.jar"/>
+        <copy todir="lib" file="../slim3-gen/target/slim3-gen-${ver}.jar"/>
+        <copy todir="libsrc" file="../slim3-gen/target/slim3-gen-${ver}-sources.jar"/>
+        <copy todir="src" file="../slim3/src/main/resources/application_en.properties"/>
+        <copy todir="src" file="../slim3/src/main/resources/application_ja.properties"/>
+    </target>
+
+    <target name="dist">
+        <delete includeemptydirs="true" failonerror="false">
+            <fileset dir="target"/>
+        </delete>
+        <mkdir dir="target"/>
+        <zip zipfile="target/slim3-blank-${ver}.zip">
+            <zipfileset prefix="slim3-blank" dir=".">
+                <exclude name="target/**"/>
+                <exclude name="war/WEB-INF/classes/**"/>
+            </zipfileset>
+        </zip>
+    </target>
+</project>

File build/test-classes/WEB-INF/appengine-generated/local_db.bin

Empty file added.

File lib/slim3-gen-1.0.4.jar

Binary file added.

File libsrc/slim3-1.0.4-sources.jar

Binary file added.

File libsrc/slim3-gen-1.0.4-sources.jar

Binary file added.

File src/application_en.properties

+validator.required={0} is required.
+validator.byteType={0} must be a byte.
+validator.shortType={0} must be a short.
+validator.integerType={0} must be an integer.
+validator.longType={0} must be a long.
+validator.floatType={0} must be a float.
+validator.doubleType={0} must be a double.
+validator.numberType={0} is not a number({1}).
+validator.dateType={0} is not a date({1}).
+validator.minlength={0} can not be less than {1} characters.
+validator.maxlength={0} can not be greater than {1} characters.
+validator.range={0} is not in the {1} to {2} range.
+validator.regexp={0} is invalid.

File src/application_ja.properties

+validator.required={0}\u306f\u5fc5\u9808\u3067\u3059\u3002
+validator.byteType={0}\u306f\u30d0\u30a4\u30c8\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.shortType={0}\u306f\u77ed\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.integerType={0}\u306f\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.longType={0}\u306f\u9577\u6574\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.floatType={0}\u306f\u5358\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.doubleType={0}\u306f\u500d\u7cbe\u5ea6\u5b9f\u6570\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.numberType={0}\u306f\u6570\u5024({1})\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+validator.dateType={0}\u306f\u65e5\u4ed8({1})\u3067\u306f\u3042\u308a\u307e\u305b\u3093\u3002
+validator.minlength={0}\u306e\u9577\u3055\u304c\u6700\u5c0f\u5024({1})\u672a\u6e80\u3067\u3059\u3002
+validator.maxlength={0}\u306e\u9577\u3055\u304c\u6700\u5927\u5024({1})\u3092\u8d85\u3048\u3066\u3044\u307e\u3059\u3002
+validator.range={0}\u306f{1}\u3068{2}\u306e\u9593\u3067\u306a\u3051\u308c\u3070\u3044\u3051\u307e\u305b\u3093\u3002
+validator.regexp={0}\u304c\u4e0d\u6b63\u3067\u3059\u3002

File src/jp/sunflower/eworkbook/WorkBook.gwt.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.3//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.3/distro-source/core/src/gwt-module.dtd">
+<module>
+  <inherits name="com.google.gwt.user.User" />
+  <inherits name="org.slim3.gwt.emul.S3Emulation" />
+  <source path="client" />
+  <source path="shared" />
+  <entry-point class="jp.sunflower.eworkbook.client.WorkBookEntryPoint" />
+</module>

File src/jp/sunflower/eworkbook/WorkBookAdmin.gwt.xml

+<?xml version="1.0" encoding="UTF-8"?>
+<!DOCTYPE module PUBLIC "-//Google Inc.//DTD Google Web Toolkit 2.0.3//EN" "http://google-web-toolkit.googlecode.com/svn/tags/2.0.3/distro-source/core/src/gwt-module.dtd">
+<module>
+  <inherits name="com.google.gwt.user.User" />
+  <inherits name="org.slim3.gwt.emul.S3Emulation" />
+  <source path="client" />
+  <source path="shared" />
+  <entry-point
+    class="jp.sunflower.eworkbook.client.WorkBookAdminEntryPoint" />
+</module>

File src/jp/sunflower/eworkbook/client/WorkBook.java

+package jp.sunflower.eworkbook.client;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.Widget;
+
+public class WorkBook extends Composite {
+
+    private static WorkBookUiBinder uiBinder =
+        GWT.create(WorkBookUiBinder.class);
+
+    interface WorkBookUiBinder extends UiBinder<Widget, WorkBook> {
+    }
+
+
+    public WorkBook() {
+        initWidget(uiBinder.createAndBindUi(this));
+    }
+
+
+}

File src/jp/sunflower/eworkbook/client/WorkBook.ui.xml

+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+  xmlns:g="urn:import:com.google.gwt.user.client.ui">
+  <ui:style>
+    .important {
+    	font-weight: bold;
+    }
+  </ui:style>
+  <g:HTMLPanel>
+  </g:HTMLPanel>
+</ui:UiBinder> 

File src/jp/sunflower/eworkbook/client/WorkBookAdmin.java

+package jp.sunflower.eworkbook.client;
+
+import java.util.ArrayList;
+import java.util.List;
+
+import jp.sunflower.eworkbook.client.service.WorkBookService;
+import jp.sunflower.eworkbook.client.service.WorkBookServiceAsync;
+import jp.sunflower.eworkbook.shared.Option;
+import jp.sunflower.eworkbook.shared.model.Exercise;
+
+import com.google.gwt.core.client.GWT;
+import com.google.gwt.event.dom.client.ChangeEvent;
+import com.google.gwt.event.dom.client.ChangeHandler;
+import com.google.gwt.event.dom.client.ClickEvent;
+import com.google.gwt.event.dom.client.ClickHandler;
+import com.google.gwt.uibinder.client.UiBinder;
+import com.google.gwt.uibinder.client.UiField;
+import com.google.gwt.uibinder.client.UiHandler;
+import com.google.gwt.user.client.Window;
+import com.google.gwt.user.client.rpc.AsyncCallback;
+import com.google.gwt.user.client.ui.Button;
+import com.google.gwt.user.client.ui.CheckBox;
+import com.google.gwt.user.client.ui.Composite;
+import com.google.gwt.user.client.ui.FlexTable;
+import com.google.gwt.user.client.ui.ListBox;
+import com.google.gwt.user.client.ui.TextArea;
+import com.google.gwt.user.client.ui.TextBox;
+import com.google.gwt.user.client.ui.Widget;
+
+public class WorkBookAdmin extends Composite {
+
+    private static final int MIN_OPTIONS = 4;
+    private static WorkBookServiceAsync service =
+        GWT.create(WorkBookService.class);
+
+    private static WorkBookAdminUiBinder uiBinder =
+        GWT.create(WorkBookAdminUiBinder.class);
+
+    interface WorkBookAdminUiBinder extends UiBinder<Widget, WorkBookAdmin> {
+    }
+
+    List<Option> optionList = new ArrayList<Option>();
+
+    @UiField
+    Button add;
+    @UiField
+    ListBox questions;
+    @UiField
+    TextArea question;
+    @UiField
+    FlexTable options;
+    @UiField
+    Button addOption;
+    @UiField
+    Button registerButton;
+
+    public WorkBookAdmin() {
+        initWidget(uiBinder.createAndBindUi(this));
+        // Add Button
+        add.setText("Add");
+        // Question List
+        questions.setVisibleItemCount(20);
+        // Option Table
+        while (optionList.size() < MIN_OPTIONS) {
+            addOption();
+        }
+        // Add Option
+        addOption.setText("Add Option");
+        // Register Button
+        registerButton.setText("Register");
+    }
+
+    void addOption() {
+        final Option option = new Option(optionList.size());
+        optionList.add(option);
+        int row = option.index;
+        // TextBox
+        final TextBox textBox = new TextBox();
+        textBox.setWidth("300px");
+        textBox.addChangeHandler(new ChangeHandler() {
+
+            @Override
+            public void onChange(ChangeEvent event) {
+                option.text = textBox.getValue();
+            }
+        });
+        // CheckBox
+        final CheckBox checkBox = new CheckBox();
+        checkBox.addClickHandler(new ClickHandler() {
+
+            @Override
+            public void onClick(ClickEvent event) {
+                option.answer = checkBox.getValue();
+            }
+        });
+        // RemoveBottuon
+        Button removeButton = new Button("x");
+        removeButton.setEnabled(MIN_OPTIONS <= row);
+        removeButton.addClickHandler(new ClickHandler() {
+            public void onClick(ClickEvent event) {
+                int removedIndex = optionList.indexOf(option);
+                optionList.remove(removedIndex);
+                options.removeRow(removedIndex);
+                refleshOptions();
+            }
+        });
+        // Layout
+        int col = 0;
+        options.setText(row, col++, option.getIndexText());
+        options.setWidget(row, col++, textBox);
+        options.setWidget(row, col++, checkBox);
+        options.setWidget(row, col++, removeButton);
+    }
+
+    void refleshOptions() {
+        int size = optionList.size();
+        for (int i = 0; i < size; i++) {
+            Option option = optionList.get(i);
+            option.index = i;
+            options.setText(i, 0, option.getIndexText());
+        }
+    }
+
+    @UiHandler("addOption")
+    void onAddOption(ClickEvent e) {
+        addOption();
+    }
+
+    @UiHandler("registerButton")
+    void onRegister(ClickEvent e) {
+        if (question.getText().isEmpty()) {
+            Window.alert("Question is empty.");
+            return;
+        }
+        boolean hasAnswers = false;
+        for (Option option : optionList) {
+            if (option.text.isEmpty()) {
+                Window.alert("Option(" + option.getIndexText() + ") is empty.");
+                return;
+            }
+            if (option.answer)
+                hasAnswers = true;
+        }
+        if (!hasAnswers) {
+            Window.alert("Has no answers.");
+            return;
+        }
+        Exercise ex = new Exercise();
+        ex.setQuestion(question.getText());
+        for (Option option : optionList) {
+            ex.getOptions().add(option.text);
+            if (option.answer)
+                ex.getAnswers().add(option.index);
+        }
+        service.register(ex, new AsyncCallback<Void>() {
+
+            public void onSuccess(Void result) {
+                Window.alert("Success!!!");
+            }
+
+            public void onFailure(Throwable caught) {
+                Window.alert(caught.getMessage());
+            }
+        });
+    }
+}

File src/jp/sunflower/eworkbook/client/WorkBookAdmin.ui.xml

+<!DOCTYPE ui:UiBinder SYSTEM "http://dl.google.com/gwt/DTD/xhtml.ent">
+<ui:UiBinder xmlns:ui="urn:ui:com.google.gwt.uibinder"
+  xmlns:g="urn:import:com.google.gwt.user.client.ui">
+  <ui:style>
+    .questions {
+    	width: 200px;
+    }
+    
+    .question {
+    	margin-left: 20px;
+    	width: 400px;
+    	height: 200px;
+    }
+    
+    .options {
+    	margin-left: 20px;
+    	width: 400px;
+    	height: 100px;
+    }
+    
+  </ui:style>
+  <g:HorizontalPanel>
+    <g:HTMLPanel>
+      <g:Button ui:field="add" />
+      <br />
+      <g:ListBox ui:field="questions" styleName="{style.questions}"></g:ListBox>
+    </g:HTMLPanel>
+    <g:HTMLPanel>
+      <div class="caption" >Question</div>
+      <g:TextArea ui:field="question" styleName="{style.question}" />
+      <div>Options</div>
+      <g:FlexTable ui:field="options" styleName="{style.options}" />
+      <div>
+        <g:Button ui:field="addOption" />
+      </div>
+        <g:Button ui:field="registerButton" />
+    </g:HTMLPanel>
+  </g:HorizontalPanel>
+</ui:UiBinder> 

File src/jp/sunflower/eworkbook/client/WorkBookAdminEntryPoint.java

+package jp.sunflower.eworkbook.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class WorkBookAdminEntryPoint implements EntryPoint {
+
+    @Override
+    public void onModuleLoad() {
+        RootPanel.get().add(new WorkBookAdmin());
+    }
+
+}

File src/jp/sunflower/eworkbook/client/WorkBookEntryPoint.java

+package jp.sunflower.eworkbook.client;
+
+import com.google.gwt.core.client.EntryPoint;
+import com.google.gwt.user.client.ui.RootPanel;
+
+public class WorkBookEntryPoint implements EntryPoint {
+
+    @Override
+    public void onModuleLoad() {
+        RootPanel.get().add(new WorkBook());
+    }
+
+}

File src/jp/sunflower/eworkbook/client/service/WorkBookService.java

+package jp.sunflower.eworkbook.client.service;
+
+import jp.sunflower.eworkbook.shared.model.Exercise;
+
+import com.google.gwt.user.client.rpc.RemoteService;
+import com.google.gwt.user.client.rpc.RemoteServiceRelativePath;
+
+@RemoteServiceRelativePath("service.s3gwt")
+public interface WorkBookService extends RemoteService {
+    
+    void register(Exercise exercise);
+}

File src/jp/sunflower/eworkbook/client/service/WorkBookServiceAsync.java

+package jp.sunflower.eworkbook.client.service;
+
+import jp.sunflower.eworkbook.shared.model.Exercise;
+
+import com.google.gwt.user.client.rpc.AsyncCallback;
+
+public interface WorkBookServiceAsync {
+
+    void register(Exercise exercise, AsyncCallback<Void> callback);
+
+}

File src/jp/sunflower/eworkbook/server/service/WorkBookServiceImpl.java

+package jp.sunflower.eworkbook.server.service;
+
+import jp.sunflower.eworkbook.client.service.WorkBookService;
+import jp.sunflower.eworkbook.shared.model.Exercise;
+
+import org.slim3.datastore.Datastore;
+
+public class WorkBookServiceImpl implements WorkBookService {
+
+    @Override
+    public void register(Exercise exercise) {
+        Datastore.put(exercise);
+    }
+}

File src/jp/sunflower/eworkbook/shared/Option.java

+package jp.sunflower.eworkbook.shared;
+
+public class Option {
+    public int index;
+    public String text = "";
+    public boolean answer = false;
+    
+    public Option(int index) {
+        this.index = index;
+    }
+    
+    public String getIndexText() {
+        return ((char) ('A' + index)) + ".";
+    }
+}

File src/jp/sunflower/eworkbook/shared/model/Exercise.java

+package jp.sunflower.eworkbook.shared.model;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+
+import org.slim3.datastore.Attribute;
+import org.slim3.datastore.Model;
+
+import com.google.appengine.api.datastore.Key;
+
+@Model(schemaVersion = 1)
+public class Exercise implements Serializable {
+    private static final long serialVersionUID = 1L;
+
+    @Attribute(primaryKey = true)
+    private Key key;
+    @Attribute(lob = true)
+    private String question;
+    private List<String> options = new ArrayList<String>();
+    private List<Integer> answers = new ArrayList<Integer>();
+
+    /**
+     * Returns the key.
+     * 
+     * @return the key
+     */
+    public Key getKey() {
+        return key;
+    }
+
+    /**
+     * Sets the key.
+     * 
+     * @param key
+     *            the key
+     */
+    public void setKey(Key key) {
+        this.key = key;
+    }
+
+    public String getQuestion() {
+        return question;
+    }
+
+    public void setQuestion(String question) {
+        this.question = question;
+    }
+
+    public List<String> getOptions() {
+        return options;
+    }
+
+    public void setOptions(List<String> options) {
+        this.options = options;
+    }
+
+    public List<Integer> getAnswers() {
+        return answers;
+    }
+
+    public void setAnswers(List<Integer> answers) {
+        this.answers = answers;
+    }
+
+    @Override
+    public String toString() {
+        StringBuilder str = new StringBuilder();
+        str.append("Exercise [");
+        str.append("key=").append(key);
+        str.append(", question=").append(question);
+        str.append(", answers=").append(answers);
+        str.append(", options=").append(options);
+        str.append(", question=").append(question);
+        return str.toString();
+    }
+
+}

File src/logging.properties

+# A default java.util.logging configuration.
+# (All App Engine logging is through java.util.logging by default).
+#
+# To use this configuration, copy it into your application's WEB-INF
+# folder and add the following to your appengine-web.xml:
+# 
+# <system-properties>
+#   <property name="java.util.logging.config.file" value="WEB-INF/logging.properties"/>
+# </system-properties>
+#
+
+.level = INFO
+com.google.appengine.repackaged.level=WARNING

File test/WEB-INF/appengine-generated/local_db.bin

Empty file added.

File test/jp/sunflower/eworkbook/server/service/WorkBookServiceImplTest.java

+package jp.sunflower.eworkbook.server.service;
+
+import org.slim3.tester.ServletTestCase;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+
+public class WorkBookServiceImplTest extends ServletTestCase {
+
+    private WorkBookServiceImpl service = new WorkBookServiceImpl();
+
+    @Test
+    public void test() throws Exception {
+        assertThat(service, is(notNullValue()));
+    }
+}

File test/jp/sunflower/eworkbook/shared/model/ExerciseTest.java

+package jp.sunflower.eworkbook.shared.model;
+
+import org.slim3.tester.AppEngineTestCase;
+import org.junit.Test;
+import static org.junit.Assert.*;
+import static org.hamcrest.CoreMatchers.*;
+
+public class ExerciseTest extends AppEngineTestCase {
+
+    private Exercise model = new Exercise();
+
+    @Test
+    public void test() throws Exception {
+        assertThat(model, is(notNullValue()));
+    }
+}

File war/WEB-INF/appengine-generated/datastore-indexes-auto.xml

+<!-- Indices written at Sat, 30 May 2009 05:54:22 UTC -->
+
+<datastore-indexes/>
+

File war/WEB-INF/appengine-generated/local_db.bin

Binary file added.

File war/WEB-INF/appengine-web.xml

+<?xml version="1.0" encoding="utf-8"?>
+<appengine-web-app xmlns="http://appengine.google.com/ns/1.0">
+	<application></application>
+	<version>1</version>
+	<precompilation-enabled>true</precompilation-enabled>
+	<system-properties>
+	    <property name="slim3.hotReloading" value="true"/>
+	    <property name="java.util.logging.config.file" value="WEB-INF/classes/logging.properties"/>
+	</system-properties>
+	<sessions-enabled>false</sessions-enabled>
+</appengine-web-app>

File war/WEB-INF/lib/appengine-api-1.0-sdk-1.3.5.jar

Binary file added.

File war/WEB-INF/lib/appengine-api-labs-1.3.5.jar

Binary file added.

File war/WEB-INF/lib/appengine-jsr107cache-1.3.5.jar

Binary file added.

File war/WEB-INF/lib/datanucleus-appengine-1.0.7.final.jar

Binary file added.

File war/WEB-INF/lib/datanucleus-core-1.1.5.jar

Binary file added.

File war/WEB-INF/lib/datanucleus-jpa-1.1.5.jar

Binary file added.

File war/WEB-INF/lib/geronimo-jpa_3.0_spec-1.1.1.jar

Binary file added.

File war/WEB-INF/lib/geronimo-jta_1.1_spec-1.1.1.jar

Binary file added.

File war/WEB-INF/lib/gwt-servlet.jar

Binary file added.

File war/WEB-INF/lib/jdo2-api-2.3-eb.jar

Binary file added.

File war/WEB-INF/lib/jsr107cache-1.1.jar

Binary file added.

File war/WEB-INF/lib/junit-4.7.jar

Binary file added.

File war/WEB-INF/lib/ktrwjr.jar

Binary file added.

File war/WEB-INF/lib/slim3-1.0.4.jar

Binary file added.

File war/WEB-INF/queue.xml

+<queue-entries>
+  <queue>
+    <name>default</name>
+    <rate>10/s</rate>
+  </queue>
+  <queue>
+    <name>slim3-gtx-queue</name>
+    <rate>10/s</rate>
+    <bucket-size>10</bucket-size>
+  </queue>
+</queue-entries>

File war/WEB-INF/web.xml

+<?xml version="1.0" encoding="utf-8"?>
+
+<web-app xmlns="http://java.sun.com/xml/ns/javaee" version="2.5">
+  <context-param>
+    <param-name>slim3.rootPackage</param-name>
+    <param-value>jp.sunflower.eworkbook</param-value>
+  </context-param>
+  <context-param>
+    <param-name>javax.servlet.jsp.jstl.fmt.localizationContext
+    </param-name>
+    <param-value>application</param-value>
+  </context-param>
+  <context-param>
+    <param-name>javax.servlet.jsp.jstl.fmt.request.charset</param-name>
+    <param-value>UTF-8</param-value>
+  </context-param>
+
+  <filter>
+    <filter-name>HotReloadingFilter</filter-name>
+    <filter-class>org.slim3.controller.HotReloadingFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>DatastoreFilter</filter-name>
+    <filter-class>org.slim3.datastore.DatastoreFilter</filter-class>
+  </filter>
+  <filter>
+    <filter-name>FrontController</filter-name>
+    <filter-class>org.slim3.controller.FrontController</filter-class>
+  </filter>
+
+  <filter-mapping>
+    <filter-name>HotReloadingFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>DatastoreFilter</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+  </filter-mapping>
+  <filter-mapping>
+    <filter-name>FrontController</filter-name>
+    <url-pattern>/*</url-pattern>
+    <dispatcher>REQUEST</dispatcher>
+    <dispatcher>FORWARD</dispatcher>
+    <dispatcher>INCLUDE</dispatcher>
+    <dispatcher>ERROR</dispatcher>
+  </filter-mapping>
+
+  <servlet>
+    <servlet-name>GlobalTransactionServlet</servlet-name>
+    <servlet-class>org.slim3.datastore.GlobalTransactionServlet
+    </servlet-class>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  <servlet>
+    <servlet-name>GWTServiceServlet</servlet-name>
+    <servlet-class>org.slim3.gwt.server.rpc.GWTServiceServlet
+    </servlet-class>
+    <load-on-startup>1</load-on-startup>
+  </servlet>
+  <servlet>
+    <servlet-name>KtrWjrServiceServlet</servlet-name>
+    <servlet-class>bufferings.ktr.wjr.server.service.KtrWjrServiceServlet
+    </servlet-class>
+  </servlet>
+
+  <servlet-mapping>
+    <servlet-name>GlobalTransactionServlet</servlet-name>
+    <url-pattern>/slim3/gtx</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>GWTServiceServlet</servlet-name>
+    <url-pattern>*.s3gwt</url-pattern>
+  </servlet-mapping>
+  <servlet-mapping>
+    <servlet-name>KtrWjrServiceServlet</servlet-name>
+    <url-pattern>/ktrwjr/ktrwjr/ktrwjr.s3gwt</url-pattern>
+  </servlet-mapping>
+
+  <security-constraint>
+    <web-resource-collection>
+      <url-pattern>*.jsp</url-pattern>
+    </web-resource-collection>
+    <auth-constraint>
+    </auth-constraint>
+  </security-constraint>
+  <security-constraint>
+    <web-resource-collection>
+      <url-pattern>/slim3/gtx</url-pattern>
+    </web-resource-collection>
+    <auth-constraint>
+      <role-name>admin</role-name>
+    </auth-constraint>
+  </security-constraint>
+  <security-constraint>
+    <web-resource-collection>
+      <url-pattern>/admin.html</url-pattern>
+      <url-pattern>/ktrwjr/*</url-pattern>
+    </web-resource-collection>
+    <auth-constraint>
+      <role-name>admin</role-name>
+    </auth-constraint>
+  </security-constraint>
+</web-app>

File war/admin.html

+<!doctype html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<title>admin</title>
+<script type="text/javascript" language="javascript"
+  src="jp.sunflower.eworkbook.WorkBook/jp.sunflower.eworkbook.WorkBookAdmin.nocache.js"></script>
+<script type="text/javascript" language="javascript"
+  src="jp.sunflower.eworkbook.WorkBookAdmin/jp.sunflower.eworkbook.WorkBookAdmin.nocache.js"></script>
+</head>
+<body>
+<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1'
+  style="position: absolute; width: 0; height: 0; border: 0"></iframe>
+</body>
+</html>

File war/css/global.css

+@CHARSET "utf-8";
+
+body { background-color: #EEEEEE; }
+
+h1 { 
+	height: 33px;
+	font-size: x-large;
+	font-family: "Times New Roman", Times, serif;
+}
+
+ul li { list-style: square; }
+a:hover { background-color: white; }
+
+input.err { background-color: orange; }
+
+#header{
+ width:760px;
+ background-color: orange;
+}
+
+#menu{
+ width:160px;
+ height:400px;
+ text-align:left;
+ vertical-align: top;
+ float:left;
+ background-color: aqua;
+}
+
+#body{
+ width:600px;
+ height:400px;
+ float:left;
+ background-color: white;
+}
+
+#footer{
+ width:760px;
+ text-align:left;
+ background-color: black;
+ color: white;
+ clear: left;
+}
+
+

File war/index.html

+<!doctype html>
+<html>
+<head>
+<meta http-equiv="content-type" content="text/html; charset=UTF-8">
+<title>index</title>
+<script type="text/javascript" language="javascript"
+  src="jp.sunflower.eworkbook.WorkBook/jp.sunflower.eworkbook.WorkBook.nocache.js"></script>
+</head>
+<body>
+<iframe src="javascript:''" id="__gwt_historyFrame" tabIndex='-1'
+  style="position: absolute; width: 0; height: 0; border: 0"></iframe>
+</body>
+</html>

File war/jp.sunflower.eworkbook.WorkBook/0A9476898799A150D840F0B1C3672921.cache.png

Added
New image

File war/jp.sunflower.eworkbook.WorkBook/1E9886D6F6C5845384CCEC53D452EB5C.cache.html

+<html><head><meta charset="UTF-8" /><script>var $gwt_version = "2.0.3";var $wnd = parent;var $doc = $wnd.document;var $moduleName, $moduleBase;var $strongName = '1E9886D6F6C5845384CCEC53D452EB5C';var $stats = $wnd.__gwtStatsEvent ? function(a) {return $wnd.__gwtStatsEvent(a);} : null,$sessionId = $wnd.__gwtStatsSessionId ? $wnd.__gwtStatsSessionId : null;$stats && $stats({moduleName:'jp.sunflower.eworkbook.WorkBook',sessionId:$sessionId,subSystem:'startup',evtGroup:'moduleStartup',millis:(new Date()).getTime(),type:'moduleEvalStart'});</script></head><body><script><!--
+function r(){}
+function F(){}
+function E(){}
+function D(){}
+function C(){}
+function Jn(){}
+function kb(){}
+function zb(){}
+function Mb(){}
+function Qb(){}
+function lc(){}
+function tc(){}
+function sc(){}
+function zc(){}
+function pd(){}
+function sd(){}
+function Cd(){}
+function Bd(){}
+function Ad(){}
+function Rd(){}
+function Qd(){}
+function me(){}
+function ve(){}
+function Ee(){}
+function He(){}
+function Re(){}
+function Ve(){}
+function ef(){}
+function qg(){}
+function Og(){}
+function Ug(){}
+function xh(){}
+function Nh(){}
+function Oh(){}
+function Th(){}
+function Uh(){}
+function wh(){}
+function Yh(){}
+function Zh(){}
+function vh(){}
+function uh(){}
+function th(){}
+function ii(){}
+function oi(){}
+function ri(){}
+function xi(){}
+function wi(){}
+function vi(){}
+function Di(){}
+function Li(){}
+function Vi(){}
+function dj(){}
+function gj(){}
+function ij(){}
+function pj(){}
+function zj(){}
+function Gj(){}
+function Kj(){}
+function Pj(){}
+function Tj(){}
+function Wj(){}
+function _j(){}
+function ck(){}
+function hk(){}
+function kk(){}
+function Fk(){}
+function Ik(){}
+function Pk(){}
+function Ok(){}
+function ll(){}
+function kl(){}
+function xl(){}
+function Fl(){}
+function El(){}
+function Ol(){}
+function Vl(){}
+function cm(){}
+function km(){}
+function rm(){}
+function wm(){}
+function Lm(){}
+function Pm(){}
+function cn(){}
+function ln(){}
+function tn(){}
+function zn(){}
+function Gn(){}
+function qi(a){a.o()}
+function ti(a){a.p()}
+function zh(a,b){a.g=b}
+function Qh(){Fh(this)}
+function Sh(){Hh(this)}
+function Ae(){return we}
+function Tg(){return Pg}
+function uc(){uc=Jn;mc()}
+function vc(){vc=Jn;uc()}
+function Ac(){Ac=Jn;vc()}
+function yi(){yi=Jn;Ij()}
+function zi(){zi=Jn;yi()}
+function Bi(){Bi=Jn;zi()}
+function Ji(){Hh(this.b)}
+function jj(){jj=Jn;Zi()}
+function Lj(){Lj=Jn;Ij()}
+function Rh(a){Gh(this,a)}
+function Ll(){return null}
+function Ib(a){return a.h()}
+function Vd(){return this.d}
+function Ph(){return this.c}
+function Rl(){return this.b}
+function Hm(){return this.c}
+function gn(){return this.b}
+function hn(){return this.c}
+function Kd(){return Md(),Ld}
+function ye(a){Df(a,5);aj()}
+function fj(a){a.n()&&a.p()}
+function fi(a,b){ai(a,b,a.g)}
+function sj(a,b){uj(a,b,a.c)}
+function Rj(a){fc();return a}
+function Yj(a){fc();return a}
+function ek(a){fc();return a}
+function jk(a){fc();return a}
+function nn(a){fc();return a}
+function J(a,b){fc();return a}
+function Sg(a){Of(a);null.F()}
+function oe(a){a.b={};return a}
+function Nm(a){Xk(a);return a}
+function wk(){return Dk(this)}
+function Fj(){return Dj(this)}
+function wl(){return this.b.e}
+function Ml(){return this.b.c}
+function jm(){return hm(this)}
+function Zm(){return this.b.e}
+function ab(b,a){b[b.length]=a}
+function hb(b,a){b[b.length]=a}
+function bk(a,b){fc();return a}
+function fk(a,b){fc();return a}
+function Hk(a,b){fc();return a}
+function Ob(a,b){a.b=b;return a}
+function Sb(a,b){a.b=b;return a}
+function Cj(a,b){a.c=b;return a}
+function ql(a,b){a.b=b;return a}
+function Cl(){return gm(this.b)}
+function qm(){return this.c.b.e}
+function gm(a){return a.b<a.c.c}
+function di(a){return bi(this,a)}
+function mk(a,b,c,d,e){return a}
+function Kl(a,b){a.b=b;return a}
+function fm(a,b){a.c=b;return a}
+function tm(a,b){a.b=b;return a}
+function Ud(a){a.d=++Sd;return a}
+function ul(a){return rl(this,a)}
+function um(){return gm(this.b.b)}
+function mc(){mc=Jn;Ac();new zc}
+function Bk(){Bk=Jn;yk={};Ak={}}
+function Bb(){Bb=Jn;Ab=Db(new zb)}
+function Wh(){ni(this,(li(),ji))}
+function Xh(){ni(this,(li(),ki))}
+function rd(){(ld(),hd)&&md(null)}
+function Qg(){Qg=Jn;Pg=Ud(new Rd)}
+function ud(){ud=Jn;td=(ud(),new sd)}
+function Mj(a){Lj();Nj();return a}
+function Nl(a){return el(this.b,a)}
+function Dh(a,b){!!a.e&&Pe(a.e,b)}
+function Cf(a,b){return a&&zf[a][b]}
+function Hg(a,b){return Me(Kg(),a,b)}
+function Lk(a){throw Hk(new Fk,Hp)}
+function om(a){return Yk(this.b,a)}
+function Xm(a){return Yk(this.b,a)}
+function im(){return this.b<this.c.c}
+function bl(b,a){return Gp+a in b.f}
+function yj(){return Cj(new zj,this)}
+function ci(){return Cj(new zj,this.b)}
+function Bf(a,b){return a&&!!zf[a][b]}
+function Ej(){return this.b<this.c.c-1}
+function vl(){return zl(new xl,this.b)}
+function Dl(){return Df(hm(this.b),20)}
+function Ii(a){Gh(this,a);Gh(this.b,a)}
+function Lg(){if(!Dg){sh();Dg=true}}
+function Od(a){Df(a,3);$wnd.alert(Ro)}
+function Zl(a,b){(a<0||a>=b)&&am(a,b)}
+function Rm(a){a.b=Nm(new Lm);return a}
+function Ye(a){a.b=Nm(new Lm);return a}
+function Gm(a){return Dm(this,a,0)!=-1}
+function Tl(a,b){return Ql(new Ol,b,a)}
+function Sl(){return this.c.f[Gp+this.b]}
+function mm(a,b,c){a.b=b;a.c=c;return a}
+function Ql(a,b,c){a.c=c;a.b=b;return a}
+function en(a,b,c){a.b=b;a.c=c;return a}
+function Cm(a,b){Zl(b,a.c);return a.b[b]}
+function M(a,b){fc();a.b=b;ec(a);return a}
+function Gf(a,b){return a!=null&&Bf(a.tI,b)}
+function Ul(a){return fl(this.c,this.b,a)}
+function bm(){return fm(new cm,Df(this,7))}
+function w(){return this.$H||(this.$H=++qb)}
+function v(a){return this===(a==null?null:a)}
+function pg(a){a.parentNode.removeChild(a)}
+function Eb(a){var b;b=a.c;a.c=[];Kb(b,a.c)}
+function ze(a){var b;if(we){b=new ve;Pe(a,b)}}
+function li(){li=Jn;ji=new oi;ki=new ri}
+function ld(){ld=Jn;id=[];jd=[];kd=[];gd=new pd}
+function zm(a){a.b=nf(Rf,54,0,0,0);return a}
+function rj(a){a.b=nf(Qf,51,11,4,0);return a}
+function ah(){if(!Yg){kh();nh();Yg=true}}
+function Kg(){!Eg&&(Eg=Wg(new Ug));return Eg}
+function am(a,b){throw fk(new ck,Ip+a+Jp+b)}
+function Am(a,b){qf(a.b,a.c++,b);return true}
+function kj(a){jj();$i(a,$doc.body);return a}
+function gc(){try{null.a()}catch(a){return a}}
+function Yl(a){Bm(this,this.z(),a);return true}
+function Te(a,b,c,d){a.b=b;a.d=c;a.c=d;return a}
+function sg(a,b,c,d){a.c=b;a.d=c;a.b=d;return a}
+function Ne(a,b){!a.b&&(a.b=zm(new wm));Am(a.b,b)}
+function Ai(a,b){zi();a.g=b;a.g.tabIndex=0;return a}
+function kn(a){var b;b=this.c;this.c=a;return b}
+function Mk(a){var b;b=Kk(this.t(),a);return !!b}
+function hi(a){var b;b=bi(this,a);b&&gi(a.g);return b}
+function Gb(a){return a.b.length>0||a.f.length>0}
+function Hf(a){return a!=null&&a.tM!=Jn&&a.tI!=2}
+function Fm(a){return qf(this.b,this.c++,a),true}
+function Gi(){if(this.b){return this.b.c}return false}
+function Of(a){if(a!=null){throw Yj(new Wj)}return a}
+function Ek(){if(zk==256){yk=Ak;Ak={};zk=0}++zk}
+function Xk(a){a.b=[];a.f={};a.d=false;a.c=null;a.e=0}
+function Fb(a){var b;b=a.b;a.b=[];Kb(b,a.f);a.f=Jb(a.f)}
+function Sm(a,b){var c;c=cl(a.b,b,a);return c==null}
+function Wm(a){var b;return b=cl(this.b,a,this),b==null}
+function vm(){var a;a=Df(hm(this.b.b),20);return a.C()}
+function Md(){Md=Jn;Ld=Xd(new Qd,Qo,(Md(),new Ad))}
+function Ij(){Ij=Jn;Hj=Mj(new Kj);Hj?(Ij(),new Gj):Hj}
+function Zi(){Zi=Jn;Wi=new dj;Xi=Nm(new Lm);Yi=Rm(new Pm)}
+function uf(){uf=Jn;sf=[];tf=[];vf(new ef,sf,tf)}
+function Wg(a){a.e=Ye(new Ve);a.f=null;a.d=false;return a}
+function Ke(a,b){a.e=Ye(new Ve);a.f=b;a.d=false;return a}
+function bc(a,b){a.length>=b&&a.splice(0,b);return a}
+function _i(a){Zi();try{a.p()}finally{gl(Yi.b,a)!=null}}
+function aj(){Zi();try{ni(Yi,Wi)}finally{Xk(Yi.b);Xk(Xi)}}
+function Gg(a){Lg();return Hg(we?we:(we=Ud(new Rd)),a)}
+function Rk(a){var b;b=ql(new kl,a);return mm(new km,a,b)}
+function pm(){var a;return a=zl(new xl,this.c.b),tm(new rm,a)}
+function tb(a){return function(){return ub(a,this,arguments)}}
+function $i(a,b){Zi();a.b=rj(new pj);a.g=b;Fh(a);return a}
+function yd(a,b){var c;c=wd(b);xd(a).appendChild(c);return c}
+function od(){if(!hd){hd=true;ab((Bb(),Ab).c,[gd,false])}}
+function ai(a,b,c){Kh(b);sj(a.b,b);c.appendChild(b.g);Lh(b,a)}
+function Bm(a,b,c){(b<0||b>a.c)&&am(b,a.c);a.b.splice(b,0,c);++a.c}
+function gl(a,b){return !b?il(a):hl(a,b,~~(b.$H||(b.$H=++qb)))}
+function yc(a,b){return a===b||!!(a.compareDocumentPosition(b)&16)}
+function W(a){return a.tM==Jn||a.tI==2?a.hC():a.$H||(a.$H=++qb)}
+function Rc(a){!a.gwt_uid&&(a.gwt_uid=1);return Lo+a.gwt_uid++}
+function Tb(){this.b.d&&Lb(this.b.e,1);return this.b.g}
+function Ym(){var a;return a=zl(new xl,Rk(this.b).c.b),tm(new rm,a)}
+function $f(a){if(a!=null&&Bf(a.tI,14)){return a}return M(new C,a)}
+function Dj(a){if(a.b>=a.c.c){throw nn(new ln)}return a.c.b[++a.b]}
+function hm(a){if(a.b>=a.c.c){throw nn(new ln)}return Cm(a.c,a.b++)}
+function Mh(a,b){a.d==-1?oh(a.g,b|(a.g.__eventBits||0)):(a.d|=b)}
+function oh(a,b){ah();lh(a,b);b&131072&&a.addEventListener(np,ih,false)}
+function of(a,b,c,d){uf();xf(d,sf,tf);d.aC=a;d.tI=b;d.qI=c;return d}
+function xf(a,b,c){uf();for(var d=0,e=b.length;d<e;++d){a[b[d]]=c[d]}}
+function Dm(a,b,c){for(;c<a.c;++c){if(sn(b,a.b[c])){return c}}return -1}
+function xj(a,b){var c;c=tj(a,b);if(c==-1){throw nn(new ln)}wj(a,c)}
+function Fi(a,b){if(a.b){throw bk(new _j,Ep)}Kh(b);zh(a,b.g);a.b=b;Lh(b,a)}
+function Df(a,b){if(a!=null&&!Cf(a.tI,b)){throw Yj(new Wj)}return a}
+function Ef(a){if(a!=null&&(a.tM==Jn||a.tI==2)){throw Yj(new Wj)}return a}
+function ch(a){return !(a!=null&&a.tM!=Jn&&a.tI!=2)&&a!=null&&Bf(a.tI,9)}
+function il(a){var b;b=a.c;a.c=null;if(a.d){a.d=false;--a.e}return b}
+function el(a,b){var c;c=a.c;a.c=b;if(!a.d){a.d=true;++a.e}return c}
+function tj(a,b){var c;for(c=0;c<a.c;++c){if(a.b[c]==b){return c}}return -1}
+function lf(a,b){var c,d;c=a;d=mf(0,b);of(c.aC,c.tI,c.qI,d);return d}
+function zd(a,b){var c;c=wd(b);xd(a).insertBefore(c,a.b.firstChild);return c}
+function fl(e,a,b){var c,d=e.f;a=Gp+a;a in d?(c=d[a]):++e.e;d[a]=b;return c}
+function vf(a,b,c){var d=0,e;for(var f in a){if(e=a[f]){b[d]=f;c[d]=e;++d}}}
+function Me(a,b,c){a.c>0?Ne(a,Te(new Re,a,b,c)):Ze(a.e,b,c);return new Ee}
+function Ch(a,b,c){Mh(a,$g(c.c));return Me(!a.e?(a.e=Ke(new He,a)):a.e,c,b)}
+function Db(a){Bb();a.e=Ob(new Mb,a);Sb(new Qb,a);a.b=[];a.f=[];a.c=[];return a}
+function In(a){if(!a.b){a.b=true;ld();hb(id,Np);od();return true}return false}
+function vk(a){if(!(a!=null&&Bf(a.tI,1))){return false}return String(this)==a}
+function jl(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&U(a,b)}
+function Om(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&U(a,b)}
+function sn(a,b){return (a==null?null:a)===(b==null?null:b)||a!=null&&U(a,b)}
+function Yk(a,b){return b==null?a.d:b!=null&&Bf(b.tI,1)?bl(a,Df(b,1)):al(a,b,~~W(b))}
+function U(a,b){return a.tM==Jn||a.tI==2?a.eQ(b):(a==null?null:a)===(b==null?null:b)}
+function Zk(a,b){return b==null?a.c:b!=null&&Bf(b.tI,1)?a.f[Gp+Df(b,1)]:$k(a,b,~~W(b))}
+function Xd(a,b,c){a.d=++Sd;a.b=c;!Fd&&(Fd=oe(new me));Fd.b[b]=a;a.c=b;return a}
+function yg(a,b,c){var d;d=vg;vg=a;b==wg&&$g((mc(),a).type)==8192&&(wg=null);c.k(a);vg=d}
+function ub(a,b,c){var d;d=pb++==0;try{return a.apply(b,c)}finally{d&&Eb((Bb(),Ab));--pb}}
+function wd(a){var b;b=(mc(),$doc).createElement(Mo);b[No]=Oo;Cc(b,a);return b}
+function xd(a){var b;if(!a.b){b=$doc.getElementsByTagName(Po)[0];a.b=b}return a.b}
+function Ng(){var a;if(Dg){a=(Qg(),new Og);!!Eg&&Pe(Eg,a);return null}return null}
+function Kk(a,b){var c;while(a.v()){c=a.w();if(b==null?c==null:U(b,c)){return a}}return null}
+function nf(a,b,c,d,e){var f;f=mf(e,d);uf();xf(f,sf,tf);f.aC=a;f.tI=b;f.qI=c;return f}
+function Ze(a,b,c){var d;d=Df(Zk(a.b,b),7);if(!d){d=zm(new wm);cl(a.b,b,d)}qf(d.b,d.c++,c)}
+function mi(a,b){li();J(a,zp,b.b.e==0?null:Df(b.A(nf(Tf,56,14,0,0)),17)[0]);return a}
+function Ni(a,b){a.b=rj(new pj);a.g=(mc(),$doc).createElement(Wo);a.g.innerHTML=b||Eo;return a}
+function Ci(a){var b;Bi();Ai(a,(b=(mc(),$doc).createElement(Ap),b.type=Bp,b));a.g[Cp]=Dp;return a}
+function qc(a){var b=a.nextSibling;while(b&&b.nodeType!=1)b=b.nextSibling;return b}
+function xc(b){var c=b.relatedTarget;try{var d=c.nodeName;return c}catch(a){return null}}
+function Pb(){this.b.d=true;Fb(this.b);this.b.d=false;return this.b.g=Gb(this.b)}
+function Hi(){if(this.d!=-1){Mh(this.b,this.d);this.d=-1}Fh(this.b);this.g.__listener=this}
+function Il(){var a,b;a=0;b=0;this.C()!=null&&(a=W(this.C()));this.D()!=null&&(b=W(this.D()));return a^b}
+function ol(){var a,b,c;a=0;for(b=this.t();b.v();){c=b.w();if(c!=null){a+=W(c);a=~~a}}return a}
+function Dk(a){Bk();var b=Gp+a;var c=Ak[b];if(c!=null){return c}c=yk[b];c==null&&(c=Ck(a));Ek();return Ak[b]=c}
+function Wk(e,a){var b=e.f;for(var c in b){if(c.charCodeAt(0)==58){var d=Tl(e,c.substring(1));a.x(d)}}}
+function mf(a,b){var c=new Array(b);if(a>0){var d=[null,0,false,[0,0]][a];for(var e=0;e<b;++e){c[e]=d}}return c}
+function cl(a,b,c){return b==null?el(a,c):b!=null&&Bf(b.tI,1)?fl(a,Df(b,1),c):dl(a,b,c,~~W(b))}
+function Gh(a,b){var c;switch($g((mc(),b).type)){case 16:case 32:c=xc(b);if(!!c&&yc(a.g,c)){return}}Jd(b,a,a.g)}
+function gi(a){a.style[wp]=Eo;a.style[xp]=Eo;a.style[yp]=Eo}
+function og(){if(!lg){lg=(mc(),$doc).createElement(Wo);lg.style.display=Xo;(Zi(),$doc.body).appendChild(lg)}}
+function Kh(a){if(!a.f){Zi();Yk(Yi.b,a)&&_i(a)}else if(Gf(a.f,19)){Df(a.f,19).s(a)}else if(a.f){throw bk(new _j,up)}}
+function Hh(a){if(!a.n()){throw bk(new _j,tp)}try{a.r()}finally{try{a.m()}finally{a.g.__listener=null;a.c=false}}}
+function Fh(a){var b;if(a.n()){throw bk(new _j,sp)}a.c=true;a.g.__listener=a;b=a.d;a.d=-1;b>0&&Mh(a,b);a.l();a.q()}
+function Qe(a){var b,c;if(a.b){try{for(c=fm(new cm,a.b);c.b<c.c.c;){b=Df(hm(c),6);Ze(b.b.e,b.d,b.c)}}finally{a.b=null}}}
+function zl(a,b){var c;a.c=b;c=zm(new wm);a.c.d&&Am(c,Kl(new El,a.c));Wk(a.c,c);Vk(a.c,c);a.b=fm(new cm,c);return a}
+function _l(){var a,b,c;b=1;a=fm(new cm,Df(this,7));while(a.b<a.c.c){c=hm(a);b=31*b+(c==null?0:W(c));b=~~b}return b}
+function kc(a){var b,c,d;d=a&&a.stack?a.stack.split(Ko):[];for(b=0,c=d.length;b<c;++b){d[b]=ac(d[b])}return d}
+function H(a){var b,c,d;c=nf(Sf,55,13,a.length,0);for(d=0,b=a.length;d<b;++d){if(!a[d]){throw jk(new hk)}c[d]=a[d]}}
+function Hl(a){var b;if(a!=null&&Bf(a.tI,20)){b=Df(a,20);if(sn(this.C(),b.C())&&sn(this.D(),b.D())){return true}}return false}
+function Vk(g,a){var b=g.b;for(var c in b){if(c==parseInt(c)){var d=b[c];for(var e=0,f=d.length;e<f;++e){a.x(d[e])}}}}
+function wj(a,b){var c;if(b<0||b>=a.c){throw ek(new ck)}--a.c;for(c=b;c<a.c;++c){qf(a.b,c,a.b[c+1])}qf(a.b,a.c,null)}
+function rl(a,b){var c,d,e;if(b!=null&&Bf(b.tI,20)){c=Df(b,20);d=c.C();if(Yk(a.b,d)){e=Zk(a.b,d);return Om(c.D(),e)}}return false}
+function Tk(){var a,b,c;c=0;for(b=zl(new xl,ql(new kl,Df(this,21)).b);gm(b.b);){a=Df(hm(b.b),20);c+=a.hC();c=~~c}return c}
+function bj(a){Zi();var b;b=Df(Zk(Xi,a),18);if(b){return b}Xi.e==0&&Gg(new gj);b=kj(new ij);cl(Xi,a,b);Sm(Yi,b);return b}
+function Nj(){return function(a){var b=this.parentNode;b.onfocus&&$wnd.setTimeout(function(){b.focus()},0)}}
+function Lb(b,c){Bb();$wnd.setTimeout(function(){var a=$entry(Ib)(b);a&&$wnd.setTimeout(arguments.callee,c)},c)}
+function gwtOnLoad(b,c,d){$moduleName=c;$moduleBase=d;if(b)try{$entry(Xf)()}catch(a){b(c)}else{$entry(Xf)()}}
+function Lh(a,b){var c;c=a.f;if(!b){try{!!c&&c.n()&&a.p()}finally{a.f=null}}else{if(c){throw bk(new _j,vp)}a.f=b;b.n()&&a.o()}}
+function qf(a,b,c){if(c!=null){if(a.qI>0&&!Cf(c.tI,a.qI)){throw Rj(new Pj)}if(a.qI<0&&(c.tM==Jn||c.tI==2)){throw Rj(new Pj)}}return a[b]=c}
+function Cc(a,b){while(a.firstChild){a.removeChild(a.firstChild)}b!=null&&a.appendChild(a.ownerDocument.createTextNode(b))}
+function ac(a){var b,c,d;d=Eo;a=tk(a);b=a.indexOf(Fo);if(b!=-1){c=a.indexOf(Go)==0?8:0;d=tk(a.substr(c,b-c))}return d.length>0?d:Ho}
+function ec(a){var b,c,d,e;d=kc(Hf(a.b)?Ef(a.b):null);e=nf(Sf,55,13,d.length,0);for(b=0,c=e.length;b<c;++b){e[b]=mk(new kk,Io,d[b],Jo,0)}H(e)}
+function fc(){var a,b,c,d;c=bc(kc(gc()),2);d=nf(Sf,55,13,c.length,0);for(a=0,b=d.length;a<b;++a){d[a]=mk(new kk,Io,c[a],Jo,0)}H(d)}
+function Kb(b,c){var a,e,f,g;for(e=0,f=b.length;e<f;++e){g=b[e];try{g[1]?g[0].h()&&(c[c.length]=g,undefined):rd(g[0])}catch(a){a=$f(a);if(!Gf(a,2))throw a}}}
+function $k(h,a,b){var c=h.b[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.C();if(h.B(a,g)){return f.D()}}}return null}
+function al(h,a,b){var c=h.b[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.C();if(h.B(a,g)){return true}}}return false}
+function hl(h,a,b){var c=h.b[b];if(c){for(var d=0,e=c.length;d<e;++d){var f=c[d];var g=f.C();if(h.B(a,g)){c.length==1?delete h.b[b]:c.splice(d,1);--h.e;return f.D()}}}return null}
+function Jd(a,b,c){var d,e,f;if(Fd){f=Df(Fd.b[(mc(),a).type],4);if(f){d=f.b.b;e=f.b.c;f.b.b=a;f.b.c=c;Dh(b,f.b);f.b.b=d;f.b.c=e}}}
+function ng(a){var b,c,d;og();b=(d=(mc(),a).parentNode,(!d||d.nodeType!=1)&&(d=null),d);c=qc(a);lg.appendChild(a);return sg(new qg,b,c,a)}
+function Nk(a){var b,c,d,e;e=this.z();a.length<e&&(a=lf(a,e));d=a;c=this.t();for(b=0;b<e;++b){qf(d,b,c.w())}a.length>e&&qf(a,e,null);return a}
+function Ck(a){var b,c,d,e;b=0;d=a.length;e=d-4;c=0;while(c<e){b=a.charCodeAt(c+3)+31*(a.charCodeAt(c+2)+31*(a.charCodeAt(c+1)+31*(a.charCodeAt(c)+31*b)))|0;c+=4}while(c<d){b=b*31+a.charCodeAt(c++)}return b|0}
+function tk(c){if(c.length==0||c[0]>Fp&&c[c.length-1]>Fp){return c}var a=c.replace(/^(\s*)/,Eo);var b=a.replace(/\s*$/,Eo);return b}
+function nl(a){var b,c,d;if((a==null?null:a)===this){return true}if(!(a!=null&&Bf(a.tI,22))){return false}c=Df(a,22);if(c.z()!=this.z()){return false}for(b=c.t();b.v();){d=b.w();if(!this.y(d)){return false}}return true}
+function ni(b,c){var i;li();var a,e,f,g,h;e=null;for(h=b.t();h.v();){g=Df(h.w(),11);try{c.u(g)}catch(a){a=$f(a);if(Gf(a,14)){f=a;!e&&(e=Rm(new Pm));i=cl(e.b,f,e)}else throw a}}if(e){throw mi(new ii,e)}}
+function dl(j,a,b,c){var d=j.b[c];if(d){for(var e=0,f=d.length;e<f;++e){var g=d[e];var h=g.C();if(j.B(a,h)){var i=g.D();g.E(b);return i}}}else{d=j.b[c]=[]}var g=en(new cn,a,b);d.push(g);++j.e;return null}
+function uj(a,b,c){var d,e;if(c<0||c>a.c){throw ek(new ck)}if(a.c==a.b.length){e=nf(Qf,51,11,a.b.length*2,0);for(d=0;d<a.b.length;++d){qf(e,d,a.b[d])}a.b=e}++a.c;for(d=a.c-1;d>c;--d){qf(a.b,d,a.b[d-1])}qf(a.b,c,b)}
+function $e(a,b,c){var d,e,f,g,h,i,j;g=b.j();d=(h=Df(Zk(a.b,g),7),!h?0:h.c);if(c){for(f=d-1;f>=0;--f){e=(i=Df(Zk(a.b,g),7),Df((Zl(f,i.c),i.b[f]),16));b.i(e)}}else{for(f=0;f<d;++f){e=(j=Df(Zk(a.b,g),7),Df((Zl(f,j.c),j.b[f]),16));b.i(e)}}}
+function Jb(a){var b,c,d,e,f,g;b=false;d=a.length;f=(new Date).getTime();while((new Date).getTime()-f<100){for(c=0;c<d;++c){g=a[c];if(!g){continue}if(!g[0].h()){a[c]=nul