View Javadoc

1   /*
2    * $Id: ServiceEvent.java,v 1.18 2011/06/16 09:29:40 jbmeslin Exp $
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   * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
16   * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:40 $
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  }