Skip to content

Commit 1bbe5b7

Browse files
committed
Enhanced FormBuilderFieldState so that subclasses do not need to override widget getter.
1 parent a694d0c commit 1bbe5b7

25 files changed

+85
-137
lines changed

lib/src/fields/form_builder_checkbox.dart

Lines changed: 2 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -140,7 +140,5 @@ class FormBuilderCheckbox extends FormBuilderField<bool> {
140140
_FormBuilderCheckboxState createState() => _FormBuilderCheckboxState();
141141
}
142142

143-
class _FormBuilderCheckboxState extends FormBuilderFieldState<bool> {
144-
@override
145-
FormBuilderCheckbox get widget => super.widget as FormBuilderCheckbox;
146-
}
143+
class _FormBuilderCheckboxState
144+
extends FormBuilderFieldState<FormBuilderCheckbox, bool> {}

lib/src/fields/form_builder_checkbox_group.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -114,11 +114,8 @@ class FormBuilderCheckboxGroup<T> extends FormBuilderField<List<T>> {
114114

115115
@override
116116
_FormBuilderCheckboxGroupState<T> createState() =>
117-
_FormBuilderCheckboxGroupState();
117+
_FormBuilderCheckboxGroupState<T>();
118118
}
119119

120-
class _FormBuilderCheckboxGroupState<T> extends FormBuilderFieldState<List<T>> {
121-
@override
122-
FormBuilderCheckboxGroup<T> get widget =>
123-
super.widget as FormBuilderCheckboxGroup;
124-
}
120+
class _FormBuilderCheckboxGroupState<T>
121+
extends FormBuilderFieldState<FormBuilderCheckboxGroup<T>, List<T>> {}

lib/src/fields/form_builder_chips_input.dart

