summaryrefslogtreecommitdiff
path: root/src/ext/plantuml/com/ctreber/aclib/gui/MonitoredObject.java
blob: 8bb4824929c6d77f5fd5b173af54af96f4a19890 (plain)
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
package ext.plantuml.com.ctreber.aclib.gui;

import java.util.ArrayList;
import java.util.Iterator;
import java.util.List;

/**
 * <p>
 * </p>
 * 
 * <p>
 * &copy; 2002 Christian Treber, ct@ctreber.com
 * </p>
 * 
 * @author Christian Treber, ct@ctreber.com
 * 
 */
abstract public class MonitoredObject {
	private List fListeners = new ArrayList();

	public void addChangeListener(MOChangeListener pListener) {
		fListeners.add(pListener);
	}

	public void removeChangeListener(MOChangeListener pListener) {
		fListeners.remove(pListener);
	}

	void fireValueChanged() {
		final Iterator lIt = fListeners.iterator();
		while (lIt.hasNext()) {
			MOChangeListener lListener = (MOChangeListener) lIt.next();
			lListener.valueChanged(this);
		}
	}

	/**
	 * <p>
	 * Check value agains (possibly defined) constraints.
	 * 
	 * @return True if value is within range or range is not checked.
	 */
	abstract public boolean checkRange();
}