getProperties method

  1. @override
Map<String, dynamic> getProperties()
override

Implementation

@override
Map<String, dynamic> getProperties() {
  Map<String, dynamic> properties = super.getProperties();

  String associatedText = '';
  bool isEnabled = element.widget is IconButton &&
      (element.widget as IconButton).onPressed != null;

  // Look for nearby Text widgets in Row or Column
  Element? ancestor =
      element.findAncestorWidgetOfExactType<Row>()?.createElement() ??
          element.findAncestorWidgetOfExactType<Column>()?.createElement();

  if (ancestor != null) {
    if (ancestor.widget is Row) {
      Row rowWidget = ancestor.widget as Row;
      associatedText = _findTextInSiblings(rowWidget.children);
    } else if (ancestor.widget is Column) {
      Column columnWidget = ancestor.widget as Column;
      associatedText = _findTextInSiblings(columnWidget.children);
    }
  }

  properties[WidgetProperty.className.name] =
      RanorexSupportedClassName.uiButton;
  properties[WidgetProperty.enabled.name] = isEnabled;
  properties[WidgetProperty.text.name] = associatedText;

  return properties;
}