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.component.ImageCheckButtonComponent;
12  import org.rcfaces.core.internal.tools.ListenersTools1_2;
13  import org.rcfaces.core.internal.tools.ListenersTools;
14  import javax.faces.context.FacesContext;
15  
16  public class ImageCheckButtonTag extends CheckButtonTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(ImageCheckButtonTag.class);
20  
21  	private ValueExpression imageURL;
22  	private ValueExpression disabledImageURL;
23  	private ValueExpression hoverImageURL;
24  	private ValueExpression selectedImageURL;
25  	private ValueExpression border;
26  	private ValueExpression borderType;
27  	private ValueExpression imageHeight;
28  	private ValueExpression imageWidth;
29  	public String getComponentType() {
30  		return ImageCheckButtonComponent.COMPONENT_TYPE;
31  	}
32  
33  	public final void setImageURL(ValueExpression imageURL) {
34  		this.imageURL = imageURL;
35  	}
36  
37  	public final void setDisabledImageURL(ValueExpression disabledImageURL) {
38  		this.disabledImageURL = disabledImageURL;
39  	}
40  
41  	public final void setHoverImageURL(ValueExpression hoverImageURL) {
42  		this.hoverImageURL = hoverImageURL;
43  	}
44  
45  	public final void setSelectedImageURL(ValueExpression selectedImageURL) {
46  		this.selectedImageURL = selectedImageURL;
47  	}
48  
49  	public final void setBorder(ValueExpression border) {
50  		this.border = border;
51  	}
52  
53  	public final void setBorderType(ValueExpression borderType) {
54  		this.borderType = borderType;
55  	}
56  
57  	public final void setImageHeight(ValueExpression imageHeight) {
58  		this.imageHeight = imageHeight;
59  	}
60  
61  	public final void setImageWidth(ValueExpression imageWidth) {
62  		this.imageWidth = imageWidth;
63  	}
64  
65  	protected void setProperties(UIComponent uiComponent) {
66  		if (LOG.isDebugEnabled()) {
67  			if (ImageCheckButtonComponent.COMPONENT_TYPE==getComponentType()) {
68  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
69  			}
70  			LOG.debug("  imageURL='"+imageURL+"'");
71  			LOG.debug("  disabledImageURL='"+disabledImageURL+"'");
72  			LOG.debug("  hoverImageURL='"+hoverImageURL+"'");
73  			LOG.debug("  selectedImageURL='"+selectedImageURL+"'");
74  			LOG.debug("  border='"+border+"'");
75  			LOG.debug("  borderType='"+borderType+"'");
76  			LOG.debug("  imageHeight='"+imageHeight+"'");
77  			LOG.debug("  imageWidth='"+imageWidth+"'");
78  		}
79  		if ((uiComponent instanceof ImageCheckButtonComponent)==false) {
80  			if (uiComponent instanceof UIViewRoot) {
81  				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
82  			}
83  			throw new IllegalStateException("Component specified by tag is not instanceof of 'ImageCheckButtonComponent'.");
84  		}
85  
86  		super.setProperties(uiComponent);
87  
88  		ImageCheckButtonComponent component = (ImageCheckButtonComponent) uiComponent;
89  		FacesContext facesContext = getFacesContext();
90  
91  		if (imageURL != null) {
92  			if (imageURL.isLiteralText()==false) {
93  				component.setValueExpression(Properties.IMAGE_URL, imageURL);
94  
95  			} else {
96  				component.setImageURL(imageURL.getExpressionString());
97  			}
98  		}
99  
100 		if (disabledImageURL != null) {
101 			if (disabledImageURL.isLiteralText()==false) {
102 				component.setValueExpression(Properties.DISABLED_IMAGE_URL, disabledImageURL);
103 
104 			} else {
105 				component.setDisabledImageURL(disabledImageURL.getExpressionString());
106 			}
107 		}
108 
109 		if (hoverImageURL != null) {
110 			if (hoverImageURL.isLiteralText()==false) {
111 				component.setValueExpression(Properties.HOVER_IMAGE_URL, hoverImageURL);
112 
113 			} else {
114 				component.setHoverImageURL(hoverImageURL.getExpressionString());
115 			}
116 		}
117 
118 		if (selectedImageURL != null) {
119 			if (selectedImageURL.isLiteralText()==false) {
120 				component.setValueExpression(Properties.SELECTED_IMAGE_URL, selectedImageURL);
121 
122 			} else {
123 				component.setSelectedImageURL(selectedImageURL.getExpressionString());
124 			}
125 		}
126 
127 		if (border != null) {
128 			if (border.isLiteralText()==false) {
129 				component.setValueExpression(Properties.BORDER, border);
130 
131 			} else {
132 				component.setBorder(getBool(border.getExpressionString()));
133 			}
134 		}
135 
136 		if (borderType != null) {
137 			if (borderType.isLiteralText()==false) {
138 				component.setValueExpression(Properties.BORDER_TYPE, borderType);
139 
140 			} else {
141 				component.setBorderType(borderType.getExpressionString());
142 			}
143 		}
144 
145 		if (imageHeight != null) {
146 			if (imageHeight.isLiteralText()==false) {
147 				component.setValueExpression(Properties.IMAGE_HEIGHT, imageHeight);
148 
149 			} else {
150 				component.setImageHeight(getInt(imageHeight.getExpressionString()));
151 			}
152 		}
153 
154 		if (imageWidth != null) {
155 			if (imageWidth.isLiteralText()==false) {
156 				component.setValueExpression(Properties.IMAGE_WIDTH, imageWidth);
157 
158 			} else {
159 				component.setImageWidth(getInt(imageWidth.getExpressionString()));
160 			}
161 		}
162 	}
163 
164 	public void release() {
165 		imageURL = null;
166 		disabledImageURL = null;
167 		hoverImageURL = null;
168 		selectedImageURL = null;
169 		border = null;
170 		borderType = null;
171 		imageHeight = null;
172 		imageWidth = null;
173 
174 		super.release();
175 	}
176 
177 }