public class DynamicForm extends com.smartgwt.mobile.client.internal.widgets.DataBoundEditorComponent<RecordList> implements DataManager, HasFormSubmitFailedHandlers, HasItemChangedHandlers, HasSubmitValuesHandlers
HasDataValue interface) which represent
user input controls. The most common items added to a DynamicForm are
TextItems or other components extending
FormItem, but SmartGWT.mobile also
supports adding a TableView to a
DynamicForm with no additional configuration. See the Forms → Inputs
Showcase sample for an example of a basic form, and the Forms → Embedded TableView
sample for an example of adding a TableView to a DynamicForm.
Just like Smart GWT, a DynamicForm can be bound to a DataSource.
When using DataSource binding, you can also add additional form items not specified
by the DataSource, or rely on autoconfiguration of fields from the DataSource,
optionally overriding any properties on the automatically generated form items without having
to re-declare any information that comes from the DataSource. To better
accommodate mobile devices, DynamicForm autoconfiguration may display certain
HTML5 input types by default according to the rules:
Field editorType |
Field type |
Result |
|---|---|---|
| "TextItem" | "date" | HTML5 date picker (input type="date") |
| "TextItem" | "time" | HTML5 time picker (input type="time") |
| "TextItem" | "datetime" | HTML5 date & time picker (input type="datetime") |
com.google.gwt.user.client.ui.UIObject.DebugIdImpl, com.google.gwt.user.client.ui.UIObject.DebugIdImplEnabled| Modifier and Type | Field and Description |
|---|---|
static FormCssResource |
_CSS |
_sortSpecifiersalignment, enforcePolicy, hPolicy, members, membersMargin, minMemberSize, momentumScroll, overflow, paddingAsLayoutMargin, reverseOrder, valign, vertical_CONTENT_CHANGED_EVENT_TYPE, _HISTORY_ENABLED, _REQUEST_SCROLL_TO_EVENT_TYPE, id, touched| Constructor and Description |
|---|
DynamicForm() |
| Modifier and Type | Method and Description |
|---|---|
void |
_clearItemValue(HasDataValue item) |
static boolean |
_compareLists(java.util.List<?> value1,
java.util.List<?> value2) |
static boolean |
_compareValues(java.lang.Object value1,
java.lang.Object value2)
Do two field values match? Used wherever we need to compare field values.
|
com.google.gwt.dom.client.FormElement |
_getForm() |
java.lang.Boolean |
_handleNativeSubmit() |
<T extends java.util.Map<java.lang.String,java.lang.Object>> |
_putValues(T values) |
static boolean |
_valuesHaveChanged(DynamicForm form,
java.util.Map<?,?> values,
java.util.Map<?,?> oldValues) |
com.google.gwt.event.shared.HandlerRegistration |
addFormSubmitFailedHandler(FormSubmitFailedHandler handler) |
com.google.gwt.event.shared.HandlerRegistration |
addItemChangedHandler(ItemChangedHandler handler) |
com.google.gwt.event.shared.HandlerRegistration |
addSubmitValuesHandler(SubmitValuesHandler handler) |
void |
clearErrors() |
void |
clearValue(java.lang.String fieldName) |
void |
clearValue(java.lang.String fieldName,
boolean updateField)
Clears this
DataManager's stored value for the named field. |
void |
clearValues() |
void |
clearValues(boolean updateFields)
Clears all stored values.
|
void |
destroy() |
void |
editNewRecord() |
void |
editNewRecord(java.util.Map<java.lang.String,?> initialValues) |
void |
editNewRecord(Record initialValues) |
void |
editRecord(Record record) |
java.lang.String |
getAction() |
java.lang.Boolean |
getCanEdit() |
DateDisplayFormat |
getDateFormatter() |
DateDisplayFormat |
getDatetimeFormatter() |
Encoding |
getEncoding() |
Canvas |
getField(java.lang.String name) |
Canvas[] |
getFields() |
FormStyle |
getFormStyle()
The display style of this
DynamicForm. |
Canvas |
getItem(java.lang.String name) |
Canvas[] |
getItems() |
FormMethod |
getMethod() |
DSOperationType |
getSaveOperationType() |
java.lang.String |
getTarget() |
TimeDisplayFormat |
getTimeFormatter() |
java.util.Map<java.lang.String,java.lang.Object> |
getValues() |
Criteria |
getValuesAsCriteria() |
Record |
getValuesAsRecord() |
void |
rememberValues() |
void |
saveData() |
void |
saveData(DSCallback callback) |
void |
setAction(java.lang.String action) |
void |
setCanEdit(java.lang.Boolean canEdit) |
void |
setDataSource(DataSource dataSource) |
void |
setDateFormatter(DateDisplayFormat dateFormatter) |
void |
setDatetimeFormatter(DateDisplayFormat datetimeFormatter) |
void |
setEncoding(Encoding encoding) |
void |
setErrors(java.util.Map<java.lang.String,?> errors,
boolean showErrors) |
void |
setFields(Canvas... fields)
Sets the form's fields.
|
void |
setFormStyle(FormStyle formStyle) |
void |
setItems(Canvas... fields)
Alias for
setFields(Canvas...). |
void |
setMethod(FormMethod method) |
void |
setSaveOperationType(DSOperationType saveOperationType) |
void |
setTarget(java.lang.String target) |
void |
setTimeFormatter(TimeDisplayFormat timeFormatter) |
void |
setUseAllDataSourceFields(java.lang.Boolean useAllDataSourceFields) |
void |
setValue(java.lang.String fieldName,
java.lang.Object value)
Sets the value of a field, storing the value in the
DataManager's values map
and calling HasDataValue.showValue(Object)
to update the corresponding HasDataValue. |
void |
setValues(java.util.Map<java.lang.String,?> values) |
void |
storeValue(java.lang.String fieldName,
java.lang.Object value)
Stores the given value in the
DataManager's values map. |
void |
submitForm() |
boolean |
valuesHaveChanged() |
_fetchDataReply, fetchData_buildRequest, _cloneComponentValues, _createDataModel, _createSelectionModel, _destroySelectionModel, _duplicateValues, _filter, _filterWithCriteria, _fireSelectionUpdated, _getData, _getDeepCloneOnEdit, _getInitialCriteria, _getInnerAttributeFromSplitLocator, _getSelection, _getSelectionObject, _resolveStopOnError, _setDeepCloneOnEdit, _updateDataModel, _validateField, _validateFieldAndDependencies, addSelectionUpdatedHandler, deselectAllRecords, deselectRecord, deselectRecords, fetchData, fetchData, fetchData, filterData, getCriteria, getDataFetchMode, getDataField, getDataPageSize, getDataSource, getDescriptionField, getFetchOperation, getIconField, getInfoField, getRecordList, getResultSet, getSelectedRecord, getSelectedRecords, getSort, getStopOnError, getTitleField, getUseAllDataSourceFields, invalidateCache, isPartiallySelected, isSelected, selectRecord, selectRecord, selectRecords, selectRecords, selectSingleRecord, setCriteria, setData, setDataFetchMode, setDataField, setDataPageSize, setDescriptionField, setFetchOperation, setIconField, setInfoField, setSort, setStopOnError, setTitleFieldaddDragMoveHandler, addMember, addMember, addMembers, addMembers, addMembers, clear, getEnforcePolicy, getHPolicy, getLayoutBottomMargin, getLayoutLeftMargin, getLayoutMargin, getLayoutRightMargin, getLayoutTopMargin, getManagePercentBreadth, getMember, getMember, getMemberNumber, getMemberNumber, getMembers, getMembersMargin, getMinMemberSize, getMomentumScroll, getOverflow, getPaddingAsLayoutMargin, getReverseOrder, getVertical, getVPolicy, hasMember, hideMember, hideMember, reflow, removeMember, removeMember, removeMembers, removeMembers, reorderMember, reorderMembers, setAlign, setAlign, setDefaultLayoutAlign, setDefaultLayoutAlign, setEnforcePolicy, setHPolicy, setLayoutBottomMargin, setLayoutLeftMargin, setLayoutMargin, setLayoutRightMargin, setLayoutTopMargin, setManagePercentBreadth, setMembers, setMembersMargin, setMinMemberSize, setMomentumScroll, setOverflow, setPaddingAsLayoutMargin, setReverseOrder, setVertical, setVisibleMember, setVPolicy, showMember, showMember_add, _booleanValue, _fireContentChangedEvent, _fireContentChangedEvent, _fireRequestScrollToEvent, _getAndroidWindowSoftInputMode, _getAttributeFromSplitLocator, _getChildFromLocatorSubstring, _getFixNavigationBarPositionDuringKeyboardFocus, _getHideTabBarDuringKeyboardFocus, _getInnerElement, _hideAddressBar, _hideAddressBarNow, _insert, _isDifferent, _isHDPIDisplay, _isIOS4OrOlder, _isIOS5, _isIOSMin6_0, _isStandaloneMode, _nativeParseFloat, _removeClassName, _setClassName, _setHandleDisabled, _sinkAnimationEndEvent, _sinkContentChangedEvent, _sinkFocusInEvent, _sinkFocusOutEvent, _sinkInputEvent, _sinkRequestScrollToEvent, _sinkTransitionEndEvent, _triggerDebugger, addChild, addChild, addChild, addClickHandler, addShowContextMenuHandler, disable, enable, getContextMenu, getID, getInnerHTML, getMargin, hasChild, hasChild, isAndroid, isDisabled, isEnabled, isIPad, isIPhone, isSafari, isStandAlone, isUIWebView, onBrowserEvent, parseDimension, removeChild, removeChild, setContents, setContextMenu, setDisabled, setElement, setID, setMargin, setStyleName, split, useIOSNativeScrollingadd, add, adjustIndex, checkIndexBoundsForAccess, checkIndexBoundsForInsertion, getChildren, getWidget, getWidgetCount, getWidgetIndex, getWidgetIndex, insert, insert, iterator, remove, removeadd, add, adopt, doAttachChildren, doDetachChildren, orphan, removeaddAttachHandler, addBitlessDomHandler, addDomHandler, addHandler, asWidget, asWidgetOrNull, createHandlerManager, delegateEvent, fireEvent, getHandlerCount, getLayoutData, getParent, isAttached, isOrWasAttached, onAttach, onDetach, onLoad, onUnload, removeFromParent, setLayoutData, sinkEvents, unsinkEventsaddStyleDependentName, addStyleName, ensureDebugId, ensureDebugId, ensureDebugId, getAbsoluteLeft, getAbsoluteTop, getElement, getOffsetHeight, getOffsetWidth, getStyleElement, getStyleName, getStyleName, getStylePrimaryName, getStylePrimaryName, getTitle, isVisible, isVisible, onEnsureDebugId, removeStyleDependentName, removeStyleName, resolvePotentialElement, setElement, setHeight, setPixelSize, setSize, setStyleDependentName, setStyleName, setStyleName, setStyleName, setStylePrimaryName, setStylePrimaryName, setTitle, setVisible, setVisible, setWidth, sinkBitlessEvent, toString@SGWTInternal public static final FormCssResource _CSS
@SGWTInternal
public static boolean _compareLists(java.util.List<?> value1,
java.util.List<?> value2)
@SGWTInternal
public static boolean _compareValues(java.lang.Object value1,
java.lang.Object value2)
valuesHaveChanged()).public static boolean _valuesHaveChanged(DynamicForm form, java.util.Map<?,?> values, java.util.Map<?,?> oldValues)
public void destroy()
destroy in class DataBoundComponent<RecordList>public final java.lang.String getAction()
public void setAction(java.lang.String action)
public void setDataSource(DataSource dataSource)
setDataSource in class DataBoundComponent<RecordList>public void setUseAllDataSourceFields(java.lang.Boolean useAllDataSourceFields)
setUseAllDataSourceFields in class DataBoundComponent<RecordList>public final DateDisplayFormat getDateFormatter()
public void setDateFormatter(DateDisplayFormat dateFormatter)
public final DateDisplayFormat getDatetimeFormatter()
public void setDatetimeFormatter(DateDisplayFormat datetimeFormatter)
public final Encoding getEncoding()
public void setEncoding(Encoding encoding)
@SGWTInternal public final com.google.gwt.dom.client.FormElement _getForm()
public final FormStyle getFormStyle()
DynamicForm.
FormStyle.STYLE1 makes the
form look like a grouped TableView. FormStyle.STYLE2
makes the form look like the Edit Info form of the iPhone Contacts app.
FormStyle.STYLE1public void setFormStyle(FormStyle formStyle)
public final java.lang.Boolean getCanEdit()
getCanEdit in interface DataManagerpublic void setCanEdit(java.lang.Boolean canEdit)
public final Canvas getField(java.lang.String name)
public final Canvas getItem(java.lang.String name)
public final Canvas[] getFields()
public final Canvas[] getItems()
public void setFields(Canvas... fields)
NOTE: Each Canvas instance must implement the
HasDataValue interface.
fields - the form's fields.java.lang.IllegalArgumentException - if one of the fields does not implement the HasDataValue interface
or if two different fields have the same name.java.lang.NullPointerException - if one of the fields does not have a name.public final void setItems(Canvas... fields)
setFields(Canvas...).items - the form's fields.public final FormMethod getMethod()
public void setMethod(FormMethod method)
public final DSOperationType getSaveOperationType()
public void setSaveOperationType(DSOperationType saveOperationType)
public final java.lang.String getTarget()
public void setTarget(java.lang.String target)
public final TimeDisplayFormat getTimeFormatter()
public void setTimeFormatter(TimeDisplayFormat timeFormatter)
@SGWTInternal public <T extends java.util.Map<java.lang.String,java.lang.Object>> T _putValues(T values)
public final java.util.Map<java.lang.String,java.lang.Object> getValues()
getValues in interface DataManagerpublic final Criteria getValuesAsCriteria()
public final Record getValuesAsRecord()
public void rememberValues()
public void clearErrors()
public void setValue(java.lang.String fieldName,
java.lang.Object value)
DataManagerDataManager's values map
and calling HasDataValue.showValue(Object)
to update the corresponding HasDataValue.setValue in interface DataManagerfieldName - field name.value - new value of the field.DataManager.storeValue(String, Object)public void setValues(java.util.Map<java.lang.String,?> values)
setValues in interface DataManagerpublic void storeValue(java.lang.String fieldName,
java.lang.Object value)
DataManagerDataManager's values map.
NOTE: This method will not update the corresponding HasDataValue
by calling the HasDataValue.showValue(Object)
method. storeValue() is intended to be used by the HasDataValue
objects to notify this DataManager of a change in value. For the
variants that do call HasDataValue.showValue(), see DataManager.setValue(String, Object)
and DataManager.setValues(Map).
storeValue in interface DataManagerDataManager.setValue(String, Object),
DataManager.setValues(Map)@SGWTInternal public void _clearItemValue(HasDataValue item)
public final void clearValue(java.lang.String fieldName)
public void clearValue(java.lang.String fieldName,
boolean updateField)
DataManagerDataManager's stored value for the named field. If updateField
is true, then showValue(null) will be called on the corresponding HasDataValue.clearValue in interface DataManagerfieldName - field name.updateField - whether to call showValue() on the corresponding HasDataValue.public final void clearValues()
public void clearValues(boolean updateFields)
DataManagerclearValues in interface DataManagerupdateFields - whether to call showValue(null) on each HasDataValue.public void setErrors(java.util.Map<java.lang.String,?> errors,
boolean showErrors)
public void editRecord(Record record)
editRecord in class com.smartgwt.mobile.client.internal.widgets.DataBoundEditorComponent<RecordList>public final void editNewRecord()
public void editNewRecord(java.util.Map<java.lang.String,?> initialValues)
public final void editNewRecord(Record initialValues)
@SGWTInternal public java.lang.Boolean _handleNativeSubmit()
public void saveData()
public void saveData(DSCallback callback)
public void submitForm()
public boolean valuesHaveChanged()
public com.google.gwt.event.shared.HandlerRegistration addFormSubmitFailedHandler(FormSubmitFailedHandler handler)
addFormSubmitFailedHandler in interface HasFormSubmitFailedHandlerspublic com.google.gwt.event.shared.HandlerRegistration addItemChangedHandler(ItemChangedHandler handler)
addItemChangedHandler in interface HasItemChangedHandlerspublic com.google.gwt.event.shared.HandlerRegistration addSubmitValuesHandler(SubmitValuesHandler handler)
addSubmitValuesHandler in interface HasSubmitValuesHandlers