getProperties method

  1. @override
Map<String, dynamic> getProperties({
  1. Element? ancestor,
})
override

Implementation

@override
Map<String, dynamic> getProperties({Element? ancestor}) {
  Map<String, dynamic> properties = super.getProperties(ancestor: ancestor);

  String associatedText = '';
  bool isSelected = false;
  String checkState = 'Unchecked';
  String? className;

  if (element.widget is Chip) {
    Chip chipWidget = element.widget as Chip;
    className = RanorexSupportedClassName.chip;
    associatedText = (chipWidget.label as Text).data ?? '';
    // Basic chips don't have a selected state
    checkState = 'Indeterminate';
  } else if (element.widget is ChoiceChip) {
    ChoiceChip chipWidget = element.widget as ChoiceChip;
    className = RanorexSupportedClassName.choiceChip;
    associatedText = (chipWidget.label as Text).data ?? '';
    isSelected = chipWidget.selected;
    checkState = isSelected ? 'Checked' : 'Unchecked';
  } else if (element.widget is FilterChip) {
    FilterChip chipWidget = element.widget as FilterChip;
    className = RanorexSupportedClassName.filterChip;
    associatedText = (chipWidget.label as Text).data ?? '';
    isSelected = chipWidget.selected;
    checkState = isSelected ? 'Checked' : 'Unchecked';
  } else if (element.widget is ActionChip) {
    ActionChip chipWidget = element.widget as ActionChip;
    className = RanorexSupportedClassName.actionChip;
    associatedText = (chipWidget.label as Text).data ?? '';
    // ActionChip does not have a selected state
    checkState = 'Indeterminate';
  } else if (element.widget is InputChip) {
    InputChip chipWidget = element.widget as InputChip;
    className = RanorexSupportedClassName.inputChip;
    associatedText = (chipWidget.label as Text).data ?? '';
    isSelected = chipWidget.selected;
    checkState = isSelected ? 'Checked' : 'Unchecked';
  }

  properties[WidgetProperty.className.name] = className;
  properties[WidgetProperty.checked.name] = isSelected;
  properties[WidgetProperty.checkState.name] = checkState;
  properties[WidgetProperty.text.name] = associatedText;
  properties[WidgetProperty.accessibilityLabel.name] =
      element.findAncestorWidgetOfExactType<Semantics>()?.properties.label ??
          '';
  return properties;
}