01: /*
02: * JFox - The most lightweight Java EE Application Server!
03: * more details please visit http://www.huihoo.org/jfox or http://www.jfox.org.cn.
04: *
05: * JFox is licenced and re-distributable under GNU LGPL.
06: */
07: package org.jfox.framework;
08:
09: import java.util.HashSet;
10: import java.util.Set;
11:
12: import org.jfox.framework.event.ComponentEvent;
13: import org.jfox.framework.event.ComponentListener;
14: import org.jfox.framework.event.ModuleEvent;
15: import org.jfox.framework.event.ModuleListener;
16: import org.jfox.framework.event.FrameworkEvent;
17: import org.jfox.framework.event.FrameworkListener;
18:
19: /**
20: * 事件管�器。注册/分�所有的事件
21: *
22: * @author <a href="mailto:jfox.young@gmail.com">Young Yang</a>
23: */
24: public class EventManager {
25:
26: private Set<FrameworkListener> frameworkListeners = new HashSet<FrameworkListener>();
27:
28: private Set<ModuleListener> moduleListeners = new HashSet<ModuleListener>();
29:
30: private Set<ComponentListener> componentListeners = new HashSet<ComponentListener>();
31:
32: public EventManager() {
33:
34: }
35:
36: public synchronized void registerFrameworkListener(
37: FrameworkListener frameworkListener) {
38: frameworkListeners.add(frameworkListener);
39: }
40:
41: public synchronized void unregisterFrameworkListener(
42: FrameworkListener frameworkListener) {
43: frameworkListeners.remove(frameworkListener);
44: }
45:
46: public synchronized void registerModuleListener(
47: ModuleListener moduleListener) {
48: moduleListeners.add(moduleListener);
49: }
50:
51: public synchronized void unregisterModuleListener(
52: ModuleListener moduleListener) {
53: moduleListeners.remove(moduleListener);
54: }
55:
56: public synchronized void registerComponentListener(
57: ComponentListener componentListener) {
58: componentListeners.add(componentListener);
59: }
60:
61: public synchronized void unregisterComponentListener(
62: ComponentListener componentListener) {
63: componentListeners.remove(componentListener);
64: }
65:
66: public synchronized void fireFrameworkEvent(
67: FrameworkEvent frameworkEvent) {
68: for (FrameworkListener listener : frameworkListeners) {
69: listener.frameworkEvent(frameworkEvent);
70: }
71: }
72:
73: public synchronized void fireModuleEvent(ModuleEvent moduleEvent) {
74: for (ModuleListener listener : moduleListeners) {
75: listener.moduleChanged(moduleEvent);
76: }
77: }
78:
79: public synchronized void fireComponentEvent(
80: ComponentEvent componentEvent) {
81: for (ComponentListener listener : componentListeners) {
82: listener.componentChanged(componentEvent);
83: }
84: }
85:
86: public static void main(String[] args) {
87:
88: }
89: }
|