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) {
    // export the data
    case "export":
      var format = toStr(elementAt(arguments, 0));
      var filename = toStr(elementAt(arguments, 1));
      await export(format, filename);
      return true;

    // move a row
    case "move":
      moveRow(toInt(elementAt(arguments, 0)) ?? 0,
          toInt(elementAt(arguments, 1)) ?? 0);
      return true;

    // delete a row
    case "delete":
      deleteRow(toInt(elementAt(arguments, 0)));
      return true;

    // add a row
    case "insert":
      insertRow(
          toStr(elementAt(arguments, 0)), toInt(elementAt(arguments, 1)));
      return true;

    // autosize the fields
    case "autosize":
      var mode = toStr(elementAt(arguments, 0));
      autosize(mode);
      return true;

    case 'post':
    case 'submit':
    case 'complete':
      return await complete();

    case 'save':
      return await save();

    case 'validate':
      return await validate();
  }

  return super.execute(caller, propertyOrFunction, arguments);
}