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.component.AbstractInputComponent;
13  import org.rcfaces.core.internal.tools.ListenersTools;
14  import javax.faces.context.FacesContext;
15  
16  public abstract class AbstractInputTag extends CameliaTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(AbstractInputTag.class);
20  
21  	private ValueExpression helpMessage;
22  	private ValueExpression helpURL;
23  	private ValueExpression toolTipText;
24  	private ValueExpression blurListeners;
25  	private ValueExpression focusListeners;
26  	private ValueExpression backgroundColor;
27  	private ValueExpression foregroundColor;
28  	private ValueExpression visible;
29  	private ValueExpression errorListeners;
30  	private ValueExpression disabled;
31  	private ValueExpression validationListeners;
32  	private ValueExpression fontBold;
33  	private ValueExpression fontItalic;
34  	private ValueExpression fontName;
35  	private ValueExpression fontSize;
36  	private ValueExpression fontUnderline;
37  	private ValueExpression mouseOutListeners;
38  	private ValueExpression mouseOverListeners;
39  	private ValueExpression unlockedClientAttributeNames;
40  	private ValueExpression tabIndex;
41  	private ValueExpression propertyChangeListeners;
42  	private ValueExpression marginBottom;
43  	private ValueExpression marginLeft;
44  	private ValueExpression marginRight;
45  	private ValueExpression marginTop;
46  	private ValueExpression keyUpListeners;
47  	private ValueExpression keyDownListeners;
48  	private ValueExpression keyPressListeners;
49  	private ValueExpression x;
50  	private ValueExpression y;
51  	private ValueExpression userEventListeners;
52  	private ValueExpression partialRendering;
53  	private ValueExpression styleClass;
54  	private ValueExpression lookId;
55  	private ValueExpression width;
56  	private ValueExpression height;
57  	private ValueExpression textAlignment;
58  	private ValueExpression accessKey;
59  	private ValueExpression ariaLabel;
60  	private ValueExpression ariaLevel;
61  	private ValueExpression waiRole;
62  	private ValueExpression bottom;
63  	private ValueExpression left;
64  	private ValueExpression right;
65  	private ValueExpression top;
66  	private ValueExpression initListeners;
67  	private ValueExpression hiddenMode;
68  	private ValueExpression valueLocked;
69  	private ValueExpression immediate;
70  	private ValueExpression margins;
71  	private ValueExpression value;
72  	private ValueExpression converter;
73  	public final void setHelpMessage(ValueExpression helpMessage) {
74  		this.helpMessage = helpMessage;
75  	}
76  
77  	public final void setHelpURL(ValueExpression helpURL) {
78  		this.helpURL = helpURL;
79  	}
80  
81  	public final void setToolTipText(ValueExpression toolTipText) {
82  		this.toolTipText = toolTipText;
83  	}
84  
85  	public final void setBlurListener(ValueExpression blurListeners) {
86  		this.blurListeners = blurListeners;
87  	}
88  
89  	public final void setFocusListener(ValueExpression focusListeners) {
90  		this.focusListeners = focusListeners;
91  	}
92  
93  	public final void setBackgroundColor(ValueExpression backgroundColor) {
94  		this.backgroundColor = backgroundColor;
95  	}
96  
97  	public final void setForegroundColor(ValueExpression foregroundColor) {
98  		this.foregroundColor = foregroundColor;
99  	}
100 
101 	public final void setVisible(ValueExpression visible) {
102 		this.visible = visible;
103 	}
104 
105 	public final void setErrorListener(ValueExpression errorListeners) {
106 		this.errorListeners = errorListeners;
107 	}
108 
109 	public final void setDisabled(ValueExpression disabled) {
110 		this.disabled = disabled;
111 	}
112 
113 	public final void setValidationListener(ValueExpression validationListeners) {
114 		this.validationListeners = validationListeners;
115 	}
116 
117 	public final void setFontBold(ValueExpression fontBold) {
118 		this.fontBold = fontBold;
119 	}
120 
121 	public final void setFontItalic(ValueExpression fontItalic) {
122 		this.fontItalic = fontItalic;
123 	}
124 
125 	public final void setFontName(ValueExpression fontName) {
126 		this.fontName = fontName;
127 	}
128 
129 	public final void setFontSize(ValueExpression fontSize) {
130 		this.fontSize = fontSize;
131 	}
132 
133 	public final void setFontUnderline(ValueExpression fontUnderline) {
134 		this.fontUnderline = fontUnderline;
135 	}
136 
137 	public final void setMouseOutListener(ValueExpression mouseOutListeners) {
138 		this.mouseOutListeners = mouseOutListeners;
139 	}
140 
141 	public final void setMouseOverListener(ValueExpression mouseOverListeners) {
142 		this.mouseOverListeners = mouseOverListeners;
143 	}
144 
145 	public final void setUnlockedClientAttributeNames(ValueExpression unlockedClientAttributeNames) {
146 		this.unlockedClientAttributeNames = unlockedClientAttributeNames;
147 	}
148 
149 	public final void setTabIndex(ValueExpression tabIndex) {
150 		this.tabIndex = tabIndex;
151 	}
152 
153 	public final void setPropertyChangeListener(ValueExpression propertyChangeListeners) {
154 		this.propertyChangeListeners = propertyChangeListeners;
155 	}
156 
157 	public final void setMarginBottom(ValueExpression marginBottom) {
158 		this.marginBottom = marginBottom;
159 	}
160 
161 	public final void setMarginLeft(ValueExpression marginLeft) {
162 		this.marginLeft = marginLeft;
163 	}
164 
165 	public final void setMarginRight(ValueExpression marginRight) {
166 		this.marginRight = marginRight;
167 	}
168 
169 	public final void setMarginTop(ValueExpression marginTop) {
170 		this.marginTop = marginTop;
171 	}
172 
173 	public final void setKeyUpListener(ValueExpression keyUpListeners) {
174 		this.keyUpListeners = keyUpListeners;
175 	}
176 
177 	public final void setKeyDownListener(ValueExpression keyDownListeners) {
178 		this.keyDownListeners = keyDownListeners;
179 	}
180 
181 	public final void setKeyPressListener(ValueExpression keyPressListeners) {
182 		this.keyPressListeners = keyPressListeners;
183 	}
184 
185 	public final void setX(ValueExpression x) {
186 		this.x = x;
187 	}
188 
189 	public final void setY(ValueExpression y) {
190 		this.y = y;
191 	}
192 
193 	public final void setUserEventListener(ValueExpression userEventListeners) {
194 		this.userEventListeners = userEventListeners;
195 	}
196 
197 	public final void setPartialRendering(ValueExpression partialRendering) {
198 		this.partialRendering = partialRendering;
199 	}
200 
201 	public final void setStyleClass(ValueExpression styleClass) {
202 		this.styleClass = styleClass;
203 	}
204 
205 	public final void setLookId(ValueExpression lookId) {
206 		this.lookId = lookId;
207 	}
208 
209 	public final void setWidth(ValueExpression width) {
210 		this.width = width;
211 	}
212 
213 	public final void setHeight(ValueExpression height) {
214 		this.height = height;
215 	}
216 
217 	public final void setTextAlignment(ValueExpression textAlignment) {
218 		this.textAlignment = textAlignment;
219 	}
220 
221 	public final void setAccessKey(ValueExpression accessKey) {
222 		this.accessKey = accessKey;
223 	}
224 
225 	public final void setAriaLabel(ValueExpression ariaLabel) {
226 		this.ariaLabel = ariaLabel;
227 	}
228 
229 	public final void setAriaLevel(ValueExpression ariaLevel) {
230 		this.ariaLevel = ariaLevel;
231 	}
232 
233 	public final void setWaiRole(ValueExpression waiRole) {
234 		this.waiRole = waiRole;
235 	}
236 
237 	public final void setBottom(ValueExpression bottom) {
238 		this.bottom = bottom;
239 	}
240 
241 	public final void setLeft(ValueExpression left) {
242 		this.left = left;
243 	}
244 
245 	public final void setRight(ValueExpression right) {
246 		this.right = right;
247 	}
248 
249 	public final void setTop(ValueExpression top) {
250 		this.top = top;
251 	}
252 
253 	public final void setInitListener(ValueExpression initListeners) {
254 		this.initListeners = initListeners;
255 	}
256 
257 	public final void setHiddenMode(ValueExpression hiddenMode) {
258 		this.hiddenMode = hiddenMode;
259 	}
260 
261 	public final void setValueLocked(ValueExpression valueLocked) {
262 		this.valueLocked = valueLocked;
263 	}
264 
265 	public final void setImmediate(ValueExpression immediate) {
266 		this.immediate = immediate;
267 	}
268 
269 	public final void setMargins(ValueExpression margins) {
270 		this.margins = margins;
271 	}
272 
273 	public final void setValue(ValueExpression value) {
274 		this.value = value;
275 	}
276 
277 	public final void setConverter(ValueExpression converter) {
278 		this.converter = converter;
279 	}
280 
281 	protected void setProperties(UIComponent uiComponent) {
282 		if (LOG.isDebugEnabled()) {
283 			LOG.debug("  helpMessage='"+helpMessage+"'");
284 			LOG.debug("  helpURL='"+helpURL+"'");
285 			LOG.debug("  toolTipText='"+toolTipText+"'");
286 			LOG.debug("  backgroundColor='"+backgroundColor+"'");
287 			LOG.debug("  foregroundColor='"+foregroundColor+"'");
288 			LOG.debug("  visible='"+visible+"'");
289 			LOG.debug("  disabled='"+disabled+"'");
290 			LOG.debug("  fontBold='"+fontBold+"'");
291 			LOG.debug("  fontItalic='"+fontItalic+"'");
292 			LOG.debug("  fontName='"+fontName+"'");
293 			LOG.debug("  fontSize='"+fontSize+"'");
294 			LOG.debug("  fontUnderline='"+fontUnderline+"'");
295 			LOG.debug("  unlockedClientAttributeNames='"+unlockedClientAttributeNames+"'");
296 			LOG.debug("  tabIndex='"+tabIndex+"'");
297 			LOG.debug("  marginBottom='"+marginBottom+"'");
298 			LOG.debug("  marginLeft='"+marginLeft+"'");
299 			LOG.debug("  marginRight='"+marginRight+"'");
300 			LOG.debug("  marginTop='"+marginTop+"'");
301 			LOG.debug("  x='"+x+"'");
302 			LOG.debug("  y='"+y+"'");
303 			LOG.debug("  partialRendering='"+partialRendering+"'");
304 			LOG.debug("  styleClass='"+styleClass+"'");
305 			LOG.debug("  lookId='"+lookId+"'");
306 			LOG.debug("  width='"+width+"'");
307 			LOG.debug("  height='"+height+"'");
308 			LOG.debug("  textAlignment='"+textAlignment+"'");
309 			LOG.debug("  accessKey='"+accessKey+"'");
310 			LOG.debug("  ariaLabel='"+ariaLabel+"'");
311 			LOG.debug("  ariaLevel='"+ariaLevel+"'");
312 			LOG.debug("  waiRole='"+waiRole+"'");
313 			LOG.debug("  bottom='"+bottom+"'");
314 			LOG.debug("  left='"+left+"'");
315 			LOG.debug("  right='"+right+"'");
316 			LOG.debug("  top='"+top+"'");
317 			LOG.debug("  hiddenMode='"+hiddenMode+"'");
318 			LOG.debug("  valueLocked='"+valueLocked+"'");
319 			LOG.debug("  immediate='"+immediate+"'");
320 			LOG.debug("  margins='"+margins+"'");
321 		}
322 		if ((uiComponent instanceof AbstractInputComponent)==false) {
323 			if (uiComponent instanceof UIViewRoot) {
324 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
325 			}
326 			throw new IllegalStateException("Component specified by tag is not instanceof of 'AbstractInputComponent'.");
327 		}
328 
329 		super.setProperties(uiComponent);
330 
331 		AbstractInputComponent component = (AbstractInputComponent) uiComponent;
332 		FacesContext facesContext = getFacesContext();
333 
334 		if (helpMessage != null) {
335 			if (helpMessage.isLiteralText()==false) {
336 				component.setValueExpression(Properties.HELP_MESSAGE, helpMessage);
337 
338 			} else {
339 				component.setHelpMessage(helpMessage.getExpressionString());
340 			}
341 		}
342 
343 		if (helpURL != null) {
344 			if (helpURL.isLiteralText()==false) {
345 				component.setValueExpression(Properties.HELP_URL, helpURL);
346 
347 			} else {
348 				component.setHelpURL(helpURL.getExpressionString());
349 			}
350 		}
351 
352 		if (toolTipText != null) {
353 			if (toolTipText.isLiteralText()==false) {
354 				component.setValueExpression(Properties.TOOL_TIP_TEXT, toolTipText);
355 
356 			} else {
357 				component.setToolTipText(toolTipText.getExpressionString());
358 			}
359 		}
360 
361 		if (blurListeners != null) {
362 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.BLUR_LISTENER_TYPE, blurListeners);
363 		}
364 
365 		if (focusListeners != null) {
366 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.FOCUS_LISTENER_TYPE, focusListeners);
367 		}
368 
369 		if (backgroundColor != null) {
370 			if (backgroundColor.isLiteralText()==false) {
371 				component.setValueExpression(Properties.BACKGROUND_COLOR, backgroundColor);
372 
373 			} else {
374 				component.setBackgroundColor(backgroundColor.getExpressionString());
375 			}
376 		}
377 
378 		if (foregroundColor != null) {
379 			if (foregroundColor.isLiteralText()==false) {
380 				component.setValueExpression(Properties.FOREGROUND_COLOR, foregroundColor);
381 
382 			} else {
383 				component.setForegroundColor(foregroundColor.getExpressionString());
384 			}
385 		}
386 
387 		if (visible != null) {
388 			if (visible.isLiteralText()==false) {
389 				component.setValueExpression(Properties.VISIBLE, visible);
390 
391 			} else {
392 				component.setVisible(getBool(visible.getExpressionString()));
393 			}
394 		}
395 
396 		if (errorListeners != null) {
397 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.ERROR_LISTENER_TYPE, errorListeners);
398 		}
399 
400 		if (disabled != null) {
401 			if (disabled.isLiteralText()==false) {
402 				component.setValueExpression(Properties.DISABLED, disabled);
403 
404 			} else {
405 				component.setDisabled(getBool(disabled.getExpressionString()));
406 			}
407 		}
408 
409 		if (validationListeners != null) {
410 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.VALIDATION_LISTENER_TYPE, validationListeners);
411 		}
412 
413 		if (fontBold != null) {
414 			if (fontBold.isLiteralText()==false) {
415 				component.setValueExpression(Properties.FONT_BOLD, fontBold);
416 
417 			} else {
418 				component.setFontBold(getBoolean(fontBold.getExpressionString()));
419 			}
420 		}
421 
422 		if (fontItalic != null) {
423 			if (fontItalic.isLiteralText()==false) {
424 				component.setValueExpression(Properties.FONT_ITALIC, fontItalic);
425 
426 			} else {
427 				component.setFontItalic(getBoolean(fontItalic.getExpressionString()));
428 			}
429 		}
430 
431 		if (fontName != null) {
432 			if (fontName.isLiteralText()==false) {
433 				component.setValueExpression(Properties.FONT_NAME, fontName);
434 
435 			} else {
436 				component.setFontName(fontName.getExpressionString());
437 			}
438 		}
439 
440 		if (fontSize != null) {
441 			if (fontSize.isLiteralText()==false) {
442 				component.setValueExpression(Properties.FONT_SIZE, fontSize);
443 
444 			} else {
445 				component.setFontSize(fontSize.getExpressionString());
446 			}
447 		}
448 
449 		if (fontUnderline != null) {
450 			if (fontUnderline.isLiteralText()==false) {
451 				component.setValueExpression(Properties.FONT_UNDERLINE, fontUnderline);
452 
453 			} else {
454 				component.setFontUnderline(getBoolean(fontUnderline.getExpressionString()));
455 			}
456 		}
457 
458 		if (mouseOutListeners != null) {
459 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.MOUSE_OUT_LISTENER_TYPE, mouseOutListeners);
460 		}
461 
462 		if (mouseOverListeners != null) {
463 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.MOUSE_OVER_LISTENER_TYPE, mouseOverListeners);
464 		}
465 
466 		if (unlockedClientAttributeNames != null) {
467 			if (unlockedClientAttributeNames.isLiteralText()==false) {
468 				component.setValueExpression(Properties.UNLOCKED_CLIENT_ATTRIBUTE_NAMES, unlockedClientAttributeNames);
469 
470 			} else {
471 				component.setUnlockedClientAttributeNames(unlockedClientAttributeNames.getExpressionString());
472 			}
473 		}
474 
475 		if (tabIndex != null) {
476 			if (tabIndex.isLiteralText()==false) {
477 				component.setValueExpression(Properties.TAB_INDEX, tabIndex);
478 
479 			} else {
480 				component.setTabIndex(getInteger(tabIndex.getExpressionString()));
481 			}
482 		}
483 
484 		if (propertyChangeListeners != null) {
485 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.PROPERTY_CHANGE_LISTENER_TYPE, propertyChangeListeners);
486 		}
487 
488 		if (marginBottom != null) {
489 			if (marginBottom.isLiteralText()==false) {
490 				component.setValueExpression(Properties.MARGIN_BOTTOM, marginBottom);
491 
492 			} else {
493 				component.setMarginBottom(marginBottom.getExpressionString());
494 			}
495 		}
496 
497 		if (marginLeft != null) {
498 			if (marginLeft.isLiteralText()==false) {
499 				component.setValueExpression(Properties.MARGIN_LEFT, marginLeft);
500 
501 			} else {
502 				component.setMarginLeft(marginLeft.getExpressionString());
503 			}
504 		}
505 
506 		if (marginRight != null) {
507 			if (marginRight.isLiteralText()==false) {
508 				component.setValueExpression(Properties.MARGIN_RIGHT, marginRight);
509 
510 			} else {
511 				component.setMarginRight(marginRight.getExpressionString());
512 			}
513 		}
514 
515 		if (marginTop != null) {
516 			if (marginTop.isLiteralText()==false) {
517 				component.setValueExpression(Properties.MARGIN_TOP, marginTop);
518 
519 			} else {
520 				component.setMarginTop(marginTop.getExpressionString());
521 			}
522 		}
523 
524 		if (keyUpListeners != null) {
525 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.KEY_UP_LISTENER_TYPE, keyUpListeners);
526 		}
527 
528 		if (keyDownListeners != null) {
529 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.KEY_DOWN_LISTENER_TYPE, keyDownListeners);
530 		}
531 
532 		if (keyPressListeners != null) {
533 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.KEY_PRESS_LISTENER_TYPE, keyPressListeners);
534 		}
535 
536 		if (x != null) {
537 			if (x.isLiteralText()==false) {
538 				component.setValueExpression(Properties.X, x);
539 
540 			} else {
541 				component.setX(x.getExpressionString());
542 			}
543 		}
544 
545 		if (y != null) {
546 			if (y.isLiteralText()==false) {
547 				component.setValueExpression(Properties.Y, y);
548 
549 			} else {
550 				component.setY(y.getExpressionString());
551 			}
552 		}
553 
554 		if (userEventListeners != null) {
555 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.USER_EVENT_LISTENER_TYPE, userEventListeners);
556 		}
557 
558 		if (partialRendering != null) {
559 			if (partialRendering.isLiteralText()==false) {
560 				component.setValueExpression(Properties.PARTIAL_RENDERING, partialRendering);
561 
562 			} else {
563 				component.setPartialRendering(getBool(partialRendering.getExpressionString()));
564 			}
565 		}
566 
567 		if (styleClass != null) {
568 			if (styleClass.isLiteralText()==false) {
569 				component.setValueExpression(Properties.STYLE_CLASS, styleClass);
570 
571 			} else {
572 				component.setStyleClass(styleClass.getExpressionString());
573 			}
574 		}
575 
576 		if (lookId != null) {
577 			if (lookId.isLiteralText()==false) {
578 				component.setValueExpression(Properties.LOOK_ID, lookId);
579 
580 			} else {
581 				component.setLookId(lookId.getExpressionString());
582 			}
583 		}
584 
585 		if (width != null) {
586 			if (width.isLiteralText()==false) {
587 				component.setValueExpression(Properties.WIDTH, width);
588 
589 			} else {
590 				component.setWidth(width.getExpressionString());
591 			}
592 		}
593 
594 		if (height != null) {
595 			if (height.isLiteralText()==false) {
596 				component.setValueExpression(Properties.HEIGHT, height);
597 
598 			} else {
599 				component.setHeight(height.getExpressionString());
600 			}
601 		}
602 
603 		if (textAlignment != null) {
604 			if (textAlignment.isLiteralText()==false) {
605 				component.setValueExpression(Properties.TEXT_ALIGNMENT, textAlignment);
606 
607 			} else {
608 				component.setTextAlignment(textAlignment.getExpressionString());
609 			}
610 		}
611 
612 		if (accessKey != null) {
613 			if (accessKey.isLiteralText()==false) {
614 				component.setValueExpression(Properties.ACCESS_KEY, accessKey);
615 
616 			} else {
617 				component.setAccessKey(accessKey.getExpressionString());
618 			}
619 		}
620 
621 		if (ariaLabel != null) {
622 			if (ariaLabel.isLiteralText()==false) {
623 				component.setValueExpression(Properties.ARIA_LABEL, ariaLabel);
624 
625 			} else {
626 				component.setAriaLabel(ariaLabel.getExpressionString());
627 			}
628 		}
629 
630 		if (ariaLevel != null) {
631 			if (ariaLevel.isLiteralText()==false) {
632 				component.setValueExpression(Properties.ARIA_LEVEL, ariaLevel);
633 
634 			} else {
635 				component.setAriaLevel(getInt(ariaLevel.getExpressionString()));
636 			}
637 		}
638 
639 		if (waiRole != null) {
640 			if (waiRole.isLiteralText()==false) {
641 				component.setValueExpression(Properties.WAI_ROLE, waiRole);
642 
643 			} else {
644 				component.setWaiRole(waiRole.getExpressionString());
645 			}
646 		}
647 
648 		if (bottom != null) {
649 			if (bottom.isLiteralText()==false) {
650 				component.setValueExpression(Properties.BOTTOM, bottom);
651 
652 			} else {
653 				component.setBottom(getInt(bottom.getExpressionString()));
654 			}
655 		}
656 
657 		if (left != null) {
658 			if (left.isLiteralText()==false) {
659 				component.setValueExpression(Properties.LEFT, left);
660 
661 			} else {
662 				component.setLeft(getInt(left.getExpressionString()));
663 			}
664 		}
665 
666 		if (right != null) {
667 			if (right.isLiteralText()==false) {
668 				component.setValueExpression(Properties.RIGHT, right);
669 
670 			} else {
671 				component.setRight(getInt(right.getExpressionString()));
672 			}
673 		}
674 
675 		if (top != null) {
676 			if (top.isLiteralText()==false) {
677 				component.setValueExpression(Properties.TOP, top);
678 
679 			} else {
680 				component.setTop(getInt(top.getExpressionString()));
681 			}
682 		}
683 
684 		if (initListeners != null) {
685 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.INIT_LISTENER_TYPE, initListeners);
686 		}
687 
688 		if (hiddenMode != null) {
689 			if (hiddenMode.isLiteralText()==false) {
690 				component.setValueExpression(Properties.HIDDEN_MODE, hiddenMode);
691 
692 			} else {
693 				component.setHiddenMode(hiddenMode.getExpressionString());
694 			}
695 		}
696 
697 		if (valueLocked != null) {
698 			if (valueLocked.isLiteralText()==false) {
699 				component.setValueExpression(Properties.VALUE_LOCKED, valueLocked);
700 
701 			} else {
702 				component.setValueLocked(getBool(valueLocked.getExpressionString()));
703 			}
704 		}
705 
706 		if (immediate != null) {
707 			if (immediate.isLiteralText()==false) {
708 				component.setValueExpression(Properties.IMMEDIATE, immediate);
709 
710 			} else {
711 				component.setImmediate(getBool(immediate.getExpressionString()));
712 			}
713 		}
714 
715 		if (margins != null) {
716 			if (margins.isLiteralText()==false) {
717 				throw new javax.faces.FacesException("Attribute 'margins' does not accept binding !");
718 			}
719 				component.setMargins(margins.getExpressionString());
720 		}
721 
722 		if (value != null) {
723 			if (value.isLiteralText()==false) {
724 				component.setValueExpression(Properties.VALUE, value);
725 
726 			} else {
727 				component.setValue(value.getExpressionString());
728 			}
729 		}
730 
731 		if (converter != null) {
732 			if (converter.isLiteralText()==false) {
733 				component.setValueExpression(Properties.CONVERTER, converter);
734 
735 			} else {
736 				component.setConverter(converter.getExpressionString());
737 			}
738 		}
739 	}
740 
741 	public void release() {
742 		helpMessage = null;
743 		helpURL = null;
744 		toolTipText = null;
745 		blurListeners = null;
746 		focusListeners = null;
747 		backgroundColor = null;
748 		foregroundColor = null;
749 		visible = null;
750 		errorListeners = null;
751 		disabled = null;
752 		validationListeners = null;
753 		fontBold = null;
754 		fontItalic = null;
755 		fontName = null;
756 		fontSize = null;
757 		fontUnderline = null;
758 		mouseOutListeners = null;
759 		mouseOverListeners = null;
760 		unlockedClientAttributeNames = null;
761 		tabIndex = null;
762 		propertyChangeListeners = null;
763 		marginBottom = null;
764 		marginLeft = null;
765 		marginRight = null;
766 		marginTop = null;
767 		keyUpListeners = null;
768 		keyDownListeners = null;
769 		keyPressListeners = null;
770 		x = null;
771 		y = null;
772 		userEventListeners = null;
773 		partialRendering = null;
774 		styleClass = null;
775 		lookId = null;
776 		width = null;
777 		height = null;
778 		textAlignment = null;
779 		accessKey = null;
780 		ariaLabel = null;
781 		ariaLevel = null;
782 		waiRole = null;
783 		bottom = null;
784 		left = null;
785 		right = null;
786 		top = null;
787 		initListeners = null;
788 		hiddenMode = null;
789 		valueLocked = null;
790 		immediate = null;
791 		margins = null;
792 		value = null;
793 		converter = null;
794 
795 		super.release();
796 	}
797 
798 }