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 org.rcfaces.core.component.MessageDialogComponent;
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 MessageDialogTag extends CameliaTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(MessageDialogTag.class);
20  
21  	private ValueExpression imageURL;
22  	private ValueExpression styleClass;
23  	private ValueExpression text;
24  	private ValueExpression textDirection;
25  	private ValueExpression visible;
26  	private ValueExpression dialogPriority;
27  	private ValueExpression immediate;
28  	private ValueExpression validationListeners;
29  	private ValueExpression width;
30  	private ValueExpression height;
31  	private ValueExpression hiddenMode;
32  	private ValueExpression lookId;
33  	private ValueExpression ariaLabel;
34  	private ValueExpression ariaLevel;
35  	private ValueExpression waiRole;
36  	private ValueExpression selectionListeners;
37  	private ValueExpression userEventListeners;
38  	private ValueExpression title;
39  	private ValueExpression defaultValue;
40  	private ValueExpression value;
41  	private ValueExpression converter;
42  	public String getComponentType() {
43  		return MessageDialogComponent.COMPONENT_TYPE;
44  	}
45  
46  	public final void setImageURL(ValueExpression imageURL) {
47  		this.imageURL = imageURL;
48  	}
49  
50  	public final void setStyleClass(ValueExpression styleClass) {
51  		this.styleClass = styleClass;
52  	}
53  
54  	public final void setText(ValueExpression text) {
55  		this.text = text;
56  	}
57  
58  	public final void setTextDirection(ValueExpression textDirection) {
59  		this.textDirection = textDirection;
60  	}
61  
62  	public final void setVisible(ValueExpression visible) {
63  		this.visible = visible;
64  	}
65  
66  	public final void setDialogPriority(ValueExpression dialogPriority) {
67  		this.dialogPriority = dialogPriority;
68  	}
69  
70  	public final void setImmediate(ValueExpression immediate) {
71  		this.immediate = immediate;
72  	}
73  
74  	public final void setValidationListener(ValueExpression validationListeners) {
75  		this.validationListeners = validationListeners;
76  	}
77  
78  	public final void setWidth(ValueExpression width) {
79  		this.width = width;
80  	}
81  
82  	public final void setHeight(ValueExpression height) {
83  		this.height = height;
84  	}
85  
86  	public final void setHiddenMode(ValueExpression hiddenMode) {
87  		this.hiddenMode = hiddenMode;
88  	}
89  
90  	public final void setLookId(ValueExpression lookId) {
91  		this.lookId = lookId;
92  	}
93  
94  	public final void setAriaLabel(ValueExpression ariaLabel) {
95  		this.ariaLabel = ariaLabel;
96  	}
97  
98  	public final void setAriaLevel(ValueExpression ariaLevel) {
99  		this.ariaLevel = ariaLevel;
100 	}
101 
102 	public final void setWaiRole(ValueExpression waiRole) {
103 		this.waiRole = waiRole;
104 	}
105 
106 	public final void setSelectionListener(ValueExpression selectionListeners) {
107 		this.selectionListeners = selectionListeners;
108 	}
109 
110 	public final void setUserEventListener(ValueExpression userEventListeners) {
111 		this.userEventListeners = userEventListeners;
112 	}
113 
114 	public final void setTitle(ValueExpression title) {
115 		this.title = title;
116 	}
117 
118 	public final void setDefaultValue(ValueExpression defaultValue) {
119 		this.defaultValue = defaultValue;
120 	}
121 
122 	public final void setValue(ValueExpression value) {
123 		this.value = value;
124 	}
125 
126 	public final void setConverter(ValueExpression converter) {
127 		this.converter = converter;
128 	}
129 
130 	protected void setProperties(UIComponent uiComponent) {
131 		if (LOG.isDebugEnabled()) {
132 			if (MessageDialogComponent.COMPONENT_TYPE==getComponentType()) {
133 				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
134 			}
135 			LOG.debug("  imageURL='"+imageURL+"'");
136 			LOG.debug("  styleClass='"+styleClass+"'");
137 			LOG.debug("  text='"+text+"'");
138 			LOG.debug("  textDirection='"+textDirection+"'");
139 			LOG.debug("  visible='"+visible+"'");
140 			LOG.debug("  dialogPriority='"+dialogPriority+"'");
141 			LOG.debug("  immediate='"+immediate+"'");
142 			LOG.debug("  width='"+width+"'");
143 			LOG.debug("  height='"+height+"'");
144 			LOG.debug("  hiddenMode='"+hiddenMode+"'");
145 			LOG.debug("  lookId='"+lookId+"'");
146 			LOG.debug("  ariaLabel='"+ariaLabel+"'");
147 			LOG.debug("  ariaLevel='"+ariaLevel+"'");
148 			LOG.debug("  waiRole='"+waiRole+"'");
149 			LOG.debug("  title='"+title+"'");
150 			LOG.debug("  defaultValue='"+defaultValue+"'");
151 		}
152 		if ((uiComponent instanceof MessageDialogComponent)==false) {
153 			if (uiComponent instanceof UIViewRoot) {
154 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
155 			}
156 			throw new IllegalStateException("Component specified by tag is not instanceof of 'MessageDialogComponent'.");
157 		}
158 
159 		super.setProperties(uiComponent);
160 
161 		MessageDialogComponent component = (MessageDialogComponent) uiComponent;
162 		FacesContext facesContext = getFacesContext();
163 
164 		if (imageURL != null) {
165 			if (imageURL.isLiteralText()==false) {
166 				component.setValueExpression(Properties.IMAGE_URL, imageURL);
167 
168 			} else {
169 				component.setImageURL(imageURL.getExpressionString());
170 			}
171 		}
172 
173 		if (styleClass != null) {
174 			if (styleClass.isLiteralText()==false) {
175 				component.setValueExpression(Properties.STYLE_CLASS, styleClass);
176 
177 			} else {
178 				component.setStyleClass(styleClass.getExpressionString());
179 			}
180 		}
181 
182 		if (text != null) {
183 			if (text.isLiteralText()==false) {
184 				component.setValueExpression(Properties.TEXT, text);
185 
186 			} else {
187 				component.setText(text.getExpressionString());
188 			}
189 		}
190 
191 		if (textDirection != null) {
192 			if (textDirection.isLiteralText()==false) {
193 				component.setValueExpression(Properties.TEXT_DIRECTION, textDirection);
194 
195 			} else {
196 				component.setTextDirection(getInt(textDirection.getExpressionString()));
197 			}
198 		}
199 
200 		if (visible != null) {
201 			if (visible.isLiteralText()==false) {
202 				component.setValueExpression(Properties.VISIBLE, visible);
203 
204 			} else {
205 				component.setVisible(getBool(visible.getExpressionString()));
206 			}
207 		}
208 
209 		if (dialogPriority != null) {
210 			if (dialogPriority.isLiteralText()==false) {
211 				component.setValueExpression(Properties.DIALOG_PRIORITY, dialogPriority);
212 
213 			} else {
214 				component.setDialogPriority(getInt(dialogPriority.getExpressionString()));
215 			}
216 		}
217 
218 		if (immediate != null) {
219 			if (immediate.isLiteralText()==false) {
220 				component.setValueExpression(Properties.IMMEDIATE, immediate);
221 
222 			} else {
223 				component.setImmediate(getBool(immediate.getExpressionString()));
224 			}
225 		}
226 
227 		if (validationListeners != null) {
228 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.VALIDATION_LISTENER_TYPE, validationListeners);
229 		}
230 
231 		if (width != null) {
232 			if (width.isLiteralText()==false) {
233 				component.setValueExpression(Properties.WIDTH, width);
234 
235 			} else {
236 				component.setWidth(width.getExpressionString());
237 			}
238 		}
239 
240 		if (height != null) {
241 			if (height.isLiteralText()==false) {
242 				component.setValueExpression(Properties.HEIGHT, height);
243 
244 			} else {
245 				component.setHeight(height.getExpressionString());
246 			}
247 		}
248 
249 		if (hiddenMode != null) {
250 			if (hiddenMode.isLiteralText()==false) {
251 				component.setValueExpression(Properties.HIDDEN_MODE, hiddenMode);
252 
253 			} else {
254 				component.setHiddenMode(hiddenMode.getExpressionString());
255 			}
256 		}
257 
258 		if (lookId != null) {
259 			if (lookId.isLiteralText()==false) {
260 				component.setValueExpression(Properties.LOOK_ID, lookId);
261 
262 			} else {
263 				component.setLookId(lookId.getExpressionString());
264 			}
265 		}
266 
267 		if (ariaLabel != null) {
268 			if (ariaLabel.isLiteralText()==false) {
269 				component.setValueExpression(Properties.ARIA_LABEL, ariaLabel);
270 
271 			} else {
272 				component.setAriaLabel(ariaLabel.getExpressionString());
273 			}
274 		}
275 
276 		if (ariaLevel != null) {
277 			if (ariaLevel.isLiteralText()==false) {
278 				component.setValueExpression(Properties.ARIA_LEVEL, ariaLevel);
279 
280 			} else {
281 				component.setAriaLevel(getInt(ariaLevel.getExpressionString()));
282 			}
283 		}
284 
285 		if (waiRole != null) {
286 			if (waiRole.isLiteralText()==false) {
287 				component.setValueExpression(Properties.WAI_ROLE, waiRole);
288 
289 			} else {
290 				component.setWaiRole(waiRole.getExpressionString());
291 			}
292 		}
293 
294 		if (selectionListeners != null) {
295 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.SELECTION_LISTENER_TYPE, selectionListeners);
296 		}
297 
298 		if (userEventListeners != null) {
299 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.USER_EVENT_LISTENER_TYPE, userEventListeners);
300 		}
301 
302 		if (title != null) {
303 			if (title.isLiteralText()==false) {
304 				component.setValueExpression(Properties.TITLE, title);
305 
306 			} else {
307 				component.setTitle(title.getExpressionString());
308 			}
309 		}
310 
311 		if (defaultValue != null) {
312 			if (defaultValue.isLiteralText()==false) {
313 				component.setValueExpression(Properties.DEFAULT_VALUE, defaultValue);
314 
315 			} else {
316 				component.setDefaultValue(defaultValue.getExpressionString());
317 			}
318 		}
319 
320 		if (value != null) {
321 			if (value.isLiteralText()==false) {
322 				component.setValueExpression(Properties.VALUE, value);
323 
324 			} else {
325 				component.setValue(value.getExpressionString());
326 			}
327 		}
328 
329 		if (converter != null) {
330 			if (converter.isLiteralText()==false) {
331 				component.setValueExpression(Properties.CONVERTER, converter);
332 
333 			} else {
334 				component.setConverter(converter.getExpressionString());
335 			}
336 		}
337 	}
338 
339 	public void release() {
340 		imageURL = null;
341 		styleClass = null;
342 		text = null;
343 		textDirection = null;
344 		visible = null;
345 		dialogPriority = null;
346 		immediate = null;
347 		validationListeners = null;
348 		width = null;
349 		height = null;
350 		hiddenMode = null;
351 		lookId = null;
352 		ariaLabel = null;
353 		ariaLevel = null;
354 		waiRole = null;
355 		selectionListeners = null;
356 		userEventListeners = null;
357 		title = null;
358 		defaultValue = null;
359 		value = null;
360 		converter = null;
361 
362 		super.release();
363 	}
364 
365 }