1
2
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
22
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 }