Bonjour,
Dans le projet que je developpe actuellement, je souhaite permettre des actions du genre Annuler/Retablir.
Actuellement j'ai ça :
- Une hierarchie d'objets (imbriqués ou non)
- Des controles graphiques permettant de modifier les objets, en créer, en supprimer...
Lorsqu'une action a lieu sur un controle de la GUI (clic sur un bouton...) une instance d'une classe "cAction" est créée avec les parametres de l'action (objet sur lequel agir, type d'action, nouvelle valeur...)
Cette action est ensuite remontée à un "écouteur d'action" qui la traite.
Toutes les actions sont donc traitées dans la même fonction.
Voici ce que je pensait mettre en place :
Lorsque l'écouteur recoit une action à traiter :
1/ enregistrer dans une liste un couple d'actions : l'action "Retablir" et l'action "Annuler" avec des parametres "symetriques"
2/ traiter l'action demandée
Lorsque l'on souhaite annuler une action :
1/ traiter l'action "Annuler" de ce couple
2/ ne pas enregistrer l'action
Lorsque l'on souhaite retablir une action :
1/ traiter l'action "Rétablir" de ce couple
2/ ne pas enregistrer l'action
-------------------
Les questions :
1/ est-ce que ça vous parait malin ou stupide ?
2/ par rapport à une gestion avec des états (comme le parttern state) qui risque de me prendre beaucoup de mémoire, qu'en pensez-vous ?
Evidemment, avec mon système, pour annuler 5 actions d'un coup, il faut les traiter une par une et dans l'ordre...
Partager