View Javadoc

1   /*
2    * $Id: SortEvent.java,v 1.18 2011/06/16 09:29:40 jbmeslin Exp $
3    * 
4    */
5   package org.rcfaces.core.event;
6   
7   import java.util.Comparator;
8   
9   import javax.faces.component.UIComponent;
10  import javax.faces.context.FacesContext;
11  import javax.faces.event.ActionEvent;
12  import javax.faces.event.FacesListener;
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 SortEvent extends ActionEvent {
19      private static final String REVISION = "$Revision: 1.18 $";
20  
21      private static final long serialVersionUID = -2421248938907618744L;
22  
23      private final Object dataModel;
24  
25      private Comparator sortComparator;
26  
27      private ISortConverter sortConverter;
28  
29      public SortEvent(UIComponent component) {
30          this(component, null);
31      }
32  
33      public SortEvent(UIComponent component, Object dataModel) {
34          super(component);
35          this.dataModel = dataModel;
36      }
37  
38      public boolean isAppropriateListener(FacesListener listener) {
39          return (listener instanceof ISortListener);
40      }
41  
42      public void processListener(FacesListener listener) {
43          ((ISortListener) listener).processSort(this);
44      }
45  
46      public void setSortComparator(Comparator comparator) {
47          this.sortComparator = comparator;
48      }
49  
50      public Comparator getSortComparator() {
51          return sortComparator;
52      }
53  
54      public final ISortConverter getSortConverter() {
55          return sortConverter;
56      }
57  
58      public final void setSortConverter(ISortConverter converter) {
59          this.sortConverter = converter;
60      }
61  
62      public final Object getDataModel() {
63          return dataModel;
64      }
65  
66      /**
67       * 
68       * @author Olivier Oeuillot (latest modification by $Author: jbmeslin $)
69       * @version $Revision: 1.18 $ $Date: 2011/06/16 09:29:40 $
70       */
71      public interface ISortConverter {
72          Object convertValue(FacesContext facesContext, UIComponent component,
73                  Object value);
74      }
75  }