1 package org.rcfaces.core.internal.taglib;
2
3 import javax.faces.application.Application;
4 import javax.faces.component.UIComponent;
5 import org.rcfaces.core.internal.component.Properties;
6 import javax.el.ValueExpression;
7 import javax.faces.component.UIViewRoot;
8 import org.apache.commons.logging.Log;
9 import javax.servlet.jsp.tagext.Tag;
10 import org.apache.commons.logging.LogFactory;
11 import org.rcfaces.core.internal.tools.ListenersTools1_2;
12 import org.rcfaces.core.internal.tools.ListenersTools;
13 import org.rcfaces.core.component.SelectImageItemComponent;
14 import javax.faces.context.FacesContext;
15
16 public class SelectImageItemTag extends CameliaTag implements Tag {
17
18
19 private static final Log LOG=LogFactory.getLog(SelectImageItemTag.class);
20
21 private ValueExpression imageURL;
22 private ValueExpression itemValue;
23 private ValueExpression itemDescription;
24 private ValueExpression itemLabel;
25 private ValueExpression itemDisabled;
26 public String getComponentType() {
27 return SelectImageItemComponent.COMPONENT_TYPE;
28 }
29
30 public final void setImageURL(ValueExpression imageURL) {
31 this.imageURL = imageURL;
32 }
33
34 public final void setItemValue(ValueExpression itemValue) {
35 this.itemValue = itemValue;
36 }
37
38 public final void setItemDescription(ValueExpression itemDescription) {
39 this.itemDescription = itemDescription;
40 }
41
42 public final void setItemLabel(ValueExpression itemLabel) {
43 this.itemLabel = itemLabel;
44 }
45
46 public final void setItemDisabled(ValueExpression itemDisabled) {
47 this.itemDisabled = itemDisabled;
48 }
49
50 protected void setProperties(UIComponent uiComponent) {
51 if (LOG.isDebugEnabled()) {
52 if (SelectImageItemComponent.COMPONENT_TYPE==getComponentType()) {
53 LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
54 }
55 LOG.debug(" imageURL='"+imageURL+"'");
56 LOG.debug(" itemValue='"+itemValue+"'");
57 LOG.debug(" itemDescription='"+itemDescription+"'");
58 LOG.debug(" itemLabel='"+itemLabel+"'");
59 LOG.debug(" itemDisabled='"+itemDisabled+"'");
60 }
61 if ((uiComponent instanceof SelectImageItemComponent)==false) {
62 if (uiComponent instanceof UIViewRoot) {
63 throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
64 }
65 throw new IllegalStateException("Component specified by tag is not instanceof of 'SelectImageItemComponent'.");
66 }
67
68 super.setProperties(uiComponent);
69
70 SelectImageItemComponent component = (SelectImageItemComponent) uiComponent;
71 FacesContext facesContext = getFacesContext();
72
73 if (imageURL != null) {
74 if (imageURL.isLiteralText()==false) {
75 component.setValueExpression(Properties.IMAGE_URL, imageURL);
76
77 } else {
78 component.setImageURL(imageURL.getExpressionString());
79 }
80 }
81
82 if (itemValue != null) {
83 if (itemValue.isLiteralText()==false) {
84 component.setValueExpression(Properties.ITEM_VALUE, itemValue);
85
86 } else {
87 component.setItemValue(itemValue.getExpressionString());
88 }
89 }
90
91 if (itemDescription != null) {
92 if (itemDescription.isLiteralText()==false) {
93 component.setValueExpression(Properties.ITEM_DESCRIPTION, itemDescription);
94
95 } else {
96 component.setItemDescription(itemDescription.getExpressionString());
97 }
98 }
99
100 if (itemLabel != null) {
101 if (itemLabel.isLiteralText()==false) {
102 component.setValueExpression(Properties.ITEM_LABEL, itemLabel);
103
104 } else {
105 component.setItemLabel(itemLabel.getExpressionString());
106 }
107 }
108
109 if (itemDisabled != null) {
110 if (itemDisabled.isLiteralText()==false) {
111 component.setValueExpression(Properties.ITEM_DISABLED, itemDisabled);
112
113 } else {
114 component.setItemDisabled(getBool(itemDisabled.getExpressionString()));
115 }
116 }
117 }
118
119 public void release() {
120 imageURL = null;
121 itemValue = null;
122 itemDescription = null;
123 itemLabel = null;
124 itemDisabled = null;
125
126 super.release();
127 }
128
129 }