Hi,
I modified the simple sample reflected by this patch:
Code:
Index: src/main/java/org/springframework/richclient/samples/simple/domain/Contact.java
===================================================================
--- src/main/java/org/springframework/richclient/samples/simple/domain/Contact.java (revision 2211)
+++ src/main/java/org/springframework/richclient/samples/simple/domain/Contact.java (working copy)
@@ -63,6 +63,16 @@
private BigDecimal monthlyIncome;
private List<TodoItem> todoItems;
+
+ private TodoItem dummy;
+
+ public void setDummy(TodoItem dummy) {
+ this.dummy = dummy;
+ }
+
+ public TodoItem getDummy() {
+ return dummy;
+ }
/**
* Default constructor.
Index: src/main/java/org/springframework/richclient/samples/simple/domain/SimpleValidationRulesSource.java
===================================================================
--- src/main/java/org/springframework/richclient/samples/simple/domain/SimpleValidationRulesSource.java (revision 2211)
+++ src/main/java/org/springframework/richclient/samples/simple/domain/SimpleValidationRulesSource.java (working copy)
@@ -99,6 +99,8 @@
add("address.zip", ZIPCODE_CONSTRAINT);
add("memo", required());
+
+ add("dummy", required());
}
};
}
Index: src/main/java/org/springframework/richclient/samples/simple/ui/ContactForm.java
===================================================================
--- src/main/java/org/springframework/richclient/samples/simple/ui/ContactForm.java (revision 2211)
+++ src/main/java/org/springframework/richclient/samples/simple/ui/ContactForm.java (working copy)
@@ -15,17 +15,24 @@
*/
package org.springframework.richclient.samples.simple.ui;
-import com.jgoodies.forms.layout.FormLayout;
+import java.util.HashMap;
+
+import javax.swing.JComboBox;
+import javax.swing.JComponent;
+import javax.swing.JTextField;
+
import org.springframework.richclient.form.AbstractFocussableForm;
import org.springframework.richclient.form.FormModelHelper;
+import org.springframework.richclient.form.binding.Binding;
import org.springframework.richclient.form.binding.swing.NumberBinder;
+import org.springframework.richclient.form.binding.swing.SwingBindingFactory;
import org.springframework.richclient.form.builder.FormLayoutFormBuilder;
import org.springframework.richclient.form.builder.TableFormBuilder;
import org.springframework.richclient.samples.simple.domain.Contact;
+import org.springframework.richclient.samples.simple.domain.TodoItem;
import org.springframework.richclient.samples.simple.ui.binding.TodoItemListBinding;
-import javax.swing.*;
-import java.util.HashMap;
+import com.jgoodies.forms.layout.FormLayout;
/**
* Form to handle the properties of a Contact object. It uses a {@link TableFormBuilder} to construct the layout of the
@@ -51,6 +58,18 @@
formBuilder.addPropertyAndLabel("lastName");
setFocusControl(formBuilder.addPropertyAndLabel("firstName", 5)[1]);
formBuilder.nextRow();
+
+ TodoItem[] dummyItems = new TodoItem[] {
+ new TodoItem("foo", null, null),
+ new TodoItem("bar", null, null)
+ };
+ Binding dummySelector = ((SwingBindingFactory)getBindingFactory())
+ .createBoundComboBox("dummy", dummyItems, "name");
+ ((JComboBox)dummySelector.getControl()).setEditable(true);
+ formBuilder.addLabel("dummy");
+ formBuilder.addBinding(dummySelector, 3);
+ formBuilder.nextRow();
+
formBuilder.addPropertyAndLabel("dateOfBirth");
formBuilder.nextRow();
formBuilder.addPropertyAndLabel("homePhone");
Index: src/main/resources/org/springframework/richclient/samples/simple/ctx/richclient-application-context.xml
===================================================================
--- src/main/resources/org/springframework/richclient/samples/simple/ctx/richclient-application-context.xml (revision 2211)
+++ src/main/resources/org/springframework/richclient/samples/simple/ctx/richclient-application-context.xml (working copy)
@@ -266,7 +266,7 @@
</bean>
<bean class="org.springframework.richclient.form.builder.support.OverlayValidationInterceptorFactory" />
<bean class="org.springframework.richclient.text.TextComponentPopupInterceptorFactory" />
- <bean class="org.springframework.richclient.list.ComboBoxAutoCompletionInterceptorFactory" />
+ <!--<bean class="org.springframework.richclient.list.ComboBoxAutoCompletionInterceptorFactory" />-->
</list>
</property>
</bean>
I guess it's not intended to work that way because there is no validation triggered when I change the combobox value by typing it in. It would be great though if this were possible somehow.
thanks,
jokkmokk