Mercurial > projects > dwt-addons
annotate dwtx/dwtxhelper/Bean.d @ 112:9cb927d16b0a
Fix missing import
author | Frank Benoit <benoit@tionex.de> |
---|---|
date | Fri, 08 Aug 2008 00:21:19 +0200 |
parents | d79c6b934729 |
children | 5a082a5e1a5b |
rev | line source |
---|---|
100
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
1 module dwtx.dwtxhelper.Bean; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
2 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
3 import dwt.dwthelper.utils; |
112 | 4 static import tango.core.Array; |
100
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
5 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
6 class PropertyChangeEvent : EventObject { |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
7 private String propertyName; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
8 private Object oldValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
9 private Object newValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
10 private Object propagationId; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
11 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
12 this( Object source, String propertyName, Object oldValue, Object newValue) { |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
13 super( source ); |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
14 this.propertyName = propertyName; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
15 this.oldValue = oldValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
16 this.newValue = newValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
17 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
18 Object getNewValue(){ |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
19 return newValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
20 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
21 Object getOldValue(){ |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
22 return oldValue; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
23 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
24 Object getPropagationId(){ |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
25 return propagationId; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
26 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
27 String getPropertyName(){ |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
28 return propertyName; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
29 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
30 void setPropagationId(Object propagationId){ |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
31 this.propagationId = propagationId; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
32 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
33 public override String toString() { |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
34 return this.classinfo.name ~ "[source=" ~ source.toString() ~ "]"; |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
35 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
36 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
37 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
38 interface PropertyChangeListener { |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
39 void propertyChange(PropertyChangeEvent evt); |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
40 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
41 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
42 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
43 class PropertyChangeSupport { |
108 | 44 PropertyChangeListener[][ String ] listeners; |
45 Object obj; | |
46 this(Object obj){ | |
47 this.obj = obj; | |
48 } | |
49 void addPropertyChangeListener(PropertyChangeListener listener){ | |
50 addPropertyChangeListener( "", listener ); | |
51 } | |
52 void addPropertyChangeListener(String propertyName, PropertyChangeListener listener){ | |
53 PropertyChangeListener[] list = listeners[ propertyName ]; | |
54 list ~= listener; | |
55 listeners[ propertyName.dup ] = list; | |
56 } | |
57 void firePropertyChange(String propertyName, bool oldValue, bool newValue){ | |
58 firePropertyChange( propertyName, Boolean.valueOf(oldValue), Boolean.valueOf(newValue) ); | |
59 } | |
60 void firePropertyChange(String propertyName, int oldValue, int newValue){ | |
61 firePropertyChange( propertyName, new Integer(oldValue), new Integer(newValue) ); | |
100
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
62 } |
108 | 63 void firePropertyChange(String propertyName, Object oldValue, Object newValue){ |
64 PropertyChangeListener[] list = listeners[ propertyName ]; | |
65 auto evt = new PropertyChangeEvent( obj, propertyName, oldValue, newValue ); | |
66 foreach( listener; list ){ | |
67 if( listener ){ | |
68 listener.propertyChange( evt ); | |
69 } | |
70 } | |
71 } | |
72 void removePropertyChangeListener(PropertyChangeListener listener){ | |
73 removePropertyChangeListener( "", listener ); | |
74 } | |
75 void removePropertyChangeListener(String propertyName, PropertyChangeListener listener){ | |
76 if( auto list = propertyName in listeners ){ | |
77 tango.core.Array.remove( *list, listener ); | |
78 if( list.length > 0 ){ | |
79 listeners[ propertyName.dup ] = *list; | |
80 } | |
81 else{ | |
82 listeners.remove( propertyName ); | |
83 } | |
84 } | |
85 } | |
100
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
86 } |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
87 |
86617aa6b5dd
More helper classes, needed by draw2d
Frank Benoit <benoit@tionex.de>
parents:
diff
changeset
|
88 |