RAP filechooser field reset after invalid value not correct

Change-Id: Id7506353e9fe021acfc6ea72623a64d2ecc4b90b
Reviewed-on: https://git.eclipse.org/r/46259
Reviewed-by: Judith Gull <jgu@bsiag.com>
Tested-by: Judith Gull <jgu@bsiag.com>
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 cc0e455..7de0d31 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
@@ -188,6 +188,7 @@
         }
 
         getUiField().setText(filename);
+        resetUpload();
         handleUpload();
       }
     });
@@ -421,39 +422,50 @@
     if (m_uploadListener == null) {
       m_uploadListener = new P_FileUploadListener();
     }
-    m_uploadListener.startUpload();
     m_handler.addUploadListener(m_uploadListener);
+    m_uploadListener.startUpload();
     createProgressBar();
     getUiBrowseButton().submit(url);
   }
 
+  private void resetUpload() {
+    disposeHandler();
+    disposeProgressBar();
+    initializeFileUpload();
+  }
+
   private boolean cancelUpload() {
-    if (m_uploadedFile != null) {
-      return false;
+    disposeHandler();
+    disposeBrowseButton();
+    disposeProgressBar();
+    getUiField().setText("");
+
+    initializeFileUpload();
+    createBrowseButton();
+    return true;
+  }
+
+  private void disposeBrowseButton() {
+    DropDownFileUpload uiBrowseButton = getUiBrowseButton();
+    if (uiBrowseButton != null && !uiBrowseButton.isDisposed()) {
+      uiBrowseButton.dispose();
     }
+  }
+
+  private void disposeProgressBar() {
+    ProgressBar uiProgressBar = getUiProgressBar();
+    if (uiProgressBar != null && !uiProgressBar.isDisposed()) {
+      uiProgressBar.dispose();
+    }
+  }
+
+  private void disposeHandler() {
     if (m_uploadListener != null) {
       m_handler.removeUploadListener(m_uploadListener);
       m_uploadListener.cancelUpload();
       m_uploadListener = null;
     }
     m_handler.dispose();
-
-    DropDownFileUpload uiBrowseButton = getUiBrowseButton();
-    if (uiBrowseButton != null && !uiBrowseButton.isDisposed()) {
-      uiBrowseButton.dispose();
-    }
-
-    ProgressBar uiProgressBar = getUiProgressBar();
-    if (uiProgressBar != null && !uiProgressBar.isDisposed()) {
-      uiProgressBar.dispose();
-    }
-    getUiField().setText("");
-
-    initializeFileUpload();
-
-    createBrowseButton();
-
-    return true;
   }
 
   @Override