View Javadoc

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 }