Merge tag 'Luna_RC4'
diff --git a/.gitreview b/.gitreview
index 797b649..25e5a1f 100644
--- a/.gitreview
+++ b/.gitreview
@@ -2,7 +2,6 @@
 host=git.eclipse.org
 port=29418
 project=scout/scout.rt.incubator.git
-defaultbranch=release/3.9.2
+defaultbranch=releases/4.0.x
 defaultremote=origin
 defaultrebase=0
-
diff --git a/org.eclipse.scout.rt.incubator.parent/.project b/org.eclipse.scout.rt.incubator.parent/.project
index ffaf2ef..ce329a4 100644
--- a/org.eclipse.scout.rt.incubator.parent/.project
+++ b/org.eclipse.scout.rt.incubator.parent/.project
@@ -18,37 +18,37 @@
 		<link>
 			<name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.resources.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.runtime.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.ui.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.m2e.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.pde.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
 		</link>
 	</linkedResources>
 </projectDescription>
diff --git a/org.eclipse.scout.rt.incubator.parent/pom.xml b/org.eclipse.scout.rt.incubator.parent/pom.xml
index 71d8851..27b3e62 100644
--- a/org.eclipse.scout.rt.incubator.parent/pom.xml
+++ b/org.eclipse.scout.rt.incubator.parent/pom.xml
@@ -18,7 +18,7 @@
   <parent>
     <groupId>org.eclipse.scout</groupId>
     <artifactId>org.eclipse.scout.rt.incubator</artifactId>
-    <version>3.9.2-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
   </parent>
 
   <groupId>org.eclipse.scout.rt.incubator</groupId>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.project b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.project
index e47c462..09ed976 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.project
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.project
@@ -20,41 +20,4 @@
 		<nature>org.eclipse.m2e.core.maven2Nature</nature>
 		<nature>org.eclipse.pde.FeatureNature</nature>
 	</natures>
-	<linkedResources>
-		<link>
-			<name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.core.resources.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.core.runtime.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.jdt.core.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.jdt.ui.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.m2e.core.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
-		</link>
-		<link>
-			<name>.settings/org.eclipse.pde.core.prefs</name>
-			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
-		</link>
-	</linkedResources>
 </projectDescription>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs
