Petit post pour laisser une trace d'un outil tout frais compilé que j'ai écrit récemment en Dart (il y a un
repo github dessus d'ailleurs), et puis si ça peut servir quelqu'un un de ces quatre...
Utilisation:En tant qu'utilisateur, il n'y a qu'une seule classe qui nous intéresse: la classe
Noxine.
Grâce à cette dernière, vous pouvez lui demander de programmer une tâche à une heure bien précise dans la journée:
Par défaut, la classe assume que vous voulez programmer votre tâche à l'heure où vous préparez la tâche. (Donc si vous demander d'exécution une tâche dans 5 heures et que l'instruction est exécutée à midi, la tâche sera exécutée à 17h.)
var date = new DateTime.now();
var noxine = new Noxine(date.second, date.minute, date.hour);
noxine.setOffset(10); //La tâche sera effectuée dans 10 secondes
Maintenant, si vous souhaitez que la classe vérifie régulièrement si la tâche peut être exécutée, il vous suffit d'accrocher votre écouteur à une tâche redondante que l'utilisateur peut faire par exemple:
class MyTester extends ReachedTimeListener
{
MyTester()
{
}
void whenOffsetHasBeenReached()
{
print("It's time ! :D");
}
}
/* Vous créez une classe qui servira d'écouteur en implémentant l'interface appropriée */
var today = new DateTime.now();
Noxine noxine = new Noxine(today.second, today.minute, today.hour);
noxine.setOffset(10);
noxine.addEventListener(new MyTester()); /* Vous renseignez l'écouteur à l'objet Noxine */
Element elem = querySelector("#area"); /* Vous récupérez l'élément que vous voulez écouter */
elem.onClick.listen((_) => noxine.computeTimeLeft().then((_){
if(noxine.timeHasBeenReached)
{
print("Time has been reached ! :D");
}
else
{
print("Time hasn't been reached ! :'(");
}
})); /* Puis vous rédigez les instructions que vous voulez exécuter en cas de succès */
Et voilà, la classe s'occupera du reste à votre place !
Attention toutefois, la version actuelle de la classe ne gère pas le cas où l'heure, à laquelle la tâche est programmée, est différente ! Pour le moment, vous devrez faire ces tests vous-mêmes pour vous éviter des ennuis.