1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.extensions.validator.trinidad.initializer.component;
20
21 import org.apache.myfaces.extensions.validator.core.metadata.CommonMetaDataKeys;
22 import org.apache.myfaces.extensions.validator.internal.ToDo;
23 import org.apache.myfaces.extensions.validator.internal.Priority;
24 import org.apache.myfaces.extensions.validator.internal.UsageInformation;
25 import org.apache.myfaces.extensions.validator.internal.UsageCategory;
26 import org.apache.myfaces.extensions.validator.trinidad.ExtValTrinidadClientValidatorWrapper;
27 import org.apache.myfaces.trinidad.validator.LongRangeValidator;
28 import org.apache.myfaces.trinidad.validator.ClientValidator;
29
30 import javax.faces.component.EditableValueHolder;
31 import javax.faces.component.UIComponent;
32 import javax.faces.context.FacesContext;
33 import java.util.Map;
34
35
36
37
38 @ToDo(value = Priority.MEDIUM, description = "skipValidationSupport for client-side validation")
39 @UsageInformation(UsageCategory.INTERNAL)
40 class LongRangeInitializer extends TrinidadComponentInitializer
41 {
42 @Override
43 public boolean configureTrinidadComponent(FacesContext facesContext, UIComponent uiComponent,
44 Map<String, Object> metaData)
45 {
46 boolean informationAdded = false;
47 LongRangeValidator longRangeValidator = (LongRangeValidator)facesContext.getApplication()
48 .createValidator("org.apache.myfaces.trinidad.LongRange");
49
50 Object min = null;
51 if(metaData.containsKey(CommonMetaDataKeys.RANGE_MIN))
52 {
53 min = metaData.get(CommonMetaDataKeys.RANGE_MIN);
54 }
55 else if(metaData.containsKey(CommonMetaDataKeys.RANGE_MIN_DEFAULT))
56 {
57 min = metaData.get(CommonMetaDataKeys.RANGE_MIN_DEFAULT);
58 }
59
60 if(min instanceof Long)
61 {
62 longRangeValidator.setMinimum((Long)min);
63 informationAdded = true;
64 }
65
66 Object max = null;
67 if(metaData.containsKey(CommonMetaDataKeys.RANGE_MAX))
68 {
69 max = metaData.get(CommonMetaDataKeys.RANGE_MAX);
70 }
71 else if(metaData.containsKey(CommonMetaDataKeys.RANGE_MAX_DEFAULT))
72 {
73 max = metaData.get(CommonMetaDataKeys.RANGE_MAX_DEFAULT);
74 }
75
76 if(max instanceof Long)
77 {
78 longRangeValidator.setMaximum((Long)max);
79 informationAdded = true;
80 }
81
82 if(informationAdded &&
83 longRangeValidator instanceof ClientValidator && uiComponent instanceof EditableValueHolder)
84 {
85 ((EditableValueHolder)uiComponent).addValidator(
86 new ExtValTrinidadClientValidatorWrapper((ClientValidator)longRangeValidator));
87
88 return true;
89 }
90 return false;
91 }
92 }