diff -r 43bb1b8ed555 -r b6df6fce6e5d client/src/Iri.Modernisation.Data/Models/Sync.cs --- /dev/null Thu Jan 01 00:00:00 1970 +0000 +++ b/client/src/Iri.Modernisation.Data/Models/Sync.cs Wed Jan 27 10:37:39 2010 +0100 @@ -0,0 +1,54 @@ +using System; +using System.Net; +using System.Windows; +using System.Windows.Controls; +using System.Windows.Documents; +using System.Windows.Ink; +using System.Windows.Input; +using System.Windows.Media; +using System.Windows.Media.Animation; +using System.Windows.Shapes; + +namespace Iri.Modernisation.Data.Models +{ + /// + /// Classe servant à synchroniser les Loaders + /// On créé la classe, on enregistre les Loader a synchroniser. + /// /* Utilisation */ + /// Attention /!\ Il faut enregistrer le loader APRES s'êtres abonnée à son event LoaderFinished. + /// + public class Sync + { + /// + /// Constructeur par défaut + /// + public Sync() + { _registeredLoader = 0; } + private int _registeredLoader { get; set; } + + /// + /// Méthode permettant d'enregistrer les Loader au sein d'un même Sync + /// + /// Loader à enregistrer + public void RegisterLoader(ILoader loader) + { + _registeredLoader++; + loader.LoaderFinished += new EventHandler(loader_LoaderFinished); + } + + private void loader_LoaderFinished(object sender, EventArgs e) + { + _registeredLoader--; + if (_registeredLoader == 0) + { + Completed(this, new EventArgs()); + } + } + + /// + /// Evenement déclanché une fois tous les Loader fini + /// + public event EventHandler Completed; + + } +}