View Javadoc

1   /*
2    * $Id: CheckTools.java,v 1.6 2007/07/19 12:09:03 oeuillot Exp $
3    */
4   package org.rcfaces.core.internal.tools;
5   
6   import java.util.Set;
7   
8   import javax.faces.component.UIComponent;
9   import javax.faces.context.FacesContext;
10  
11  import org.apache.commons.logging.Log;
12  import org.apache.commons.logging.LogFactory;
13  import org.rcfaces.core.component.capability.ICheckedValuesCapability;
14  import org.rcfaces.core.internal.capability.ICheckComponent;
15  import org.rcfaces.core.internal.capability.ICheckRangeComponent;
16  import org.rcfaces.core.lang.provider.ICheckProvider;
17  
18  /**
19   * 
20   * @author Olivier Oeuillot (latest modification by $Author: oeuillot $)
21   * @version $Revision: 1.6 $ $Date: 2007/07/19 12:09:03 $
22   */
23  public class CheckTools extends CollectionTools {
24      private static final String REVISION = "$Revision: 1.6 $";
25  
26      private static final Log LOG = LogFactory.getLog(CheckTools.class);
27  
28      private static final IValuesAccessor CHECK_PROVIDER_VALUES_ACCESSOR = new IValuesAccessor() {
29          private static final String REVISION = "$Revision: 1.6 $";
30  
31          public int getCount(Object checkProvider) {
32              return ((ICheckProvider) checkProvider).getCheckedValuesCount();
33          }
34  
35          public Object getFirst(Object checkProvider, Object refValues) {
36              return ((ICheckProvider) checkProvider).getFirstCheckedValue();
37          }
38  
39          public Object[] listValues(Object checkProvider, Object refValues) {
40              return convertToObjectArray(((ICheckProvider) checkProvider)
41                      .getCheckedValues());
42          }
43  
44          public Object getAdaptedValues(Object value) {
45              return value;
46          }
47  
48          public void setAdaptedValues(Object checkProvider, Object checkedValues) {
49              ((ICheckProvider) checkProvider).setCheckedValues(checkedValues);
50          }
51  
52          public Object getComponentValues(UIComponent component) {
53              return ((ICheckedValuesCapability) component).getCheckedValues();
54          }
55  
56          public void setComponentValues(UIComponent component, Object values) {
57              ((ICheckedValuesCapability) component).setCheckedValues(values);
58          }
59  
60          public Class getComponentValuesType(FacesContext facesContext,
61                  UIComponent component) {
62              return ((ICheckedValuesCapability) component)
63                      .getCheckedValuesType(facesContext);
64          }
65      };
66  
67      public static int getCount(Object checkedValues) {
68          IValuesAccessor valuesAccessor = getValuesAccessor(checkedValues,
69                  ICheckProvider.class, CHECK_PROVIDER_VALUES_ACCESSOR, true);
70  
71          if (valuesAccessor == null) {
72              return 0;
73          }
74          return valuesAccessor.getCount(checkedValues);
75      }
76  
77      public static Object getFirst(Object checkedValues, Object refValue) {
78          IValuesAccessor valuesAccessor = getValuesAccessor(checkedValues,
79                  ICheckProvider.class, CHECK_PROVIDER_VALUES_ACCESSOR, true);
80  
81          if (valuesAccessor == null) {
82              return null;
83          }
84  
85          return valuesAccessor.getFirst(checkedValues, refValue);
86      }
87  
88      public static Object[] listValues(Object checkedValues, Object refValue) {
89          IValuesAccessor valuesAccessor = getValuesAccessor(checkedValues,
90                  ICheckProvider.class, CHECK_PROVIDER_VALUES_ACCESSOR, true);
91  
92          if (valuesAccessor == null) {
93              return EMPTY_VALUES;
94          }
95  
96          return valuesAccessor.listValues(checkedValues, refValue);
97      }
98  
99      public static Object getAdaptedValues(Object value, boolean useValue) {
100         IValuesAccessor valuesAccessor = getValuesAccessor(value,
101                 ICheckProvider.class, CHECK_PROVIDER_VALUES_ACCESSOR, useValue);
102 
103         if (valuesAccessor == null) {
104             return null;
105         }
106 
107         return valuesAccessor.getAdaptedValues(value);
108     }
109 
110     public static boolean setAdaptedValues(Object value, Object values) {
111         IValuesAccessor valuesAccessor = getValuesAccessor(value,
112                 ICheckProvider.class, CHECK_PROVIDER_VALUES_ACCESSOR, false);
113 
114         if (valuesAccessor == null) {
115             return false;
116         }
117 
118         valuesAccessor.setAdaptedValues(value, values);
119         return true;
120     }
121 
122     public static void check(FacesContext facesContext,
123             ICheckComponent component, Object rowValue) {
124         select((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR,
125                 rowValue);
126     }
127 
128     public static void check(FacesContext facesContext,
129             ICheckRangeComponent component, int index) {
130         select((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR, index);
131     }
132 
133     public static void check(FacesContext facesContext,
134             ICheckRangeComponent component, int indexes[]) {
135         select((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR, indexes);
136     }
137 
138     public static void check(FacesContext facesContext,
139             ICheckRangeComponent component, int start, int end) {
140         select((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR, start,
141                 end);
142     }
143 
144     public static void checkAll(FacesContext facesContext,
145             ICheckComponent component) {
146         selectAll((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR);
147     }
148 
149     public static void uncheck(FacesContext facesContext,
150             ICheckComponent component, Object rowValue) {
151         deselect((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR,
152                 rowValue);
153     }
154 
155     public static void uncheck(FacesContext facesContext,
156             ICheckComponent component, int index) {
157         deselect((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR, index);
158     }
159 
160     public static void uncheck(FacesContext facesContext,
161             ICheckComponent component, int indexes[]) {
162         deselect((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR,
163                 indexes);
164     }
165 
166     public static void uncheck(FacesContext facesContext,
167             ICheckComponent component, int start, int end) {
168         deselect((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR,
169                 start, end);
170     }
171 
172     public static void uncheckAll(FacesContext facesContext,
173             ICheckComponent component) {
174         deselectAll((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR);
175     }
176 
177     public static void setCheckValues(FacesContext facesContext,
178             ICheckComponent component, Set valuesSet) {
179 
180         setValues((UIComponent) component, CHECK_PROVIDER_VALUES_ACCESSOR,
181                 valuesSet);
182     }
183 
184     public static Set checkValuesToSet(FacesContext facesContext,
185             ICheckComponent component, boolean immutable) {
186         return valuesToSet((UIComponent) component,
187                 CHECK_PROVIDER_VALUES_ACCESSOR, immutable);
188     }
189 }