FormeDateTimeRangeField constructor
FormeDateTimeRangeField({
- DateTimeRange? initialValue,
- DateTime? firstDate,
- DateTime? lastDate,
- FormeDateRangeFormatter? formatter,
- required String name,
- bool readOnly = false,
- Key? key,
- InputDecoration? decoration,
- int? maxLines = 1,
- int? order,
- bool quietlyValidate = false,
- bool autofocus = false,
- int? minLines,
- int? maxLength,
- TextStyle? style,
- ToolbarOptions? toolbarOptions,
- TextInputAction? textInputAction,
- TextCapitalization textCapitalization = TextCapitalization.none,
- bool obscureText = false,
- StrutStyle? strutStyle,
- TextAlign textAlign = TextAlign.start,
- TextAlignVertical? textAlignVertical,
- TextDirection? textDirection,
- bool? showCursor,
- String obscuringCharacter = '•',
- bool autocorrect = true,
- SmartDashesType? smartDashesType,
- SmartQuotesType? smartQuotesType,
- bool enableSuggestions = true,
- bool expands = false,
- MaxLengthEnforcement? maxLengthEnforcement,
- double cursorWidth = 2.0,
- double? cursorHeight,
- Radius? cursorRadius,
- Color? cursorColor,
- BoxHeightStyle selectionHeightStyle = BoxHeightStyle.tight,
- BoxWidthStyle selectionWidthStyle = BoxWidthStyle.tight,
- Brightness? keyboardAppearance,
- EdgeInsets scrollPadding = const EdgeInsets.all(20),
- DragStartBehavior dragStartBehavior = DragStartBehavior.start,
- MouseCursor? mouseCursor,
- ScrollPhysics? scrollPhysics,
- Iterable<
String> ? autofillHints, - bool enableInteractiveSelection = true,
- bool enabled = true,
- VoidCallback? onEditingComplete,
- AppPrivateCommandCallback? appPrivateCommandCallback,
- InputCounterWidgetBuilder? buildCounter,
- ValueChanged<
DateTimeRange?> ? onSubmitted, - ScrollController? scrollController,
- TextSelectionControls? textSelectionControls,
- Duration? asyncValidatorDebounce,
- AutovalidateMode? autovalidateMode,
- FormeFieldStatusChanged<
DateTimeRange?> ? onStatusChanged, - dynamic onInitialed,
- FormeFieldSetter<
DateTimeRange?> ? onSaved, - FormeValidator<
DateTimeRange?> ? validator, - FormeAsyncValidator<
DateTimeRange?> ? asyncValidator, - DatePickerEntryMode? initialEntryMode,
- String? helpText,
- String? cancelText,
- String? confirmText,
- String? saveText,
- String? errorFormatText,
- String? errorInvalidText,
- String? errorInvalidRangeText,
- String? fieldStartHintText,
- String? fieldEndHintText,
- String? fieldStartLabelText,
- String? fieldEndLabelText,
- RouteSettings? routeSettings,
- TransitionBuilder? builder,
- FormeFieldDecorator<
DateTimeRange?> ? decorator, - bool registrable = true,
- dynamic valueUpdater,
- FormeFieldValidationFilter<
DateTimeRange?> ? validationFilter, - FocusNode? focusNode,
Implementation
FormeDateTimeRangeField({
DateTimeRange? initialValue,
this.firstDate,
this.lastDate,
this.formatter,
required String name,
bool readOnly = false,
Key? key,
InputDecoration? decoration,
int? maxLines = 1,
int? order,
bool quietlyValidate = false,
bool autofocus = false,
int? minLines,
int? maxLength,
TextStyle? style,
ToolbarOptions? toolbarOptions,
TextInputAction? textInputAction,
TextCapitalization textCapitalization = TextCapitalization.none,
bool obscureText = false,
StrutStyle? strutStyle,
TextAlign textAlign = TextAlign.start,
TextAlignVertical? textAlignVertical,
TextDirection? textDirection,
bool? showCursor,
String obscuringCharacter = '•',
bool autocorrect = true,
SmartDashesType? smartDashesType,
SmartQuotesType? smartQuotesType,
bool enableSuggestions = true,
bool expands = false,
MaxLengthEnforcement? maxLengthEnforcement,
double cursorWidth = 2.0,
double? cursorHeight,
Radius? cursorRadius,
Color? cursorColor,
BoxHeightStyle selectionHeightStyle = BoxHeightStyle.tight,
BoxWidthStyle selectionWidthStyle = BoxWidthStyle.tight,
Brightness? keyboardAppearance,
EdgeInsets scrollPadding = const EdgeInsets.all(20),
DragStartBehavior dragStartBehavior = DragStartBehavior.start,
MouseCursor? mouseCursor,
ScrollPhysics? scrollPhysics,
Iterable<String>? autofillHints,
bool enableInteractiveSelection = true,
bool enabled = true,
VoidCallback? onEditingComplete,
AppPrivateCommandCallback? appPrivateCommandCallback,
InputCounterWidgetBuilder? buildCounter,
ValueChanged<DateTimeRange?>? onSubmitted,
ScrollController? scrollController,
TextSelectionControls? textSelectionControls,
Duration? asyncValidatorDebounce,
AutovalidateMode? autovalidateMode,
FormeFieldStatusChanged<DateTimeRange?>? onStatusChanged,
FormeFieldInitialed<DateTimeRange?>? onInitialed,
FormeFieldSetter<DateTimeRange?>? onSaved,
FormeValidator<DateTimeRange?>? validator,
FormeAsyncValidator<DateTimeRange?>? asyncValidator,
DatePickerEntryMode? initialEntryMode,
String? helpText,
String? cancelText,
String? confirmText,
String? saveText,
String? errorFormatText,
String? errorInvalidText,
String? errorInvalidRangeText,
String? fieldStartHintText,
String? fieldEndHintText,
String? fieldStartLabelText,
String? fieldEndLabelText,
RouteSettings? routeSettings,
TransitionBuilder? builder,
FormeFieldDecorator<DateTimeRange?>? decorator,
bool registrable = true,
FormeFieldValueUpdater<DateTimeRange?>? valueUpdater,
FormeFieldValidationFilter<DateTimeRange?>? validationFilter,
FocusNode? focusNode,
}) : super(
focusNode: focusNode,
validationFilter: validationFilter,
valueUpdater: valueUpdater,
enabled: enabled,
registrable: registrable,
decorator: decorator,
order: order,
quietlyValidate: quietlyValidate,
asyncValidatorDebounce: asyncValidatorDebounce,
autovalidateMode: autovalidateMode,
onStatusChanged: onStatusChanged,
onInitialed: onInitialed,
onSaved: onSaved,
validator: validator,
asyncValidator: asyncValidator,
key: key,
name: name,
readOnly: readOnly,
initialValue: initialValue,
builder: (baseState) {
final bool readOnly = baseState.readOnly;
final bool enabled = baseState.enabled;
final _FormeDateTimeRangeFieldState state =
baseState as _FormeDateTimeRangeFieldState;
final DateTime _firstDate = firstDate ?? DateTime(1970);
final DateTime _lastDate = lastDate ?? DateTime(2099);
void pickRange() {
showDateRangePicker(
initialDateRange: state.value,
context: state.context,
firstDate: _firstDate,
lastDate: _lastDate,
builder: builder,
initialEntryMode:
initialEntryMode ?? DatePickerEntryMode.calendar,
helpText: helpText,
cancelText: cancelText,
confirmText: confirmText,
saveText: saveText,
errorFormatText: errorFormatText,
errorInvalidText: errorInvalidText,
errorInvalidRangeText: errorInvalidRangeText,
fieldStartHintText: fieldStartHintText,
fieldEndHintText: fieldEndHintText,
fieldStartLabelText: fieldStartLabelText,
fieldEndLabelText: fieldEndLabelText,
routeSettings: routeSettings,
textDirection: textDirection,
).then((value) {
if (value != null) {
state.didChange(value);
}
state.focusNode.requestFocus();
});
}
return TextField(
focusNode: state.focusNode,
controller: state.textEditingController,
decoration: decoration?.copyWith(errorText: state.errorText),
obscureText: obscureText,
maxLines: maxLines,
minLines: minLines,
enabled: enabled,
readOnly: true,
onTap: readOnly ? null : pickRange,
onEditingComplete: onEditingComplete,
onSubmitted:
onSubmitted == null ? null : (v) => onSubmitted(state.value),
onAppPrivateCommand: appPrivateCommandCallback,
textInputAction: textInputAction,
textCapitalization: textCapitalization,
style: style,
strutStyle: strutStyle,
textAlign: textAlign,
textAlignVertical: textAlignVertical,
textDirection: textDirection,
showCursor: showCursor,
obscuringCharacter: obscuringCharacter,
autocorrect: autocorrect,
smartDashesType: smartDashesType,
smartQuotesType: smartQuotesType,
enableSuggestions: enableSuggestions,
expands: expands,
cursorWidth: cursorWidth,
cursorHeight: cursorHeight,
cursorRadius: cursorRadius,
cursorColor: cursorColor,
selectionHeightStyle: selectionHeightStyle,
selectionWidthStyle: selectionWidthStyle,
keyboardAppearance: keyboardAppearance,
scrollPadding: scrollPadding,
dragStartBehavior: dragStartBehavior,
mouseCursor: mouseCursor,
scrollPhysics: scrollPhysics,
autofillHints: readOnly ? null : autofillHints,
autofocus: autofocus,
toolbarOptions: toolbarOptions,
enableInteractiveSelection: enableInteractiveSelection,
buildCounter: buildCounter,
maxLengthEnforcement: maxLengthEnforcement,
maxLength: maxLength,
scrollController: scrollController,
selectionControls: textSelectionControls,
);
},
);