You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by kn...@apache.org on 2007/03/08 12:38:49 UTC
svn commit: r516014 -
/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java
Author: knopp
Date: Thu Mar 8 03:38:43 2007
New Revision: 516014
URL: http://svn.apache.org/viewvc?view=rev&rev=516014
Log:
added root form check for set/getDefaultButton
javadoc improvement
Modified:
incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java
Modified: incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java
URL: http://svn.apache.org/viewvc/incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java?view=diff&rev=516014&r1=516013&r2=516014
==============================================================================
--- incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java (original)
+++ incubator/wicket/branches/wicket-1.x/wicket/src/main/java/wicket/markup/html/form/Form.java Thu Mar 8 03:38:43 2007
@@ -115,6 +115,17 @@
* To get form components to persist their values for users via cookies, simply
* call setPersistent(true) on each component.
* </p>
+ * <p>
+ * Forms can be nested. You can put a form in another form. Since HTML doesn't
+ * allow nested <form> tags, the inner forms will be rendered using the
+ * <div> tag. You have to submit the inner forms using explicit components
+ * (like Button or SubmitLink), you can't rely on implicit submit behavior (by
+ * using just <input type="submit"> that is not attached to a component).
+ * </p>
+ * <p>
+ * When a nested form is submitted, the user entered values in outer (parent)
+ * forms are preserved and only the fields in the submitted form are validated.
+ * </b>
*
* @author Jonathan Locke
* @author Juergen Donnerstag
@@ -259,13 +270,23 @@
* 'default' button in a form is ill defined in the standards, and of course
* IE has it's own way of doing things.
* </p>
+ * There can be only one default button per form hierarchy. So if you want
+ * to get the default button on a nested form, it will actually delegate the
+ * call to root form. </b>
*
* @return The button to set as the default button, or null when you want to
* 'unset' any previously set default button
*/
public final Button getDefaultButton()
{
- return defaultButton;
+ if (isRootForm())
+ {
+ return defaultButton;
+ }
+ else
+ {
+ return getRootForm().getDefaultButton();
+ }
}
/**
@@ -435,6 +456,9 @@
* 'default' button in a form is ill defined in the standards, and of course
* IE has it's own way of doing things.
* </p>
+ * There can be only one default button per form hierarchy. So if you set
+ * default button on a nested form, it will actually delegate the call to
+ * root form. </b>
*
* @param button
* The button to set as the default button, or null when you want
@@ -442,7 +466,14 @@
*/
public final void setDefaultButton(Button button)
{
- this.defaultButton = button;
+ if (isRootForm())
+ {
+ this.defaultButton = button;
+ }
+ else
+ {
+ getRootForm().setDefaultButton(button);
+ }
}
/**
@@ -652,6 +683,7 @@
return getDefaultButton();
}
+
return submit;
}
@@ -794,10 +826,6 @@
{
appendDefaultButtonField(markupStream, openTag);
}
- }
- else
- {
- getResponse().write("<!-- wicket-nested-form -->");
}
// do the rest of the processing