package com.llgc.modele; import java.util.EnumSet; import java.util.Observable; // Le modèle est observable par les vues. public class MdlNombre extends Observable { private int nombre; public synchronized int getNombre() { return nombre; } public synchronized void setNombre(int nombre) { this.nombre = nombre; setChanged(ChangeNombre.NOMBRE); notifyObservers(changeEnum); changeEnum = EnumSet.noneOf(ChangeNombre.class); } public MdlNombre(int nombre) { super(); this.nombre = nombre; // Initialisation de l'énumération des modifications à vide. changeEnum = EnumSet.noneOf(ChangeNombre.class); } // Pour se souvenir quelles propriétés ont été modifiées (si besoin). public enum ChangeNombre { NOMBRE; } private EnumSet changeEnum; // setChanged est mis en synchronized car il l'est dans Observable. protected synchronized void setChanged(ChangeNombre changeEnum_) { setChanged(); changeEnum.add(changeEnum_); } }