+++ /dev/null
-/* \r
-@VaadinApache2LicenseForJavaFiles@\r
- */\r
-package com.vaadin.data.fieldbinder;\r
-\r
-import java.util.EnumSet;\r
-\r
-import com.vaadin.data.Item;\r
-import com.vaadin.ui.AbstractSelect;\r
-import com.vaadin.ui.AbstractTextField;\r
-import com.vaadin.ui.CheckBox;\r
-import com.vaadin.ui.ComboBox;\r
-import com.vaadin.ui.Field;\r
-import com.vaadin.ui.ListSelect;\r
-import com.vaadin.ui.NativeSelect;\r
-import com.vaadin.ui.OptionGroup;\r
-import com.vaadin.ui.Table;\r
-import com.vaadin.ui.TextField;\r
-\r
-public class DefaultFieldBinderFieldFactory implements FieldBinderFieldFactory {\r
-\r
- public static final Object CAPTION_PROPERTY_ID = "Caption";\r
-\r
- public <T extends Field> T createField(Class<?> type, Class<T> fieldType) {\r
- if (Enum.class.isAssignableFrom(type)) {\r
- return createEnumField(type, fieldType);\r
- } else if (Boolean.class.isAssignableFrom(type)\r
- || boolean.class.isAssignableFrom(type)) {\r
- return createBooleanField(fieldType);\r
- }\r
- if (AbstractTextField.class.isAssignableFrom(fieldType)) {\r
- return fieldType.cast(createAbstractTextField(fieldType\r
- .asSubclass(AbstractTextField.class)));\r
- }\r
- return createDefaultField(type, fieldType);\r
- }\r
-\r
- private <T extends Field> T createEnumField(Class<?> type,\r
- Class<T> fieldType) {\r
- if (AbstractSelect.class.isAssignableFrom(fieldType)) {\r
- AbstractSelect s = createCompatibleSelect((Class<? extends AbstractSelect>) fieldType);\r
- populateWithEnumData(s, (Class<? extends Enum>) type);\r
- return (T) s;\r
- }\r
-\r
- return null;\r
- }\r
-\r
- protected AbstractSelect createCompatibleSelect(\r
- Class<? extends AbstractSelect> fieldType) {\r
- AbstractSelect select;\r
- if (fieldType.isAssignableFrom(ListSelect.class)) {\r
- select = new ListSelect();\r
- select.setMultiSelect(false);\r
- } else if (fieldType.isAssignableFrom(NativeSelect.class)) {\r
- select = new NativeSelect();\r
- } else if (fieldType.isAssignableFrom(OptionGroup.class)) {\r
- select = new OptionGroup();\r
- select.setMultiSelect(false);\r
- } else if (fieldType.isAssignableFrom(Table.class)) {\r
- Table t = new Table();\r
- t.setSelectable(true);\r
- select = t;\r
- } else {\r
- select = new ComboBox(null);\r
- }\r
- select.setImmediate(true);\r
- select.setNullSelectionAllowed(false);\r
-\r
- return select;\r
- }\r
-\r
- protected <T extends Field> T createBooleanField(Class<T> fieldType) {\r
- if (fieldType.isAssignableFrom(CheckBox.class)) {\r
- CheckBox cb = new CheckBox(null);\r
- cb.setImmediate(true);\r
- return (T) cb;\r
- } else if (AbstractTextField.class.isAssignableFrom(fieldType)) {\r
- return (T) createAbstractTextField((Class<? extends AbstractTextField>) fieldType);\r
- }\r
-\r
- return null;\r
- }\r
-\r
- protected <T extends AbstractTextField> T createAbstractTextField(\r
- Class<T> fieldType) {\r
- if (fieldType == AbstractTextField.class) {\r
- fieldType = (Class<T>) TextField.class;\r
- }\r
- try {\r
- T field = fieldType.newInstance();\r
- field.setImmediate(true);\r
- return field;\r
- } catch (Exception e) {\r
- throw new FormBuilder.BuildException(\r
- "Could not create a field of type " + fieldType, e);\r
- }\r
- }\r
-\r
- protected <T extends Field> T createDefaultField(Class<?> type,\r
- Class<T> fieldType) {\r
- if (fieldType.isAssignableFrom(TextField.class)) {\r
- return fieldType.cast(createAbstractTextField(TextField.class));\r
- }\r
- return null;\r
- }\r
-\r
- /**\r
- * Populates the given select with all the enums in the given {@link Enum}\r
- * class. Uses {@link Enum}.toString() for caption.\r
- * \r
- * @param select\r
- * The select to populate\r
- * @param enumClass\r
- * The Enum class to use\r
- */\r
- protected void populateWithEnumData(AbstractSelect select,\r
- Class<? extends Enum> enumClass) {\r
- select.removeAllItems();\r
- for (Object p : select.getContainerPropertyIds()) {\r
- select.removeContainerProperty(p);\r
- }\r
- select.addContainerProperty(CAPTION_PROPERTY_ID, String.class, "");\r
- select.setItemCaptionPropertyId(CAPTION_PROPERTY_ID);\r
- @SuppressWarnings("unchecked")\r
- EnumSet<?> enumSet = EnumSet.allOf(enumClass);\r
- for (Object r : enumSet) {\r
- Item newItem = select.addItem(r);\r
- newItem.getItemProperty(CAPTION_PROPERTY_ID).setValue(r.toString());\r
- }\r
- }\r
-}\r
--- /dev/null
+/* \r
+@VaadinApache2LicenseForJavaFiles@\r
+ */\r
+package com.vaadin.data.fieldbinder;\r
+\r
+import java.util.EnumSet;\r
+\r
+import com.vaadin.data.Item;\r
+import com.vaadin.ui.AbstractSelect;\r
+import com.vaadin.ui.AbstractTextField;\r
+import com.vaadin.ui.CheckBox;\r
+import com.vaadin.ui.ComboBox;\r
+import com.vaadin.ui.Field;\r
+import com.vaadin.ui.ListSelect;\r
+import com.vaadin.ui.NativeSelect;\r
+import com.vaadin.ui.OptionGroup;\r
+import com.vaadin.ui.Table;\r
+import com.vaadin.ui.TextField;\r
+\r
+public class DefaultFormBuilderFieldFactory implements FormBuilderFieldFactory {\r
+\r
+ public static final Object CAPTION_PROPERTY_ID = "Caption";\r
+\r
+ public <T extends Field> T createField(Class<?> type, Class<T> fieldType) {\r
+ if (Enum.class.isAssignableFrom(type)) {\r
+ return createEnumField(type, fieldType);\r
+ } else if (Boolean.class.isAssignableFrom(type)\r
+ || boolean.class.isAssignableFrom(type)) {\r
+ return createBooleanField(fieldType);\r
+ }\r
+ if (AbstractTextField.class.isAssignableFrom(fieldType)) {\r
+ return fieldType.cast(createAbstractTextField(fieldType\r
+ .asSubclass(AbstractTextField.class)));\r
+ }\r
+ return createDefaultField(type, fieldType);\r
+ }\r
+\r
+ private <T extends Field> T createEnumField(Class<?> type,\r
+ Class<T> fieldType) {\r
+ if (AbstractSelect.class.isAssignableFrom(fieldType)) {\r
+ AbstractSelect s = createCompatibleSelect((Class<? extends AbstractSelect>) fieldType);\r
+ populateWithEnumData(s, (Class<? extends Enum>) type);\r
+ return (T) s;\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ protected AbstractSelect createCompatibleSelect(\r
+ Class<? extends AbstractSelect> fieldType) {\r
+ AbstractSelect select;\r
+ if (fieldType.isAssignableFrom(ListSelect.class)) {\r
+ select = new ListSelect();\r
+ select.setMultiSelect(false);\r
+ } else if (fieldType.isAssignableFrom(NativeSelect.class)) {\r
+ select = new NativeSelect();\r
+ } else if (fieldType.isAssignableFrom(OptionGroup.class)) {\r
+ select = new OptionGroup();\r
+ select.setMultiSelect(false);\r
+ } else if (fieldType.isAssignableFrom(Table.class)) {\r
+ Table t = new Table();\r
+ t.setSelectable(true);\r
+ select = t;\r
+ } else {\r
+ select = new ComboBox(null);\r
+ }\r
+ select.setImmediate(true);\r
+ select.setNullSelectionAllowed(false);\r
+\r
+ return select;\r
+ }\r
+\r
+ protected <T extends Field> T createBooleanField(Class<T> fieldType) {\r
+ if (fieldType.isAssignableFrom(CheckBox.class)) {\r
+ CheckBox cb = new CheckBox(null);\r
+ cb.setImmediate(true);\r
+ return (T) cb;\r
+ } else if (AbstractTextField.class.isAssignableFrom(fieldType)) {\r
+ return (T) createAbstractTextField((Class<? extends AbstractTextField>) fieldType);\r
+ }\r
+\r
+ return null;\r
+ }\r
+\r
+ protected <T extends AbstractTextField> T createAbstractTextField(\r
+ Class<T> fieldType) {\r
+ if (fieldType == AbstractTextField.class) {\r
+ fieldType = (Class<T>) TextField.class;\r
+ }\r
+ try {\r
+ T field = fieldType.newInstance();\r
+ field.setImmediate(true);\r
+ return field;\r
+ } catch (Exception e) {\r
+ throw new FormBuilder.BuildException(\r
+ "Could not create a field of type " + fieldType, e);\r
+ }\r
+ }\r
+\r
+ protected <T extends Field> T createDefaultField(Class<?> type,\r
+ Class<T> fieldType) {\r
+ if (fieldType.isAssignableFrom(TextField.class)) {\r
+ return fieldType.cast(createAbstractTextField(TextField.class));\r
+ }\r
+ return null;\r
+ }\r
+\r
+ /**\r
+ * Populates the given select with all the enums in the given {@link Enum}\r
+ * class. Uses {@link Enum}.toString() for caption.\r
+ * \r
+ * @param select\r
+ * The select to populate\r
+ * @param enumClass\r
+ * The Enum class to use\r
+ */\r
+ protected void populateWithEnumData(AbstractSelect select,\r
+ Class<? extends Enum> enumClass) {\r
+ select.removeAllItems();\r
+ for (Object p : select.getContainerPropertyIds()) {\r
+ select.removeContainerProperty(p);\r
+ }\r
+ select.addContainerProperty(CAPTION_PROPERTY_ID, String.class, "");\r
+ select.setItemCaptionPropertyId(CAPTION_PROPERTY_ID);\r
+ @SuppressWarnings("unchecked")\r
+ EnumSet<?> enumSet = EnumSet.allOf(enumClass);\r
+ for (Object r : enumSet) {\r
+ Item newItem = select.addItem(r);\r
+ newItem.getItemProperty(CAPTION_PROPERTY_ID).setValue(r.toString());\r
+ }\r
+ }\r
+}\r
+++ /dev/null
-/* \r
-@VaadinApache2LicenseForJavaFiles@\r
- */\r
-package com.vaadin.data.fieldbinder;\r
-\r
-import java.io.Serializable;\r
-\r
-import com.vaadin.ui.Field;\r
-\r
-/**\r
- * Factory interface for creating new Field-instances based on the data type\r
- * that should be edited.\r
- * \r
- * @author Vaadin Ltd.\r
- * @version @version@\r
- * @since 7.0\r
- */\r
-public interface FieldBinderFieldFactory extends Serializable {\r
- /**\r
- * Creates a field based on the data type that we want to edit\r
- * \r
- * @param dataType\r
- * The type that we want to edit using the field\r
- * @param fieldType\r
- * The type of field we want to create. If set to {@link Field}\r
- * then any type of field is accepted\r
- * @return A field that can be assigned to the given fieldType and that is\r
- * capable of editing the given type of data\r
- */\r
- <T extends Field> T createField(Class<?> dataType, Class<T> fieldType);\r
-}\r
*/\r
public class FormBuilder implements Serializable {\r
\r
- private FieldBinderFieldFactory fieldFactory = new com.vaadin.data.fieldbinder.DefaultFieldBinderFieldFactory();\r
+ private FormBuilderFieldFactory fieldFactory = new DefaultFormBuilderFieldFactory();\r
private FieldBinder fieldBinder;\r
private static final Logger logger = Logger.getLogger(FormBuilder.class\r
.getName());\r
/**\r
* TODO: javadoc\r
*/\r
- public FieldBinderFieldFactory getFieldFactory() {\r
+ public FormBuilderFieldFactory getFieldFactory() {\r
return fieldFactory;\r
}\r
\r
/**\r
* TODO: javadoc\r
*/\r
- public void setFieldFactory(FieldBinderFieldFactory fieldFactory) {\r
+ public void setFieldFactory(FormBuilderFieldFactory fieldFactory) {\r
this.fieldFactory = fieldFactory;\r
}\r
\r
--- /dev/null
+/* \r
+@VaadinApache2LicenseForJavaFiles@\r
+ */\r
+package com.vaadin.data.fieldbinder;\r
+\r
+import java.io.Serializable;\r
+\r
+import com.vaadin.ui.Field;\r
+\r
+/**\r
+ * Factory interface for creating new Field-instances based on the data type\r
+ * that should be edited.\r
+ * \r
+ * @author Vaadin Ltd.\r
+ * @version @version@\r
+ * @since 7.0\r
+ */\r
+public interface FormBuilderFieldFactory extends Serializable {\r
+ /**\r
+ * Creates a field based on the data type that we want to edit\r
+ * \r
+ * @param dataType\r
+ * The type that we want to edit using the field\r
+ * @param fieldType\r
+ * The type of field we want to create. If set to {@link Field}\r
+ * then any type of field is accepted\r
+ * @return A field that can be assigned to the given fieldType and that is\r
+ * capable of editing the given type of data\r
+ */\r
+ <T extends Field> T createField(Class<?> dataType, Class<T> fieldType);\r
+}\r