Author: ivaynberg
Date: Sat Sep  6 11:24:40 2008
New Revision: 692704

URL: http://svn.apache.org/viewvc?rev=692704&view=rev
Log:
WICKET:1820 multipart support for embedded forms

Modified:
    
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java

Modified: 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java
URL: 
http://svn.apache.org/viewvc/wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java?rev=692704&r1=692703&r2=692704&view=diff
==============================================================================
--- 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java 
(original)
+++ 
wicket/trunk/wicket/src/main/java/org/apache/wicket/markup/html/form/Form.java 
Sat Sep  6 11:24:40 2008
@@ -1454,6 +1454,36 @@
                return new CookieValuePersister();
        }
 
+       private boolean isMultiPart()
+       {
+               if (multiPart)
+               {
+                       return true;
+               }
+               else
+               {
+                       final boolean[] anyEmbeddedMultipart = new boolean[] { 
false };
+                       visitChildren(Form.class, new IVisitor<Form<?>>()
+                       {
+
+                               public Object component(Form<?> form)
+                               {
+                                       if (form.multiPart)
+                                       {
+                                               anyEmbeddedMultipart[0] = true;
+                                               return STOP_TRAVERSAL;
+                                       }
+                                       else
+                                       {
+                                               return CONTINUE_TRAVERSAL;
+                                       }
+                               }
+
+                       });
+                       return anyEmbeddedMultipart[0];
+               }
+       }
+
        /**
         * Handles multi-part processing of the submitted data.
         * 
@@ -1465,7 +1495,7 @@
         */
        protected boolean handleMultiPart()
        {
-               if (multiPart && !((WebRequest)getRequest()).isAjax())
+               if (isMultiPart() && !((WebRequest)getRequest()).isAjax())
                {
                        // Change the request to a multipart web request so 
parameters are
                        // parsed out correctly
@@ -1633,7 +1663,7 @@
                                tag.put("action", Strings.escapeMarkup(url));
                        }
 
-                       if (multiPart)
+                       if (isMultiPart())
                        {
                                tag.put("enctype", "multipart/form-data");
                        }


Reply via email to