1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package org.apache.myfaces.view.facelets.tag.jsf.core;
20
21 import javax.el.ELException;
22 import javax.faces.FacesException;
23 import javax.faces.convert.Converter;
24 import javax.faces.convert.NumberConverter;
25 import javax.faces.view.facelets.ConverterConfig;
26 import javax.faces.view.facelets.ConverterHandler;
27 import javax.faces.view.facelets.FaceletContext;
28 import javax.faces.view.facelets.FaceletException;
29 import javax.faces.view.facelets.MetaRuleset;
30 import javax.faces.view.facelets.TagAttribute;
31
32 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFFaceletTag;
33 import org.apache.myfaces.view.facelets.tag.jsf.ComponentSupport;
34
35
36
37
38
39
40
41
42
43 @JSFFaceletTag(
44 name = "f:convertNumber",
45 bodyContent = "empty",
46 converterClass="javax.faces.convert.NumberConverter")
47 public final class ConvertNumberHandler extends ConverterHandler
48 {
49
50 private final TagAttribute locale;
51
52
53
54
55 public ConvertNumberHandler(ConverterConfig config)
56 {
57 super(config);
58 this.locale = this.getAttribute("locale");
59 }
60
61
62
63
64
65
66
67 protected Converter createConverter(FaceletContext ctx) throws FacesException, ELException, FaceletException
68 {
69 return ctx.getFacesContext().getApplication().createConverter(NumberConverter.CONVERTER_ID);
70 }
71
72
73
74
75
76
77 public void setAttributes(FaceletContext ctx, Object obj)
78 {
79 super.setAttributes(ctx, obj);
80 NumberConverter c = (NumberConverter) obj;
81 if (this.locale != null)
82 {
83 c.setLocale(ComponentSupport.getLocale(ctx, this.locale));
84 }
85 }
86
87 protected MetaRuleset createMetaRuleset(Class type)
88 {
89 return super.createMetaRuleset(type).ignore("locale");
90 }
91
92 }