1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19 package javax.faces.component;
20
21 import javax.el.ValueExpression;
22
23 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFComponent;
24 import org.apache.myfaces.buildtools.maven2.plugin.builder.annotation.JSFProperty;
25
26
27
28
29
30
31
32
33 @JSFComponent(defaultRendererType = "javax.faces.Image")
34 public class UIGraphic extends UIComponentBase
35 {
36 public static final String COMPONENT_TYPE = "javax.faces.Graphic";
37 public static final String COMPONENT_FAMILY = "javax.faces.Graphic";
38
39 private static final String URL_PROPERTY = "url";
40 private static final String VALUE_PROPERTY = "value";
41
42
43
44
45 public UIGraphic()
46 {
47 setRendererType("javax.faces.Image");
48 }
49
50 @Override
51 public String getFamily()
52 {
53 return COMPONENT_FAMILY;
54 }
55
56
57
58
59 @JSFProperty
60 public String getUrl()
61 {
62 return (String) getValue();
63 }
64
65 public void setUrl(String url)
66 {
67 setValue(url);
68 }
69
70 @Override
71 public ValueExpression getValueExpression(String name)
72 {
73 if (URL_PROPERTY.equals(name))
74 {
75 return super.getValueExpression(VALUE_PROPERTY);
76 }
77 else
78 {
79 return super.getValueExpression(name);
80 }
81 }
82
83 @Override
84 public void setValueExpression(String name, ValueExpression binding)
85 {
86 if (URL_PROPERTY.equals(name))
87 {
88 super.setValueExpression(VALUE_PROPERTY, binding);
89 }
90 else
91 {
92 super.setValueExpression(name, binding);
93 }
94 }
95
96
97
98
99
100
101
102 @JSFProperty
103 public Object getValue()
104 {
105 return getStateHelper().eval(PropertyKeys.value);
106 }
107
108 public void setValue(Object value)
109 {
110 getStateHelper().put(PropertyKeys.value, value );
111 }
112
113 enum PropertyKeys
114 {
115 value
116 }
117 }