|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |
java.lang.Objectcom.vaadin.ui.AbstractComponent
com.vaadin.ui.AbstractField
com.vaadin.ui.Form
public class Form
Form component provides easy way of creating and managing sets fields.
Form
is a container for fields implementing Field
interface. It provides support for any layouts and provides buffering
interface for easy connection of commit and discard buttons. All the form
fields can be customized by adding validators, setting captions and icons,
setting immediateness, etc. Also direct mechanism for replacing existing
fields with selections is given.
Form
provides customizable editor for classes implementing
Item
interface. Also the form itself implements this
interface for easier connectivity to other items. To use the form as editor
for an item, just connect the item to form with
setItemDataSource(Item)
. If only a part of the item needs to be
edited, setItemDataSource(Item,Collection)
can be used instead.
After the item has been connected to the form, the automatically created
fields can be customized and new fields can be added. If you need to connect
a class that does not implement Item
interface, most
properties of any class following bean pattern, can be accessed trough
BeanItem
.
Nested Class Summary |
---|
Nested classes/interfaces inherited from class com.vaadin.ui.AbstractField |
---|
AbstractField.FocusShortcut, AbstractField.ReadOnlyStatusChangeEvent |
Nested classes/interfaces inherited from class com.vaadin.ui.AbstractComponent |
---|
AbstractComponent.ComponentErrorEvent, AbstractComponent.ComponentErrorHandler |
Nested classes/interfaces inherited from interface com.vaadin.data.Buffered |
---|
Buffered.SourceException |
Nested classes/interfaces inherited from interface com.vaadin.data.Item |
---|
Item.Editor, Item.PropertySetChangeEvent, Item.PropertySetChangeListener, Item.PropertySetChangeNotifier, Item.Viewer |
Nested classes/interfaces inherited from interface com.vaadin.ui.Field |
---|
Field.ValueChangeEvent |
Nested classes/interfaces inherited from interface com.vaadin.data.Property |
---|
Property.ConversionException, Property.Editor, Property.ReadOnlyException, Property.ReadOnlyStatusChangeListener, Property.ReadOnlyStatusChangeNotifier, Property.ValueChangeListener, Property.ValueChangeNotifier, Property.Viewer |
Constructor Summary | |
---|---|
Form()
Constructs a new form with default layout. |
|
Form(Layout formLayout)
Constructs a new form with given Layout . |
|
Form(Layout formLayout,
FormFieldFactory fieldFactory)
Constructs a new form with given Layout and
FormFieldFactory . |
Method Summary | ||
---|---|---|
|
addAction(T action)
|
|
void |
addActionHandler(Action.Handler actionHandler)
Registers a new action handler for this container |
|
void |
addField(Object propertyId,
Field field)
Registers the field with the form and adds the field to the form layout. |
|
boolean |
addItemProperty(Object id,
Property property)
Adds a new property to form and create corresponding field. |
|
void |
addValidator(Validator validator)
Adding validators directly to form is not supported. |
|
void |
attach()
Notifies the component that it is connected to an application |
|
protected void |
attachField(Object propertyId,
Field field)
Adds the field to the form layout. |
|
protected void |
bindPropertyToField(Object propertyId,
Property property,
Field field)
Binds an item property to a field. |
|
void |
changeVariables(Object source,
Map<String,Object> variables)
Called when one or more variables handled by the implementing class are changed. |
|
void |
commit()
Updates all changes since the previous commit to the data source. |
|
void |
detach()
Notifies the component that it is detached from the application. |
|
protected void |
detachField(Field field)
Called when a form field is detached from a Form. |
|
void |
discard()
Discards all changes since last commit. |
|
void |
focus()
Focuses the first field in the form. |
|
ErrorMessage |
getErrorMessage()
The error message of a Form is the error of the first field with a non-empty error. |
|
Field |
getField(Object propertyId)
Gets the field identified by the propertyid. |
|
FieldFactory |
getFieldFactory()
Deprecated. Use getFormFieldFactory() instead. Set the
FormFieldFactory using
setFormFieldFactory(FormFieldFactory) . |
|
Layout |
getFooter()
Returns a layout that is rendered below normal form contents. |
|
FormFieldFactory |
getFormFieldFactory()
Get the field factory of the form. |
|
Item |
getItemDataSource()
Gets the Item serving as the data source of the viewer. |
|
Property |
getItemProperty(Object id)
The property identified by the property id. |
|
Collection<?> |
getItemPropertyIds()
Gets the collection of IDs of all Properties stored in the Item. |
|
Layout |
getLayout()
Gets the layout of the form. |
|
protected ActionManager |
getOwnActionManager()
Gets the ActionManager responsible for handling Action s
added to this Form.Note that Form has another ActionManager inherited from AbstractField . |
|
Class<?> |
getType()
Gets the field type. |
|
Collection<?> |
getVisibleItemProperties()
Returns the visibleProperties. |
|
protected boolean |
isEmpty()
Form is empty if all of its fields are empty. |
|
boolean |
isInvalidAllowed()
Checks the validabtable object accept invalid values. |
|
boolean |
isModified()
Tests if the value stored in the object has been modified since it was last updated from the data source. |
|
boolean |
isReadThrough()
Tests if the object is in read-through mode. |
|
boolean |
isValid()
Tests the current value of the object against all registered validators |
|
boolean |
isValidationVisibleOnCommit()
Is validation made automatically visible on commit? See setValidationVisibleOnCommit(). |
|
boolean |
isWriteThrough()
Tests if the object is in write-through mode. |
|
void |
paintContent(PaintTarget target)
Paints any needed component-specific things to the given UIDL stream. |
|
|
removeAction(T action)
|
|
void |
removeActionHandler(Action.Handler actionHandler)
Removes a previously registered action handler for the contents of this container. |
|
void |
removeAllActionHandlers()
Removes all action handlers |
|
boolean |
removeAllProperties()
Removes all properties and fields from the form. |
|
boolean |
removeItemProperty(Object id)
Removes the property and corresponding field from the form. |
|
Select |
replaceWithSelect(Object propertyId,
Object[] values,
Object[] descriptions)
Sets the form field to be selectable from static list of changes. |
|
void |
setEnabled(boolean enabled)
Enables or disables the component. |
|
void |
setFieldFactory(FieldFactory fieldFactory)
Deprecated. use setFormFieldFactory(FormFieldFactory) instead |
|
void |
setFooter(Layout newFormFooter)
Sets the layout that is rendered below normal form contens. |
|
protected void |
setFormDataSource(Object data,
Collection<?> properties)
Updates the internal form datasource. |
|
void |
setFormFieldFactory(FormFieldFactory fieldFactory)
Sets the field factory used by this Form to genarate Fields for properties. |
|
void |
setImmediate(boolean immediate)
Setting the form to be immediate also sets all the fields of the form to the same state. |
|
protected void |
setInternalValue(Object newValue)
Sets the internal value. |
|
void |
setInvalidAllowed(boolean invalidValueAllowed)
Should the validabtable object accept invalid values. |
|
void |
setItemDataSource(Item newDataSource)
Sets the item datasource for the form. |
|
void |
setItemDataSource(Item newDataSource,
Collection<?> propertyIds)
Set the item datasource for the form, but limit the form contents to specified properties of the item. |
|
void |
setLayout(Layout newLayout)
Sets the layout of the form. |
|
void |
setReadOnly(boolean readOnly)
Sets the component's to read-only mode to the specified state. |
|
void |
setReadThrough(boolean readThrough)
Sets the object's read-through mode to the specified status. |
|
void |
setTabIndex(int tabIndex)
Sets the Tabulator index of this Focusable component. |
|
void |
setValidationVisibleOnCommit(boolean makeVisible)
Controls the making validation visible implicitly on commit. |
|
void |
setVisibleItemProperties(Collection<?> visibleProperties)
Sets the visibleProperties. |
|
void |
setVisibleItemProperties(Object[] visibleProperties)
Sets the visibleProperties. |
|
void |
setWriteThrough(boolean writeThrough)
Sets the object's write-through mode to the specified status. |
|
void |
validate()
Checks the validity of the validatable. |
Methods inherited from class java.lang.Object |
---|
clone, equals, finalize, getClass, hashCode, notify, notifyAll, wait, wait, wait |
Methods inherited from interface com.vaadin.data.Validatable |
---|
getValidators, removeValidator |
Methods inherited from interface com.vaadin.ui.Field |
---|
getDescription, setCaption, setDescription |
Constructor Detail |
---|
public Form()
By default the form uses FormLayout
.
public Form(Layout formLayout)
Layout
.
formLayout
- the layout of the form.public Form(Layout formLayout, FormFieldFactory fieldFactory)
Layout
and
FormFieldFactory
.
formLayout
- the layout of the form.fieldFactory
- the FieldFactory of the form.Method Detail |
---|
public void paintContent(PaintTarget target) throws PaintException
AbstractComponent
AbstractComponent.paint(PaintTarget)
method handles all general
attributes common to all components, and it calls this method to paint
any component-specific attributes to the UIDL stream.
paintContent
in class AbstractField
target
- the target UIDL stream where the component should paint itself
to
PaintException
- if the paint operation failed.public void changeVariables(Object source, Map<String,Object> variables)
VariableOwner
changeVariables
in interface VariableOwner
changeVariables
in class AbstractField
source
- the Source of the variable change. This is the origin of the
event. For example in Web Adapter this is the request.variables
- the Mapping from variable names to new variable values.public ErrorMessage getErrorMessage()
getErrorMessage
in class AbstractField
AbstractComponent.getErrorMessage()
public void setValidationVisibleOnCommit(boolean makeVisible)
makeVisible
- If true (default), validation is made visible when commit() is
called. If false, the visibility is left as it is.public boolean isValidationVisibleOnCommit()
public void commit() throws Buffered.SourceException, Validator.InvalidValueException
Buffered
commit
is called.
commit
in interface Buffered
commit
in class AbstractField
Buffered.SourceException
- if the operation fails because of an exception is thrown by
the data source. The cause is included in the exception.
Validator.InvalidValueException
- if the operation fails because validation is enabled and the
values do not validatepublic void discard() throws Buffered.SourceException
Buffered
discard
in interface Buffered
discard
in class AbstractField
Buffered.SourceException
- if the operation fails because of an exception is thrown by
the data source. The cause is included in the exception.public boolean isModified()
Buffered
isModified
in interface Buffered
isModified
in class AbstractField
true
if the value in the object has been modified
since the last data source update, false
if not.public boolean isReadThrough()
Buffered
The only exception to this rule is that when the object is not in write-through mode and it's buffer contains a modified value, the value retrieved from the object will be the locally modified value in the buffer which may differ from the value in the data source.
isReadThrough
in interface Buffered
isReadThrough
in class AbstractField
true
if the object is in read-through mode,
false
if it's not.public boolean isWriteThrough()
Buffered
commit
being called after the modification.
isWriteThrough
in interface Buffered
isWriteThrough
in class AbstractField
true
if the object is in write-through mode,
false
if it's not.public void setReadThrough(boolean readThrough)
Buffered
setReadThrough
in interface Buffered
setReadThrough
in class AbstractField
readThrough
- Boolean value to indicate if the object should be in
read-through mode after the call.public void setWriteThrough(boolean writeThrough) throws Buffered.SourceException, Validator.InvalidValueException
Buffered
commit
operation
will be performed.
setWriteThrough
in interface Buffered
setWriteThrough
in class AbstractField
writeThrough
- Boolean value to indicate if the object should be in
write-through mode after the call.
Buffered.SourceException
- If the operation fails because of an exception is thrown by
the data source.
Validator.InvalidValueException
- If the implicit commit operation fails because of a
validation error.public boolean addItemProperty(Object id, Property property)
addItemProperty
in interface Item
id
- ID of the new Propertyproperty
- the Property to be added and associated with the id
true
if the operation succeeded, false
if notItem.addItemProperty(Object, Property)
public void addField(Object propertyId, Field field)
The property id must not be already used in the form.
This field is added to the layout using the
attachField(Object, Field)
method.
propertyId
- the Property id the the field.field
- the field which should be added to the form.protected void attachField(Object propertyId, Field field)
The field is added to the form layout in the default position (the
position used by ComponentContainer.addComponent(Component)
. If the
underlying layout is a CustomLayout
the field is added to the
CustomLayout location given by the string representation of the property
id using CustomLayout.addComponent(Component, String)
.
Override this method to control how the fields are added to the layout.
propertyId
- field
- public Property getItemProperty(Object id)
The property data source of the field specified with property id is returned. If there is a (with specified property id) having no data source, the field is returned instead of the data source.
getItemProperty
in interface Item
id
- identifier of the Property to get
null
Item.getItemProperty(Object)
public Field getField(Object propertyId)
propertyId
- the id of the property.public Collection<?> getItemPropertyIds()
Item
getItemPropertyIds
in interface Item
public boolean removeItemProperty(Object id)
removeItemProperty
in interface Item
id
- ID of the Property to be removed
true
if the operation succeededItem.removeItemProperty(Object)
protected void detachField(Field field)
setItemDataSource(Item)
.
Override this method to control how the fields are removed from the layout.
field
- the field to be detached from the forms layout.public boolean removeAllProperties()
true
.public Item getItemDataSource()
Item.Viewer
getItemDataSource
in interface Item.Viewer
public void setItemDataSource(Item newDataSource)
Setting item datasource clears any fields, the form might contain and adds all the properties as fields to the form.
setItemDataSource
in interface Item.Viewer
newDataSource
- The new data source ItemItem.Viewer.setItemDataSource(Item)
public void setItemDataSource(Item newDataSource, Collection<?> propertyIds)
Setting item datasource clears any fields, the form might contain and adds the specified the properties as fields to the form, in the specified order.
Item.Viewer.setItemDataSource(Item)
protected void bindPropertyToField(Object propertyId, Property property, Field field)
propertyId
- property
- field
- public Layout getLayout()
By default form uses OrderedLayout
with form
-style.
public void setLayout(Layout newLayout)
By default form uses OrderedLayout
with form
-style.
newLayout
- the Layout of the form.public Select replaceWithSelect(Object propertyId, Object[] values, Object[] descriptions)
The list values and descriptions are given as array. The value-array must contain the current value of the field and the lengths of the arrays must match. Null values are not supported.
propertyId
- the id of the property.values
- descriptions
-
public void attach()
attach
in interface Component
attach
in class AbstractField
Component.attach()
public void detach()
detach
in interface Component
detach
in class AbstractField
Component.detach()
public boolean isValid()
isValid
in interface Validatable
isValid
in class AbstractField
true
if all registered validators claim that the
current value is valid or if the field is empty and not required,
false
otherwise.Validatable.isValid()
public void validate() throws Validator.InvalidValueException
validate
in interface Validatable
validate
in class AbstractField
Validator.InvalidValueException
- if the value is not validValidatable.validate()
public boolean isInvalidAllowed()
isInvalidAllowed
in interface Validatable
isInvalidAllowed
in class AbstractField
Validatable.isInvalidAllowed()
public void setInvalidAllowed(boolean invalidValueAllowed) throws UnsupportedOperationException
setInvalidAllowed
in interface Validatable
setInvalidAllowed
in class AbstractField
UnsupportedOperationException
- if the setInvalidAllowed is not supported.Validatable.setInvalidAllowed(boolean)
public void setReadOnly(boolean readOnly)
setReadOnly
in interface Property
setReadOnly
in interface Component
setReadOnly
in class AbstractField
readOnly
- a boolean value specifying whether the component is put
read-only mode or notComponent.setReadOnly(boolean)
@Deprecated public void setFieldFactory(FieldFactory fieldFactory)
setFormFieldFactory(FormFieldFactory)
instead
FieldFactory
is used to create fields for form properties.
By default the form uses BaseFieldFactory to create Field instances.
fieldFactory
- the New factory used to create the fields.Field
,
FormFieldFactory
public void setFormFieldFactory(FormFieldFactory fieldFactory)
FormFieldFactory
is used to create fields for form properties.
DefaultFieldFactory
is used by default.
fieldFactory
- the new factory used to create the fields.Field
,
FormFieldFactory
public FormFieldFactory getFormFieldFactory()
@Deprecated public FieldFactory getFieldFactory()
getFormFieldFactory()
instead. Set the
FormFieldFactory using
setFormFieldFactory(FormFieldFactory)
.
public Class<?> getType()
getType
in interface Property
getType
in class AbstractField
AbstractField.getType()
protected void setInternalValue(Object newValue)
setInternalValue
in class AbstractField
newValue
- the new value to be set.AbstractField.setInternalValue(java.lang.Object)
protected void setFormDataSource(Object data, Collection<?> properties)
data
- properties
- public Collection<?> getVisibleItemProperties()
public void setVisibleItemProperties(Collection<?> visibleProperties)
visibleProperties
- the visibleProperties to set.public void setVisibleItemProperties(Object[] visibleProperties)
visibleProperties
- the visibleProperties to set.public void focus()
focus
in interface Component.Focusable
focus
in class AbstractField
Component.Focusable.focus()
public void setTabIndex(int tabIndex)
setTabIndex
in interface Component.Focusable
setTabIndex
in class AbstractField
tabIndex
- the tab order of this component. Indexes usually start
from 1. Zero means that default tab order should be used.
A negative value means that the field should not be
included in the tabbing sequence.Component.Focusable.setTabIndex(int)
public void setImmediate(boolean immediate)
setImmediate
in class AbstractComponent
immediate
- the boolean value specifying if the component should be in the
immediate mode after the call.VariableOwner.isImmediate()
protected boolean isEmpty()
isEmpty
in class AbstractField
public void addValidator(Validator validator)
addValidator
in interface Validatable
addValidator
in class AbstractField
validator
- the new validator to be added.public Layout getFooter()
public void setFooter(Layout newFormFooter)
newFormFooter
- the new Layoutpublic void setEnabled(boolean enabled)
Component
Button enabled = new Button("Enabled"); enabled.setEnabled(true); // The default layout.addComponent(enabled); Button disabled = new Button("Disabled"); disabled.setEnabled(false); layout.addComponent(disabled);
This method will trigger a
RepaintRequestEvent
for the component and, if it is a
ComponentContainer
, for all its children recursively.
setEnabled
in interface Component
setEnabled
in class AbstractComponent
enabled
- a boolean value specifying if the component should be enabled
or notprotected ActionManager getOwnActionManager()
ActionManager
responsible for handling Action
s
added to this Form.AbstractField
. The ownActionManager handles Actions attached to
this Form specifically, while the ActionManager in AbstractField
delegates to the containing Window (i.e global Actions).
public void addActionHandler(Action.Handler actionHandler)
Action.Container
addActionHandler
in interface Action.Container
actionHandler
- the new handler to be added.public void removeActionHandler(Action.Handler actionHandler)
Action.Container
removeActionHandler
in interface Action.Container
actionHandler
- the handler to be removed.public void removeAllActionHandlers()
public <T extends Action & Action.Listener> void addAction(T action)
addAction
in interface Action.Notifier
public <T extends Action & Action.Listener> void removeAction(T action)
removeAction
in interface Action.Notifier
|
||||||||||
PREV CLASS NEXT CLASS | FRAMES NO FRAMES | |||||||||
SUMMARY: NESTED | FIELD | CONSTR | METHOD | DETAIL: FIELD | CONSTR | METHOD |