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;