execute method

  1. @override
Future<bool?> execute(
  1. String caller,
  2. String propertyOrFunction,
  3. List arguments
)
override

Implementation

@override
Future<bool?> execute(
    String caller, String propertyOrFunction, List<dynamic> arguments) async {
  /// setter
  if (scope == null) return null;
  var function = propertyOrFunction.toLowerCase().trim();
  switch (function) {
    case "pageto":
    case "page":
      var view = findListenerOfExactType(PagerViewState);
      if (view is PagerViewState) {
        dynamic page;
        String transition = this.transition;

        // page
        if (arguments.isNotEmpty) {
          page = arguments[0];
        }

        // transition
        if (arguments.length > 1) {
          transition = toStr(arguments[1]) ?? this.transition;
        }

        // go to page
        view.pageTo(page, transition);
      }
      break;

    case "jumpto":
    case "jump":
      var view = findListenerOfExactType(PagerViewState);
      if (view is PagerViewState) {
        dynamic page;
        String transition = "jump";

        // page
        if (arguments.isNotEmpty) {
          page = arguments[0];
        }
        view.pageTo(page, transition);
      }
      break;

    case "slideto":
    case "slide":
      var view = findListenerOfExactType(PagerViewState);
      if (view is PagerViewState) {
        dynamic page;
        String transition = "slide";

        // page
        if (arguments.isNotEmpty) {
          page = arguments[0];
        }
        view.pageTo(page, transition);
      }
      break;
  }
  return super.execute(caller, propertyOrFunction, arguments);
}