new file mode 100644
index 0000000..98eef0c
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs
@@ -0,0 +1,16 @@
+activeContentFilterList=*.makefile,makefile,*.Makefile,Makefile,Makefile.*,*.mk,MANIFEST.MF
+addNewLine=true
+convertActionOnSaave=AnyEdit.CnvrtTabToSpaces
+eclipse.preferences.version=1
+ignoreBlankLinesWhenTrimming=false
+inActiveContentFilterList=
+javaTabWidthForJava=true
+org.eclipse.jdt.ui.editor.tab.width=2
+projectPropsEnabled=true
+removeTrailingSpaces=true
+replaceAllSpaces=false
+replaceAllTabs=true
+saveAndAddLine=true
+saveAndConvert=true
+saveAndTrim=true
+useModulo4Tabs=false
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs
new file mode 100644
index 0000000..99f26c0
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+encoding/<project>=UTF-8
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs
new file mode 100644
index 0000000..5a0ad22
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs
@@ -0,0 +1,2 @@
+eclipse.preferences.version=1
+line.separator=\n
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs
new file mode 100644
index 0000000..be0955a
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs
@@ -0,0 +1,383 @@
+eclipse.preferences.version=1
+org.eclipse.jdt.core.codeComplete.argumentPrefixes=
+org.eclipse.jdt.core.codeComplete.argumentSuffixes=
+org.eclipse.jdt.core.codeComplete.fieldPrefixes=m_
+org.eclipse.jdt.core.codeComplete.fieldSuffixes=
+org.eclipse.jdt.core.codeComplete.localPrefixes=
+org.eclipse.jdt.core.codeComplete.localSuffixes=
+org.eclipse.jdt.core.codeComplete.staticFieldPrefixes=
+org.eclipse.jdt.core.codeComplete.staticFieldSuffixes=
+org.eclipse.jdt.core.compiler.annotation.missingNonNullByDefaultAnnotation=ignore
+org.eclipse.jdt.core.compiler.annotation.nonnull=org.eclipse.jdt.annotation.NonNull
+org.eclipse.jdt.core.compiler.annotation.nonnullbydefault=org.eclipse.jdt.annotation.NonNullByDefault
+org.eclipse.jdt.core.compiler.annotation.nullable=org.eclipse.jdt.annotation.Nullable
+org.eclipse.jdt.core.compiler.annotation.nullanalysis=disabled
+org.eclipse.jdt.core.compiler.codegen.inlineJsrBytecode=enabled
+org.eclipse.jdt.core.compiler.codegen.targetPlatform=1.6
+org.eclipse.jdt.core.compiler.codegen.unusedLocal=preserve
+org.eclipse.jdt.core.compiler.compliance=1.6
+org.eclipse.jdt.core.compiler.debug.lineNumber=generate
+org.eclipse.jdt.core.compiler.debug.localVariable=generate
+org.eclipse.jdt.core.compiler.debug.sourceFile=generate
+org.eclipse.jdt.core.compiler.problem.annotationSuperInterface=warning
+org.eclipse.jdt.core.compiler.problem.assertIdentifier=error
+org.eclipse.jdt.core.compiler.problem.autoboxing=ignore
+org.eclipse.jdt.core.compiler.problem.comparingIdentical=warning
+org.eclipse.jdt.core.compiler.problem.deadCode=warning
+org.eclipse.jdt.core.compiler.problem.deprecation=warning
+org.eclipse.jdt.core.compiler.problem.deprecationInDeprecatedCode=enabled
+org.eclipse.jdt.core.compiler.problem.deprecationWhenOverridingDeprecatedMethod=enabled
+org.eclipse.jdt.core.compiler.problem.discouragedReference=warning
+org.eclipse.jdt.core.compiler.problem.emptyStatement=warning
+org.eclipse.jdt.core.compiler.problem.enumIdentifier=error
+org.eclipse.jdt.core.compiler.problem.explicitlyClosedAutoCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.fallthroughCase=ignore
+org.eclipse.jdt.core.compiler.problem.fatalOptionalError=enabled
+org.eclipse.jdt.core.compiler.problem.fieldHiding=ignore
+org.eclipse.jdt.core.compiler.problem.finalParameterBound=warning
+org.eclipse.jdt.core.compiler.problem.finallyBlockNotCompletingNormally=warning
+org.eclipse.jdt.core.compiler.problem.forbiddenReference=warning
+org.eclipse.jdt.core.compiler.problem.hiddenCatchBlock=warning
+org.eclipse.jdt.core.compiler.problem.includeNullInfoFromAsserts=disabled
+org.eclipse.jdt.core.compiler.problem.incompatibleNonInheritedInterfaceMethod=warning
+org.eclipse.jdt.core.compiler.problem.incompleteEnumSwitch=ignore
+org.eclipse.jdt.core.compiler.problem.indirectStaticAccess=ignore
+org.eclipse.jdt.core.compiler.problem.localVariableHiding=warning
+org.eclipse.jdt.core.compiler.problem.methodWithConstructorName=warning
+org.eclipse.jdt.core.compiler.problem.missingDefaultCase=ignore
+org.eclipse.jdt.core.compiler.problem.missingDeprecatedAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingEnumCaseDespiteDefault=disabled
+org.eclipse.jdt.core.compiler.problem.missingHashCodeMethod=ignore
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.missingOverrideAnnotationForInterfaceMethodImplementation=enabled
+org.eclipse.jdt.core.compiler.problem.missingSerialVersion=warning
+org.eclipse.jdt.core.compiler.problem.missingSynchronizedOnInheritedMethod=ignore
+org.eclipse.jdt.core.compiler.problem.noEffectAssignment=warning
+org.eclipse.jdt.core.compiler.problem.noImplicitStringConversion=warning
+org.eclipse.jdt.core.compiler.problem.nonExternalizedStringLiteral=ignore
+org.eclipse.jdt.core.compiler.problem.nullAnnotationInferenceConflict=error
+org.eclipse.jdt.core.compiler.problem.nullReference=warning
+org.eclipse.jdt.core.compiler.problem.nullSpecViolation=error
+org.eclipse.jdt.core.compiler.problem.nullUncheckedConversion=warning
+org.eclipse.jdt.core.compiler.problem.overridingPackageDefaultMethod=warning
+org.eclipse.jdt.core.compiler.problem.parameterAssignment=ignore
+org.eclipse.jdt.core.compiler.problem.possibleAccidentalBooleanAssignment=warning
+org.eclipse.jdt.core.compiler.problem.potentialNullReference=warning
+org.eclipse.jdt.core.compiler.problem.potentiallyUnclosedCloseable=ignore
+org.eclipse.jdt.core.compiler.problem.rawTypeReference=ignore
+org.eclipse.jdt.core.compiler.problem.redundantNullAnnotation=warning
+org.eclipse.jdt.core.compiler.problem.redundantNullCheck=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSpecificationOfTypeArguments=ignore
+org.eclipse.jdt.core.compiler.problem.redundantSuperinterface=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBePotentiallyStatic=ignore
+org.eclipse.jdt.core.compiler.problem.reportMethodCanBeStatic=ignore
+org.eclipse.jdt.core.compiler.problem.specialParameterHidingField=disabled
+org.eclipse.jdt.core.compiler.problem.staticAccessReceiver=warning
+org.eclipse.jdt.core.compiler.problem.suppressOptionalErrors=disabled
+org.eclipse.jdt.core.compiler.problem.suppressWarnings=enabled
+org.eclipse.jdt.core.compiler.problem.syntheticAccessEmulation=ignore
+org.eclipse.jdt.core.compiler.problem.typeParameterHiding=warning
+org.eclipse.jdt.core.compiler.problem.unavoidableGenericTypeProblems=enabled
+org.eclipse.jdt.core.compiler.problem.uncheckedTypeOperation=warning
+org.eclipse.jdt.core.compiler.problem.unclosedCloseable=warning
+org.eclipse.jdt.core.compiler.problem.undocumentedEmptyBlock=ignore
+org.eclipse.jdt.core.compiler.problem.unhandledWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.unnecessaryElse=ignore
+org.eclipse.jdt.core.compiler.problem.unnecessaryTypeCheck=ignore
+org.eclipse.jdt.core.compiler.problem.unqualifiedFieldAccess=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownException=ignore
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionExemptExceptionAndThrowable=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionIncludeDocCommentReference=enabled
+org.eclipse.jdt.core.compiler.problem.unusedDeclaredThrownExceptionWhenOverriding=disabled
+org.eclipse.jdt.core.compiler.problem.unusedImport=warning
+org.eclipse.jdt.core.compiler.problem.unusedLabel=warning
+org.eclipse.jdt.core.compiler.problem.unusedLocal=warning
+org.eclipse.jdt.core.compiler.problem.unusedObjectAllocation=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameter=ignore
+org.eclipse.jdt.core.compiler.problem.unusedParameterIncludeDocCommentReference=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenImplementingAbstract=disabled
+org.eclipse.jdt.core.compiler.problem.unusedParameterWhenOverridingConcrete=disabled
+org.eclipse.jdt.core.compiler.problem.unusedPrivateMember=ignore
+org.eclipse.jdt.core.compiler.problem.unusedWarningToken=warning
+org.eclipse.jdt.core.compiler.problem.varargsArgumentNeedCast=warning
+org.eclipse.jdt.core.compiler.source=1.6
+org.eclipse.jdt.core.formatter.align_type_members_on_columns=false
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_annotation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_enum_constant=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_explicit_constructor_call=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_arguments_in_qualified_allocation_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_assignment=0
+org.eclipse.jdt.core.formatter.alignment_for_binary_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_compact_if=0
+org.eclipse.jdt.core.formatter.alignment_for_conditional_expression=0
+org.eclipse.jdt.core.formatter.alignment_for_enum_constants=0
+org.eclipse.jdt.core.formatter.alignment_for_expressions_in_array_initializer=0
+org.eclipse.jdt.core.formatter.alignment_for_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_multiple_fields=16
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_parameters_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_resources_in_try=80
+org.eclipse.jdt.core.formatter.alignment_for_selector_in_method_invocation=0
+org.eclipse.jdt.core.formatter.alignment_for_superclass_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_enum_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_superinterfaces_in_type_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_constructor_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_throws_clause_in_method_declaration=0
+org.eclipse.jdt.core.formatter.alignment_for_union_type_in_multicatch=16
+org.eclipse.jdt.core.formatter.blank_lines_after_imports=1
+org.eclipse.jdt.core.formatter.blank_lines_after_package=1
+org.eclipse.jdt.core.formatter.blank_lines_before_field=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=true
+org.eclipse.jdt.core.formatter.comment.clear_blank_lines_in_javadoc_comment=true
+org.eclipse.jdt.core.formatter.comment.format_block_comments=false
+org.eclipse.jdt.core.formatter.comment.format_header=false
+org.eclipse.jdt.core.formatter.comment.format_html=true
+org.eclipse.jdt.core.formatter.comment.format_javadoc_comments=true
+org.eclipse.jdt.core.formatter.comment.format_line_comments=false
+org.eclipse.jdt.core.formatter.comment.format_source_code=true
+org.eclipse.jdt.core.formatter.comment.indent_parameter_description=true
+org.eclipse.jdt.core.formatter.comment.indent_root_tags=true
+org.eclipse.jdt.core.formatter.comment.insert_new_line_before_root_tags=insert
+org.eclipse.jdt.core.formatter.comment.insert_new_line_for_parameter=insert
+org.eclipse.jdt.core.formatter.comment.line_length=120
+org.eclipse.jdt.core.formatter.comment.new_lines_at_block_boundaries=true
+org.eclipse.jdt.core.formatter.comment.new_lines_at_javadoc_boundaries=true
+org.eclipse.jdt.core.formatter.comment.preserve_white_space_between_code_and_line_comments=false
+org.eclipse.jdt.core.formatter.compact_else_if=true
+org.eclipse.jdt.core.formatter.continuation_indentation=2
+org.eclipse.jdt.core.formatter.continuation_indentation_for_array_initializer=2
+org.eclipse.jdt.core.formatter.disabling_tag=@formatter\:off
+org.eclipse.jdt.core.formatter.enabling_tag=@formatter\:on
+org.eclipse.jdt.core.formatter.format_guardian_clause_on_one_line=false
+org.eclipse.jdt.core.formatter.format_line_comment_starting_on_first_column=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_annotation_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_constant_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_enum_declaration_header=true
+org.eclipse.jdt.core.formatter.indent_body_declarations_compare_to_type_header=true
+org.eclipse.jdt.core.formatter.indent_breaks_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_empty_lines=false
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_block=true
+org.eclipse.jdt.core.formatter.indent_statements_compare_to_body=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_cases=true
+org.eclipse.jdt.core.formatter.indent_switchstatements_compare_to_switch=true
+org.eclipse.jdt.core.formatter.indentation.size=2
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_field=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_local_variable=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_method=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_package=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_parameter=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_annotation_on_type=insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_label=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_after_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_at_end_of_file_if_missing=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_catch_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_else_in_if_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_finally_in_try_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_before_while_in_do_statement=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_annotation_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_block=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_method_body=insert
+org.eclipse.jdt.core.formatter.insert_new_line_in_empty_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_after_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_after_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_at_in_annotation_type_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_arguments=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_angle_bracket_in_type_parameters=insert
+org.eclipse.jdt.core.formatter.insert_space_after_closing_brace_in_block=do not 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=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_opening_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_after_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_after_semicolon_in_try_resources=insert
+org.eclipse.jdt.core.formatter.insert_space_after_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_and_in_type_parameter=insert
+org.eclipse.jdt.core.formatter.insert_space_before_assignment_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_at_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_binary_operator=insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_cast=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_catch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_if=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_switch=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_synchronized=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_try=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_closing_paren_in_while=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_assert=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_case=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_default=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_colon_in_labeled_statement=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_constructor_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_constant_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_enum_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_explicitconstructorcall_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_increments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_for_inits=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_declaration_throws=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_method_invocation_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_field_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_multiple_local_declarations=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_superinterfaces=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_comma_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_ellipsis=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_parameterized_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_arguments=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_angle_bracket_in_type_parameters=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_annotation_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_anonymous_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_block=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_constructor_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_constant=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_enum_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_method_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_brace_in_type_declaration=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_bracket_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_catch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_for=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_if=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_parenthesized_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_switch=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_synchronized=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_try=insert
+org.eclipse.jdt.core.formatter.insert_space_before_opening_paren_in_while=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_return=insert
+org.eclipse.jdt.core.formatter.insert_space_before_parenthesized_expression_in_throw=insert
+org.eclipse.jdt.core.formatter.insert_space_before_postfix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_prefix_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_conditional=insert
+org.eclipse.jdt.core.formatter.insert_space_before_question_in_wildcard=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_for=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_semicolon_in_try_resources=do not insert
+org.eclipse.jdt.core.formatter.insert_space_before_unary_operator=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_brackets_in_array_type_reference=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_braces_in_array_initializer=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_brackets_in_array_allocation_expression=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_annotation_type_member_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_constructor_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_enum_constant=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_declaration=do not insert
+org.eclipse.jdt.core.formatter.insert_space_between_empty_parens_in_method_invocation=do not insert
+org.eclipse.jdt.core.formatter.join_lines_in_comments=false
+org.eclipse.jdt.core.formatter.join_wrapped_lines=false
+org.eclipse.jdt.core.formatter.keep_else_statement_on_same_line=true
+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=true
+org.eclipse.jdt.core.formatter.lineSplit=9999
+org.eclipse.jdt.core.formatter.never_indent_block_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.never_indent_line_comments_on_first_column=true
+org.eclipse.jdt.core.formatter.number_of_blank_lines_at_beginning_of_method_body=0
+org.eclipse.jdt.core.formatter.number_of_empty_lines_to_preserve=1
+org.eclipse.jdt.core.formatter.put_empty_statement_on_new_line=true
+org.eclipse.jdt.core.formatter.tabulation.char=space
+org.eclipse.jdt.core.formatter.tabulation.size=2
+org.eclipse.jdt.core.formatter.use_on_off_tags=false
+org.eclipse.jdt.core.formatter.use_tabs_only_for_leading_indentations=true
+org.eclipse.jdt.core.formatter.wrap_before_binary_operator=true
+org.eclipse.jdt.core.formatter.wrap_before_or_operator_multicatch=true
+org.eclipse.jdt.core.formatter.wrap_outer_expressions_when_nested=true
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs
new file mode 100644
index 0000000..acde688
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs
@@ -0,0 +1,115 @@
+cleanup.add_default_serial_version_id=true
+cleanup.add_generated_serial_version_id=false
+cleanup.add_missing_annotations=true
+cleanup.add_missing_deprecated_annotations=false
+cleanup.add_missing_methods=false
+cleanup.add_missing_nls_tags=false
+cleanup.add_missing_override_annotations=true
+cleanup.add_missing_override_annotations_interface_methods=true
+cleanup.add_serial_version_id=false
+cleanup.always_use_blocks=true
+cleanup.always_use_parentheses_in_expressions=false
+cleanup.always_use_this_for_non_static_field_access=false
+cleanup.always_use_this_for_non_static_method_access=false
+cleanup.convert_to_enhanced_for_loop=false
+cleanup.correct_indentation=true
+cleanup.format_source_code=true
+cleanup.format_source_code_changes_only=false
+cleanup.make_local_variable_final=true
+cleanup.make_parameters_final=false
+cleanup.make_private_fields_final=true
+cleanup.make_type_abstract_if_missing_method=false
+cleanup.make_variable_declarations_final=false
+cleanup.never_use_blocks=false
+cleanup.never_use_parentheses_in_expressions=true
+cleanup.organize_imports=true
+cleanup.qualify_static_field_accesses_with_declaring_class=false
+cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=false
+cleanup.qualify_static_member_accesses_with_declaring_class=false
+cleanup.qualify_static_method_accesses_with_declaring_class=false
+cleanup.remove_private_constructors=true
+cleanup.remove_trailing_whitespaces=true
+cleanup.remove_trailing_whitespaces_all=true
+cleanup.remove_trailing_whitespaces_ignore_empty=false
+cleanup.remove_unnecessary_casts=false
+cleanup.remove_unnecessary_nls_tags=false
+cleanup.remove_unused_imports=true
+cleanup.remove_unused_local_variables=false
+cleanup.remove_unused_private_fields=true
+cleanup.remove_unused_private_members=false
+cleanup.remove_unused_private_methods=true
+cleanup.remove_unused_private_types=true
+cleanup.sort_members=false
+cleanup.sort_members_all=false
+cleanup.use_blocks=false
+cleanup.use_blocks_only_for_return_and_throw=false
+cleanup.use_parentheses_in_expressions=false
+cleanup.use_this_for_non_static_field_access=false
+cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+cleanup.use_this_for_non_static_method_access=false
+cleanup.use_this_for_non_static_method_access_only_if_necessary=true
+cleanup_profile=_Eclipse Scout
+cleanup_settings_version=2
+eclipse.preferences.version=1
+editor_save_participant_org.eclipse.jdt.ui.postsavelistener.cleanup=true
+formatter_profile=_Eclipse Scout
+formatter_settings_version=12
+org.eclipse.jdt.ui.exception.name=e
+org.eclipse.jdt.ui.gettersetter.use.is=true
+org.eclipse.jdt.ui.javadoc=true
+org.eclipse.jdt.ui.keywordthis=false
+org.eclipse.jdt.ui.overrideannotation=true
+org.eclipse.jdt.ui.text.custom_code_templates=<?xml version\="1.0" encoding\="UTF-8" standalone\="no"?><templates><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter method" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.settercomment" name\="settercomment"/><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">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="filecomment_context" deleted\="false" description\="Comment for created Java files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.filecomment" name\="filecomment">/*******************************************************************************&\#13;\r\n * Copyright (c) 2010 BSI Business Systems Integration AG.&\#13;\r\n * All rights reserved. This program and the accompanying materials&\#13;\r\n * are made available under the terms of the Eclipse Public License v1.0&\#13;\r\n * which accompanies this distribution, and is available at&\#13;\r\n * http\://www.eclipse.org/legal/epl-v10.html&\#13;\r\n * &\#13;\r\n * Contributors\:&\#13;\r\n *     BSI Business Systems Integration AG - initial API and implementation&\#13;\r\n ******************************************************************************/</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for fields" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><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">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding methods" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><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">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</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">\r\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">\r\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">\r\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">\r\n</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">// ${todo} Auto-generated catch block\r\n${exception_var}.printStackTrace();</template><template autoinsert\="false" 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\="false" 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 created setters" enabled\="true" id\="org.eclipse.jdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template><template autoinsert\="false" context\="gettercomment_context" deleted\="false" description\="Comment for getter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.gettercomment" name\="gettercomment"/><template autoinsert\="false" context\="settercomment_context" deleted\="false" description\="Comment for setter function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.settercomment" name\="settercomment"/><template autoinsert\="true" context\="constructorcomment_context" deleted\="false" description\="Comment for created constructors" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.constructorcomment" name\="constructorcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="true" context\="filecomment_context" deleted\="false" description\="Comment for created JavaScript files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.filecomment" name\="filecomment">/**\r\n * \r\n */</template><template autoinsert\="false" context\="typecomment_context" deleted\="false" description\="Comment for created types" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.typecomment" name\="typecomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="fieldcomment_context" deleted\="false" description\="Comment for vars" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.fieldcomment" name\="fieldcomment"/><template autoinsert\="false" context\="methodcomment_context" deleted\="false" description\="Comment for non-overriding function" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodcomment" name\="methodcomment">/**\r\n * ${tags}\r\n */</template><template autoinsert\="false" context\="overridecomment_context" deleted\="false" description\="Comment for overriding functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.overridecomment" name\="overridecomment"/><template autoinsert\="true" context\="delegatecomment_context" deleted\="false" description\="Comment for delegate functions" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.delegatecomment" name\="delegatecomment">/**\r\n * ${tags}\r\n * ${see_to_target}\r\n */</template><template autoinsert\="true" context\="newtype_context" deleted\="false" description\="Newly created files" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.newtype" name\="newtype">${filecomment}\r\n${package_declaration}\r\n\r\n${typecomment}\r\n${type_declaration}</template><template autoinsert\="true" context\="classbody_context" deleted\="false" description\="Code in new class type bodies" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.classbody" name\="classbody">\r\n</template><template autoinsert\="false" context\="catchblock_context" deleted\="false" description\="Code in new catch blocks" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.catchblock" name\="catchblock">${exception_var}.printStackTrace();</template><template autoinsert\="false" context\="methodbody_context" deleted\="false" description\="Code in created function stubs" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.methodbody" name\="methodbody">${body_statement}</template><template autoinsert\="false" context\="constructorbody_context" deleted\="false" description\="Code in created constructor stubs" enabled\="true" id\="org.eclipse.wst.jsdt.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.wst.jsdt.ui.text.codetemplates.getterbody" name\="getterbody">return ${field};</template><template autoinsert\="true" context\="setterbody_context" deleted\="false" description\="Code in created setters" enabled\="true" id\="org.eclipse.wst.jsdt.ui.text.codetemplates.setterbody" name\="setterbody">${field} \= ${param};</template></templates>
+sp_cleanup.add_default_serial_version_id=true
+sp_cleanup.add_generated_serial_version_id=false
+sp_cleanup.add_missing_annotations=false
+sp_cleanup.add_missing_deprecated_annotations=false
+sp_cleanup.add_missing_methods=false
+sp_cleanup.add_missing_nls_tags=false
+sp_cleanup.add_missing_override_annotations=false
+sp_cleanup.add_missing_override_annotations_interface_methods=true
+sp_cleanup.add_serial_version_id=false
+sp_cleanup.always_use_blocks=true
+sp_cleanup.always_use_parentheses_in_expressions=false
+sp_cleanup.always_use_this_for_non_static_field_access=false
+sp_cleanup.always_use_this_for_non_static_method_access=false
+sp_cleanup.convert_to_enhanced_for_loop=false
+sp_cleanup.correct_indentation=true
+sp_cleanup.format_source_code=true
+sp_cleanup.format_source_code_changes_only=false
+sp_cleanup.make_local_variable_final=false
+sp_cleanup.make_parameters_final=false
+sp_cleanup.make_private_fields_final=true
+sp_cleanup.make_type_abstract_if_missing_method=false
+sp_cleanup.make_variable_declarations_final=false
+sp_cleanup.never_use_blocks=false
+sp_cleanup.never_use_parentheses_in_expressions=true
+sp_cleanup.on_save_use_additional_actions=true
+sp_cleanup.organize_imports=true
+sp_cleanup.qualify_static_field_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_member_accesses_through_instances_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_through_subtypes_with_declaring_class=true
+sp_cleanup.qualify_static_member_accesses_with_declaring_class=false
+sp_cleanup.qualify_static_method_accesses_with_declaring_class=false
+sp_cleanup.remove_private_constructors=true
+sp_cleanup.remove_trailing_whitespaces=true
+sp_cleanup.remove_trailing_whitespaces_all=true
+sp_cleanup.remove_trailing_whitespaces_ignore_empty=false
+sp_cleanup.remove_unnecessary_casts=false
+sp_cleanup.remove_unnecessary_nls_tags=true
+sp_cleanup.remove_unused_imports=true
+sp_cleanup.remove_unused_local_variables=false
+sp_cleanup.remove_unused_private_fields=true
+sp_cleanup.remove_unused_private_members=false
+sp_cleanup.remove_unused_private_methods=true
+sp_cleanup.remove_unused_private_types=true
+sp_cleanup.sort_members=false
+sp_cleanup.sort_members_all=false
+sp_cleanup.use_blocks=true
+sp_cleanup.use_blocks_only_for_return_and_throw=false
+sp_cleanup.use_parentheses_in_expressions=false
+sp_cleanup.use_this_for_non_static_field_access=false
+sp_cleanup.use_this_for_non_static_field_access_only_if_necessary=true
+sp_cleanup.use_this_for_non_static_method_access=false
+sp_cleanup.use_this_for_non_static_method_access_only_if_necessary=true
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs
new file mode 100644
index 0000000..f897a7f
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs
@@ -0,0 +1,4 @@
+activeProfiles=
+eclipse.preferences.version=1
+resolveWorkspaceProjects=true
+version=1
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs
new file mode 100644
index 0000000..a3a50fc
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs
@@ -0,0 +1,3 @@
+#Mon Jul 11 16:16:00 CEST 2011
+eclipse.preferences.version=1
+pluginProject.extensions=true
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/build.properties b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/build.properties
index 0921499..20e4250 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/build.properties
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/build.properties
@@ -6,7 +6,6 @@
 # http://www.eclipse.org/legal/epl-v10.html
 ###############################################################################
 bin.includes = feature.xml,\
