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