1
2
3
4
5
6
7
8
9
10
11 package de.jaret.util.misc;
12
13 import java.beans.PropertyChangeListener;
14 import java.beans.PropertyChangeSupport;
15
16
17
18
19
20
21
22 public class PropertyObservableBase implements PropertyObservable {
23
24 protected PropertyChangeSupport _propertyChangeSupport;
25
26
27
28
29
30
31
32
33 public static boolean isRealModification(Object o1, Object o2) {
34 if (o1 == null && o2 == null) {
35 return false;
36 }
37 if (o1 != null && o2 == null) {
38 return true;
39 }
40 if (o2 != null && o1 == null) {
41 return true;
42 }
43 return !o1.equals(o2);
44 }
45
46
47
48
49
50
51
52
53 protected void firePropertyChange(String propName, Object oldVal, Object newVal) {
54 if (_propertyChangeSupport != null) {
55 _propertyChangeSupport.firePropertyChange(propName, oldVal, newVal);
56 }
57 }
58
59
60
61
62 public synchronized void addPropertyChangeListener(PropertyChangeListener listener) {
63 if (_propertyChangeSupport == null) {
64 _propertyChangeSupport = new PropertyChangeSupport(this);
65 }
66 _propertyChangeSupport.addPropertyChangeListener(listener);
67 }
68
69
70
71
72 public void removePropertyChangeListener(PropertyChangeListener listener) {
73 if (_propertyChangeSupport != null) {
74 _propertyChangeSupport.removePropertyChangeListener(listener);
75 }
76 }
77
78 }