-               license.html,\
                about.html,\
                epl-v10.html,\
                p2.inf,\
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.properties b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.properties
index 759937c..0c7a274 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.properties
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.properties
@@ -17,7 +17,7 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse Scout Project
 
-updateSiteName=Kepler
+updateSiteName=Luna
 
 # "description" property - description of the feature
 description=*** DO NOT INSTALL IN YOUR IDE ***\n\
@@ -36,135 +36,3 @@
 Contributors:\n\
 BSI Business Systems Integration AG - initial API and implementation\n
 ################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-February 1, 2011\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.xml b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.xml
index 81c454e..96bf7ec 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.xml
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/feature.xml
@@ -2,8 +2,10 @@
 <feature
       id="org.eclipse.scout.rt.ui.rap.incubator.filechooser"
       label="%featureName"
-      version="3.9.2.qualifier"
-      provider-name="%providerName">
+      version="4.0.0.qualifier"
+      provider-name="%providerName"
+      license-feature="org.eclipse.license"
+      license-feature-version="0.0.0">
 
    <description url="http://www.eclipse.org/scout/">
       %description
@@ -18,12 +20,12 @@
    </license>
 
    <url>
-      <update label="%updateSiteName" url="http://download.eclipse.org/releases/kepler"/>
-      <discovery label="%updateSiteName" url="http://download.eclipse.org/releases/kepler"/>
+      <update label="%updateSiteName" url="http://download.eclipse.org/releases/luna"/>
+      <discovery label="%updateSiteName" url="http://download.eclipse.org/releases/luna"/>
    </url>
 
    <requires>
-      <import feature="org.eclipse.scout.rt.rap" version="3.9.2.qualifier"/>
+      <import feature="org.eclipse.scout.rt.rap" version="4.0.0.qualifier"/>
    </requires>
 
    <plugin
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/license.html b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/license.html
deleted file mode 100644
index f19c483..0000000
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/license.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>February 1, 2011</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/pom.xml b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/pom.xml
index 72c3e71..49d479a 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/pom.xml
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.scout.rt.incubator</groupId>
     <artifactId>org.eclipse.scout.rt.incubator.parent</artifactId>
-    <version>3.9.2-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
     <relativePath>../org.eclipse.scout.rt.incubator.parent</relativePath>
   </parent>
 
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/feature.properties b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/feature.properties
index 6f19f0f..337ca87 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/feature.properties
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/feature.properties
@@ -17,7 +17,7 @@
 # "providerName" property - name of the company that provides the feature
 providerName=Eclipse Scout Project
 
-updateSiteName=Kepler
+updateSiteName=Luna
 
 # "description" property - description of the feature
 description=*** DO NOT INSTALL IN YOUR IDE ***\n\
@@ -36,136 +36,3 @@
 Contributors:\n\
 BSI Business Systems Integration AG - initial API and implementation\n
 ################ end of copyright property ####################################
