1
2
3
4
5 package org.rcfaces.core.event;
6
7 import javax.faces.component.UIComponent;
8 import javax.faces.event.ActionEvent;
9 import javax.faces.event.FacesListener;
10
11 import org.rcfaces.core.internal.service.NullProgressMonitor;
12 import org.rcfaces.core.progressMonitor.IProgressMonitor;
13
14
15
16
17
18 public class ServiceEvent extends ActionEvent {
19
20 private static final String REVISION = "$Revision: 1.18 $";
21
22 private static final long serialVersionUID = -5716525897091852723L;
23
24 private final Object data;
25
26 private IProgressMonitor progressMonitor;
27
28 public ServiceEvent(UIComponent component, Object data) {
29 super(component);
30
31 this.data = data;
32 }
33
34 public boolean isAppropriateListener(FacesListener listener) {
35 return (listener instanceof IServiceEventListener);
36 }
37
38 public void processListener(FacesListener listener) {
39 ((IServiceEventListener) listener).processServiceEvent(this);
40 }
41
42 public final Object getData() {
43 return data;
44 }
45
46 public IProgressMonitor getProgressMonitor() {
47 if (progressMonitor != null) {
48 return progressMonitor;
49 }
50 progressMonitor = createProgressMonitor();
51
52 return progressMonitor;
53 }
54
55 protected void resetProgressMonitor() {
56 progressMonitor = null;
57 }
58
59 protected IProgressMonitor createProgressMonitor() {
60 return new NullProgressMonitor();
61 }
62 }