Mercurial > projects > dwt-addons
comparison dwtx/dwtxhelper/Bean.d @ 108:d79c6b934729
Impl of Bean
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Thu, 07 Aug 2008 16:39:52 +0200 |
parents | 86617aa6b5dd |
children | 9cb927d16b0a |
comparison
equal
deleted
inserted
replaced
107:ffa785dc65e5 | 108:d79c6b934729 |
---|---|
38 void propertyChange(PropertyChangeEvent evt); | 38 void propertyChange(PropertyChangeEvent evt); |
39 } | 39 } |
40 | 40 |
41 | 41 |
42 class PropertyChangeSupport { | 42 class PropertyChangeSupport { |
43 this(Object){ | 43 PropertyChangeListener[][ String ] listeners; |
44 Object obj; | |
45 this(Object obj){ | |
46 this.obj = obj; | |
44 } | 47 } |
45 void addPropertyChangeListener(PropertyChangeListener listener){} | 48 void addPropertyChangeListener(PropertyChangeListener listener){ |
46 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener){} | 49 addPropertyChangeListener( "", listener ); |
47 void firePropertyChange(String propertyName, bool oldValue, bool newValue){} | 50 } |
48 void firePropertyChange(String propertyName, int oldValue, int newValue){} | 51 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener){ |
49 void firePropertyChange(String propertyName, Object oldValue, Object newValue){} | 52 PropertyChangeListener[] list = listeners[ propertyName ]; |
50 void removePropertyChangeListener(PropertyChangeListener listener){} | 53 list ~= listener; |
51 void removePropertyChangeListener(String propertyName, PropertyChangeListener listener){} | 54 listeners[ propertyName.dup ] = list; |
55 } | |
56 void firePropertyChange(String propertyName, bool oldValue, bool newValue){ | |
57 firePropertyChange( propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue) ); | |
58 } | |
59 void firePropertyChange(String propertyName, int oldValue, int newValue){ | |
60 firePropertyChange( propertyName, new Integer(oldValue), new Integer(newValue) ); | |
61 } | |
62 void firePropertyChange(String propertyName, Object oldValue, Object newValue){ | |
63 PropertyChangeListener[] list = listeners[ propertyName ]; | |
64 auto evt = new PropertyChangeEvent( obj, propertyName, oldValue, newValue ); | |
65 foreach( listener; list ){ | |
66 if( listener ){ | |
67 listener.propertyChange( evt ); | |
68 } | |
69 } | |
70 } | |
71 void removePropertyChangeListener(PropertyChangeListener listener){ | |
72 removePropertyChangeListener( "", listener ); | |
73 } | |
74 void removePropertyChangeListener(String propertyName, PropertyChangeListener listener){ | |
75 if( auto list = propertyName in listeners ){ | |
76 tango.core.Array.remove( *list, listener ); | |
77 if( list.length > 0 ){ | |
78 listeners[ propertyName.dup ] = *list; | |
79 } | |
80 else{ | |
81 listeners.remove( propertyName ); | |
82 } | |
83 } | |
84 } | |
52 } | 85 } |
53 | 86 |
54 | 87 |