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.DataGridComponent;
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 DataGridTag extends AbstractDataTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(DataGridTag.class);
20  
21  	private ValueExpression selectionListeners;
22  	private ValueExpression selectable;
23  	private ValueExpression selectionCardinality;
24  	private ValueExpression selectedValues;
25  	private ValueExpression dragListeners;
26  	private ValueExpression dragEffects;
27  	private ValueExpression dragTypes;
28  	private ValueExpression draggable;
29  	private ValueExpression dropListeners;
30  	private ValueExpression dropCompleteListeners;
31  	private ValueExpression dropEffects;
32  	private ValueExpression dropTypes;
33  	private ValueExpression droppable;
34  	private ValueExpression checkListeners;
35  	private ValueExpression checkable;
36  	private ValueExpression checkCardinality;
37  	private ValueExpression checkedValues;
38  	private ValueExpression additionalInformationListeners;
39  	private ValueExpression additionalInformationValues;
40  	private ValueExpression clientAdditionalInformationFullState;
41  	private ValueExpression additionalInformationCardinality;
42  	private ValueExpression doubleClickListeners;
43  	private ValueExpression loadListeners;
44  	private ValueExpression required;
45  	private ValueExpression border;
46  	private ValueExpression rowStyleClass;
47  	private ValueExpression emptyDataMessage;
48  	private ValueExpression readOnly;
49  	private ValueExpression disabled;
50  	private ValueExpression horizontalScrollPosition;
51  	private ValueExpression verticalScrollPosition;
52  	private ValueExpression filterProperties;
53  	private ValueExpression showValue;
54  	private ValueExpression keySearchColumnId;
55  	private ValueExpression preferences;
56  	private ValueExpression paged;
57  	private ValueExpression clientSelectionFullState;
58  	private ValueExpression clientCheckFullState;
59  	private ValueExpression headerVisible;
60  	private ValueExpression cursorValue;
61  	private ValueExpression rowDragTypes;
62  	private ValueExpression rowDragEffects;
63  	private ValueExpression rowDropTypes;
64  	private ValueExpression rowDropEffects;
65  	private ValueExpression rowValueColumnId;
66  	private ValueExpression rowLabelColumnId;
67  	private ValueExpression rowCountVar;
68  	private ValueExpression rowIndexVar;
69  	private ValueExpression cellTextWrap;
70  	private ValueExpression bodyDroppable;
71  	private ValueExpression actionListeners;
72  	private ValueExpression action;
73  	public String getComponentType() {
74  		return DataGridComponent.COMPONENT_TYPE;
75  	}
76  
77  	public final void setSelectionListener(ValueExpression selectionListeners) {
78  		this.selectionListeners = selectionListeners;
79  	}
80  
81  	public final void setSelectable(ValueExpression selectable) {
82  		this.selectable = selectable;
83  	}
84  
85  	public final void setSelectionCardinality(ValueExpression selectionCardinality) {
86  		this.selectionCardinality = selectionCardinality;
87  	}
88  
89  	public final void setSelectedValues(ValueExpression selectedValues) {
90  		this.selectedValues = selectedValues;
91  	}
92  
93  	public final void setDragListener(ValueExpression dragListeners) {
94  		this.dragListeners = dragListeners;
95  	}
96  
97  	public final void setDragEffects(ValueExpression dragEffects) {
98  		this.dragEffects = dragEffects;
99  	}
100 
101 	public final void setDragTypes(ValueExpression dragTypes) {
102 		this.dragTypes = dragTypes;
103 	}
104 
105 	public final void setDraggable(ValueExpression draggable) {
106 		this.draggable = draggable;
107 	}
108 
109 	public final void setDropListener(ValueExpression dropListeners) {
110 		this.dropListeners = dropListeners;
111 	}
112 
113 	public final void setDropCompleteListener(ValueExpression dropCompleteListeners) {
114 		this.dropCompleteListeners = dropCompleteListeners;
115 	}
116 
117 	public final void setDropEffects(ValueExpression dropEffects) {
118 		this.dropEffects = dropEffects;
119 	}
120 
121 	public final void setDropTypes(ValueExpression dropTypes) {
122 		this.dropTypes = dropTypes;
123 	}
124 
125 	public final void setDroppable(ValueExpression droppable) {
126 		this.droppable = droppable;
127 	}
128 
129 	public final void setCheckListener(ValueExpression checkListeners) {
130 		this.checkListeners = checkListeners;
131 	}
132 
133 	public final void setCheckable(ValueExpression checkable) {
134 		this.checkable = checkable;
135 	}
136 
137 	public final void setCheckCardinality(ValueExpression checkCardinality) {
138 		this.checkCardinality = checkCardinality;
139 	}
140 
141 	public final void setCheckedValues(ValueExpression checkedValues) {
142 		this.checkedValues = checkedValues;
143 	}
144 
145 	public final void setAdditionalInformationListener(ValueExpression additionalInformationListeners) {
146 		this.additionalInformationListeners = additionalInformationListeners;
147 	}
148 
149 	public final void setAdditionalInformationValues(ValueExpression additionalInformationValues) {
150 		this.additionalInformationValues = additionalInformationValues;
151 	}
152 
153 	public final void setClientAdditionalInformationFullState(ValueExpression clientAdditionalInformationFullState) {
154 		this.clientAdditionalInformationFullState = clientAdditionalInformationFullState;
155 	}
156 
157 	public final void setAdditionalInformationCardinality(ValueExpression additionalInformationCardinality) {
158 		this.additionalInformationCardinality = additionalInformationCardinality;
159 	}
160 
161 	public final void setDoubleClickListener(ValueExpression doubleClickListeners) {
162 		this.doubleClickListeners = doubleClickListeners;
163 	}
164 
165 	public final void setLoadListener(ValueExpression loadListeners) {
166 		this.loadListeners = loadListeners;
167 	}
168 
169 	public final void setRequired(ValueExpression required) {
170 		this.required = required;
171 	}
172 
173 	public final void setBorder(ValueExpression border) {
174 		this.border = border;
175 	}
176 
177 	public final void setRowStyleClass(ValueExpression rowStyleClass) {
178 		this.rowStyleClass = rowStyleClass;
179 	}
180 
181 	public final void setEmptyDataMessage(ValueExpression emptyDataMessage) {
182 		this.emptyDataMessage = emptyDataMessage;
183 	}
184 
185 	public final void setReadOnly(ValueExpression readOnly) {
186 		this.readOnly = readOnly;
187 	}
188 
189 	public final void setDisabled(ValueExpression disabled) {
190 		this.disabled = disabled;
191 	}
192 
193 	public final void setHorizontalScrollPosition(ValueExpression horizontalScrollPosition) {
194 		this.horizontalScrollPosition = horizontalScrollPosition;
195 	}
196 
197 	public final void setVerticalScrollPosition(ValueExpression verticalScrollPosition) {
198 		this.verticalScrollPosition = verticalScrollPosition;
199 	}
200 
201 	public final void setFilterProperties(ValueExpression filterProperties) {
202 		this.filterProperties = filterProperties;
203 	}
204 
205 	public final void setShowValue(ValueExpression showValue) {
206 		this.showValue = showValue;
207 	}
208 
209 	public final void setKeySearchColumnId(ValueExpression keySearchColumnId) {
210 		this.keySearchColumnId = keySearchColumnId;
211 	}
212 
213 	public final void setPreferences(ValueExpression preferences) {
214 		this.preferences = preferences;
215 	}
216 
217 	public final void setPaged(ValueExpression paged) {
218 		this.paged = paged;
219 	}
220 
221 	public final void setClientSelectionFullState(ValueExpression clientSelectionFullState) {
222 		this.clientSelectionFullState = clientSelectionFullState;
223 	}
224 
225 	public final void setClientCheckFullState(ValueExpression clientCheckFullState) {
226 		this.clientCheckFullState = clientCheckFullState;
227 	}
228 
229 	public final void setHeaderVisible(ValueExpression headerVisible) {
230 		this.headerVisible = headerVisible;
231 	}
232 
233 	public final void setCursorValue(ValueExpression cursorValue) {
234 		this.cursorValue = cursorValue;
235 	}
236 
237 	public final void setRowDragTypes(ValueExpression rowDragTypes) {
238 		this.rowDragTypes = rowDragTypes;
239 	}
240 
241 	public final void setRowDragEffects(ValueExpression rowDragEffects) {
242 		this.rowDragEffects = rowDragEffects;
243 	}
244 
245 	public final void setRowDropTypes(ValueExpression rowDropTypes) {
246 		this.rowDropTypes = rowDropTypes;
247 	}
248 
249 	public final void setRowDropEffects(ValueExpression rowDropEffects) {
250 		this.rowDropEffects = rowDropEffects;
251 	}
252 
253 	public final void setRowValueColumnId(ValueExpression rowValueColumnId) {
254 		this.rowValueColumnId = rowValueColumnId;
255 	}
256 
257 	public final void setRowLabelColumnId(ValueExpression rowLabelColumnId) {
258 		this.rowLabelColumnId = rowLabelColumnId;
259 	}
260 
261 	public final void setRowCountVar(ValueExpression rowCountVar) {
262 		this.rowCountVar = rowCountVar;
263 	}
264 
265 	public final void setRowIndexVar(ValueExpression rowIndexVar) {
266 		this.rowIndexVar = rowIndexVar;
267 	}
268 
269 	public final void setCellTextWrap(ValueExpression cellTextWrap) {
270 		this.cellTextWrap = cellTextWrap;
271 	}
272 
273 	public final void setBodyDroppable(ValueExpression bodyDroppable) {
274 		this.bodyDroppable = bodyDroppable;
275 	}
276 
277 	public final void setAction(ValueExpression action) {
278 		this.action=action;
279 	}
280 
281 	public final void setActionListener(ValueExpression listeners) {
282 		this.actionListeners = listeners;
283 	}
284 
285 	protected void setProperties(UIComponent uiComponent) {
286 		if (LOG.isDebugEnabled()) {
287 			if (DataGridComponent.COMPONENT_TYPE==getComponentType()) {
288 				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
289 			}
290 			LOG.debug("  selectable='"+selectable+"'");
291 			LOG.debug("  selectionCardinality='"+selectionCardinality+"'");
292 			LOG.debug("  selectedValues='"+selectedValues+"'");
293 			LOG.debug("  dragEffects='"+dragEffects+"'");
294 			LOG.debug("  dragTypes='"+dragTypes+"'");
295 			LOG.debug("  draggable='"+draggable+"'");
296 			LOG.debug("  dropEffects='"+dropEffects+"'");
297 			LOG.debug("  dropTypes='"+dropTypes+"'");
298 			LOG.debug("  droppable='"+droppable+"'");
299 			LOG.debug("  checkable='"+checkable+"'");
300 			LOG.debug("  checkCardinality='"+checkCardinality+"'");
301 			LOG.debug("  checkedValues='"+checkedValues+"'");
302 			LOG.debug("  additionalInformationValues='"+additionalInformationValues+"'");
303 			LOG.debug("  clientAdditionalInformationFullState='"+clientAdditionalInformationFullState+"'");
304 			LOG.debug("  additionalInformationCardinality='"+additionalInformationCardinality+"'");
305 			LOG.debug("  required='"+required+"'");
306 			LOG.debug("  border='"+border+"'");
307 			LOG.debug("  rowStyleClass='"+rowStyleClass+"'");
308 			LOG.debug("  emptyDataMessage='"+emptyDataMessage+"'");
309 			LOG.debug("  readOnly='"+readOnly+"'");
310 			LOG.debug("  disabled='"+disabled+"'");
311 			LOG.debug("  horizontalScrollPosition='"+horizontalScrollPosition+"'");
312 			LOG.debug("  verticalScrollPosition='"+verticalScrollPosition+"'");
313 			LOG.debug("  filterProperties='"+filterProperties+"'");
314 			LOG.debug("  showValue='"+showValue+"'");
315 			LOG.debug("  keySearchColumnId='"+keySearchColumnId+"'");
316 			LOG.debug("  preferences='"+preferences+"'");
317 			LOG.debug("  paged='"+paged+"'");
318 			LOG.debug("  clientSelectionFullState='"+clientSelectionFullState+"'");
319 			LOG.debug("  clientCheckFullState='"+clientCheckFullState+"'");
320 			LOG.debug("  headerVisible='"+headerVisible+"'");
321 			LOG.debug("  cursorValue='"+cursorValue+"'");
322 			LOG.debug("  rowDragTypes='"+rowDragTypes+"'");
323 			LOG.debug("  rowDragEffects='"+rowDragEffects+"'");
324 			LOG.debug("  rowDropTypes='"+rowDropTypes+"'");
325 			LOG.debug("  rowDropEffects='"+rowDropEffects+"'");
326 			LOG.debug("  rowValueColumnId='"+rowValueColumnId+"'");
327 			LOG.debug("  rowLabelColumnId='"+rowLabelColumnId+"'");
328 			LOG.debug("  rowCountVar='"+rowCountVar+"'");
329 			LOG.debug("  rowIndexVar='"+rowIndexVar+"'");
330 			LOG.debug("  cellTextWrap='"+cellTextWrap+"'");
331 			LOG.debug("  bodyDroppable='"+bodyDroppable+"'");
332 			LOG.debug("  action='"+action+"'");
333 			LOG.debug("  actionListeners='"+actionListeners+"'");
334 		}
335 		if ((uiComponent instanceof DataGridComponent)==false) {
336 			if (uiComponent instanceof UIViewRoot) {
337 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
338 			}
339 			throw new IllegalStateException("Component specified by tag is not instanceof of 'DataGridComponent'.");
340 		}
341 
342 		super.setProperties(uiComponent);
343 
344 		DataGridComponent component = (DataGridComponent) uiComponent;
345 		FacesContext facesContext = getFacesContext();
346 
347 		if (selectionListeners != null) {
348 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.SELECTION_LISTENER_TYPE, selectionListeners);
349 		}
350 
351 		if (selectable != null) {
352 			if (selectable.isLiteralText()==false) {
353 				component.setValueExpression(Properties.SELECTABLE, selectable);
354 
355 			} else {
356 				component.setSelectable(getBool(selectable.getExpressionString()));
357 			}
358 		}
359 
360 		if (selectionCardinality != null) {
361 			if (selectionCardinality.isLiteralText()==false) {
362 				component.setValueExpression(Properties.SELECTION_CARDINALITY, selectionCardinality);
363 
364 			} else {
365 				component.setSelectionCardinality(selectionCardinality.getExpressionString());
366 			}
367 		}
368 
369 		if (selectedValues != null) {
370 				component.setValueExpression(Properties.SELECTED_VALUES, selectedValues);
371 		}
372 
373 		if (dragListeners != null) {
374 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DRAG_LISTENER_TYPE, dragListeners);
375 		}
376 
377 		if (dragEffects != null) {
378 			if (dragEffects.isLiteralText()==false) {
379 				component.setValueExpression(Properties.DRAG_EFFECTS, dragEffects);
380 
381 			} else {
382 				component.setDragEffects(dragEffects.getExpressionString());
383 			}
384 		}
385 
386 		if (dragTypes != null) {
387 			if (dragTypes.isLiteralText()==false) {
388 				component.setValueExpression(Properties.DRAG_TYPES, dragTypes);
389 
390 			} else {
391 				component.setDragTypes(dragTypes.getExpressionString());
392 			}
393 		}
394 
395 		if (draggable != null) {
396 			if (draggable.isLiteralText()==false) {
397 				component.setValueExpression(Properties.DRAGGABLE, draggable);
398 
399 			} else {
400 				component.setDraggable(getBool(draggable.getExpressionString()));
401 			}
402 		}
403 
404 		if (dropListeners != null) {
405 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DROP_LISTENER_TYPE, dropListeners);
406 		}
407 
408 		if (dropCompleteListeners != null) {
409 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DROP_COMPLETE_LISTENER_TYPE, dropCompleteListeners);
410 		}
411 
412 		if (dropEffects != null) {
413 			if (dropEffects.isLiteralText()==false) {
414 				component.setValueExpression(Properties.DROP_EFFECTS, dropEffects);
415 
416 			} else {
417 				component.setDropEffects(dropEffects.getExpressionString());
418 			}
419 		}
420 
421 		if (dropTypes != null) {
422 			if (dropTypes.isLiteralText()==false) {
423 				component.setValueExpression(Properties.DROP_TYPES, dropTypes);
424 
425 			} else {
426 				component.setDropTypes(dropTypes.getExpressionString());
427 			}
428 		}
429 
430 		if (droppable != null) {
431 			if (droppable.isLiteralText()==false) {
432 				component.setValueExpression(Properties.DROPPABLE, droppable);
433 
434 			} else {
435 				component.setDroppable(getBool(droppable.getExpressionString()));
436 			}
437 		}
438 
439 		if (checkListeners != null) {
440 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.CHECK_LISTENER_TYPE, checkListeners);
441 		}
442 
443 		if (checkable != null) {
444 			if (checkable.isLiteralText()==false) {
445 				component.setValueExpression(Properties.CHECKABLE, checkable);
446 
447 			} else {
448 				component.setCheckable(getBool(checkable.getExpressionString()));
449 			}
450 		}
451 
452 		if (checkCardinality != null) {
453 			if (checkCardinality.isLiteralText()==false) {
454 				component.setValueExpression(Properties.CHECK_CARDINALITY, checkCardinality);
455 
456 			} else {
457 				component.setCheckCardinality(checkCardinality.getExpressionString());
458 			}
459 		}
460 
461 		if (checkedValues != null) {
462 				component.setValueExpression(Properties.CHECKED_VALUES, checkedValues);
463 		}
464 
465 		if (additionalInformationListeners != null) {
466 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.ADDITIONAL_INFORMATION_LISTENER_TYPE, additionalInformationListeners);
467 		}
468 
469 		if (additionalInformationValues != null) {
470 				component.setValueExpression(Properties.ADDITIONAL_INFORMATION_VALUES, additionalInformationValues);
471 		}
472 
473 		if (clientAdditionalInformationFullState != null) {
474 			if (clientAdditionalInformationFullState.isLiteralText()==false) {
475 				component.setValueExpression(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE, clientAdditionalInformationFullState);
476 
477 			} else {
478 				component.setClientAdditionalInformationFullState(clientAdditionalInformationFullState.getExpressionString());
479 			}
480 		}
481 
482 		if (additionalInformationCardinality != null) {
483 			if (additionalInformationCardinality.isLiteralText()==false) {
484 				component.setValueExpression(Properties.ADDITIONAL_INFORMATION_CARDINALITY, additionalInformationCardinality);
485 
486 			} else {
487 				component.setAdditionalInformationCardinality(getInt(additionalInformationCardinality.getExpressionString()));
488 			}
489 		}
490 
491 		if (doubleClickListeners != null) {
492 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DOUBLE_CLICK_LISTENER_TYPE, doubleClickListeners);
493 		}
494 
495 		if (loadListeners != null) {
496 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.LOAD_LISTENER_TYPE, loadListeners);
497 		}
498 
499 		if (required != null) {
500 			if (required.isLiteralText()==false) {
501 				component.setValueExpression(Properties.REQUIRED, required);
502 
503 			} else {
504 				component.setRequired(getBool(required.getExpressionString()));
505 			}
506 		}
507 
508 		if (border != null) {
509 			if (border.isLiteralText()==false) {
510 				component.setValueExpression(Properties.BORDER, border);
511 
512 			} else {
513 				component.setBorder(getBool(border.getExpressionString()));
514 			}
515 		}
516 
517 		if (rowStyleClass != null) {
518 			if (rowStyleClass.isLiteralText()==false) {
519 				component.setValueExpression(Properties.ROW_STYLE_CLASS, rowStyleClass);
520 
521 			} else {
522 				component.setRowStyleClass(rowStyleClass.getExpressionString());
523 			}
524 		}
525 
526 		if (emptyDataMessage != null) {
527 			if (emptyDataMessage.isLiteralText()==false) {
528 				component.setValueExpression(Properties.EMPTY_DATA_MESSAGE, emptyDataMessage);
529 
530 			} else {
531 				component.setEmptyDataMessage(emptyDataMessage.getExpressionString());
532 			}
533 		}
534 
535 		if (readOnly != null) {
536 			if (readOnly.isLiteralText()==false) {
537 				component.setValueExpression(Properties.READ_ONLY, readOnly);
538 
539 			} else {
540 				component.setReadOnly(getBool(readOnly.getExpressionString()));
541 			}
542 		}
543 
544 		if (disabled != null) {
545 			if (disabled.isLiteralText()==false) {
546 				component.setValueExpression(Properties.DISABLED, disabled);
547 
548 			} else {
549 				component.setDisabled(getBool(disabled.getExpressionString()));
550 			}
551 		}
552 
553 		if (horizontalScrollPosition != null) {
554 			if (horizontalScrollPosition.isLiteralText()==false) {
555 				component.setValueExpression(Properties.HORIZONTAL_SCROLL_POSITION, horizontalScrollPosition);
556 
557 			} else {
558 				component.setHorizontalScrollPosition(getInt(horizontalScrollPosition.getExpressionString()));
559 			}
560 		}
561 
562 		if (verticalScrollPosition != null) {
563 			if (verticalScrollPosition.isLiteralText()==false) {
564 				component.setValueExpression(Properties.VERTICAL_SCROLL_POSITION, verticalScrollPosition);
565 
566 			} else {
567 				component.setVerticalScrollPosition(getInt(verticalScrollPosition.getExpressionString()));
568 			}
569 		}
570 
571 		if (filterProperties != null) {
572 			if (filterProperties.isLiteralText()==false) {
573 				component.setValueExpression(Properties.FILTER_PROPERTIES, filterProperties);
574 
575 			} else {
576 				component.setFilterProperties(filterProperties.getExpressionString());
577 			}
578 		}
579 
580 		if (showValue != null) {
581 			if (showValue.isLiteralText()==false) {
582 				component.setValueExpression(Properties.SHOW_VALUE, showValue);
583 
584 			} else {
585 				component.setShowValue(showValue.getExpressionString());
586 			}
587 		}
588 
589 		if (keySearchColumnId != null) {
590 			if (keySearchColumnId.isLiteralText()==false) {
591 				component.setValueExpression(Properties.KEY_SEARCH_COLUMN_ID, keySearchColumnId);
592 
593 			} else {
594 				component.setKeySearchColumnId(keySearchColumnId.getExpressionString());
595 			}
596 		}
597 
598 		if (preferences != null) {
599 				component.setValueExpression(Properties.PREFERENCES, preferences);
600 		}
601 
602 		if (paged != null) {
603 			if (paged.isLiteralText()==false) {
604 				component.setValueExpression(Properties.PAGED, paged);
605 
606 			} else {
607 				component.setPaged(getBool(paged.getExpressionString()));
608 			}
609 		}
610 
611 		if (clientSelectionFullState != null) {
612 			if (clientSelectionFullState.isLiteralText()==false) {
613 				component.setValueExpression(Properties.CLIENT_SELECTION_FULL_STATE, clientSelectionFullState);
614 
615 			} else {
616 				component.setClientSelectionFullState(clientSelectionFullState.getExpressionString());
617 			}
618 		}
619 
620 		if (clientCheckFullState != null) {
621 			if (clientCheckFullState.isLiteralText()==false) {
622 				component.setValueExpression(Properties.CLIENT_CHECK_FULL_STATE, clientCheckFullState);
623 
624 			} else {
625 				component.setClientCheckFullState(clientCheckFullState.getExpressionString());
626 			}
627 		}
628 
629 		if (headerVisible != null) {
630 			if (headerVisible.isLiteralText()==false) {
631 				component.setValueExpression(Properties.HEADER_VISIBLE, headerVisible);
632 
633 			} else {
634 				component.setHeaderVisible(getBool(headerVisible.getExpressionString()));
635 			}
636 		}
637 
638 		if (cursorValue != null) {
639 			if (cursorValue.isLiteralText()==false) {
640 				component.setValueExpression(Properties.CURSOR_VALUE, cursorValue);
641 
642 			} else {
643 				component.setCursorValue(cursorValue.getExpressionString());
644 			}
645 		}
646 
647 		if (rowDragTypes != null) {
648 			if (rowDragTypes.isLiteralText()==false) {
649 				component.setValueExpression(Properties.ROW_DRAG_TYPES, rowDragTypes);
650 
651 			} else {
652 				component.setRowDragTypes(rowDragTypes.getExpressionString());
653 			}
654 		}
655 
656 		if (rowDragEffects != null) {
657 			if (rowDragEffects.isLiteralText()==false) {
658 				component.setValueExpression(Properties.ROW_DRAG_EFFECTS, rowDragEffects);
659 
660 			} else {
661 				component.setRowDragEffects(rowDragEffects.getExpressionString());
662 			}
663 		}
664 
665 		if (rowDropTypes != null) {
666 			if (rowDropTypes.isLiteralText()==false) {
667 				component.setValueExpression(Properties.ROW_DROP_TYPES, rowDropTypes);
668 
669 			} else {
670 				component.setRowDropTypes(rowDropTypes.getExpressionString());
671 			}
672 		}
673 
674 		if (rowDropEffects != null) {
675 			if (rowDropEffects.isLiteralText()==false) {
676 				component.setValueExpression(Properties.ROW_DROP_EFFECTS, rowDropEffects);
677 
678 			} else {
679 				component.setRowDropEffects(rowDropEffects.getExpressionString());
680 			}
681 		}
682 
683 		if (rowValueColumnId != null) {
684 			if (rowValueColumnId.isLiteralText()==false) {
685 				component.setValueExpression(Properties.ROW_VALUE_COLUMN_ID, rowValueColumnId);
686 
687 			} else {
688 				component.setRowValueColumnId(rowValueColumnId.getExpressionString());
689 			}
690 		}
691 
692 		if (rowLabelColumnId != null) {
693 			if (rowLabelColumnId.isLiteralText()==false) {
694 				component.setValueExpression(Properties.ROW_LABEL_COLUMN_ID, rowLabelColumnId);
695 
696 			} else {
697 				component.setRowLabelColumnId(rowLabelColumnId.getExpressionString());
698 			}
699 		}
700 
701 		if (rowCountVar != null) {
702 			if (rowCountVar.isLiteralText()==false) {
703 				throw new javax.faces.FacesException("Attribute 'rowCountVar' does not accept binding !");
704 			}
705 				component.setRowCountVar(rowCountVar.getExpressionString());
706 		}
707 
708 		if (rowIndexVar != null) {
709 			if (rowIndexVar.isLiteralText()==false) {
710 				throw new javax.faces.FacesException("Attribute 'rowIndexVar' does not accept binding !");
711 			}
712 				component.setRowIndexVar(rowIndexVar.getExpressionString());
713 		}
714 
715 		if (cellTextWrap != null) {
716 			if (cellTextWrap.isLiteralText()==false) {
717 				component.setValueExpression(Properties.CELL_TEXT_WRAP, cellTextWrap);
718 
719 			} else {
720 				component.setCellTextWrap(getBool(cellTextWrap.getExpressionString()));
721 			}
722 		}
723 
724 		if (bodyDroppable != null) {
725 			if (bodyDroppable.isLiteralText()==false) {
726 				component.setValueExpression(Properties.BODY_DROPPABLE, bodyDroppable);
727 
728 			} else {
729 				component.setBodyDroppable(getBool(bodyDroppable.getExpressionString()));
730 			}
731 		}
732 
733 		if (action != null) {
734 			ListenersTools1_2.parseAction(facesContext, component, ListenersTools.SELECTION_LISTENER_TYPE, action);
735 		}
736 
737 		if (actionListeners != null) {
738 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.SELECTION_LISTENER_TYPE, actionListeners, true);
739 		}
740 	}
741 
742 	public void release() {
743 		selectionListeners = null;
744 		selectable = null;
745 		selectionCardinality = null;
746 		selectedValues = null;
747 		dragListeners = null;
748 		dragEffects = null;
749 		dragTypes = null;
750 		draggable = null;
751 		dropListeners = null;
752 		dropCompleteListeners = null;
753 		dropEffects = null;
754 		dropTypes = null;
755 		droppable = null;
756 		checkListeners = null;
757 		checkable = null;
758 		checkCardinality = null;
759 		checkedValues = null;
760 		additionalInformationListeners = null;
761 		additionalInformationValues = null;
762 		clientAdditionalInformationFullState = null;
763 		additionalInformationCardinality = null;
764 		doubleClickListeners = null;
765 		loadListeners = null;
766 		required = null;
767 		border = null;
768 		rowStyleClass = null;
769 		emptyDataMessage = null;
770 		readOnly = null;
771 		disabled = null;
772 		horizontalScrollPosition = null;
773 		verticalScrollPosition = null;
774 		filterProperties = null;
775 		showValue = null;
776 		keySearchColumnId = null;
777 		preferences = null;
778 		paged = null;
779 		clientSelectionFullState = null;
780 		clientCheckFullState = null;
781 		headerVisible = null;
782 		cursorValue = null;
783 		rowDragTypes = null;
784 		rowDragEffects = null;
785 		rowDropTypes = null;
786 		rowDropEffects = null;
787 		rowValueColumnId = null;
788 		rowLabelColumnId = null;
789 		rowCountVar = null;
790 		rowIndexVar = null;
791 		cellTextWrap = null;
792 		bodyDroppable = null;
793 		action = null;
794 		actionListeners = null;
795 
796 		super.release();
797 	}
798 
799 }