View Javadoc

1   package org.rcfaces.core.internal.taglib;
2   
3   import org.rcfaces.core.component.MessageComponent;
4   import javax.faces.application.Application;
5   import javax.faces.component.UIComponent;
6   import org.rcfaces.core.internal.component.Properties;
7   import javax.el.ValueExpression;
8   import javax.faces.component.UIViewRoot;
9   import org.apache.commons.logging.Log;
10  import javax.servlet.jsp.tagext.Tag;
11  import org.apache.commons.logging.LogFactory;
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 MessageTag extends AbstractMessageTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(MessageTag.class);
20  
21  	private ValueExpression imageHeight;
22  	private ValueExpression imageWidth;
23  	private ValueExpression text;
24  	private ValueExpression errorStyleClass;
25  	private ValueExpression fatalStyleClass;
26  	private ValueExpression infoStyleClass;
27  	private ValueExpression warnStyleClass;
28  	private ValueExpression errorImageURL;
29  	private ValueExpression fatalImageURL;
30  	private ValueExpression infoImageURL;
31  	private ValueExpression warnImageURL;
32  	private ValueExpression imageURL;
33  	private ValueExpression showIfMessage;
34  	private ValueExpression showActiveComponentMessage;
35  	public String getComponentType() {
36  		return MessageComponent.COMPONENT_TYPE;
37  	}
38  
39  	public final void setImageHeight(ValueExpression imageHeight) {
40  		this.imageHeight = imageHeight;
41  	}
42  
43  	public final void setImageWidth(ValueExpression imageWidth) {
44  		this.imageWidth = imageWidth;
45  	}
46  
47  	public final void setText(ValueExpression text) {
48  		this.text = text;
49  	}
50  
51  	public final void setErrorStyleClass(ValueExpression errorStyleClass) {
52  		this.errorStyleClass = errorStyleClass;
53  	}
54  
55  	public final void setFatalStyleClass(ValueExpression fatalStyleClass) {
56  		this.fatalStyleClass = fatalStyleClass;
57  	}
58  
59  	public final void setInfoStyleClass(ValueExpression infoStyleClass) {
60  		this.infoStyleClass = infoStyleClass;
61  	}
62  
63  	public final void setWarnStyleClass(ValueExpression warnStyleClass) {
64  		this.warnStyleClass = warnStyleClass;
65  	}
66  
67  	public final void setErrorImageURL(ValueExpression errorImageURL) {
68  		this.errorImageURL = errorImageURL;
69  	}
70  
71  	public final void setFatalImageURL(ValueExpression fatalImageURL) {
72  		this.fatalImageURL = fatalImageURL;
73  	}
74  
75  	public final void setInfoImageURL(ValueExpression infoImageURL) {
76  		this.infoImageURL = infoImageURL;
77  	}
78  
79  	public final void setWarnImageURL(ValueExpression warnImageURL) {
80  		this.warnImageURL = warnImageURL;
81  	}
82  
83  	public final void setImageURL(ValueExpression imageURL) {
84  		this.imageURL = imageURL;
85  	}
86  
87  	public final void setShowIfMessage(ValueExpression showIfMessage) {
88  		this.showIfMessage = showIfMessage;
89  	}
90  
91  	public final void setShowActiveComponentMessage(ValueExpression showActiveComponentMessage) {
92  		this.showActiveComponentMessage = showActiveComponentMessage;
93  	}
94  
95  	protected void setProperties(UIComponent uiComponent) {
96  		if (LOG.isDebugEnabled()) {
97  			if (MessageComponent.COMPONENT_TYPE==getComponentType()) {
98  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
99  			}
100 			LOG.debug("  imageHeight='"+imageHeight+"'");
101 			LOG.debug("  imageWidth='"+imageWidth+"'");
102 			LOG.debug("  text='"+text+"'");
103 			LOG.debug("  errorStyleClass='"+errorStyleClass+"'");
104 			LOG.debug("  fatalStyleClass='"+fatalStyleClass+"'");
105 			LOG.debug("  infoStyleClass='"+infoStyleClass+"'");
106 			LOG.debug("  warnStyleClass='"+warnStyleClass+"'");
107 			LOG.debug("  errorImageURL='"+errorImageURL+"'");
108 			LOG.debug("  fatalImageURL='"+fatalImageURL+"'");
109 			LOG.debug("  infoImageURL='"+infoImageURL+"'");
110 			LOG.debug("  warnImageURL='"+warnImageURL+"'");
111 			LOG.debug("  imageURL='"+imageURL+"'");
112 			LOG.debug("  showIfMessage='"+showIfMessage+"'");
113 			LOG.debug("  showActiveComponentMessage='"+showActiveComponentMessage+"'");
114 		}
115 		if ((uiComponent instanceof MessageComponent)==false) {
116 			if (uiComponent instanceof UIViewRoot) {
117 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
118 			}
119 			throw new IllegalStateException("Component specified by tag is not instanceof of 'MessageComponent'.");
120 		}
121 
122 		super.setProperties(uiComponent);
123 
124 		MessageComponent component = (MessageComponent) uiComponent;
125 		FacesContext facesContext = getFacesContext();
126 
127 		if (imageHeight != null) {
128 			if (imageHeight.isLiteralText()==false) {
129 				component.setValueExpression(Properties.IMAGE_HEIGHT, imageHeight);
130 
131 			} else {
132 				component.setImageHeight(getInt(imageHeight.getExpressionString()));
133 			}
134 		}
135 
136 		if (imageWidth != null) {
137 			if (imageWidth.isLiteralText()==false) {
138 				component.setValueExpression(Properties.IMAGE_WIDTH, imageWidth);
139 
140 			} else {
141 				component.setImageWidth(getInt(imageWidth.getExpressionString()));
142 			}
143 		}
144 
145 		if (text != null) {
146 			if (text.isLiteralText()==false) {
147 				component.setValueExpression(Properties.TEXT, text);
148 
149 			} else {
150 				component.setText(text.getExpressionString());
151 			}
152 		}
153 
154 		if (errorStyleClass != null) {
155 			if (errorStyleClass.isLiteralText()==false) {
156 				component.setValueExpression(Properties.ERROR_STYLE_CLASS, errorStyleClass);
157 
158 			} else {
159 				component.setErrorStyleClass(errorStyleClass.getExpressionString());
160 			}
161 		}
162 
163 		if (fatalStyleClass != null) {
164 			if (fatalStyleClass.isLiteralText()==false) {
165 				component.setValueExpression(Properties.FATAL_STYLE_CLASS, fatalStyleClass);
166 
167 			} else {
168 				component.setFatalStyleClass(fatalStyleClass.getExpressionString());
169 			}
170 		}
171 
172 		if (infoStyleClass != null) {
173 			if (infoStyleClass.isLiteralText()==false) {
174 				component.setValueExpression(Properties.INFO_STYLE_CLASS, infoStyleClass);
175 
176 			} else {
177 				component.setInfoStyleClass(infoStyleClass.getExpressionString());
178 			}
179 		}
180 
181 		if (warnStyleClass != null) {
182 			if (warnStyleClass.isLiteralText()==false) {
183 				component.setValueExpression(Properties.WARN_STYLE_CLASS, warnStyleClass);
184 
185 			} else {
186 				component.setWarnStyleClass(warnStyleClass.getExpressionString());
187 			}
188 		}
189 
190 		if (errorImageURL != null) {
191 			if (errorImageURL.isLiteralText()==false) {
192 				component.setValueExpression(Properties.ERROR_IMAGE_URL, errorImageURL);
193 
194 			} else {
195 				component.setErrorImageURL(errorImageURL.getExpressionString());
196 			}
197 		}
198 
199 		if (fatalImageURL != null) {
200 			if (fatalImageURL.isLiteralText()==false) {
201 				component.setValueExpression(Properties.FATAL_IMAGE_URL, fatalImageURL);
202 
203 			} else {
204 				component.setFatalImageURL(fatalImageURL.getExpressionString());
205 			}
206 		}
207 
208 		if (infoImageURL != null) {
209 			if (infoImageURL.isLiteralText()==false) {
210 				component.setValueExpression(Properties.INFO_IMAGE_URL, infoImageURL);
211 
212 			} else {
213 				component.setInfoImageURL(infoImageURL.getExpressionString());
214 			}
215 		}
216 
217 		if (warnImageURL != null) {
218 			if (warnImageURL.isLiteralText()==false) {
219 				component.setValueExpression(Properties.WARN_IMAGE_URL, warnImageURL);
220 
221 			} else {
222 				component.setWarnImageURL(warnImageURL.getExpressionString());
223 			}
224 		}
225 
226 		if (imageURL != null) {
227 			if (imageURL.isLiteralText()==false) {
228 				component.setValueExpression(Properties.IMAGE_URL, imageURL);
229 
230 			} else {
231 				component.setImageURL(imageURL.getExpressionString());
232 			}
233 		}
234 
235 		if (showIfMessage != null) {
236 			if (showIfMessage.isLiteralText()==false) {
237 				component.setValueExpression(Properties.SHOW_IF_MESSAGE, showIfMessage);
238 
239 			} else {
240 				component.setShowIfMessage(getBool(showIfMessage.getExpressionString()));
241 			}
242 		}
243 
244 		if (showActiveComponentMessage != null) {
245 			if (showActiveComponentMessage.isLiteralText()==false) {
246 				component.setValueExpression(Properties.SHOW_ACTIVE_COMPONENT_MESSAGE, showActiveComponentMessage);
247 
248 			} else {
249 				component.setShowActiveComponentMessage(getBool(showActiveComponentMessage.getExpressionString()));
250 			}
251 		}
252 	}
253 
254 	public void release() {
255 		imageHeight = null;
256 		imageWidth = null;
257 		text = null;
258 		errorStyleClass = null;
259 		fatalStyleClass = null;
260 		infoStyleClass = null;
261 		warnStyleClass = null;
262 		errorImageURL = null;
263 		fatalImageURL = null;
264 		infoImageURL = null;
265 		warnImageURL = null;
266 		imageURL = null;
267 		showIfMessage = null;
268 		showActiveComponentMessage = null;
269 
270 		super.release();
271 	}
272 
273 }