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