Mercurial > projects > dwt2
view java/src/java/beans/PropertyChangeSupport.d @ 12:bc29606a740c
Added dwt-addons in original directory structure of eclipse.org
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Sat, 14 Mar 2009 18:23:29 +0100 |
parents | |
children | 9b96950f2c3c |
line wrap: on
line source
module java.beans.PropertyChangeSupport; import java.lang.all; import java.beans.PropertyChangeListener; import java.beans.PropertyChangeEvent; class PropertyChangeSupport { PropertyChangeListener[][ String ] listeners; Object obj; this(Object obj){ this.obj = obj; } void addPropertyChangeListener(PropertyChangeListener listener){ addPropertyChangeListener( "", listener ); } void addPropertyChangeListener(String propertyName, PropertyChangeListener listener){ PropertyChangeListener[] list; if( auto l = propertyName in listeners ){ list = *l; } list ~= listener; listeners[ propertyName.dup ] = list; } void firePropertyChange(String propertyName, bool oldValue, bool newValue){ firePropertyChange( propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue) ); } void firePropertyChange(String propertyName, int oldValue, int newValue){ firePropertyChange( propertyName, new Integer(oldValue), new Integer(newValue) ); } void firePropertyChange(String propertyName, Object oldValue, Object newValue){ PropertyChangeListener[] list; if( auto l = propertyName in listeners ){ list = *l; } auto evt = new PropertyChangeEvent( obj, propertyName, oldValue, newValue ); foreach( listener; list ){ if( listener ){ listener.propertyChange( evt ); } } } void removePropertyChangeListener(PropertyChangeListener listener){ removePropertyChangeListener( "", listener ); } void removePropertyChangeListener(String propertyName, PropertyChangeListener listener){ if( auto list = propertyName in listeners ){ list.length = tango.core.Array.remove( *list, listener ); if( list.length > 0 ){ listeners[ propertyName.dup ] = *list; } else{ listeners.remove( propertyName ); } } } }