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 }