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"); }