DynamicFormController class

Controls values, validation, and events for a FormSchema-driven form.

Inheritance

Constructors

DynamicFormController({Map<String, FieldValidator>? customValidators, Map<String, AsyncFieldValidator>? asyncValidators, ServerFieldValidator? serverValidator, ConditionEvaluator conditionEvaluator = const ConditionEvaluator()})
Creates a DynamicFormController.

Properties

errors Map<String, String>
Immutable copy of current errors.
no setter
hashCode int
The hash code for this object.
no setterinherited
hasListeners bool
Whether any listeners are currently registered.
no setterinherited
isDirty bool
Whether any value changed since bind / reset.
no setter
isSubmitting bool
Whether submit is running.
no setter
isValid bool
Whether there are currently no validation errors.
no setter
isValidating bool
Whether async validation is running.
no setter
nestedValues Map<String, dynamic>
Nested values: group children nested under the group key.
no setter
onChanged ↔ void Function(Map<String, dynamic> values)?
Called when the full values map changes.
getter/setter pair
onFieldChanged ↔ void Function(String key, dynamic value)?
Called when any field value changes.
getter/setter pair
onSaved ↔ void Function(Map<String, dynamic> values)?
Called after values are saved / collected (alias of successful submit).
getter/setter pair
onSubmit ↔ void Function(Map<String, dynamic> values)?
Called after a successful submit when validation passes.
getter/setter pair
onValidationFailed ↔ void Function(Map<String, String> errors)?
Called when validation fails.
getter/setter pair
onValidationSuccess ↔ void Function(Map<String, dynamic> values)?
Called when validation succeeds.
getter/setter pair
runtimeType Type
A representation of the runtime type of the object.
no setterinherited
schema FormSchema?
Bound schema (set by DynamicForm or manually via bind).
no setter
state DynamicFormState
Combined state snapshot.
no setter
values Map<String, dynamic>
Immutable copy of current values.
no setter

Methods

addListener(VoidCallback listener) → void
Register a closure to be called when the object changes.
inherited
addRepeatableItem(String key, {Map<String, dynamic>? values}) → void
Appends an item to a FieldType.repeatable field.
bind(FormSchema schema, {bool resetValues = true}) → void
Binds a schema and seeds default values.
clear() → void
Clears all leaf values and errors.
dispose() → void
Discards any resources used by the object.
override
errorFor(String key) String?
Error message for key, if any.
fieldFor(String key) FormFieldSchema?
Field schema for key, if bound.
getValue(String key) → dynamic
Returns the value for key.
isEnabled(String key) bool
Convenience: enabled by key.
isFieldEnabled(FormFieldSchema field) bool
Whether field is currently enabled given schema + conditions.
isFieldVisible(FormFieldSchema field) bool
Whether field is currently visible given schema + conditions.
isVisible(String key) bool
Convenience: visibility by key.
noSuchMethod(Invocation invocation) → dynamic
Invoked when a nonexistent method or property is accessed.
inherited
notifyListeners() → void
Call all the registered listeners.
inherited
patchValues(Map<String, dynamic> patch, {bool validate = false}) → void
Patches multiple values at once.
registerAsyncValidator(String name, AsyncFieldValidator validator) → void
Registers or replaces a named async validator.
registerValidator(String name, FieldValidator validator) → void
Registers or replaces a named sync custom validator.
removeListener(VoidCallback listener) → void
Remove a previously registered closure from the list of closures that are notified when the object changes.
inherited
removeRepeatableItem(String key, int index) → void
Removes a repeatable item at index.
reset() → void
Resets values to schema defaults and clears errors / dirty flag.
setServerValidator(ServerFieldValidator? validator) → void
Sets the global server validator used by type: server rules.
submit({bool nestGroups = false}) Future<bool>
Validates (including async) and invokes submit callbacks on success.
toString() String
A string representation of this object.
inherited
updateField(String key, dynamic value, {bool validate = true, bool notifyListeners = true}) → void
Updates a single field and optionally validates it (sync rules only).
updateRepeatableItemField(String key, int index, String childKey, dynamic value) → void
Updates a nested value inside a repeatable item.
validate({bool notify = true}) bool
Validates all visible leaf fields synchronously.
validateAsync({bool notify = true}) Future<bool>
Runs sync + async/server validators for all visible fields.
validateField(String key, {bool notify = true}) bool
Validates a single field synchronously (skips async/server rules).

Operators

operator ==(Object other) bool
The equality operator.
inherited