/// <summary> /// Fonction de commande en provenance de l'interface utilisateur. /// <para> </para> /// <para> /// Par défaut, recherche, dans la classe de processus, une méthode ayant le nom de la commande et ayant /// l'argument, la vue et le presentateur comme arguments. Si cette méthode est trouvée, elle est appelée. /// </para> /// <para> </para> /// <para> Faire un override de cette méthode si un comportement autre est nécessaire. </para> /// </summary> /// <param name="command"> Commande à traiter </param> /// <param name="args"> Argument de la commande </param> /// <param name="view"> Référence de la vue implémenter par le formulaire </param> /// <param name="presenterBase"> Référence du présenteur </param> public virtual void OnCommand(string command, CommandEventArgsCustom args, View view, IPresenterBase presenterBase) { if (command != null) { var mi = GetType().GetMethod(command, BindingFlags.Public | BindingFlags.NonPublic | BindingFlags.Instance); if (mi != null) { var pi = mi.GetParameters(); if (pi.Length == 3 && pi[0].ParameterType == typeof(CommandEventArgsCustom) && pi[1].ParameterType == typeof(View) && pi[2].ParameterType == typeof(IPresenterBase)) { mi.Invoke(this, new object[] { args, view, presenterBase }); } } } else { PublishException(view, "ERREUR DESIGN : La commande pour effectuer l'action est null", null); } }
/// <summary> /// Permet à l'interface d'envoyer des commandes pour être exécutées côté présenteur /// </summary> /// <param name="command"> Commande à exécuter </param> /// <param name="args"> Liste de paramètres à la commande </param> public void ExecuteCommand(string command, CommandEventArgsCustom args) { ProcessInstance.OnCommand(command, args, mView, this); }