Bonjour,
Je réalise un petit projet que je vous explique de façon très simplifiée :
Mon modèle doit représenter 4 affiches qui sont allumées à des moments différents. Comme attributs du modèle j'ai donc 4 booléens qui indiquent si l'affiche est allumée ou pas :
Je pensais donc créer simplement une classe Affiches qui serait le modèle dans laquelle j'aurais les 4 attributs + une ArrayList<AfficheVue>. Il y aurait en plus une méthode notifyChange() qui notifie les vues lorsque le modèle est modifié et une méthode qui gère les changement de valeurs des 4 attributs (par Timer).
Code : Sélectionner tout - Visualiser dans une fenêtre à part
1
2
3
4
5 boolean afficheA; boolean afficheB; boolean afficheC; boolean afficheD;
Chaque affiche a ses propres vues et la valeur d'un seul des attributs change a la fois.
Mes questions sont deux :
1/ Pouvez-vous m'aider pour faire changer les valeurs des 4 attributs au fur et à mesure de l'avancement du temps. Comment faire par exemple pour le cycle suivant? Au début afficheA est true, le reste est false. Après 10secondes, tous les attributs sont false. Ensuite après 3secondes afficheB passe à true. Ensuite après 5 secondes toutes les affiches sont à false. Ensuite après 8 secondes afficheC passe à true. Ensuite après 3secondes tout repasse à false. Ensuite après 2secondes on retourne dans la situation initiale (afficheA à true et le reste à false). Une seul attribut change à la fois.
2/ Si je réalise le modèle comme indiqué plus haut, à chaque changement d'une des valeurs des affiches, un notifyChange() est fait sur TOUTES les vues. Hors je voudrais que le notifyChange() soit fait uniquement sur les vues de l'affiche dont l'attribut a été modifié... Je pensais donc avoir un modèle Affiche par type d'affiche (donc pour afficheA, afficheB, afficheC, afficheD) qui aurait l'arraylist<vues> contenant ses propres vues et la méthode notifyChange() et un modèle au dessus de ça qui gèrerait le tout (ce modèle général dirait au modèle concerné que sa valeur doit changer et le modèle concerné ferait un notifyChange() sur ses vues, ainsi les vues des autres affiches ne seraient pas notifiées). Pourriez-vous m'aider car je ne vois pas comment implémenter ceci...
Merci d'avance et bonne journée.
Partager