-
-# "licenseURL" property - URL of the "Feature License"
-# do not translate value - just change to point to a locale-specific HTML page
-licenseURL=license.html
-
-# "license" property - text of the "Feature Update License"
-# should be plain text version of license agreement pointed to be "licenseURL"
-license=\
-Eclipse Foundation Software User Agreement\n\
-February 1, 2011\n\
-\n\
-Usage Of Content\n\
-\n\
-THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR\n\
-OTHER MATERIALS FOR OPEN SOURCE PROJECTS (COLLECTIVELY "CONTENT").\n\
-USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS\n\
-AGREEMENT AND/OR THE TERMS AND CONDITIONS OF LICENSE AGREEMENTS OR\n\
-NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU\n\
-AGREE THAT YOUR USE OF THE CONTENT IS GOVERNED BY THIS AGREEMENT\n\
-AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS\n\
-OR NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE\n\
-TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND CONDITIONS\n\
-OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED\n\
-BELOW, THEN YOU MAY NOT USE THE CONTENT.\n\
-\n\
-Applicable Licenses\n\
-\n\
-Unless otherwise indicated, all Content made available by the\n\
-Eclipse Foundation is provided to you under the terms and conditions of\n\
-the Eclipse Public License Version 1.0 ("EPL"). A copy of the EPL is\n\
-provided with this Content and is also available at http://www.eclipse.org/legal/epl-v10.html.\n\
-For purposes of the EPL, "Program" will mean the Content.\n\
-\n\
-Content includes, but is not limited to, source code, object code,\n\
-documentation and other files maintained in the Eclipse Foundation source code\n\
-repository ("Repository") in software modules ("Modules") and made available\n\
-as downloadable archives ("Downloads").\n\
-\n\
-       - Content may be structured and packaged into modules to facilitate delivering,\n\
-         extending, and upgrading the Content. Typical modules may include plug-ins ("Plug-ins"),\n\
-         plug-in fragments ("Fragments"), and features ("Features").\n\
-       - Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java(TM) ARchive)\n\
-         in a directory named "plugins".\n\
-       - A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.\n\
-         Each Feature may be packaged as a sub-directory in a directory named "features".\n\
-         Within a Feature, files named "feature.xml" may contain a list of the names and version\n\
-         numbers of the Plug-ins and/or Fragments associated with that Feature.\n\
-       - Features may also include other Features ("Included Features"). Within a Feature, files\n\
-         named "feature.xml" may contain a list of the names and version numbers of Included Features.\n\
-\n\
-The terms and conditions governing Plug-ins and Fragments should be\n\
-contained in files named "about.html" ("Abouts"). The terms and\n\
-conditions governing Features and Included Features should be contained\n\
-in files named "license.html" ("Feature Licenses"). Abouts and Feature\n\
-Licenses may be located in any directory of a Download or Module\n\
-including, but not limited to the following locations:\n\
-\n\
-       - The top-level (root) directory\n\
-       - Plug-in and Fragment directories\n\
-       - Inside Plug-ins and Fragments packaged as JARs\n\
-       - Sub-directories of the directory named "src" of certain Plug-ins\n\
-       - Feature directories\n\
-\n\
-Note: if a Feature made available by the Eclipse Foundation is installed using the\n\
-Provisioning Technology (as defined below), you must agree to a license ("Feature \n\
-Update License") during the installation process. If the Feature contains\n\
-Included Features, the Feature Update License should either provide you\n\
-with the terms and conditions governing the Included Features or inform\n\
-you where you can locate them. Feature Update Licenses may be found in\n\
-the "license" property of files named "feature.properties" found within a Feature.\n\
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the\n\
-terms and conditions (or references to such terms and conditions) that\n\
-govern your use of the associated Content in that directory.\n\
-\n\
-THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER\n\
-TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.\n\
-SOME OF THESE OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):\n\
-\n\
-       - Eclipse Distribution License Version 1.0 (available at http://www.eclipse.org/licenses/edl-v1.0.html)\n\
-       - Common Public License Version 1.0 (available at http://www.eclipse.org/legal/cpl-v10.html)\n\
-       - Apache Software License 1.1 (available at http://www.apache.org/licenses/LICENSE)\n\
-       - Apache Software License 2.0 (available at http://www.apache.org/licenses/LICENSE-2.0)\n\
-       - Metro Link Public License 1.00 (available at http://www.opengroup.org/openmotif/supporters/metrolink/license.html)\n\
-       - Mozilla Public License Version 1.1 (available at http://www.mozilla.org/MPL/MPL-1.1.html)\n\
-\n\
-IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR\n\
-TO USE OF THE CONTENT. If no About, Feature License, or Feature Update License\n\
-is provided, please contact the Eclipse Foundation to determine what terms and conditions\n\
-govern that particular Content.\n\
-\n\
-\n\Use of Provisioning Technology\n\
-\n\
-The Eclipse Foundation makes available provisioning software, examples of which include,\n\
-but are not limited to, p2 and the Eclipse Update Manager ("Provisioning Technology") for\n\
-the purpose of allowing users to install software, documentation, information and/or\n\
-other materials (collectively "Installable Software"). This capability is provided with\n\
-the intent of allowing such users to install, extend and update Eclipse-based products.\n\
-Information about packaging Installable Software is available at\n\
-http://eclipse.org/equinox/p2/repository_packaging.html ("Specification").\n\
-\n\
-You may use Provisioning Technology to allow other parties to install Installable Software.\n\
-You shall be responsible for enabling the applicable license agreements relating to the\n\
-Installable Software to be presented to, and accepted by, the users of the Provisioning Technology\n\
-in accordance with the Specification. By using Provisioning Technology in such a manner and\n\
-making it available in accordance with the Specification, you further acknowledge your\n\
-agreement to, and the acquisition of all necessary rights to permit the following:\n\
-\n\
-       1. A series of actions may occur ("Provisioning Process") in which a user may execute\n\
-          the Provisioning Technology on a machine ("Target Machine") with the intent of installing,\n\
-          extending or updating the functionality of an Eclipse-based product.\n\
-       2. During the Provisioning Process, the Provisioning Technology may cause third party\n\
-          Installable Software or a portion thereof to be accessed and copied to the Target Machine.\n\
-       3. Pursuant to the Specification, you will provide to the user the terms and conditions that\n\
-          govern the use of the Installable Software ("Installable Software Agreement") and such\n\
-          Installable Software Agreement shall be accessed from the Target Machine in accordance\n\
-          with the Specification. Such Installable Software Agreement must inform the user of the\n\
-          terms and conditions that govern the Installable Software and must solicit acceptance by\n\
-          the end user in the manner prescribed in such Installable Software Agreement. Upon such\n\
-          indication of agreement by the user, the provisioning Technology will complete installation\n\
-          of the Installable Software.\n\
-\n\
-Cryptography\n\
-\n\
-Content may contain encryption software. The country in which you are\n\
-currently may have restrictions on the import, possession, and use,\n\
-and/or re-export to another country, of encryption software. BEFORE\n\
-using any encryption software, please check the country's laws,\n\
-regulations and policies concerning the import, possession, or use, and\n\
-re-export of encryption software, to see if this is permitted.\n\
-\n\
-Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.\n
-########### end of license property ##########################################
-
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/license.html b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/license.html
deleted file mode 100644
index f19c483..0000000
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/sourceTemplateFeature/license.html
+++ /dev/null
@@ -1,108 +0,0 @@
-<?xml version="1.0" encoding="ISO-8859-1" ?>
-<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Strict//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-strict.dtd">
-<html xmlns="http://www.w3.org/1999/xhtml">
-<head>
-<meta http-equiv="Content-Type" content="text/html; charset=ISO-8859-1" />
-<title>Eclipse Foundation Software User Agreement</title>
-</head>
-
-<body lang="EN-US">
-<h2>Eclipse Foundation Software User Agreement</h2>
-<p>February 1, 2011</p>
-
-<h3>Usage Of Content</h3>
-
-<p>THE ECLIPSE FOUNDATION MAKES AVAILABLE SOFTWARE, DOCUMENTATION, INFORMATION AND/OR OTHER MATERIALS FOR OPEN SOURCE PROJECTS
-   (COLLECTIVELY &quot;CONTENT&quot;).  USE OF THE CONTENT IS GOVERNED BY THE TERMS AND CONDITIONS OF THIS AGREEMENT AND/OR THE TERMS AND
-   CONDITIONS OF LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW.  BY USING THE CONTENT, YOU AGREE THAT YOUR USE
-   OF THE CONTENT IS GOVERNED BY THIS AGREEMENT AND/OR THE TERMS AND CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR
-   NOTICES INDICATED OR REFERENCED BELOW.  IF YOU DO NOT AGREE TO THE TERMS AND CONDITIONS OF THIS AGREEMENT AND THE TERMS AND
-   CONDITIONS OF ANY APPLICABLE LICENSE AGREEMENTS OR NOTICES INDICATED OR REFERENCED BELOW, THEN YOU MAY NOT USE THE CONTENT.</p>
-
-<h3>Applicable Licenses</h3>
-
-<p>Unless otherwise indicated, all Content made available by the Eclipse Foundation is provided to you under the terms and conditions of the Eclipse Public License Version 1.0
-   (&quot;EPL&quot;).  A copy of the EPL is provided with this Content and is also available at <a href="http://www.eclipse.org/legal/epl-v10.html">http://www.eclipse.org/legal/epl-v10.html</a>.
-   For purposes of the EPL, &quot;Program&quot; will mean the Content.</p>
-
-<p>Content includes, but is not limited to, source code, object code, documentation and other files maintained in the Eclipse Foundation source code
-   repository (&quot;Repository&quot;) in software modules (&quot;Modules&quot;) and made available as downloadable archives (&quot;Downloads&quot;).</p>
-
-<ul>
-       <li>Content may be structured and packaged into modules to facilitate delivering, extending, and upgrading the Content.  Typical modules may include plug-ins (&quot;Plug-ins&quot;), plug-in fragments (&quot;Fragments&quot;), and features (&quot;Features&quot;).</li>
-       <li>Each Plug-in or Fragment may be packaged as a sub-directory or JAR (Java&trade; ARchive) in a directory named &quot;plugins&quot;.</li>
-       <li>A Feature is a bundle of one or more Plug-ins and/or Fragments and associated material.  Each Feature may be packaged as a sub-directory in a directory named &quot;features&quot;.  Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of the Plug-ins
-      and/or Fragments associated with that Feature.</li>
-       <li>Features may also include other Features (&quot;Included Features&quot;). Within a Feature, files named &quot;feature.xml&quot; may contain a list of the names and version numbers of Included Features.</li>
-</ul>
-
-<p>The terms and conditions governing Plug-ins and Fragments should be contained in files named &quot;about.html&quot; (&quot;Abouts&quot;). The terms and conditions governing Features and
-Included Features should be contained in files named &quot;license.html&quot; (&quot;Feature Licenses&quot;).  Abouts and Feature Licenses may be located in any directory of a Download or Module
-including, but not limited to the following locations:</p>
-
-<ul>
-       <li>The top-level (root) directory</li>
-       <li>Plug-in and Fragment directories</li>
-       <li>Inside Plug-ins and Fragments packaged as JARs</li>
-       <li>Sub-directories of the directory named &quot;src&quot; of certain Plug-ins</li>
-       <li>Feature directories</li>
-</ul>
-
-<p>Note: if a Feature made available by the Eclipse Foundation is installed using the Provisioning Technology (as defined below), you must agree to a license (&quot;Feature Update License&quot;) during the
-installation process.  If the Feature contains Included Features, the Feature Update License should either provide you with the terms and conditions governing the Included Features or
-inform you where you can locate them.  Feature Update Licenses may be found in the &quot;license&quot; property of files named &quot;feature.properties&quot; found within a Feature.
-Such Abouts, Feature Licenses, and Feature Update Licenses contain the terms and conditions (or references to such terms and conditions) that govern your use of the associated Content in
-that directory.</p>
-
-<p>THE ABOUTS, FEATURE LICENSES, AND FEATURE UPDATE LICENSES MAY REFER TO THE EPL OR OTHER LICENSE AGREEMENTS, NOTICES OR TERMS AND CONDITIONS.  SOME OF THESE
-OTHER LICENSE AGREEMENTS MAY INCLUDE (BUT ARE NOT LIMITED TO):</p>
-
-<ul>
-       <li>Eclipse Distribution License Version 1.0 (available at <a href="http://www.eclipse.org/licenses/edl-v10.html">http://www.eclipse.org/licenses/edl-v1.0.html</a>)</li>
-       <li>Common Public License Version 1.0 (available at <a href="http://www.eclipse.org/legal/cpl-v10.html">http://www.eclipse.org/legal/cpl-v10.html</a>)</li>
-       <li>Apache Software License 1.1 (available at <a href="http://www.apache.org/licenses/LICENSE">http://www.apache.org/licenses/LICENSE</a>)</li>
-       <li>Apache Software License 2.0 (available at <a href="http://www.apache.org/licenses/LICENSE-2.0">http://www.apache.org/licenses/LICENSE-2.0</a>)</li>
-       <li>Metro Link Public License 1.00 (available at <a href="http://www.opengroup.org/openmotif/supporters/metrolink/license.html">http://www.opengroup.org/openmotif/supporters/metrolink/license.html</a>)</li>
-       <li>Mozilla Public License Version 1.1 (available at <a href="http://www.mozilla.org/MPL/MPL-1.1.html">http://www.mozilla.org/MPL/MPL-1.1.html</a>)</li>
-</ul>
-
-<p>IT IS YOUR OBLIGATION TO READ AND ACCEPT ALL SUCH TERMS AND CONDITIONS PRIOR TO USE OF THE CONTENT.  If no About, Feature License, or Feature Update License is provided, please
-contact the Eclipse Foundation to determine what terms and conditions govern that particular Content.</p>
-
-
-<h3>Use of Provisioning Technology</h3>
-
-<p>The Eclipse Foundation makes available provisioning software, examples of which include, but are not limited to, p2 and the Eclipse
-   Update Manager (&quot;Provisioning Technology&quot;) for the purpose of allowing users to install software, documentation, information and/or
-   other materials (collectively &quot;Installable Software&quot;). This capability is provided with the intent of allowing such users to
-   install, extend and update Eclipse-based products. Information about packaging Installable Software is available at <a
-       href="http://eclipse.org/equinox/p2/repository_packaging.html">http://eclipse.org/equinox/p2/repository_packaging.html</a>
-   (&quot;Specification&quot;).</p>
-
-<p>You may use Provisioning Technology to allow other parties to install Installable Software. You shall be responsible for enabling the
-   applicable license agreements relating to the Installable Software to be presented to, and accepted by, the users of the Provisioning Technology
-   in accordance with the Specification. By using Provisioning Technology in such a manner and making it available in accordance with the
-   Specification, you further acknowledge your agreement to, and the acquisition of all necessary rights to permit the following:</p>
-
-<ol>
-       <li>A series of actions may occur (&quot;Provisioning Process&quot;) in which a user may execute the Provisioning Technology
-       on a machine (&quot;Target Machine&quot;) with the intent of installing, extending or updating the functionality of an Eclipse-based
-       product.</li>
-       <li>During the Provisioning Process, the Provisioning Technology may cause third party Installable Software or a portion thereof to be
-       accessed and copied to the Target Machine.</li>
-       <li>Pursuant to the Specification, you will provide to the user the terms and conditions that govern the use of the Installable
-       Software (&quot;Installable Software Agreement&quot;) and such Installable Software Agreement shall be accessed from the Target
-       Machine in accordance with the Specification. Such Installable Software Agreement must inform the user of the terms and conditions that govern
-       the Installable Software and must solicit acceptance by the end user in the manner prescribed in such Installable Software Agreement. Upon such
-       indication of agreement by the user, the provisioning Technology will complete installation of the Installable Software.</li>
-</ol>
-
-<h3>Cryptography</h3>
-
-<p>Content may contain encryption software. The country in which you are currently may have restrictions on the import, possession, and use, and/or re-export to
-   another country, of encryption software. BEFORE using any encryption software, please check the country's laws, regulations and policies concerning the import,
-   possession, or use, and re-export of encryption software, to see if this is permitted.</p>
-
-<p><small>Java and all Java-based trademarks are trademarks of Oracle Corporation in the United States, other countries, or both.</small></p>
-</body>
-</html>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/.project b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/.project
index 52a4946..fe6ca1f 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/.project
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/.project
@@ -23,37 +23,37 @@
 		<link>
 			<name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.resources.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.runtime.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.ui.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.m2e.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.pde.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
 		</link>
 	</linkedResources>
 </projectDescription>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/pom.xml b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/pom.xml
index 649b0ed..1eca1e6 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/pom.xml
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser-repository/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.scout.rt.incubator</groupId>
     <artifactId>org.eclipse.scout.rt.incubator.parent</artifactId>
-    <version>3.9.2-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
     <relativePath>../org.eclipse.scout.rt.incubator.parent</relativePath>
   </parent>
 
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/.project b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/.project
index 1da4d81..9d239d0 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/.project
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/.project
@@ -36,37 +36,37 @@
 		<link>
 			<name>.settings/de.loskutov.anyedit.AnyEditTools.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/de.loskutov.anyedit.AnyEditTools.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.resources.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.resources.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.core.runtime.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.core.runtime.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.jdt.ui.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.jdt.ui.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.m2e.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.m2e.core.prefs</locationURI>
 		</link>
 		<link>
 			<name>.settings/org.eclipse.pde.core.prefs</name>
 			<type>1</type>
-			<locationURI>PARENT-2-PROJECT_LOC/org.eclipse.scout.rt/org.eclipse.scout.rt-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
+			<locationURI>PARENT-1-PROJECT_LOC/org.eclipse.scout.rt.ui.rap.incubator.filechooser-feature/.settings/org.eclipse.pde.core.prefs</locationURI>
 		</link>
 	</linkedResources>
 </projectDescription>
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/META-INF/MANIFEST.MF b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/META-INF/MANIFEST.MF
index a6de8b4..9d2a35c 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/META-INF/MANIFEST.MF
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/META-INF/MANIFEST.MF
@@ -2,11 +2,11 @@
 Bundle-ManifestVersion: 2
 Bundle-Name: Scout UI RWT Incubator Plug-in
 Bundle-SymbolicName: org.eclipse.scout.rt.ui.rap.incubator.filechooser;singleton:=true
-Bundle-Version: 3.9.2.qualifier
+Bundle-Version: 4.0.0.qualifier
 Bundle-Activator: org.eclipse.scout.rt.ui.rap.Activator
-Require-Bundle: org.eclipse.scout.rt.ui.rap;bundle-version="[3.9.2,4.0.0)",
- org.eclipse.rap.rwt.supplemental.fileupload;bundle-version="[1.5.0,2.0.0)",
- org.eclipse.rap.rwt.supplemental.filedialog;bundle-version="[1.5.0,2.0.0)"
+Require-Bundle: org.eclipse.scout.rt.ui.rap;bundle-version="[3.10.0,4.1.0)",
+ org.eclipse.rap.addons.fileupload;bundle-version="[0.5.0,1.0.0)",
+ org.eclipse.rap.addons.filedialog;bundle-version="[0.5.0,1.0.0)"
 Export-Package: org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield,
  org.eclipse.scout.rt.ui.rap.window.filechooser
 Bundle-RequiredExecutionEnvironment: JavaSE-1.6
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/pom.xml b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/pom.xml
index 8c107d6..6ce603d 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/pom.xml
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/pom.xml
@@ -17,7 +17,7 @@
   <parent>
     <groupId>org.eclipse.scout.rt.incubator</groupId>
     <artifactId>org.eclipse.scout.rt.incubator.parent</artifactId>
-    <version>3.9.2-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
     <relativePath>../org.eclipse.scout.rt.incubator.parent</relativePath>
   </parent>
 
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/dnd/RwtScoutFileUploadHandler.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/dnd/RwtScoutFileUploadHandler.java
new file mode 100644
index 0000000..b0a406a
--- /dev/null
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/dnd/RwtScoutFileUploadHandler.java
@@ -0,0 +1,97 @@
+/*******************************************************************************
+ * Copyright (c) 2010, 2014 BSI Business Systems Integration AG.
+ * All rights reserved. This program and the accompanying materials
+ * are made available under the terms of the Eclipse Public License v1.0
+ * which accompanies this distribution, and is available at
+ * http://www.eclipse.org/legal/epl-v10.html
+ *
+ * Contributors:
+ *     BSI Business Systems Integration AG - initial API and implementation
+ ******************************************************************************/
+package org.eclipse.scout.rt.ui.rap.dnd;
+
+import java.io.File;
+import java.util.ArrayList;
+import java.util.Arrays;
+import java.util.List;
+
+import org.eclipse.rap.addons.fileupload.DiskFileUploadReceiver;
+import org.eclipse.rap.addons.fileupload.FileDetails;
+import org.eclipse.rap.addons.fileupload.FileUploadEvent;
+import org.eclipse.rap.addons.fileupload.FileUploadHandler;
+import org.eclipse.rap.addons.fileupload.FileUploadListener;
+import org.eclipse.rap.rwt.RWT;
+import org.eclipse.rap.rwt.client.ClientFile;
+import org.eclipse.rap.rwt.client.service.ClientFileUploader;
+import org.eclipse.rap.rwt.service.ServerPushSession;
+import org.eclipse.scout.rt.ui.rap.form.fields.IRwtScoutDndUploadCallback;
+import org.eclipse.swt.dnd.DropTargetEvent;
+
+/**
+ * File upload handler for the Drag & Drop functionality used when dragging files from the
+ * client desktop to the application.
+ *
+ * @since 4.0.0-M7
+ */
+public class RwtScoutFileUploadHandler implements IRwtScoutFileUploadHandler {
+  private final IRwtScoutDndUploadCallback m_uploadCallback;
+  private FileUploadHandler m_fileUploadHandler;
+
+  public RwtScoutFileUploadHandler(IRwtScoutDndUploadCallback uploadCallback) {
+    m_uploadCallback = uploadCallback;
+  }
+
+  @Override
+  public boolean startFileUpload(DropTargetEvent event) {
+    m_fileUploadHandler = new FileUploadHandler(new DiskFileUploadReceiver());
+    m_fileUploadHandler.addUploadListener(new P_UploadListener(event));
+    ClientFile[] clientFiles = (ClientFile[]) event.data;
+    ClientFileUploader uploader = RWT.getClient().getService(ClientFileUploader.class);
+    uploader.submit(m_fileUploadHandler.getUploadUrl(), clientFiles);
+    return true;
+  }
+
+  private static RwtScoutFileUploadEvent createRwtScoutFileUploadEvent(FileUploadEvent event, IRwtScoutFileUploadHandler source) {
+    List<RwtScoutFileUploadFileDetail> uploadDetails = new ArrayList<RwtScoutFileUploadFileDetail>();
+    for (FileDetails fd : event.getFileDetails()) {
+      uploadDetails.add(new RwtScoutFileUploadFileDetail(fd.getFileName(), fd.getContentType(), fd.getContentLength()));
+    }
+    return new RwtScoutFileUploadEvent(source, event.getContentLength(),event.getBytesRead() , event.getException(), uploadDetails);
+  }
+
+  private class P_UploadListener implements FileUploadListener {
+    private final ServerPushSession m_pushSession;
+    private final DropTargetEvent m_dropTargetEvent;
+
+    public P_UploadListener(DropTargetEvent dropTargetEvent) {
+      m_dropTargetEvent = dropTargetEvent;
+      m_pushSession = new ServerPushSession();
+      m_pushSession.start();
+    }
+
+    @Override
+    public void uploadProgress(FileUploadEvent event) {
+      RwtScoutFileUploadEvent fileUploadEvent = createRwtScoutFileUploadEvent(event, RwtScoutFileUploadHandler.this);
+      m_uploadCallback.uploadProgress(m_dropTargetEvent, fileUploadEvent);
+    }
+
+    @Override
+    public void uploadFinished(final FileUploadEvent event) {
+      DiskFileUploadReceiver receiver = (DiskFileUploadReceiver) m_fileUploadHandler.getReceiver();
+      final List<File> uploadedFiles = new ArrayList<File>();
+      uploadedFiles.addAll(Arrays.asList(receiver.getTargetFiles()));
+      RwtScoutFileUploadEvent fileUploadEvent = createRwtScoutFileUploadEvent(event, RwtScoutFileUploadHandler.this);
+      m_uploadCallback.uploadFinished(m_dropTargetEvent, fileUploadEvent, uploadedFiles);
+      m_pushSession.stop();
+      m_fileUploadHandler.removeUploadListener(this);
+    }
+
+    @Override
+    public void uploadFailed(FileUploadEvent event) {
+      RwtScoutFileUploadEvent fileUploadEvent = createRwtScoutFileUploadEvent(event, RwtScoutFileUploadHandler.this);
+      m_uploadCallback.uploadFailed(m_dropTargetEvent, fileUploadEvent);
+      m_pushSession.stop();
+      m_fileUploadHandler.removeUploadListener(this);
+    }
+  }
+}
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileUploadField.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileUploadField.java
index 6b15db9..4cf969e 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileUploadField.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/IRwtScoutFileUploadField.java
@@ -11,16 +11,16 @@
 package org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield;
 
 import org.eclipse.scout.rt.client.ui.form.fields.filechooserfield.IFileChooserField;
-import org.eclipse.scout.rt.ui.rap.ext.IDropDownFileUploadForPatch;
+import org.eclipse.scout.rt.ui.rap.ext.DropDownFileUpload;
 import org.eclipse.scout.rt.ui.rap.form.fields.IRwtScoutFormField;
 import org.eclipse.swt.widgets.ProgressBar;
 
 public interface IRwtScoutFileUploadField extends IRwtScoutFormField<IFileChooserField> {
 
-  String VARIANT_FILECHOOSER = "filechooserfield";
+  String VARIANT_FILECHOOSER = "filechooserfield_file";
   String VARIANT_DISABLED_SUFFIX = "-disabled";
 
-  IDropDownFileUploadForPatch getUiBrowseButton();
+  DropDownFileUpload getUiBrowseButton();
 
   ProgressBar getUiProgressBar();
 
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileDownloadField.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileDownloadField.java
index 74fde58..92713c4 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileDownloadField.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileDownloadField.java
@@ -11,7 +11,9 @@
 package org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield;
 
 import java.io.File;
+import java.util.List;
 
+import org.eclipse.scout.commons.CollectionUtility;
 import org.eclipse.scout.commons.IOUtility;
 import org.eclipse.scout.commons.logger.IScoutLogger;
 import org.eclipse.scout.commons.logger.ScoutLogManager;
@@ -82,8 +84,8 @@
           IFileChooser chooser = getScoutObject().getFileChooser();
           String fileName = chooser.getFileName();
           if (fileName == null) {
-            String[] exts = getScoutObject().getFileExtensions();
-            fileName = "download." + (exts != null && exts.length > 0 ? exts[0] : "tmp");
+            List<String> exts = getScoutObject().getFileExtensions();
+            fileName = "download." + (CollectionUtility.hasElements(exts) ? CollectionUtility.firstElement(exts) : "tmp");
           }
           final File tempFile = new File(IOUtility.createTempDirectory("download"), fileName);
           tempFile.deleteOnExit();
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
index d0e4a91..55f2815 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/form/fields/filechooserfield/RwtScoutFileUploadField.java
@@ -10,16 +10,18 @@
  *******************************************************************************/
 package org.eclipse.scout.rt.ui.rap.form.fields.filechooserfield;
 
+import java.beans.PropertyChangeEvent;
+import java.beans.PropertyChangeListener;
 import java.io.File;
-import java.util.concurrent.atomic.AtomicReference;
 
 import org.eclipse.core.runtime.IStatus;
+import org.eclipse.rap.addons.fileupload.DiskFileUploadReceiver;
+import org.eclipse.rap.addons.fileupload.FileUploadEvent;
+import org.eclipse.rap.addons.fileupload.FileUploadHandler;
+import org.eclipse.rap.addons.fileupload.FileUploadListener;
+import org.eclipse.rap.addons.fileupload.FileUploadReceiver;
 import org.eclipse.rap.rwt.RWT;
-import org.eclipse.rap.rwt.supplemental.fileupload.DiskFileUploadReceiver;
-import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadEvent;
-import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadHandler;
-import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadListener;
-import org.eclipse.rap.rwt.supplemental.fileupload.FileUploadReceiver;
+import org.eclipse.rap.rwt.service.ServerPushSession;
 import org.eclipse.scout.commons.CompareUtility;
 import org.eclipse.scout.commons.StringUtility;
 import org.eclipse.scout.commons.exception.IProcessingStatus;
@@ -28,14 +30,15 @@
 import org.eclipse.scout.commons.job.JobEx;
 import org.eclipse.scout.commons.logger.IScoutLogger;
 import org.eclipse.scout.commons.logger.ScoutLogManager;
-import org.eclipse.scout.rt.client.ui.action.menu.IMenu;
+import org.eclipse.scout.rt.client.ui.action.menu.root.IContextMenu;
 import org.eclipse.scout.rt.client.ui.form.fields.IFormField;
 import org.eclipse.scout.rt.client.ui.form.fields.ScoutFieldStatus;
 import org.eclipse.scout.rt.client.ui.form.fields.filechooserfield.IFileChooserField;
 import org.eclipse.scout.rt.ui.rap.LogicalGridLayout;
 import org.eclipse.scout.rt.ui.rap.RwtMenuUtility;
-import org.eclipse.scout.rt.ui.rap.ext.IDropDownFileUploadForPatch;
-import org.eclipse.scout.rt.ui.rap.ext.MenuAdapterEx;
+import org.eclipse.scout.rt.ui.rap.action.menu.RwtContextMenuMarkerComposite;
+import org.eclipse.scout.rt.ui.rap.action.menu.RwtScoutContextMenu;
+import org.eclipse.scout.rt.ui.rap.ext.DropDownFileUpload;
 import org.eclipse.scout.rt.ui.rap.ext.StatusLabelEx;
 import org.eclipse.scout.rt.ui.rap.ext.StyledTextEx;
 import org.eclipse.scout.rt.ui.rap.ext.custom.StyledText;
@@ -47,12 +50,12 @@
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.events.FocusAdapter;
 import org.eclipse.swt.events.FocusEvent;
-import org.eclipse.swt.events.MenuEvent;
 import org.eclipse.swt.events.MouseAdapter;
 import org.eclipse.swt.events.MouseEvent;
 import org.eclipse.swt.events.SelectionAdapter;
 import org.eclipse.swt.events.SelectionEvent;
 import org.eclipse.swt.graphics.Color;
+import org.eclipse.swt.graphics.Point;
 import org.eclipse.swt.layout.FormAttachment;
 import org.eclipse.swt.layout.FormData;
 import org.eclipse.swt.layout.FormLayout;
@@ -60,24 +63,25 @@
 import org.eclipse.swt.widgets.Control;
 import org.eclipse.swt.widgets.Event;
 import org.eclipse.swt.widgets.Menu;
-import org.eclipse.swt.widgets.MenuItem;
 import org.eclipse.swt.widgets.ProgressBar;
 
 public class RwtScoutFileUploadField extends RwtScoutValueFieldComposite<IFileChooserField> implements IRwtScoutFileUploadField {
   private static final IScoutLogger LOG = ScoutLogManager.getLogger(RwtScoutFileUploadField.class);
 
   private Composite m_fileContainer;
-  private IDropDownFileUploadForPatch m_browseButton;
+  private DropDownFileUpload m_browseButton;
   private ProgressBar m_progressBar;
-  private Menu m_contextMenu;
   private TextFieldEditableSupport m_editableSupport;
 
   private FileUploadHandler m_handler;
-  private FileUploadListener m_uploadListener;
+  private P_FileUploadListener m_uploadListener;
   private File m_uploadedFile = null;
-
   private String m_originalVariant = "";
 
+  private RwtContextMenuMarkerComposite m_menuMarkerComposite;
+  private RwtScoutContextMenu m_uiContextMenu;
+  private P_ContextMenuPropertyListener m_contextMenuPropertyListener;
+
   public RwtScoutFileUploadField() {
     initializeFileUpload();
   }
@@ -91,7 +95,25 @@
     m_fileContainer = getUiEnvironment().getFormToolkit().createComposite(container, SWT.BORDER);
     m_fileContainer.setData(RWT.CUSTOM_VARIANT, VARIANT_FILECHOOSER);
 
-    StyledText textField = new StyledTextEx(m_fileContainer, SWT.SINGLE | getUiEnvironment().getFormToolkit().getOrientation()) {
+    m_menuMarkerComposite = new RwtContextMenuMarkerComposite(m_fileContainer, getUiEnvironment(), SWT.NONE);
+    getUiEnvironment().getFormToolkit().adapt(m_menuMarkerComposite);
+    m_menuMarkerComposite.addSelectionListener(new SelectionAdapter() {
+      private static final long serialVersionUID = 1L;
+
+      @Override
+      public void widgetSelected(SelectionEvent e) {
+        if (getUiContextMenu() != null) {
+          Menu uiMenu = getUiContextMenu().getUiMenu();
+          if (e.widget instanceof Control) {
+            Point loc = ((Control) e.widget).toDisplay(e.x, e.y);
+            uiMenu.setLocation(RwtMenuUtility.getMenuLocation(getScoutObject().getContextMenu().getChildActions(), uiMenu, loc, getUiEnvironment()));
+          }
+          uiMenu.setVisible(true);
+        }
+      }
+    });
+
+    StyledText textField = new StyledTextEx(m_menuMarkerComposite, SWT.SINGLE | getUiEnvironment().getFormToolkit().getOrientation()) {
       private static final long serialVersionUID = 1L;
 
       @Override
@@ -114,16 +136,10 @@
     setUiLabel(label);
     setUiField(textField);
 
-    createProgressBar();
     createBrowseButton();
 
     // prevent the button from grabbing focus
-    m_fileContainer.setTabList(new Control[]{textField});
-
-    // context menu
-    m_contextMenu = new Menu(getUiBrowseButton().getShell(), SWT.POP_UP);
-    m_contextMenu.addMenuListener(new P_ContextMenuListener());
-    getUiBrowseButton().setMenu(m_contextMenu);
+    m_fileContainer.setTabList(new Control[]{m_menuMarkerComposite});
 
     // layout
     container.setLayout(new LogicalGridLayout(1, 0));
@@ -132,10 +148,10 @@
     m_fileContainer.setLayout(new FormLayout());
 
     final FormData textLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
-    textLayoutData.right = new FormAttachment(100, -20);
     textLayoutData.left = new FormAttachment(0, 0);
-    textLayoutData.bottom = new FormAttachment(textField, -1, SWT.BOTTOM);
-    textField.setLayoutData(textLayoutData);
+    textLayoutData.right = new FormAttachment(100, -20);
+    textLayoutData.bottom = new FormAttachment(m_menuMarkerComposite, -1, SWT.BOTTOM);
+    m_menuMarkerComposite.setLayoutData(textLayoutData);
   }
 
   private void createBrowseButton() {
@@ -177,13 +193,14 @@
     });
 
     final FormData buttonLayoutData = new FormData(SWT.DEFAULT, SWT.DEFAULT);
-    buttonLayoutData.left = new FormAttachment(getUiField(), 0, SWT.RIGHT);
+    buttonLayoutData.left = new FormAttachment(m_menuMarkerComposite, 0, SWT.RIGHT);
     buttonLayoutData.bottom = new FormAttachment((Control) getUiBrowseButton(), 0, SWT.BOTTOM);
     buttonLayoutData.height = 20;
     buttonLayoutData.width = 20;
     getUiBrowseButton().setLayoutData(buttonLayoutData);
 
     setEnabledFromScout(getScoutObject().isEnabled());
+//    m_browseButton.setDropdownEnabled(calculateDropDownButtonEnabled());
     m_fileContainer.layout();
   }
 
@@ -224,7 +241,7 @@
   }
 
   @Override
-  public IDropDownFileUploadForPatch getUiBrowseButton() {
+  public DropDownFileUpload getUiBrowseButton() {
     return m_browseButton;
   }
 
@@ -238,6 +255,10 @@
     return (StyledText) super.getUiField();
   }
 
+  public RwtScoutContextMenu getUiContextMenu() {
+    return m_uiContextMenu;
+  }
+
   @Override
   protected IRwtKeyStroke[] getUiKeyStrokes() {
     return new IRwtKeyStroke[]{
@@ -264,16 +285,32 @@
   protected void attachScout() {
     super.attachScout();
     setFileIconIdFromScout(getScoutObject().getFileIconId());
-    getUiBrowseButton().setDropdownEnabled(getScoutObject().hasMenus());
     if (getScoutObject().isFolderMode()) {
       String msg = "IFileChooserField.isFolderMode() == true is not possible in RAP";
       LOG.error(msg);
       getUiLabel().setStatus(new ProcessingStatus(msg, IProcessingStatus.ERROR));
     }
+    // context menu
+    updateContextMenuVisibilityFromScout();
+    if (getScoutObject().getContextMenu() != null && m_contextMenuPropertyListener == null) {
+      m_contextMenuPropertyListener = new P_ContextMenuPropertyListener();
+      getScoutObject().getContextMenu().addPropertyChangeListener(IContextMenu.PROP_VISIBLE, m_contextMenuPropertyListener);
+    }
+  }
+
+  @Override
+  protected void detachScout() {
+    // context menu listener
+    if (m_contextMenuPropertyListener != null) {
+      getScoutObject().getContextMenu().removePropertyChangeListener(IContextMenu.PROP_VISIBLE, m_contextMenuPropertyListener);
+      m_contextMenuPropertyListener = null;
+    }
+    super.detachScout();
   }
 
   @Override
   protected void setDisplayTextFromScout(String s) {
+//    getUiBrowseButton().setDropdownEnabled(calculateDropDownButtonEnabled());
     if (s == null) {
       s = "";
     }
@@ -311,6 +348,27 @@
     getUiBrowseButton().setData(RWT.CUSTOM_VARIANT, s);
   }
 
+  protected void updateContextMenuVisibilityFromScout() {
+    m_menuMarkerComposite.setMarkerVisible(getScoutObject().getContextMenu().isVisible());
+    if (getScoutObject().getContextMenu().isVisible()) {
+      if (m_uiContextMenu == null) {
+        m_uiContextMenu = new RwtScoutContextMenu(getUiField().getShell(), getScoutObject().getContextMenu(), getUiEnvironment());
+        if (getUiBrowseButton() != null) {
+          getUiBrowseButton().setMenu(m_uiContextMenu.getUiMenu());
+        }
+      }
+    }
+    else {
+      if (getUiBrowseButton() != null) {
+        getUiBrowseButton().setMenu(null);
+      }
+      if (m_uiContextMenu != null) {
+        m_uiContextMenu.dispose();
+      }
+      m_uiContextMenu = null;
+    }
+  }
+
   @Override
   protected void handleUiInputVerifier(boolean doit) {
     if (!doit) {
@@ -361,7 +419,9 @@
     if (m_uploadListener == null) {
       m_uploadListener = new P_FileUploadListener();
     }
+    m_uploadListener.startUpload();
     m_handler.addUploadListener(m_uploadListener);
+    createProgressBar();
     getUiBrowseButton().submit(url);
   }
 
@@ -371,17 +431,26 @@
     }
     if (m_uploadListener != null) {
       m_handler.removeUploadListener(m_uploadListener);
+      m_uploadListener.cancelUpload();
       m_uploadListener = null;
     }
     m_handler.dispose();
-    getUiBrowseButton().dispose();
-    getUiProgressBar().dispose();
+
+    DropDownFileUpload uiBrowseButton = getUiBrowseButton();
+    if (uiBrowseButton != null && !uiBrowseButton.isDisposed()) {
+      uiBrowseButton.dispose();
+    }
+
+    ProgressBar uiProgressBar = getUiProgressBar();
+    if (uiProgressBar != null && !uiProgressBar.isDisposed()) {
+      uiProgressBar.dispose();
+    }
     getUiField().setText("");
 
     initializeFileUpload();
 
-    createProgressBar();
     createBrowseButton();
+
     return true;
   }
 
@@ -393,76 +462,38 @@
     }
   }
 
-  private class P_ContextMenuListener extends MenuAdapterEx {
-
-    private static final long serialVersionUID = 1L;
-
-    public P_ContextMenuListener() {
-      super((Control) RwtScoutFileUploadField.this.getUiBrowseButton(), RwtScoutFileUploadField.this.getUiBrowseButton().getParent());
-    }
-
-    @Override
-    public void menuShown(MenuEvent e) {
-      super.menuShown(e);
-      /*
-       * Since the FileUpload widget does fire a MouseEvent when it is clicked on, we do not know if the right mouse button has been clicked or not.
-       * Therefore, a MenuDetect listener cannot be attached. The creation of the menu is done once after initialization.
-       * While handling the menuShown, the menu (event source) might already contain contributed Scout menus from the previous right mouse click. To
-       * avoid the menus being added several times, the menu items are removed first before the Scout menus are contributed.
-       */
-      Menu contextMenu = (Menu) e.getSource();
-      cleanUpMenuItems(contextMenu);
-
-      final AtomicReference<IMenu[]> scoutMenusRef = new AtomicReference<IMenu[]>();
-      Runnable t = new Runnable() {
-        @Override
-        public void run() {
-          IMenu[] scoutMenus = getScoutObject().getUIFacade().firePopupFromUI();
-          scoutMenusRef.set(scoutMenus);
-        }
-      };
-      JobEx job = RwtScoutFileUploadField.this.getUiEnvironment().invokeScoutLater(t, 1200);
-      try {
-        job.join(1200);
-      }
-      catch (InterruptedException ex) {
-        //nop
-      }
-      // grab the actions out of the job, when the actions are providden within
-      // the scheduled time the popup will be handled.
-      if (scoutMenusRef.get() != null) {
-        RwtMenuUtility.fillContextMenu(scoutMenusRef.get(), RwtScoutFileUploadField.this.getUiEnvironment(), contextMenu);
-      }
-    }
-
-    protected void cleanUpMenuItems(Menu menu) {
-      for (MenuItem menuItem : menu.getItems()) {
-        disposeMenuItem(menuItem);
-      }
-    }
-
-    protected void disposeMenuItem(MenuItem item) {
-      Menu menu = item.getMenu();
-      if (menu != null) {
-        for (MenuItem childItem : menu.getItems()) {
-          disposeMenuItem(childItem);
-        }
-        menu.dispose();
-      }
-      item.dispose();
-    }
-  } // end class P_ContextMenuListener
-
   private class P_FileUploadListener implements FileUploadListener {
 
+    private final ServerPushSession m_pushSession;
+    private int m_oldPercentage = 0;
+
+    public P_FileUploadListener() {
+      m_pushSession = new ServerPushSession();
+    }
+
+    public void startUpload() {
+      m_pushSession.start();
+    }
+
+    public void cancelUpload() {
+      m_pushSession.stop();
+    }
+
+    private int getPercentage(FileUploadEvent uploadEvent) {
+      double bytesRead = uploadEvent.getBytesRead();
+      double contentLength = uploadEvent.getContentLength();
+      double fraction = bytesRead / contentLength;
+      return (int) Math.floor(fraction * 100);
+    }
+
     @Override
     public void uploadProgress(final FileUploadEvent uploadEvent) {
       getUiEnvironment().getDisplay().asyncExec(new Runnable() {
         @Override
         public void run() {
-          double fraction = uploadEvent.getBytesRead() / (double) uploadEvent.getContentLength();
-          int percent = (int) Math.floor(fraction * 100);
-          if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+          int percent = getPercentage(uploadEvent);
+          if (percent != m_oldPercentage && getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+            m_oldPercentage = percent;
             getUiProgressBar().setSelection(percent);
             getUiProgressBar().setToolTipText("Upload progress: " + percent + "%");
           }
@@ -473,7 +504,13 @@
     @Override
     public void uploadFinished(final FileUploadEvent uploadEvent) {
       DiskFileUploadReceiver receiver = (DiskFileUploadReceiver) m_handler.getReceiver();
-      m_uploadedFile = receiver.getTargetFile();
+      File[] uploadedFiles = receiver.getTargetFiles();
+      if (uploadedFiles != null && uploadedFiles.length > 0) {
+        m_uploadedFile = uploadedFiles[0]; // only supports one file upload.
+      }
+      else {
+        m_uploadedFile = null;
+      }
       getUiEnvironment().getDisplay().asyncExec(new Runnable() {
 
         @Override
@@ -486,14 +523,13 @@
       getUiEnvironment().getDisplay().asyncExec(new Runnable() {
         @Override
         public void run() {
-          int percent = 0;
           if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
-            getUiProgressBar().setSelection(percent);
-            getUiProgressBar().setToolTipText("");
+            getUiProgressBar().dispose();
           }
           m_handler.removeUploadListener(m_uploadListener);
         }
       });
+      m_pushSession.stop();
     }
 
     @Override
@@ -504,9 +540,28 @@
           if (getUiLabel() != null) {
             getUiLabel().setStatus(new ScoutFieldStatus(uploadEvent.getException().getMessage(), IStatus.ERROR));
           }
+          if (getUiProgressBar() != null && !getUiProgressBar().isDisposed()) {
+            getUiProgressBar().dispose();
+          }
           m_handler.removeUploadListener(m_uploadListener);
         }
       });
+      m_pushSession.stop();
+    }
+  }
+
+  private class P_ContextMenuPropertyListener implements PropertyChangeListener {
+    @Override
+    public void propertyChange(PropertyChangeEvent evt) {
+      if (IContextMenu.PROP_VISIBLE.equals(evt.getPropertyName())) {
+        // synchronize
+        getUiEnvironment().invokeUiLater(new Runnable() {
+          @Override
+          public void run() {
+            updateContextMenuVisibilityFromScout();
+          }
+        });
+      }
     }
   }
 }
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooser.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooser.java
index 178874f..84f5af8 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooser.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooser.java
@@ -12,10 +12,13 @@
 
 import java.io.File;
 import java.util.ArrayList;
+import java.util.List;
 
+import org.eclipse.scout.commons.CollectionUtility;
 import org.eclipse.scout.commons.logger.IScoutLogger;
 import org.eclipse.scout.commons.logger.ScoutLogManager;
 import org.eclipse.scout.rt.client.ui.basic.filechooser.IFileChooser;
+import org.eclipse.scout.rt.shared.ScoutTexts;
 import org.eclipse.scout.rt.ui.rap.IRwtEnvironment;
 import org.eclipse.swt.SWT;
 import org.eclipse.swt.widgets.FileDialog;
@@ -31,7 +34,7 @@
  * @since 3.7.0 June 2011
  */
 public class RwtScoutFileChooser implements IRwtScoutFileChooser {
-  private static IScoutLogger LOG = ScoutLogManager.getLogger(RwtScoutFileChooser.class);
+  private static final IScoutLogger LOG = ScoutLogManager.getLogger(RwtScoutFileChooser.class);
 
   private final IFileChooser m_scoutFileChooser;
   private final Shell m_parentShell;
@@ -47,22 +50,22 @@
 
   @Override
   public void showFileChooser() {
-    File[] files = null;
+    List<File> files = null;
     try {
       if (getScoutFileChooser().isFolderMode()) {
         LOG.error("IFileChooserField.isFolderMode() == true is not possible in RAP");
-        files = new File[0];
+        files = CollectionUtility.emptyArrayList();
       }
       else if (!getScoutFileChooser().isTypeLoad()) {
         LOG.info("IFileChooserField.isTypeLoad() == false (SAVE) is not possible in RAP, doing nothing");
-        files = new File[0];
+        files = CollectionUtility.emptyArrayList();
       }
       else {
         files = uploadFiles();
       }
     }
     finally {
-      final File[] finalFiles = files;
+      final List<File> finalFiles = files;
       Runnable job = new Runnable() {
         @Override
         public void run() {
@@ -73,7 +76,7 @@
     }
   }
 
-  protected File[] uploadFiles() {
+  protected List<File> uploadFiles() {
     int style = SWT.NONE;
     if (getScoutFileChooser().isTypeLoad()) {
       style |= SWT.OPEN;
@@ -84,28 +87,47 @@
     if (getScoutFileChooser().isMultiSelect()) {
       style |= SWT.MULTI;
     }
-    String[] extensions = new String[]{"*.*"};
+
+    // Since version 2.3, the RAP FileDialog does not support filtering for extensions, file paths and names anymore.
+    // See bugzilla 433502 and 433501. Code is commented out until the support is available again.
+//    String[] extensions = new String[]{"*.*"};
     if (getScoutFileChooser().getFileExtensions() != null) {
-      ArrayList<String> extensionList = new ArrayList<String>();
-      for (String ext : getScoutFileChooser().getFileExtensions()) {
-        extensionList.add("*." + ext);
-      }
-      extensions = extensionList.toArray(new String[extensionList.size()]);
+      LOG.info("Setting file extensions using IFileChooserField.getFileExtensions() is currently not possible in RAP. Operation is ignored.");
+//      List<String> extensionList = new ArrayList<String>();
+//      for (String ext : getScoutFileChooser().getFileExtensions()) {
+//        extensionList.add("*." + ext);
+//      }
+//      extensions = extensionList.toArray(new String[extensionList.size()]);
     }
     FileDialog dialog = new FileDialog(getParentShell(), style);
-    dialog.setFilterExtensions(extensions);
+//    dialog.setFilterExtensions(extensions);
     if (getScoutFileChooser().getDirectory() != null) {
-      dialog.setFilterPath(getScoutFileChooser().getDirectory().getAbsolutePath());
+      LOG.info("Setting filter path using IFileChooserField.getDirectory() is currently not possible in RAP. Operation is ignored.");
+//      dialog.setFilterPath(getScoutFileChooser().getDirectory().getAbsolutePath());
     }
     if (getScoutFileChooser().getFileName() != null) {
-      dialog.setFileName(getScoutFileChooser().getFileName());
+      LOG.info("Setting file name using IFileChooserField.getFileName() is currently possible in RAP. Operation is ignored.");
+//      dialog.setFileName(getScoutFileChooser().getFileName());
     }
-    String selectedFile = dialog.open();
-    if (selectedFile != null && selectedFile.length() > 0) {
-      return new File[]{new File(selectedFile)};
+    setFileDialogTitle(dialog, getScoutFileChooser().isMultiSelect());
+    dialog.open();
+    String[] selectedFiles = dialog.getFileNames();
+    if (selectedFiles != null && selectedFiles.length > 0) {
+      List<File> files = new ArrayList<File>(selectedFiles.length);
+      for (String selectedFile : selectedFiles) {
+        files.add(new File(selectedFile));
+      }
+      return files;
+    }
+    return CollectionUtility.emptyArrayList();
+  }
+
+  private void setFileDialogTitle(FileDialog fileDialog, boolean isMultiselect) {
+    if (isMultiselect) {
+      fileDialog.setText(ScoutTexts.get("FileChooserRAPMultipleFiles"));
     }
     else {
-      return new File[0];
+      fileDialog.setText(ScoutTexts.get("FileChooserRAPSingleFile"));
     }
   }
 
diff --git a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooserService.java b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooserService.java
index a5d1114..dbdd455 100644
--- a/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooserService.java
+++ b/org.eclipse.scout.rt.ui.rap.incubator.filechooser/src/org/eclipse/scout/rt/ui/rap/window/filechooser/RwtScoutFileChooserService.java
@@ -11,6 +11,9 @@
 package org.eclipse.scout.rt.ui.rap.window.filechooser;
 
 import org.eclipse.scout.rt.client.ui.basic.filechooser.IFileChooser;
+import org.eclipse.scout.rt.ui.rap.dnd.IRwtScoutFileUploadHandler;
+import org.eclipse.scout.rt.ui.rap.dnd.RwtScoutFileUploadHandler;
+import org.eclipse.scout.rt.ui.rap.form.fields.IRwtScoutDndUploadCallback;
 import org.eclipse.scout.service.AbstractService;
 import org.eclipse.swt.widgets.Shell;
 
@@ -21,4 +24,10 @@
     IRwtScoutFileChooser sfc = new RwtScoutFileChooser(parentShell, fileChooser);
     return sfc;
   }
+
+  @Override
+  public IRwtScoutFileUploadHandler createFileUploadHandler(IRwtScoutDndUploadCallback uploadCallback) {
+    return new RwtScoutFileUploadHandler(uploadCallback);
+  }
+
 }
diff --git a/pom.xml b/pom.xml
index a066e80..0af3df4 100644
--- a/pom.xml
+++ b/pom.xml
@@ -16,7 +16,7 @@
   <parent>
     <groupId>org.eclipse.scout</groupId>
     <artifactId>org.eclipse.scout.parent</artifactId>
-    <version>3.9.2-SNAPSHOT</version>
+    <version>4.0.0-SNAPSHOT</version>
     <relativePath>../org.eclipse.scout.parent</relativePath>
   </parent>