Revision: 1769
http://svn.sourceforge.net/spring-rich-c/?rev=1769&view=rev
Author: anodos
Date: 2007-06-26 09:10:58 -0700 (Tue, 26 Jun 2007)
Log Message:
-----------
RCP-478 - Pass Form reference to FormUIProvider.bind to support binding child forms
Modified Paths:
--------------
trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/AbstractFormUIProvider.java
trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/FormUIProvider.java
trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/GeneratedForm.java
trunk/spring-richclient/sandbox/src/test/java/org/springframework/richclient/form/DefaultFormUIProviderTests.java
Modified: trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/AbstractFormUIProvider.java
===================================================================
--- trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/AbstractFormUIProvider.java 2007-06-18 06:37:41 UTC (rev 1768)
+++ trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/AbstractFormUIProvider.java 2007-06-26 16:10:58 UTC (rev 1769)
@@ -36,7 +36,7 @@
private String[] properties;
private Map contextMap = new HashMap();
- public void bind(BindingFactory factory) {
+ public void bind(BindingFactory factory, Form form) {
Assert.state(properties != null && properties.length > 0, "Properties must be set");
bound = true;
Modified: trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/FormUIProvider.java
===================================================================
--- trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/FormUIProvider.java 2007-06-18 06:37:41 UTC (rev 1768)
+++ trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/FormUIProvider.java 2007-06-26 16:10:58 UTC (rev 1769)
@@ -44,8 +44,9 @@
*
* @param factory the <code>BindingFactory</code> this form provider should
* use to bind the provided form.
+ * @param form the <code>Form</code> being bound.
*/
- void bind(BindingFactory factory);
+ void bind(BindingFactory factory, Form form);
/**
* Provides access to individual components of this pre-generated form.
@@ -54,7 +55,7 @@
* typically these IDs will be the same as the property names of the
* object backing the form.
*
- * @param componentId
+ * @param componentId component id to lookup
*
* @return component with the specified id, or <code>null</code> if no
* component exists in this pre-generated form with the given id.
Modified: trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/GeneratedForm.java
===================================================================
--- trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/GeneratedForm.java 2007-06-18 06:37:41 UTC (rev 1768)
+++ trunk/spring-richclient/sandbox/src/main/java/org/springframework/richclient/form/GeneratedForm.java 2007-06-26 16:10:58 UTC (rev 1769)
@@ -21,6 +21,10 @@
import org.springframework.beans.factory.InitializingBean;
import org.springframework.util.Assert;
+import org.springframework.binding.form.FormModel;
+import org.springframework.binding.form.HierarchicalFormModel;
+import org.springframework.binding.form.ValidatingFormModel;
+import org.springframework.binding.value.ValueModel;
/**
* Convenience class for producing a Spring Rich {@link Form} based on a
@@ -29,44 +33,141 @@
* the most common case where a developer designs a form and wants to display
* it without any custom functionality beyond what Spring Rich already
* provides.
+ * <p/>
+ * In order to better facilitate the common usage scenarios and to avoid
+ * developers having to subclass <code>GeneratedForm</code>, many convenience
+ * constructors are provided, along with making the
+ * {@link #setFormModel(ValidatingFormModel)} and {@link #setId(String)}
+ * methods public.
*
* @author Andy DePue
* @author Peter De Bruycker
*/
public class GeneratedForm extends AbstractForm implements InitializingBean {
- private FormUIProvider formUIProvider;
+ private FormUIProvider formUIProvider;
- //
- // METHODS FROM CLASS AbstractForm
- //
+ public GeneratedForm() {
+ super();
+ }
- protected JComponent createFormControl() {
- this.formUIProvider.bind(getBindingFactory());
- return this.formUIProvider.getControl();
- }
+ public GeneratedForm(String formId) {
+ super(formId);
+ }
+ public GeneratedForm(Object formObject) {
+ super(formObject);
+ }
+ public GeneratedForm(FormModel pageFormModel) {
+ super(pageFormModel);
+ }
- //
- // METHODS FROM INTERFACE InitializingBean
- //
+ public GeneratedForm(FormModel formModel, String formId) {
+ super(formModel, formId);
+ }
- public void afterPropertiesSet() throws Exception {
- Assert.notNull(this.formUIProvider, "formUIProvider must be set");
- }
+ public GeneratedForm(HierarchicalFormModel parentFormModel, String formId, String childFormObjectPropertyPath) {
+ super(parentFormModel, formId, childFormObjectPropertyPath);
+ }
+ public GeneratedForm(HierarchicalFormModel parentFormModel, String formId, ValueModel childFormObjectHolder) {
+ super(parentFormModel, formId, childFormObjectHolder);
+ }
+ public GeneratedForm(final FormUIProvider formUIProvider) {
+ this.formUIProvider = formUIProvider;
+ }
+ public GeneratedForm(String formId, final FormUIProvider formUIProvider) {
+ super(formId);
+ this.formUIProvider = formUIProvider;
+ }
- //
- // SIMPLE PROPERTY ACCESSORS
- //
+ public GeneratedForm(Object formObject, final FormUIProvider formUIProvider) {
+ super(formObject);
+ this.formUIProvider = formUIProvider;
+ }
- public FormUIProvider getFormUIProvider() {
- return formUIProvider;
- }
+ public GeneratedForm(Object formObject, String formId, final FormUIProvider formUIProvider) {
+ super(formObject);
+ setId(formId);
+ this.formUIProvider = formUIProvider;
+ }
- public void setFormUIProvider(final FormUIProvider formUIProvider) {
- this.formUIProvider = formUIProvider;
- }
+ public GeneratedForm(FormModel pageFormModel, final FormUIProvider formUIProvider) {
+ super(pageFormModel);
+ this.formUIProvider = formUIProvider;
+ }
+
+ public GeneratedForm(FormModel formModel, String formId, final FormUIProvider formUIProvider) {
+ super(formModel, formId);
+ this.formUIProvider = formUIProvider;
+ }
+
+ public GeneratedForm(HierarchicalFormModel parentFormModel, String formId, String childFormObjectPropertyPath, final FormUIProvider formUIProvider) {
+ super(parentFormModel, formId, childFormObjectPropertyPath);
+ this.formUIProvider = formUIProvider;
+ }
+
+ public GeneratedForm(HierarchicalFormModel parentFormModel, String formId, ValueModel childFormObjectHolder, final FormUIProvider formUIProvider) {
+ super(parentFormModel, formId, childFormObjectHolder);
+ this.formUIProvider = formUIProvider;
+ }
+
+
+ //
+ // METHODS FROM CLASS AbstractForm
+ //
+
+ protected JComponent createFormControl() {
+ this.formUIProvider.bind(getBindingFactory(), this);
+ return this.formUIProvider.getControl();
+ }
+
+ /**
+ * Provides public access to this method as a convenience.
+ *
+ * @param formModel
+ */
+ public void setFormModel(ValidatingFormModel formModel) {
+ super.setFormModel(formModel);
+ }
+
+
+ /**
+ * Provides public access to this method as a convenience.
+ *
+ * @param formId
+ */
+ public void setId(String formId) {
+ super.setId(formId);
+ }
+
+
+
+
+
+
+ //
+ // METHODS FROM INTERFACE InitializingBean
+ //
+
+ public void afterPropertiesSet() throws Exception {
+ Assert.notNull(this.formUIProvider, "formUIProvider must be set");
+ }
+
+
+
+
+ //
+ // SIMPLE PROPERTY ACCESSORS
+ //
+
+ public FormUIProvider getFormUIProvider() {
+ return formUIProvider;
+ }
+
+ public void setFormUIProvider(final FormUIProvider formUIProvider) {
+ this.formUIProvider = formUIProvider;
+ }
}
Modified: trunk/spring-richclient/sandbox/src/test/java/org/springframework/richclient/form/DefaultFormUIProviderTests.java
===================================================================
--- trunk/spring-richclient/sandbox/src/test/java/org/springframework/richclient/form/DefaultFormUIProviderTests.java 2007-06-18 06:37:41 UTC (rev 1768)
+++ trunk/spring-richclient/sandbox/src/test/java/org/springframework/richclient/form/DefaultFormUIProviderTests.java 2007-06-26 16:10:58 UTC (rev 1769)
@@ -35,7 +35,7 @@
formUIProvider.setContext("comboProperty", context);
- formUIProvider.bind(bindingFactory);
+ formUIProvider.bind(bindingFactory, null);
assertEquals(3, bindingFactory.getBindControlCount());
// string property
This was sent by the SourceForge.net collaborative development platform, the world's largest Open Source development site.
|