createSelector static method

AFWidgetSelector createSelector(
  1. AFSparsePathWidgetSelector? path,
  2. dynamic sel
)

Implementation

static AFWidgetSelector createSelector(AFSparsePathWidgetSelector? path, dynamic sel) {
  AFWidgetSelector selector;
  if(sel is String) {
    selector = AFKeySelector(sel);
  } else if(sel is AFWidgetID) {
    selector = AFKeySelector(sel.code);
  } else if(sel is AFWidgetSelector) {
    selector = sel;
  } else if(sel is Type) {
    selector = AFWidgetTypeSelector(sel);
  } else if(sel is List) {
    final selectors = <AFWidgetSelector>[];
    for(final selItem in sel) {
      selectors.add(createSelector(null, selItem));
    }
    return AFSparsePathWidgetSelector(selectors);
  } else {
    throw AFException("Unknown widget selector type: ${sel.runtimeType}");
  }

  if(path != null) {
    selector = path.copyAndAdd(selector);
  }
  return selector;
}