Statistics
| Revision:

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 153 cmartinez
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
}