Lines changed: 6 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -68,8 +68,8 @@ class FormBuilderChipsInput<T> extends FormBuilderField<List<T>> {
6868
onReset: onReset,
6969
decoration: decoration,
7070
focusNode: focusNode,
71-
builder: (FormFieldState field) {
72-
final _FormBuilderChipsInputState state = field;
71+
builder: (FormFieldState<List<T>> field) {
72+
final _FormBuilderChipsInputState<T> state = field;
7373

7474
return ChipsInput(
7575
key: ObjectKey(state.value),
@@ -104,10 +104,9 @@ class FormBuilderChipsInput<T> extends FormBuilderField<List<T>> {
104104
);
105105

106106
@override
107-
_FormBuilderChipsInputState<T> createState() => _FormBuilderChipsInputState();
107+
_FormBuilderChipsInputState<T> createState() =>
108+
_FormBuilderChipsInputState<T>();
108109
}
109110

110-
class _FormBuilderChipsInputState<T> extends FormBuilderFieldState<List<T>> {
111-
@override
112-
FormBuilderChipsInput<T> get widget => super.widget as FormBuilderChipsInput;
113-
}
111+
class _FormBuilderChipsInputState<T>
112+
extends FormBuilderFieldState<FormBuilderChipsInput<T>, List<T>> {}

lib/src/fields/form_builder_choice_chips.dart

Lines changed: 4 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -338,10 +338,9 @@ class FormBuilderChoiceChip<T> extends FormBuilderField<T> {
338338
});
339339

340340
@override
341-
_FormBuilderChoiceChipState<T> createState() => _FormBuilderChoiceChipState();
341+
_FormBuilderChoiceChipState<T> createState() =>
342+
_FormBuilderChoiceChipState<T>();
342343
}
343344

344-
class _FormBuilderChoiceChipState<T> extends FormBuilderFieldState<T> {
345-
@override
346-
FormBuilderChoiceChip<T> get widget => super.widget as FormBuilderChoiceChip;
347-
}
345+
class _FormBuilderChoiceChipState<T>
346+
extends FormBuilderFieldState<FormBuilderChoiceChip<T>, T> {}

lib/src/fields/form_builder_color_picker.dart

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -118,7 +118,7 @@ class FormBuilderColorPickerField extends FormBuilderField<Color> {
118118
enabled: enabled,
119119
onReset: onReset,
120120
decoration: decoration,
121-
builder: (FormFieldState field) {
121+
builder: (FormFieldState<Color> field) {
122122
final _FormBuilderColorPickerFieldState state = field;
123123
return TextField(
124124
style: style,
@@ -181,11 +181,8 @@ class FormBuilderColorPickerField extends FormBuilderField<Color> {
181181
_FormBuilderColorPickerFieldState();
182182
}
183183

184-
class _FormBuilderColorPickerFieldState extends FormBuilderFieldState<Color> {
185-
@override
186-
FormBuilderColorPickerField get widget =>
187-
super.widget as FormBuilderColorPickerField;
188-
184+
class _FormBuilderColorPickerFieldState
185+
extends FormBuilderFieldState<FormBuilderColorPickerField, Color> {
189186
TextEditingController _effectiveController;
190187

191188
TextEditingController get effectiveController => _effectiveController;

lib/src/fields/form_builder_date_range_picker.dart

Lines changed: 2 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -26,7 +26,7 @@ class FormBuilderDateRangePicker extends FormBuilderField<List<DateTime>> {
2626
final bool maxLengthEnforced;
2727
final int maxLength;
2828
final VoidCallback onEditingComplete;
29-
final ValueChanged<String> onFieldSubmitted;
29+
final ValueChanged<List<DateTime>> onFieldSubmitted;
3030
final List<TextInputFormatter> inputFormatters;
3131
final double cursorWidth;
3232
final Radius cursorRadius;
@@ -190,11 +190,7 @@ class FormBuilderDateRangePicker extends FormBuilderField<List<DateTime>> {
190190
}
191191

192192
class FormBuilderDateRangePickerState
193-
extends FormBuilderFieldState<List<DateTime>> {
194-
@override
195-
FormBuilderDateRangePicker get widget =>
196-
super.widget as FormBuilderDateRangePicker;
197-
193+
extends FormBuilderFieldState<FormBuilderDateRangePicker, List<DateTime>> {
198194
TextEditingController _effectiveController;
199195

200196
TextEditingController get effectiveController => _effectiveController;

lib/src/fields/form_builder_date_time_picker.dart

Lines changed: 2 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -289,11 +289,8 @@ class FormBuilderDateTimePicker extends FormBuilderField<DateTime> {
289289
_FormBuilderDateTimePickerState();
290290
}
291291

292-
class _FormBuilderDateTimePickerState extends FormBuilderFieldState<DateTime> {
293-
@override
294-
FormBuilderDateTimePicker get widget =>
295-
super.widget as FormBuilderDateTimePicker;
296-
292+
class _FormBuilderDateTimePickerState
293+
extends FormBuilderFieldState<FormBuilderDateTimePicker, DateTime> {
297294
TextEditingController get textFieldController => _textFieldController;
298295
TextEditingController _textFieldController;
299296

lib/src/fields/form_builder_dropdown.dart

Lines changed: 3 additions & 5 deletions
Original file line numberDiff line numberDiff line change
@@ -300,10 +300,8 @@ class FormBuilderDropdown<T> extends FormBuilderField<T> {
300300
}
301301

302302
@override
303-
_FormBuilderDropdownState<T> createState() => _FormBuilderDropdownState();
303+
_FormBuilderDropdownState<T> createState() => _FormBuilderDropdownState<T>();
304304
}
305305

306-
class _FormBuilderDropdownState<T> extends FormBuilderFieldState<T> {
307-
@override
308-
FormBuilderDropdown<T> get widget => super.widget as FormBuilderDropdown;
309-
}
306+
class _FormBuilderDropdownState<T>
307+
extends FormBuilderFieldState<FormBuilderDropdown<T>, T> {}

lib/src/fields/form_builder_file_picker.dart

Lines changed: 1 addition & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -117,7 +117,7 @@ class FormBuilderFilePicker extends FormBuilderField<List<PlatformFile>> {
117117
}
118118

119119
class _FormBuilderFilePickerState
120-
extends FormBuilderFieldState<List<PlatformFile>> {
120+
extends FormBuilderFieldState<FormBuilderFilePicker, List<PlatformFile>> {
121121
List<PlatformFile> _files;
122122

123123
int get _remainingItemCount =>
@@ -129,9 +129,6 @@ class _FormBuilderFilePickerState
129129
super.initState();
130130
}
131131

132-
@override
133-
FormBuilderFilePicker get widget => super.widget as FormBuilderFilePicker;
134-
135132
Future<void> pickFiles(FormFieldState field) async {
136133
FilePickerResult resultList;
137134

lib/src/fields/form_builder_filter_chips.dart

Lines changed: 8 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -89,8 +89,8 @@ class FormBuilderFilterChip<T> extends FormBuilderField<List<T>> {
8989
onReset: onReset,
9090
decoration: decoration,
9191
focusNode: focusNode,
92-
builder: (FormFieldState field) {
93-
final _FormBuilderFilterChipState state = field;
92+
builder: (FormFieldState<List<T>> field) {
93+
final _FormBuilderFilterChipState<T> state = field;
9494
return InputDecorator(
9595
decoration: decoration.copyWith(
9696
errorText: decoration?.errorText ?? field.errorText,
@@ -105,7 +105,7 @@ class FormBuilderFilterChip<T> extends FormBuilderField<List<T>> {
105105
textDirection: textDirection,
106106
verticalDirection: verticalDirection,
107107
children: <Widget>[
108-
for (FormBuilderFieldOption option in options)
108+
for (FormBuilderFieldOption<T> option in options)
109109
FilterChip(
110110
label: option.child,
111111
selected: field.value.contains(option.value),
@@ -114,7 +114,7 @@ class FormBuilderFilterChip<T> extends FormBuilderField<List<T>> {
114114
(field.value.length >= maxChips &&
115115
!field.value.contains(option.value))))
116116
? null
117-
: (bool selected) {
117+
: (selected) {
118118
var currentValue = [...field.value];
119119
if (selected) {
120120
currentValue.add(option.value);
@@ -148,10 +148,9 @@ class FormBuilderFilterChip<T> extends FormBuilderField<List<T>> {
148148
);
149149

150150
@override
151-
_FormBuilderFilterChipState<T> createState() => _FormBuilderFilterChipState();
151+
_FormBuilderFilterChipState<T> createState() =>
152+
_FormBuilderFilterChipState<T>();
152153
}
153154

154-
class _FormBuilderFilterChipState<T> extends FormBuilderFieldState<List<T>> {
155-
@override
156-
FormBuilderFilterChip<T> get widget => super.widget as FormBuilderFilterChip;
157-
}
155+
class _FormBuilderFilterChipState<T>
156+
extends FormBuilderFieldState<FormBuilderFilterChip<T>, List<T>> {}

0 commit comments

Comments
 (0)