View Javadoc

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