Author: echatellier Date: 2010-06-10 12:05:49 +0200 (Thu, 10 Jun 2010) New Revision: 110 Url: http://nuiton.org/repositories/revision/wikitty/110 Log: Add property change listener on fields and tag values. Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java Modified: trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java =================================================================== --- trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java 2010-06-08 13:16:36 UTC (rev 109) +++ trunk/wikitty-api/src/main/java/org/nuiton/wikitty/WikittyExtension.java 2010-06-10 10:05:49 UTC (rev 110) @@ -17,6 +17,8 @@ package org.nuiton.wikitty; +import java.beans.PropertyChangeListener; +import java.beans.PropertyChangeSupport; import java.io.Serializable; import java.util.Collection; import java.util.HashMap; @@ -37,6 +39,13 @@ /** serialVersionUID. */ private static final long serialVersionUID = -3598621577607442972L; + /** + * Property change support. + * + * Warning, this transient field is null after deserialization. + */ + protected transient PropertyChangeSupport propertyChangeSupport; + /** Name of this extension. */ protected String name; @@ -97,6 +106,31 @@ } } + protected PropertyChangeSupport getPropertyChangeSupport() { + if (propertyChangeSupport == null) { + propertyChangeSupport = new PropertyChangeSupport(this); + } + return propertyChangeSupport; + } + + public void addPropertyChangeListener(PropertyChangeListener listener) { + getPropertyChangeSupport().addPropertyChangeListener(listener); + } + + public void removePropertyChangeListener(PropertyChangeListener listener) { + getPropertyChangeSupport().removePropertyChangeListener(listener); + } + + public void addPropertyChangeListener(String propertyName, + PropertyChangeListener listener) { + getPropertyChangeSupport().addPropertyChangeListener(propertyName, listener); + } + + public void removePropertyChangeListener(String propertyName, + PropertyChangeListener listener) { + getPropertyChangeSupport().removePropertyChangeListener(propertyName, listener); + } + public WikittyExtension cloneForUpgrade() { String nextRevision = WikittyUtil.incrementMajorRevision(getVersion()); @@ -181,10 +215,14 @@ public void addField(String fieldName, FieldType type) { fields.put(fieldName, type); + // TODO EC20100610 null for old value + getPropertyChangeSupport().firePropertyChange("fields", null, tagValues); } public void removeField(String fieldName) { fields.remove(fieldName); + // TODO EC20100610 null for old value + getPropertyChangeSupport().firePropertyChange("fields", null, tagValues); } @Override @@ -194,6 +232,8 @@ public void addTagValue(String tag, String value) { tagValues.put(tag, value); + // TODO EC20100610 null for old value + getPropertyChangeSupport().firePropertyChange("tagValues", null, tagValues); } public String getTagValue(String tag) { @@ -210,7 +250,9 @@ } public void setTagValues(Map<String, String> tagValues) { + Map<String, String> oldValue = this.tagValues; this.tagValues = tagValues; + getPropertyChangeSupport().firePropertyChange("tagValues", oldValue, tagValues); } @Override
participants (1)
-
echatellier@users.nuiton.org