getProperties method
Map<String, dynamic>
getProperties(
)
override
Implementation
@override
Map<String, dynamic> getProperties() {
Map<String, dynamic> properties = super.getProperties();
properties.addAll({
WidgetProperty.className.name: RanorexSupportedClassName.uiTextField,
WidgetProperty.text.name: '',
WidgetProperty.textColor.name: '',
WidgetProperty.backgroundColor.name: '',
WidgetProperty.selectionStart.name: 0,
WidgetProperty.selectionLength.name: 0,
WidgetProperty.selectionText.name: '',
});
if (element.widget is EditableText) {
final EditableText editableTextWidget = element.widget as EditableText;
final TextEditingController? controller = editableTextWidget.controller;
properties[WidgetProperty.text.name] = controller?.text ?? '';
properties[WidgetProperty.textColor.name] = editableTextWidget
.style.color !=
null
? '#${(editableTextWidget.style.color!.value & 0xFFFFFF).toRadixString(16).padLeft(6, '0').toUpperCase()}'
: '';
final TextSelection selection =
controller?.selection ?? const TextSelection.collapsed(offset: 0);
properties[WidgetProperty.selectionStart.name] = selection.start;
properties[WidgetProperty.selectionLength.name] =
selection.end - selection.start;
if (selection.end > selection.start) {
properties[WidgetProperty.selectionText.name] =
controller?.text.substring(selection.start, selection.end);
}
properties[WidgetProperty.hasFocus.name] =
editableTextWidget.focusNode.hasFocus;
} else if (element.widget is TextField) {
final TextField textFieldWidget = element.widget as TextField;
final TextEditingController? controller = textFieldWidget.controller;
properties[WidgetProperty.text.name] = controller?.text ?? '';
properties[WidgetProperty.textColor.name] = textFieldWidget
.style?.color !=
null
? '#${(textFieldWidget.style!.color!.value & 0xFFFFFF).toRadixString(16).padLeft(6, '0').toUpperCase()}'
: '';
properties[WidgetProperty.backgroundColor.name] = textFieldWidget
.decoration?.fillColor !=
null
? '#${(textFieldWidget.decoration!.fillColor!.value & 0xFFFFFF).toRadixString(16).padLeft(6, '0').toUpperCase()}'
: '';
final TextSelection selection =
controller?.selection ?? const TextSelection.collapsed(offset: 0);
properties[WidgetProperty.selectionStart.name] = selection.start;
properties[WidgetProperty.selectionLength.name] =
selection.end - selection.start;
if (selection.end > selection.start) {
properties[WidgetProperty.selectionText.name] =
controller?.text.substring(selection.start, selection.end);
}
properties[WidgetProperty.hasFocus.name] =
textFieldWidget.focusNode?.hasFocus ?? false;
} else if (element.widget is TextFormField) {
final TextFormField textFormFieldWidget = element.widget as TextFormField;
final TextEditingController? controller = textFormFieldWidget.controller;
properties[WidgetProperty.text.name] = controller?.text ?? '';
final TextSelection selection =
controller?.selection ?? const TextSelection.collapsed(offset: 0);
properties[WidgetProperty.selectionStart.name] = selection.start;
properties[WidgetProperty.selectionLength.name] =
selection.end - selection.start;
if (selection.end > selection.start) {
properties[WidgetProperty.selectionText.name] =
controller?.text.substring(selection.start, selection.end);
}
}
return properties;
}