Mercurial > projects > dwt-addons
changeset 111:c0489adc02b9
merge
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 07 Aug 2008 17:39:11 +0200 |
parents | a26bb7394581 (current diff) e4589de2eed6 (diff) |
children | 9cb927d16b0a |
files | dwtx/dwtxhelper/JHashMap.d |
diffstat | 3 files changed, 41 insertions(+), 40 deletions(-) [+] |
line wrap: on
line diff
--- a/dwtx/dwtxhelper/Bean.d Thu Aug 07 17:37:04 2008 +0200 +++ b/dwtx/dwtxhelper/Bean.d Thu Aug 07 17:39:11 2008 +0200 @@ -40,15 +40,48 @@ class PropertyChangeSupport { - this(Object){ + 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 = listeners[ propertyName ]; + 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 addPropertyChangeListener(PropertyChangeListener listener){} - void addPropertyChangeListener(String propertyName, PropertyChangeListener listener){} - void firePropertyChange(String propertyName, bool oldValue, bool newValue){} - void firePropertyChange(String propertyName, int oldValue, int newValue){} - void firePropertyChange(String propertyName, Object oldValue, Object newValue){} - void removePropertyChangeListener(PropertyChangeListener listener){} - void removePropertyChangeListener(String propertyName, PropertyChangeListener listener){} + void firePropertyChange(String propertyName, Object oldValue, Object newValue){ + PropertyChangeListener[] list = listeners[ propertyName ]; + 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 ){ + tango.core.Array.remove( *list, listener ); + if( list.length > 0 ){ + listeners[ propertyName.dup ] = *list; + } + else{ + listeners.remove( propertyName ); + } + } + } }
--- a/dwtx/dwtxhelper/JHashMap.d Thu Aug 07 17:37:04 2008 +0200 +++ /dev/null Thu Jan 01 00:00:00 1970 +0000 @@ -1,21 +0,0 @@ -module dwtx.dwtxhelper.JHashMap; - -import tango.util.collection.HashMap; -import tango.core.Traits; - -class JHashMapT(K,V) : HashMap!(K,V) { - this(){ - super(); - } - - static if( is(V==class) || is(V==interface) || isDynamicArrayType!(V) ){ - public V find( K key ){ - if( containsKey(key) ){ - return get(key); - } - return null; - } - } -} - -alias JHashMapT!(Object,Object) JHashMap;
--- a/dwtx/jface/resource/FontRegistry.d Thu Aug 07 17:37:04 2008 +0200 +++ b/dwtx/jface/resource/FontRegistry.d Thu Aug 07 17:39:11 2008 +0200 @@ -18,17 +18,6 @@ import dwtx.jface.resource.JFaceResources; import dwtx.jface.resource.DataFormatException; -import dwtx.dwtxhelper.JHashMap; -// import java.util.Arrays; -// import java.util.Collections; -// import java.util.Enumeration; -// import java.util.HashMap; -// import java.util.Iterator; -// import java.util.List; -// import java.util.Map; -// import java.util.MissingResourceException; -// import java.util.Set; - import dwt.DWT; import dwt.graphics.Font; import dwt.graphics.FontData;