Index: topia2/src/java/org/codelutin/topia/persistence/TopiaEntityAbstract.java diff -u topia2/src/java/org/codelutin/topia/persistence/TopiaEntityAbstract.java:1.5 topia2/src/java/org/codelutin/topia/persistence/TopiaEntityAbstract.java:1.6 --- topia2/src/java/org/codelutin/topia/persistence/TopiaEntityAbstract.java:1.5 Mon Jan 23 13:51:52 2006 +++ topia2/src/java/org/codelutin/topia/persistence/TopiaEntityAbstract.java Tue Feb 7 19:57:02 2006 @@ -23,17 +23,20 @@ * * @author poussin * - * @version $Revision: 1.5 $ + * @version $Revision: 1.6 $ * - * Last update: $Date: 2006/01/23 13:51:52 $ by : $Author: bpoussin $ + * Last update: $Date: 2006/02/07 19:57:02 $ by : $Author: thimel $ */ package org.codelutin.topia.persistence; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; import java.util.Date; import org.codelutin.topia.TopiaContext; import org.codelutin.topia.TopiaException; +import org.codelutin.topia.framework.TopiaContextImplementor; /** * Classe de base de toutes les entités, cela permet de concentrer le code @@ -52,6 +55,9 @@ protected Date topiaCreateDate = new Date(); transient protected TopiaContext topiaContext = null; + + transient protected PropertyChangeSupport propertyChangeSupport = + new PropertyChangeSupport(this); /** * (non-Javadoc) @@ -171,4 +177,46 @@ } return getTopiaId().equals(other.getTopiaId()); } -} + + protected void fireOnModifyProperty( + String propertyName, Object oldValue, Object newValue) { + propertyChangeSupport.firePropertyChange( + propertyName, oldValue, newValue); + if (topiaContext != null) { + ((TopiaContextImplementor)topiaContext).fireOnUpdated( + this.getClass(), getTopiaId(), this); + //FIXME vérifier que this.getClass() renvoie bien la bonne class et corriger sinon + } + } + + protected void fireOnModifyIndexedProperty( + String propertyName, int index, Object oldValue, Object newValue) { + propertyChangeSupport.fireIndexedPropertyChange( + propertyName, index, oldValue, newValue); + if (topiaContext != null) { + ((TopiaContextImplementor)topiaContext).fireOnUpdated( + this.getClass(), getTopiaId(), this); + //FIXME vérifier que this.getClass() renvoie bien la bonne class et corriger sinon + } + } + + public void addPropertyListener(String propertyName, + PropertyChangeListener listener) { + propertyChangeSupport.addPropertyChangeListener(propertyName, listener); + } + + public void addPropertyListener(PropertyChangeListener listener) { + propertyChangeSupport.addPropertyChangeListener(listener); + } + + public void removePropertyListener(String propertyName, + PropertyChangeListener listener) { + propertyChangeSupport.removePropertyChangeListener(propertyName, + listener); + } + + public void removePropertyListener(PropertyChangeListener listener) { + propertyChangeSupport.removePropertyChangeListener(listener); + } + +} //TopiaEntityAbstract Index: topia2/src/java/org/codelutin/topia/persistence/TopiaEntity.java diff -u topia2/src/java/org/codelutin/topia/persistence/TopiaEntity.java:1.4 topia2/src/java/org/codelutin/topia/persistence/TopiaEntity.java:1.5 --- topia2/src/java/org/codelutin/topia/persistence/TopiaEntity.java:1.4 Fri Jan 13 15:25:06 2006 +++ topia2/src/java/org/codelutin/topia/persistence/TopiaEntity.java Tue Feb 7 19:57:02 2006 @@ -23,14 +23,15 @@ * Created: 28 déc. 2005 22:48:10 * * @author poussin - * @version $Revision: 1.4 $ + * @version $Revision: 1.5 $ * - * Last update: $Date: 2006/01/13 15:25:06 $ - * by : $Author: bpoussin $ + * Last update: $Date: 2006/02/07 19:57:02 $ + * by : $Author: thimel $ */ package org.codelutin.topia.persistence; +import java.beans.PropertyChangeListener; import java.util.Date; import org.codelutin.topia.TopiaContext; @@ -63,7 +64,12 @@ public void update() throws TopiaException; public void delete() throws TopiaException; - -} + public void addPropertyListener(String propertyName, + PropertyChangeListener listener); + public void addPropertyListener(PropertyChangeListener listener); + public void removePropertyListener(String propertyName, + PropertyChangeListener listener); + public void removePropertyListener(PropertyChangeListener listener); +} //TopiaEntity