svn-document-layout / trunk / org.gvsig.app.document.layout2.app / org.gvsig.app.document.layout2.app.mainplugin / src / main / java / org / gvsig / app / project / documents / layout / CustomizableObserverHelper.java @ 772
History | View | Annotate | Download (962 Bytes)
1 |
package org.gvsig.app.project.documents.layout; |
---|---|
2 |
|
3 |
import java.util.ArrayList; |
4 |
import java.util.List; |
5 |
|
6 |
import org.gvsig.tools.observer.Observable; |
7 |
|
8 |
/**
|
9 |
* The goal of this class is to be extended internally by a
|
10 |
* class wishing to manage specific listeners.
|
11 |
*
|
12 |
* @author Cesar Martinez
|
13 |
*/
|
14 |
public abstract class CustomizableObserverHelper { |
15 |
|
16 |
private List listeners = new ArrayList(); |
17 |
|
18 |
public synchronized void addObserver(Object o) { |
19 |
if( this.listeners.contains(o) ) { |
20 |
return;
|
21 |
} |
22 |
this.listeners.add(o);
|
23 |
} |
24 |
|
25 |
public synchronized void deleteObserver(Object o) { |
26 |
this.listeners.remove(o);
|
27 |
} |
28 |
|
29 |
public synchronized void deleteObservers() { |
30 |
this.listeners = new ArrayList(); |
31 |
} |
32 |
|
33 |
public synchronized void notifyObservers(Object observable, Object data) { |
34 |
for(int i =0; i<this.listeners.size(); i++ ) { |
35 |
Object o = (Object) this.listeners.get(i); |
36 |
doNotify(o, data); |
37 |
} |
38 |
|
39 |
} |
40 |
|
41 |
protected abstract void doNotify(Object listener, Object data); |
42 |
} |
43 |
|