View Javadoc

1   package org.rcfaces.core.component;
2   
3   import org.rcfaces.core.internal.tools.CollectionTools.IComponentValueType;
4   import javax.faces.component.UIComponent;
5   import org.rcfaces.core.internal.converter.DragDropEffectsConverter;
6   import org.rcfaces.core.internal.component.Properties;
7   import org.rcfaces.core.component.capability.ISelectableCapability;
8   import org.rcfaces.core.internal.capability.ISortedComponentsCapability;
9   import org.rcfaces.core.internal.tools.SelectionTools;
10  import org.rcfaces.core.component.capability.IKeySearchColumnIdCapability;
11  import org.rcfaces.core.component.capability.IHeaderVisibilityCapability;
12  import org.rcfaces.core.component.capability.ILoadEventCapability;
13  import org.rcfaces.core.internal.tools.CollectionTools.IComponentValueTypeCapability;
14  import org.rcfaces.core.component.capability.IBorderCapability;
15  import org.rcfaces.core.component.capability.ISelectionCardinalityCapability;
16  import javax.faces.context.FacesContext;
17  import org.rcfaces.core.internal.capability.IDraggableGridComponent;
18  import org.rcfaces.core.component.capability.IDragEventCapability;
19  import org.rcfaces.core.component.IMenuComponent;
20  import org.rcfaces.core.component.capability.IReadOnlyCapability;
21  import org.rcfaces.core.component.capability.ISortedChildrenCapability;
22  import org.rcfaces.core.component.capability.IDroppableCapability;
23  import org.rcfaces.core.internal.converter.CheckCardinalityConverter;
24  import org.rcfaces.core.internal.capability.IAdditionalInformationRangeComponent;
25  import org.rcfaces.core.internal.tools.ComponentTools;
26  import org.rcfaces.core.internal.tools.CheckTools;
27  import org.rcfaces.core.component.capability.IScrollableCapability;
28  import org.rcfaces.core.component.capability.ISelectionEventCapability;
29  import org.rcfaces.core.model.ISortedComponent;
30  import org.rcfaces.core.internal.tools.AdditionalInformationTools;
31  import org.rcfaces.core.component.capability.ICheckedValuesCapability;
32  import org.rcfaces.core.internal.tools.OrderTools;
33  import org.rcfaces.core.component.iterator.IColumnIterator;
34  import org.rcfaces.core.internal.tools.MenuTools;
35  import org.rcfaces.core.component.capability.IEmptyDataMessageCapability;
36  import org.rcfaces.core.component.capability.IClientSelectionFullStateCapability;
37  import org.rcfaces.core.component.AbstractDataComponent;
38  import org.rcfaces.core.component.capability.IDraggableCapability;
39  import org.rcfaces.core.component.capability.IShowValueCapability;
40  import org.rcfaces.core.internal.capability.IGridComponent;
41  import org.rcfaces.core.internal.capability.IPreferencesSettings;
42  import org.rcfaces.core.internal.capability.ICheckRangeComponent;
43  import org.rcfaces.core.component.capability.IDropCompleteEventCapability;
44  import org.rcfaces.core.component.capability.IDisabledCapability;
45  import org.rcfaces.core.component.capability.IFilterCapability;
46  import java.util.Arrays;
47  import org.rcfaces.core.component.capability.IOrderedChildrenCapability;
48  import org.rcfaces.core.component.capability.IMenuCapability;
49  import org.rcfaces.core.component.iterator.IMenuIterator;
50  import org.rcfaces.core.component.capability.IClientAdditionalInformationFullStateCapability;
51  import org.rcfaces.core.component.capability.ICheckCardinalityCapability;
52  import org.rcfaces.core.internal.capability.ISelectionRangeComponent;
53  import org.apache.commons.logging.LogFactory;
54  import org.rcfaces.core.component.capability.IClientCheckFullStateCapability;
55  import org.rcfaces.core.lang.provider.ICursorProvider;
56  import org.rcfaces.core.component.capability.IPagedCapability;
57  import org.rcfaces.core.component.capability.IRequiredCapability;
58  import org.rcfaces.core.component.capability.ISelectedValuesCapability;
59  import org.rcfaces.core.internal.tools.GridTools;
60  import org.rcfaces.core.component.capability.IDragAndDropEffects;
61  import org.rcfaces.core.component.capability.ICheckableCapability;
62  import org.rcfaces.core.internal.converter.FilterPropertiesConverter;
63  import org.rcfaces.core.component.capability.IRowStyleClassCapability;
64  import org.rcfaces.core.internal.converter.SelectionCardinalityConverter;
65  import org.rcfaces.core.internal.tools.SortTools;
66  import org.apache.commons.logging.Log;
67  import org.rcfaces.core.internal.converter.DragDropTypesConverter;
68  import org.rcfaces.core.component.capability.IAdditionalInformationCardinalityCapability;
69  import java.util.Set;
70  import org.rcfaces.core.component.iterator.IDataColumnIterator;
71  import org.rcfaces.core.internal.capability.IDroppableGridComponent;
72  import org.rcfaces.core.component.capability.IDoubleClickEventCapability;
73  import org.rcfaces.core.component.capability.IAdditionalInformationEventCapability;
74  import org.rcfaces.core.component.DataColumnComponent;
75  import org.rcfaces.core.component.iterator.IAdditionalInformationIterator;
76  import org.rcfaces.core.component.capability.IDropEventCapability;
77  import java.lang.String;
78  import org.rcfaces.core.internal.converter.ClientFullStateConverter;
79  import org.rcfaces.core.component.capability.IAdditionalInformationValuesCapability;
80  import org.rcfaces.core.component.capability.ICheckEventCapability;
81  import javax.el.ValueExpression;
82  import java.util.HashSet;
83  import org.rcfaces.core.internal.converter.AdditionalInformationCardinalityConverter;
84  import org.rcfaces.core.model.IFilterProperties;
85  import org.rcfaces.core.internal.tools.CollectionTools;
86  
87  /**
88   * <p>The dataGrid Component is a grid component. It can be compared to the grid found in the list part of the modern file explorer. It allows sorts, resizing, contextual menus ...</p>
89   * <p>The dataGrid Component has the following capabilities :
90   * <ul>
91   * <li>ISelectionEventCapability</li>
92   * <li>ISelectableCapability</li>
93   * <li>ISelectionCardinalityCapability</li>
94   * <li>ISelectedValuesCapability</li>
95   * <li>IDragEventCapability</li>
96   * <li>IDraggableCapability</li>
97   * <li>IDropEventCapability</li>
98   * <li>IDropCompleteEventCapability</li>
99   * <li>IDroppableCapability</li>
100  * <li>ICheckEventCapability</li>
101  * <li>ICheckableCapability</li>
102  * <li>ICheckCardinalityCapability</li>
103  * <li>ICheckedValuesCapability</li>
104  * <li>IAdditionalInformationEventCapability</li>
105  * <li>IAdditionalInformationValuesCapability</li>
106  * <li>IClientAdditionalInformationFullStateCapability</li>
107  * <li>IAdditionalInformationCardinalityCapability</li>
108  * <li>IDoubleClickEventCapability</li>
109  * <li>ILoadEventCapability</li>
110  * <li>IRequiredCapability</li>
111  * <li>IRowStyleClassCapability</li>
112  * <li>IEmptyDataMessageCapability</li>
113  * <li>IReadOnlyCapability</li>
114  * <li>IDisabledCapability</li>
115  * <li>IMenuCapability</li>
116  * <li>IScrollableCapability</li>
117  * <li>IFilterCapability</li>
118  * <li>IShowValueCapability</li>
119  * <li>IPreferencesSettings</li>
120  * <li>IPagedCapability</li>
121  * <li>IClientSelectionFullStateCapability</li>
122  * <li>IClientCheckFullStateCapability</li>
123  * <li>IHeaderVisibilityCapability</li>
124  * <li>ICursorProvider</li>
125  * <li>IGridComponent</li>
126  * <li>IDroppableGridComponent</li>
127  * <li>IOrderedChildrenCapability</li>
128  * <li>ISortedChildrenCapability</li>
129  * <li>IComponentValueTypeCapability</li>
130  * <li>ISelectionRangeComponent</li>
131  * <li>ICheckRangeComponent</li>
132  * <li>ISortedComponentsCapability</li>
133  * <li>IAdditionalInformationRangeComponent</li>
134  * <li>IDraggableGridComponent</li>
135  * </ul>
136  * </p>
137  * 
138  * <p>The default <a href="/apidocs/index.html?org/rcfaces/core/component/DataGridComponent.html">dataGridComponent</a> renderer is link to the <a href="/jsdocs/index.html?f_dataGrid.html" target="_blank">f_dataGrid</a> javascript class. f_dataGrid extends f_grid, fa_readOnly, fa_checkManager, fa_droppable, fa_draggable, fa_autoOpen</p>
139  * 
140  * <p> Table of component style classes: </p>
141  * <table border="1" cellpadding="3" cellspacing="0" width="100%">
142  * <tbody>
143  * 
144  * <tr style="text-align:left">
145  * <th  width="33%">Style Name</th>
146  * <th width="50%">Description</th>
147  * </tr>
148  * 
149  * <tr  style="text-align:left">
150  * <td width="33%">f_dataGrid</td>
151  * <td id="ermvsh" width="50%">Defines styles for the wrapper DIV element.</td>
152  * </tr>
153  * <tr  style="text-align:left">
154  * <td width="33%">f_grid_dataTitle_scroll</td>
155  * <td id="ermvsh" width="50%">Defines styles for the wrapper DIV element for the header of colums.</td>
156  * </tr>
157  * <tr  style="text-align:left">
158  * <td width="33%">f_grid_dataBody_scroll</td>
159  * <td id="ermvsh" width="50%">Defines styles for the wrapper DIV element for the body.</td>
160  * </tr>
161  * <tr  style="text-align:left">
162  * <td width="33%">f_grid_sortManager</td>
163  * <td id="ermvsh" width="50%">Defines styles for the wrapper DIV element for the pop-up od the sort manager.</td>
164  * </tr>
165  * </tbody>
166  * </table>
167  */
168 public class DataGridComponent extends AbstractDataComponent implements 
169 	ISelectionEventCapability,
170 	ISelectableCapability,
171 	ISelectionCardinalityCapability,
172 	ISelectedValuesCapability,
173 	IDragEventCapability,
174 	IDraggableCapability,
175 	IDropEventCapability,
176 	IDropCompleteEventCapability,
177 	IDroppableCapability,
178 	ICheckEventCapability,
179 	ICheckableCapability,
180 	ICheckCardinalityCapability,
181 	ICheckedValuesCapability,
182 	IAdditionalInformationEventCapability,
183 	IAdditionalInformationValuesCapability,
184 	IClientAdditionalInformationFullStateCapability,
185 	IAdditionalInformationCardinalityCapability,
186 	IDoubleClickEventCapability,
187 	ILoadEventCapability,
188 	IRequiredCapability,
189 	IBorderCapability,
190 	IRowStyleClassCapability,
191 	IEmptyDataMessageCapability,
192 	IReadOnlyCapability,
193 	IDisabledCapability,
194 	IMenuCapability,
195 	IScrollableCapability,
196 	IFilterCapability,
197 	IShowValueCapability,
198 	IKeySearchColumnIdCapability,
199 	IPreferencesSettings,
200 	IPagedCapability,
201 	IClientSelectionFullStateCapability,
202 	IClientCheckFullStateCapability,
203 	IHeaderVisibilityCapability,
204 	ICursorProvider,
205 	IGridComponent,
206 	IDroppableGridComponent,
207 	IOrderedChildrenCapability,
208 	ISortedChildrenCapability,
209 	IComponentValueTypeCapability,
210 	ISelectionRangeComponent,
211 	ICheckRangeComponent,
212 	ISortedComponentsCapability,
213 	IAdditionalInformationRangeComponent,
214 	IDraggableGridComponent {
215 
216 	private static final Log LOG = LogFactory.getLog(DataGridComponent.class);
217 
218 	public static final String COMPONENT_TYPE="org.rcfaces.core.dataGrid";
219 
220 	protected static final Set CAMELIA_ATTRIBUTES=new HashSet(AbstractDataComponent.CAMELIA_ATTRIBUTES);
221 	static {
222 		CAMELIA_ATTRIBUTES.addAll(Arrays.asList(new String[] {"dragListener","rowDropEffects","dropListener","dropEffects","emptyDataMessage","loadListener","checkedValues","selectionListener","paged","additionalInformationListener","cursorValue","border","required","bodyDroppable","doubleClickListener","clientCheckFullState","rowLabelColumnId","horizontalScrollPosition","dropCompleteListener","rowCountVar","dropTypes","rowDragEffects","rowValueColumnId","additionalInformationCardinality","rowIndexVar","checkListener","headerVisible","selectionCardinality","droppable","dragTypes","rowDropTypes","clientAdditionalInformationFullState","checkCardinality","checkable","cellTextWrap","rowDragTypes","additionalInformationValues","showValue","verticalScrollPosition","clientSelectionFullState","preferences","filterProperties","dragEffects","selectedValues","rowStyleClass","keySearchColumnId","readOnly","selectable","draggable","disabled"}));
223 	}
224 
225 	public DataGridComponent() {
226 		setRendererType(COMPONENT_TYPE);
227 	}
228 
229 	public DataGridComponent(String componentId) {
230 		this();
231 		setId(componentId);
232 	}
233 
234 	public UIComponent[] getSortedChildren() {
235 
236 
237 				return SortTools.getSortedChildren(null, this, engine, DataColumnComponent.class);
238 			
239 	}
240 
241 	public void setSortedChildren(UIComponent[] components) {
242 
243 
244 				SortTools.setSortedChildren(null, this, engine, DataColumnComponent.class, components);
245 			
246 	}
247 
248 	public void setOrderedChildren(UIComponent[] components) {
249 
250 
251 				OrderTools.setOrderedChildren(null, this, engine, DataColumnComponent.class, components);
252 			
253 	}
254 
255 	public UIComponent[] getOrderedChildren() {
256 
257 
258 				return OrderTools.getOrderedChildren(null, this, engine, DataColumnComponent.class);
259 			
260 	}
261 
262 	public void setDragEffects(String dragEffects) {
263 
264 
265 			setDragEffects(((Integer)DragDropEffectsConverter.SINGLETON.getAsObject(null, this, dragEffects)).intValue());
266 		
267 	}
268 
269 	public void setDragTypes(String dragTypes) {
270 
271 
272 			setDragTypes((String[])DragDropTypesConverter.SINGLETON.getAsObject(null, this, dragTypes));
273 		
274 	}
275 
276 	public void setDropEffects(String dropEffects) {
277 
278 
279 			setDropEffects(((Integer)DragDropEffectsConverter.SINGLETON.getAsObject(null, this, dropEffects)).intValue());
280 		
281 	}
282 
283 	public void setDropTypes(String dropTypes) {
284 
285 
286 			setDropTypes((String[])DragDropTypesConverter.SINGLETON.getAsObject(null, this, dropTypes));
287 		
288 	}
289 
290 	public void setRowDragTypes(String dragTypes) {
291 
292 
293 			setRowDragTypes((String[])DragDropTypesConverter.SINGLETON.getAsObject(null, this, dragTypes));
294 		
295 	}
296 
297 	public void setRowDragEffects(String dragEffects) {
298 
299 
300 			setRowDragEffects(((Integer)DragDropEffectsConverter.SINGLETON.getAsObject(null, this, dragEffects)).intValue());
301 		
302 	}
303 
304 	public void setRowDropTypes(String dropTypes) {
305 
306 
307 			setRowDropTypes((String[])DragDropTypesConverter.SINGLETON.getAsObject(null, this, dropTypes));
308 		
309 	}
310 
311 	public void setRowDropEffects(String dropEffects) {
312 
313 
314 			setRowDropEffects(((Integer)DragDropEffectsConverter.SINGLETON.getAsObject(null, this, dropEffects)).intValue());
315 		
316 	}
317 
318 	public IComponentValueType getComponentValueType() {
319 
320 
321 				return GridTools.DATA_GRID_VALUE_TYPE;
322 			
323 	}
324 
325 	public IColumnIterator listColumns() {
326 
327 
328 				return GridTools.listColumns(this, org.rcfaces.core.component.DataColumnComponent.class);
329 			
330 	}
331 
332 	public IDataColumnIterator listDataColumns() {
333 
334 
335 				return GridTools.listDataColumns(this);
336 			
337 	}
338 
339 	public IAdditionalInformationIterator listAdditionalInformations() {
340 
341 
342 			return AdditionalInformationTools.listAdditionalInformations(this);
343 			
344 	}
345 
346 	public void setSelectionCardinality(String cardinality) {
347 
348 
349 			setSelectionCardinality(((Integer)SelectionCardinalityConverter.SINGLETON.getAsObject(null, this, cardinality)).intValue());
350 		
351 	}
352 
353 	public void setClientSelectionFullState(String state) {
354 
355 
356 			setClientSelectionFullState(((Integer)ClientFullStateConverter.SINGLETON.getAsObject(null, this, state)).intValue());
357 		
358 	}
359 
360 	public int getSelectedValuesCount() {
361 
362 
363 				return SelectionTools.getCount(getSelectedValues());
364 			
365 	}
366 
367 	public Object getFirstSelectedValue() {
368 
369 
370 				return SelectionTools.getFirst(getSelectedValues(), getValue());
371 			
372 	}
373 
374 	public Object[] listSelectedValues() {
375 
376 
377 				return SelectionTools.listValues(getSelectedValues(), getValue());
378 			
379 	}
380 
381 	public Object getSelectedValues(FacesContext facesContext) {
382 
383 			
384 				if (engine.isPropertySetted(Properties.SELECTED_VALUES)) {
385 					return engine.getValue(Properties.SELECTED_VALUES, facesContext);
386 				}
387 
388 				return SelectionTools.getAdaptedValues(getValue(), false);
389 			
390 	}
391 
392 	public void setSelectedValues(Object selectedValues) {
393 
394 
395 				if (engine.isPropertySetted(Properties.SELECTED_VALUES)==false) {
396 					if (SelectionTools.setAdaptedValues(getValue(), selectedValues)) {
397 						return;
398 					}
399 				}
400 								
401 				engine.setValue(Properties.SELECTED_VALUES, selectedValues);
402 			
403 	}
404 
405 	public void setCheckCardinality(String cardinality) {
406 
407 
408 			setCheckCardinality(((Integer)CheckCardinalityConverter.SINGLETON.getAsObject(null, this, cardinality)).intValue());
409 		
410 	}
411 
412 	public void setClientCheckFullState(String state) {
413 
414 
415 			setClientCheckFullState(((Integer)ClientFullStateConverter.SINGLETON.getAsObject(null, this, state)).intValue());
416 		
417 	}
418 
419 	public int getCheckedValuesCount() {
420 
421 
422 				return CheckTools.getCount(getCheckedValues());
423 			
424 	}
425 
426 	public Object getFirstCheckedValue() {
427 
428 
429 				return CheckTools.getFirst(getCheckedValues(), getValue());
430 			
431 	}
432 
433 	public Object[] listCheckedValues() {
434 
435 
436 				return CheckTools.listValues(getCheckedValues(), getValue());
437 			
438 	}
439 
440 	public Object getCheckedValues(FacesContext facesContext) {
441 
442 
443 				if (engine.isPropertySetted(Properties.CHECKED_VALUES)) {
444 					return engine.getValue(Properties.CHECKED_VALUES, facesContext);
445 				}
446 
447 				return CheckTools.getAdaptedValues(getValue(), false);
448 			
449 	}
450 
451 	public void setCheckedValues(Object checkedValues) {
452 
453 
454 				if (engine.isPropertySetted(Properties.CHECKED_VALUES)==false) {
455 					if (CheckTools.setAdaptedValues(getValue(), checkedValues)) {
456 						return;
457 					}
458 				}
459 								
460 				engine.setValue(Properties.CHECKED_VALUES, checkedValues);
461 			
462 	}
463 
464 	public void setAdditionalInformationCardinality(String cardinality) {
465 
466 
467 			setAdditionalInformationCardinality(((Integer)AdditionalInformationCardinalityConverter.SINGLETON.getAsObject(null, this, cardinality)).intValue());
468 		
469 	}
470 
471 	public void setClientAdditionalInformationFullState(String state) {
472 
473 
474 			setClientAdditionalInformationFullState(((Integer)ClientFullStateConverter.SINGLETON.getAsObject(null, this, state)).intValue());
475 		
476 	}
477 
478 	public int getAdditionalInformationValuesCount() {
479 
480 
481 				return AdditionalInformationTools.getCount(getAdditionalInformationValues());
482 			
483 	}
484 
485 	public Object getFirstAdditionalInformationValue() {
486 
487 
488 				return AdditionalInformationTools.getFirst(getAdditionalInformationValues(), null);
489 			
490 	}
491 
492 	public Object getAdditionalInformationValues(FacesContext facesContext) {
493 
494 
495 				return engine.getValue(Properties.ADDITIONAL_INFORMATION_VALUES, facesContext);
496 			
497 	}
498 
499 	public Object[] listAdditionalInformationValues() {
500 
501 
502 				return AdditionalInformationTools.listValues(getAdditionalInformationValues(), getValue());
503 			
504 	}
505 
506 	public DataColumnComponent[] getSortedColumns() {
507 
508 
509 				return (DataColumnComponent[])getSortedChildren();
510 			
511 	}
512 
513 	public DataColumnComponent getFirstSortedColumn() {
514 
515 
516 				return (DataColumnComponent)SortTools.getFirstSortedChild(null, this, engine, DataColumnComponent.class );
517 			
518 	}
519 
520 	public void setSortedColumn(DataColumnComponent dataColumn) {
521 
522 
523 				SortTools.setSortedChildren(null, this, engine, DataColumnComponent.class, new DataColumnComponent[] { dataColumn });
524 			
525 	}
526 
527 	public void setSortedColumns(DataColumnComponent[] dataColumns) {
528 
529 
530 				setSortedChildren(dataColumns);
531 			
532 	}
533 
534 	public ISortedComponent[] listSortedComponents(FacesContext context) {
535 
536 
537 				return GridTools.listSortedComponents(context, this);
538 			
539 	}
540 
541 	public void select(Object rowValue) {
542 
543 
544 				SelectionTools.select(null, this, rowValue);
545 			
546 	}
547 
548 	public void select(int index) {
549 
550 
551 				SelectionTools.select(null, this, index);
552 			
553 	}
554 
555 	public void select(int[] indices) {
556 
557 
558 				SelectionTools.select(null, this, indices);
559 			
560 	}
561 
562 	public void select(int start, int end) {
563 
564 
565 				SelectionTools.select(null, this, start, end);
566 			
567 	}
568 
569 	public void selectAll() {
570 
571 
572 				SelectionTools.selectAll(null, this);
573 			
574 	}
575 
576 	public void deselect(Object rowValue) {
577 
578 
579 				SelectionTools.deselect(null, this, rowValue);
580 			
581 	}
582 
583 	public void deselect(int index) {
584 
585 
586 				SelectionTools.deselect(null, this, index);
587 			
588 	}
589 
590 	public void deselect(int[] indices) {
591 
592 
593 				SelectionTools.deselect(null, this, indices);
594 			
595 	}
596 
597 	public void deselect(int start, int end) {
598 
599 
600 				SelectionTools.deselect(null, this, start, end);
601 			
602 	}
603 
604 	public void deselectAll() {
605 
606 
607 				SelectionTools.deselectAll(null, this);
608 			
609 	}
610 
611 	public void check(Object rowValue) {
612 
613 
614 				CheckTools.check(null, this, rowValue);
615 			
616 	}
617 
618 	public void check(int index) {
619 
620 
621 				CheckTools.check(null, this, index);
622 			
623 	}
624 
625 	public void check(int[] indices) {
626 
627 
628 				CheckTools.check(null, this, indices);
629 			
630 	}
631 
632 	public void check(int start, int end) {
633 
634 
635 				CheckTools.check(null, this, start, end);
636 			
637 	}
638 
639 	public void checkAll() {
640 
641 
642 				CheckTools.checkAll(null, this);
643 			
644 	}
645 
646 	public void uncheck(Object rowValue) {
647 
648 
649 				CheckTools.uncheck(null, this, rowValue);
650 			
651 	}
652 
653 	public void uncheck(int index) {
654 
655 
656 				CheckTools.uncheck(null, this, index);
657 			
658 	}
659 
660 	public void uncheck(int[] indices) {
661 
662 
663 				CheckTools.uncheck(null, this, indices);
664 			
665 	}
666 
667 	public void uncheck(int start, int end) {
668 
669 
670 				CheckTools.uncheck(null, this, start, end);
671 			
672 	}
673 
674 	public void uncheckAll() {
675 
676 
677 				CheckTools.uncheckAll(null, this);
678 			
679 	}
680 
681 	public void showAdditionalInformation(Object rowValue) {
682 
683 
684 				AdditionalInformationTools.show(null, this, rowValue);
685 			
686 	}
687 
688 	public void showAdditionalInformation(int index) {
689 
690 
691 				AdditionalInformationTools.show(null, this, index);
692 			
693 	}
694 
695 	public void showAdditionalInformation(int[] indexes) {
696 
697 
698 				AdditionalInformationTools.show(null, this, indexes);
699 			
700 	}
701 
702 	public void showAllAdditionalInformations() {
703 
704 
705 				AdditionalInformationTools.showAll(null, this);
706 			
707 	}
708 
709 	public void hideAdditionalInformation(Object rowValue) {
710 
711 
712 				AdditionalInformationTools.hide(null, this, rowValue);
713 			
714 	}
715 
716 	public void hideAdditionalInformation(int index) {
717 
718 
719 				AdditionalInformationTools.hide(null, this, index);
720 			
721 	}
722 
723 	public void hideAdditionalInformation(int[] indexes) {
724 
725 
726 				AdditionalInformationTools.hide(null, this, indexes);
727 			
728 	}
729 
730 	public void hideAllAdditionalInformations() {
731 
732 
733 				AdditionalInformationTools.hideAll(null, this);
734 			
735 	}
736 
737 	public Object getCursorValue(FacesContext facesContext) {
738 
739 
740 				Object cursorValue=engine.getValue(Properties.CURSOR_VALUE, facesContext);
741 				if (cursorValue!=null) {
742 					return cursorValue;
743 				}
744 				
745 				return ComponentTools.getCursorValue(getValue(), this, facesContext);
746 			
747 	}
748 
749 	public void setFilterProperties(String properties) {
750 
751 
752 			IFilterProperties filterProperties=(IFilterProperties)FilterPropertiesConverter.SINGLETON.getAsObject(null, this, properties);
753 			
754 			setFilterProperties(filterProperties);
755 		
756 	}
757 
758 	public final void addSelectionListener(org.rcfaces.core.event.ISelectionListener listener) {
759 		addFacesListener(listener);
760 	}
761 
762 	public final void removeSelectionListener(org.rcfaces.core.event.ISelectionListener listener) {
763 		removeFacesListener(listener);
764 	}
765 
766 	public final javax.faces.event.FacesListener [] listSelectionListeners() {
767 		return getFacesListeners(org.rcfaces.core.event.ISelectionListener.class);
768 	}
769 
770 	public boolean isSelectable() {
771 		return isSelectable(null);
772 	}
773 
774 	/**
775 	 * See {@link #isSelectable() isSelectable()} for more details
776 	 */
777 	public boolean isSelectable(javax.faces.context.FacesContext facesContext) {
778 		return engine.getBoolProperty(Properties.SELECTABLE, false, facesContext);
779 	}
780 
781 	/**
782 	 * Returns <code>true</code> if the attribute "selectable" is set.
783 	 * @return <code>true</code> if the attribute is set.
784 	 */
785 	public final boolean isSelectableSetted() {
786 		return engine.isPropertySetted(Properties.SELECTABLE);
787 	}
788 
789 	public void setSelectable(boolean selectable) {
790 		engine.setProperty(Properties.SELECTABLE, selectable);
791 	}
792 
793 	public int getSelectionCardinality() {
794 		return getSelectionCardinality(null);
795 	}
796 
797 	/**
798 	 * See {@link #getSelectionCardinality() getSelectionCardinality()} for more details
799 	 */
800 	public int getSelectionCardinality(javax.faces.context.FacesContext facesContext) {
801 		return engine.getIntProperty(Properties.SELECTION_CARDINALITY,0, facesContext);
802 	}
803 
804 	/**
805 	 * Returns <code>true</code> if the attribute "selectionCardinality" is set.
806 	 * @return <code>true</code> if the attribute is set.
807 	 */
808 	public final boolean isSelectionCardinalitySetted() {
809 		return engine.isPropertySetted(Properties.SELECTION_CARDINALITY);
810 	}
811 
812 	public void setSelectionCardinality(int selectionCardinality) {
813 		engine.setProperty(Properties.SELECTION_CARDINALITY, selectionCardinality);
814 	}
815 
816 	public java.lang.Object getSelectedValues() {
817 		return getSelectedValues(null);
818 	}
819 
820 	/**
821 	 * Returns <code>true</code> if the attribute "selectedValues" is set.
822 	 * @return <code>true</code> if the attribute is set.
823 	 */
824 	public final boolean isSelectedValuesSetted() {
825 		return engine.isPropertySetted(Properties.SELECTED_VALUES);
826 	}
827 
828 	/**
829 	 * Return the type of the property represented by the {@link ValueExpression}, relative to the specified {@link javax.faces.context.FacesContext}.
830 	 */
831 	public Class getSelectedValuesType(javax.faces.context.FacesContext facesContext) {
832 		ValueExpression valueExpression=engine.getValueExpressionProperty(Properties.SELECTED_VALUES);
833 		if (valueExpression==null) {
834 			return null;
835 		}
836 		if (facesContext==null) {
837 			facesContext=javax.faces.context.FacesContext.getCurrentInstance();
838 		}
839 		return valueExpression.getType(facesContext.getELContext());
840 	}
841 
842 	public final void addDragListener(org.rcfaces.core.event.IDragListener listener) {
843 		addFacesListener(listener);
844 	}
845 
846 	public final void removeDragListener(org.rcfaces.core.event.IDragListener listener) {
847 		removeFacesListener(listener);
848 	}
849 
850 	public final javax.faces.event.FacesListener [] listDragListeners() {
851 		return getFacesListeners(org.rcfaces.core.event.IDragListener.class);
852 	}
853 
854 	public int getDragEffects() {
855 		return getDragEffects(null);
856 	}
857 
858 	/**
859 	 * See {@link #getDragEffects() getDragEffects()} for more details
860 	 */
861 	public int getDragEffects(javax.faces.context.FacesContext facesContext) {
862 		return engine.getIntProperty(Properties.DRAG_EFFECTS,IDragAndDropEffects.UNKNOWN_DND_EFFECT, facesContext);
863 	}
864 
865 	/**
866 	 * Returns <code>true</code> if the attribute "dragEffects" is set.
867 	 * @return <code>true</code> if the attribute is set.
868 	 */
869 	public final boolean isDragEffectsSetted() {
870 		return engine.isPropertySetted(Properties.DRAG_EFFECTS);
871 	}
872 
873 	public void setDragEffects(int dragEffects) {
874 		engine.setProperty(Properties.DRAG_EFFECTS, dragEffects);
875 	}
876 
877 	public java.lang.String[] getDragTypes() {
878 		return getDragTypes(null);
879 	}
880 
881 	/**
882 	 * See {@link #getDragTypes() getDragTypes()} for more details
883 	 */
884 	public java.lang.String[] getDragTypes(javax.faces.context.FacesContext facesContext) {
885 		return (java.lang.String[])engine.getProperty(Properties.DRAG_TYPES, facesContext);
886 	}
887 
888 	/**
889 	 * Returns <code>true</code> if the attribute "dragTypes" is set.
890 	 * @return <code>true</code> if the attribute is set.
891 	 */
892 	public final boolean isDragTypesSetted() {
893 		return engine.isPropertySetted(Properties.DRAG_TYPES);
894 	}
895 
896 	public void setDragTypes(java.lang.String[] dragTypes) {
897 		engine.setProperty(Properties.DRAG_TYPES, dragTypes);
898 	}
899 
900 	public boolean isDraggable() {
901 		return isDraggable(null);
902 	}
903 
904 	/**
905 	 * See {@link #isDraggable() isDraggable()} for more details
906 	 */
907 	public boolean isDraggable(javax.faces.context.FacesContext facesContext) {
908 		return engine.getBoolProperty(Properties.DRAGGABLE, false, facesContext);
909 	}
910 
911 	/**
912 	 * Returns <code>true</code> if the attribute "draggable" is set.
913 	 * @return <code>true</code> if the attribute is set.
914 	 */
915 	public final boolean isDraggableSetted() {
916 		return engine.isPropertySetted(Properties.DRAGGABLE);
917 	}
918 
919 	public void setDraggable(boolean draggable) {
920 		engine.setProperty(Properties.DRAGGABLE, draggable);
921 	}
922 
923 	public final void addDropListener(org.rcfaces.core.event.IDropListener listener) {
924 		addFacesListener(listener);
925 	}
926 
927 	public final void removeDropListener(org.rcfaces.core.event.IDropListener listener) {
928 		removeFacesListener(listener);
929 	}
930 
931 	public final javax.faces.event.FacesListener [] listDropListeners() {
932 		return getFacesListeners(org.rcfaces.core.event.IDropListener.class);
933 	}
934 
935 	public final void addDropCompleteListener(org.rcfaces.core.event.IDropCompleteListener listener) {
936 		addFacesListener(listener);
937 	}
938 
939 	public final void removeDropCompleteListener(org.rcfaces.core.event.IDropCompleteListener listener) {
940 		removeFacesListener(listener);
941 	}
942 
943 	public final javax.faces.event.FacesListener [] listDropCompleteListeners() {
944 		return getFacesListeners(org.rcfaces.core.event.IDropCompleteListener.class);
945 	}
946 
947 	public int getDropEffects() {
948 		return getDropEffects(null);
949 	}
950 
951 	/**
952 	 * See {@link #getDropEffects() getDropEffects()} for more details
953 	 */
954 	public int getDropEffects(javax.faces.context.FacesContext facesContext) {
955 		return engine.getIntProperty(Properties.DROP_EFFECTS,IDragAndDropEffects.UNKNOWN_DND_EFFECT, facesContext);
956 	}
957 
958 	/**
959 	 * Returns <code>true</code> if the attribute "dropEffects" is set.
960 	 * @return <code>true</code> if the attribute is set.
961 	 */
962 	public final boolean isDropEffectsSetted() {
963 		return engine.isPropertySetted(Properties.DROP_EFFECTS);
964 	}
965 
966 	public void setDropEffects(int dropEffects) {
967 		engine.setProperty(Properties.DROP_EFFECTS, dropEffects);
968 	}
969 
970 	public java.lang.String[] getDropTypes() {
971 		return getDropTypes(null);
972 	}
973 
974 	/**
975 	 * See {@link #getDropTypes() getDropTypes()} for more details
976 	 */
977 	public java.lang.String[] getDropTypes(javax.faces.context.FacesContext facesContext) {
978 		return (java.lang.String[])engine.getProperty(Properties.DROP_TYPES, facesContext);
979 	}
980 
981 	/**
982 	 * Returns <code>true</code> if the attribute "dropTypes" is set.
983 	 * @return <code>true</code> if the attribute is set.
984 	 */
985 	public final boolean isDropTypesSetted() {
986 		return engine.isPropertySetted(Properties.DROP_TYPES);
987 	}
988 
989 	public void setDropTypes(java.lang.String[] dropTypes) {
990 		engine.setProperty(Properties.DROP_TYPES, dropTypes);
991 	}
992 
993 	public boolean isDroppable() {
994 		return isDroppable(null);
995 	}
996 
997 	/**
998 	 * See {@link #isDroppable() isDroppable()} for more details
999 	 */
1000 	public boolean isDroppable(javax.faces.context.FacesContext facesContext) {
1001 		return engine.getBoolProperty(Properties.DROPPABLE, false, facesContext);
1002 	}
1003 
1004 	/**
1005 	 * Returns <code>true</code> if the attribute "droppable" is set.
1006 	 * @return <code>true</code> if the attribute is set.
1007 	 */
1008 	public final boolean isDroppableSetted() {
1009 		return engine.isPropertySetted(Properties.DROPPABLE);
1010 	}
1011 
1012 	public void setDroppable(boolean droppable) {
1013 		engine.setProperty(Properties.DROPPABLE, droppable);
1014 	}
1015 
1016 	public final void addCheckListener(org.rcfaces.core.event.ICheckListener listener) {
1017 		addFacesListener(listener);
1018 	}
1019 
1020 	public final void removeCheckListener(org.rcfaces.core.event.ICheckListener listener) {
1021 		removeFacesListener(listener);
1022 	}
1023 
1024 	public final javax.faces.event.FacesListener [] listCheckListeners() {
1025 		return getFacesListeners(org.rcfaces.core.event.ICheckListener.class);
1026 	}
1027 
1028 	public boolean isCheckable() {
1029 		return isCheckable(null);
1030 	}
1031 
1032 	/**
1033 	 * See {@link #isCheckable() isCheckable()} for more details
1034 	 */
1035 	public boolean isCheckable(javax.faces.context.FacesContext facesContext) {
1036 		return engine.getBoolProperty(Properties.CHECKABLE, false, facesContext);
1037 	}
1038 
1039 	/**
1040 	 * Returns <code>true</code> if the attribute "checkable" is set.
1041 	 * @return <code>true</code> if the attribute is set.
1042 	 */
1043 	public final boolean isCheckableSetted() {
1044 		return engine.isPropertySetted(Properties.CHECKABLE);
1045 	}
1046 
1047 	public void setCheckable(boolean checkable) {
1048 		engine.setProperty(Properties.CHECKABLE, checkable);
1049 	}
1050 
1051 	public int getCheckCardinality() {
1052 		return getCheckCardinality(null);
1053 	}
1054 
1055 	/**
1056 	 * See {@link #getCheckCardinality() getCheckCardinality()} for more details
1057 	 */
1058 	public int getCheckCardinality(javax.faces.context.FacesContext facesContext) {
1059 		return engine.getIntProperty(Properties.CHECK_CARDINALITY,0, facesContext);
1060 	}
1061 
1062 	/**
1063 	 * Returns <code>true</code> if the attribute "checkCardinality" is set.
1064 	 * @return <code>true</code> if the attribute is set.
1065 	 */
1066 	public final boolean isCheckCardinalitySetted() {
1067 		return engine.isPropertySetted(Properties.CHECK_CARDINALITY);
1068 	}
1069 
1070 	public void setCheckCardinality(int checkCardinality) {
1071 		engine.setProperty(Properties.CHECK_CARDINALITY, checkCardinality);
1072 	}
1073 
1074 	public java.lang.Object getCheckedValues() {
1075 		return getCheckedValues(null);
1076 	}
1077 
1078 	/**
1079 	 * Returns <code>true</code> if the attribute "checkedValues" is set.
1080 	 * @return <code>true</code> if the attribute is set.
1081 	 */
1082 	public final boolean isCheckedValuesSetted() {
1083 		return engine.isPropertySetted(Properties.CHECKED_VALUES);
1084 	}
1085 
1086 	/**
1087 	 * Return the type of the property represented by the {@link ValueExpression}, relative to the specified {@link javax.faces.context.FacesContext}.
1088 	 */
1089 	public Class getCheckedValuesType(javax.faces.context.FacesContext facesContext) {
1090 		ValueExpression valueExpression=engine.getValueExpressionProperty(Properties.CHECKED_VALUES);
1091 		if (valueExpression==null) {
1092 			return null;
1093 		}
1094 		if (facesContext==null) {
1095 			facesContext=javax.faces.context.FacesContext.getCurrentInstance();
1096 		}
1097 		return valueExpression.getType(facesContext.getELContext());
1098 	}
1099 
1100 	public final void addAdditionalInformationListener(org.rcfaces.core.event.IAdditionalInformationListener listener) {
1101 		addFacesListener(listener);
1102 	}
1103 
1104 	public final void removeAdditionalInformationListener(org.rcfaces.core.event.IAdditionalInformationListener listener) {
1105 		removeFacesListener(listener);
1106 	}
1107 
1108 	public final javax.faces.event.FacesListener [] listAdditionalInformationListeners() {
1109 		return getFacesListeners(org.rcfaces.core.event.IAdditionalInformationListener.class);
1110 	}
1111 
1112 	public java.lang.Object getAdditionalInformationValues() {
1113 		return getAdditionalInformationValues(null);
1114 	}
1115 
1116 	/**
1117 	 * Returns <code>true</code> if the attribute "additionalInformationValues" is set.
1118 	 * @return <code>true</code> if the attribute is set.
1119 	 */
1120 	public final boolean isAdditionalInformationValuesSetted() {
1121 		return engine.isPropertySetted(Properties.ADDITIONAL_INFORMATION_VALUES);
1122 	}
1123 
1124 	public void setAdditionalInformationValues(java.lang.Object additionalInformationValues) {
1125 		engine.setProperty(Properties.ADDITIONAL_INFORMATION_VALUES, additionalInformationValues);
1126 	}
1127 
1128 	/**
1129 	 * Return the type of the property represented by the {@link ValueExpression}, relative to the specified {@link javax.faces.context.FacesContext}.
1130 	 */
1131 	public Class getAdditionalInformationValuesType(javax.faces.context.FacesContext facesContext) {
1132 		ValueExpression valueExpression=engine.getValueExpressionProperty(Properties.ADDITIONAL_INFORMATION_VALUES);
1133 		if (valueExpression==null) {
1134 			return null;
1135 		}
1136 		if (facesContext==null) {
1137 			facesContext=javax.faces.context.FacesContext.getCurrentInstance();
1138 		}
1139 		return valueExpression.getType(facesContext.getELContext());
1140 	}
1141 
1142 	public int getClientAdditionalInformationFullState() {
1143 		return getClientAdditionalInformationFullState(null);
1144 	}
1145 
1146 	/**
1147 	 * See {@link #getClientAdditionalInformationFullState() getClientAdditionalInformationFullState()} for more details
1148 	 */
1149 	public int getClientAdditionalInformationFullState(javax.faces.context.FacesContext facesContext) {
1150 		return engine.getIntProperty(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE,0, facesContext);
1151 	}
1152 
1153 	/**
1154 	 * Returns <code>true</code> if the attribute "clientAdditionalInformationFullState" is set.
1155 	 * @return <code>true</code> if the attribute is set.
1156 	 */
1157 	public final boolean isClientAdditionalInformationFullStateSetted() {
1158 		return engine.isPropertySetted(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE);
1159 	}
1160 
1161 	public void setClientAdditionalInformationFullState(int clientAdditionalInformationFullState) {
1162 		engine.setProperty(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE, clientAdditionalInformationFullState);
1163 	}
1164 
1165 	public int getAdditionalInformationCardinality() {
1166 		return getAdditionalInformationCardinality(null);
1167 	}
1168 
1169 	/**
1170 	 * See {@link #getAdditionalInformationCardinality() getAdditionalInformationCardinality()} for more details
1171 	 */
1172 	public int getAdditionalInformationCardinality(javax.faces.context.FacesContext facesContext) {
1173 		return engine.getIntProperty(Properties.ADDITIONAL_INFORMATION_CARDINALITY,0, facesContext);
1174 	}
1175 
1176 	/**
1177 	 * Returns <code>true</code> if the attribute "additionalInformationCardinality" is set.
1178 	 * @return <code>true</code> if the attribute is set.
1179 	 */
1180 	public final boolean isAdditionalInformationCardinalitySetted() {
1181 		return engine.isPropertySetted(Properties.ADDITIONAL_INFORMATION_CARDINALITY);
1182 	}
1183 
1184 	public void setAdditionalInformationCardinality(int additionalInformationCardinality) {
1185 		engine.setProperty(Properties.ADDITIONAL_INFORMATION_CARDINALITY, additionalInformationCardinality);
1186 	}
1187 
1188 	public final void addDoubleClickListener(org.rcfaces.core.event.IDoubleClickListener listener) {
1189 		addFacesListener(listener);
1190 	}
1191 
1192 	public final void removeDoubleClickListener(org.rcfaces.core.event.IDoubleClickListener listener) {
1193 		removeFacesListener(listener);
1194 	}
1195 
1196 	public final javax.faces.event.FacesListener [] listDoubleClickListeners() {
1197 		return getFacesListeners(org.rcfaces.core.event.IDoubleClickListener.class);
1198 	}
1199 
1200 	public final void addLoadListener(org.rcfaces.core.event.ILoadListener listener) {
1201 		addFacesListener(listener);
1202 	}
1203 
1204 	public final void removeLoadListener(org.rcfaces.core.event.ILoadListener listener) {
1205 		removeFacesListener(listener);
1206 	}
1207 
1208 	public final javax.faces.event.FacesListener [] listLoadListeners() {
1209 		return getFacesListeners(org.rcfaces.core.event.ILoadListener.class);
1210 	}
1211 
1212 	public boolean isRequired() {
1213 		return isRequired(null);
1214 	}
1215 
1216 	/**
1217 	 * See {@link #isRequired() isRequired()} for more details
1218 	 */
1219 	public boolean isRequired(javax.faces.context.FacesContext facesContext) {
1220 		return engine.getBoolProperty(Properties.REQUIRED, false, facesContext);
1221 	}
1222 
1223 	/**
1224 	 * Returns <code>true</code> if the attribute "required" is set.
1225 	 * @return <code>true</code> if the attribute is set.
1226 	 */
1227 	public final boolean isRequiredSetted() {
1228 		return engine.isPropertySetted(Properties.REQUIRED);
1229 	}
1230 
1231 	public void setRequired(boolean required) {
1232 		engine.setProperty(Properties.REQUIRED, required);
1233 	}
1234 
1235 	public boolean isBorder() {
1236 		return isBorder(null);
1237 	}
1238 
1239 	/**
1240 	 * See {@link #isBorder() isBorder()} for more details
1241 	 */
1242 	public boolean isBorder(javax.faces.context.FacesContext facesContext) {
1243 		return engine.getBoolProperty(Properties.BORDER, true, facesContext);
1244 	}
1245 
1246 	/**
1247 	 * Returns <code>true</code> if the attribute "border" is set.
1248 	 * @return <code>true</code> if the attribute is set.
1249 	 */
1250 	public final boolean isBorderSetted() {
1251 		return engine.isPropertySetted(Properties.BORDER);
1252 	}
1253 
1254 	public void setBorder(boolean border) {
1255 		engine.setProperty(Properties.BORDER, border);
1256 	}
1257 
1258 	public java.lang.String getRowStyleClass() {
1259 		return getRowStyleClass(null);
1260 	}
1261 
1262 	/**
1263 	 * See {@link #getRowStyleClass() getRowStyleClass()} for more details
1264 	 */
1265 	public java.lang.String getRowStyleClass(javax.faces.context.FacesContext facesContext) {
1266 		return engine.getStringProperty(Properties.ROW_STYLE_CLASS, facesContext);
1267 	}
1268 
1269 	/**
1270 	 * Returns <code>true</code> if the attribute "rowStyleClass" is set.
1271 	 * @return <code>true</code> if the attribute is set.
1272 	 */
1273 	public final boolean isRowStyleClassSetted() {
1274 		return engine.isPropertySetted(Properties.ROW_STYLE_CLASS);
1275 	}
1276 
1277 	public void setRowStyleClass(java.lang.String rowStyleClass) {
1278 		engine.setProperty(Properties.ROW_STYLE_CLASS, rowStyleClass);
1279 	}
1280 
1281 	public java.lang.String getEmptyDataMessage() {
1282 		return getEmptyDataMessage(null);
1283 	}
1284 
1285 	/**
1286 	 * See {@link #getEmptyDataMessage() getEmptyDataMessage()} for more details
1287 	 */
1288 	public java.lang.String getEmptyDataMessage(javax.faces.context.FacesContext facesContext) {
1289 		return engine.getStringProperty(Properties.EMPTY_DATA_MESSAGE, facesContext);
1290 	}
1291 
1292 	/**
1293 	 * Returns <code>true</code> if the attribute "emptyDataMessage" is set.
1294 	 * @return <code>true</code> if the attribute is set.
1295 	 */
1296 	public final boolean isEmptyDataMessageSetted() {
1297 		return engine.isPropertySetted(Properties.EMPTY_DATA_MESSAGE);
1298 	}
1299 
1300 	public void setEmptyDataMessage(java.lang.String emptyDataMessage) {
1301 		engine.setProperty(Properties.EMPTY_DATA_MESSAGE, emptyDataMessage);
1302 	}
1303 
1304 	public boolean isReadOnly() {
1305 		return isReadOnly(null);
1306 	}
1307 
1308 	/**
1309 	 * See {@link #isReadOnly() isReadOnly()} for more details
1310 	 */
1311 	public boolean isReadOnly(javax.faces.context.FacesContext facesContext) {
1312 		return engine.getBoolProperty(Properties.READ_ONLY, false, facesContext);
1313 	}
1314 
1315 	/**
1316 	 * Returns <code>true</code> if the attribute "readOnly" is set.
1317 	 * @return <code>true</code> if the attribute is set.
1318 	 */
1319 	public final boolean isReadOnlySetted() {
1320 		return engine.isPropertySetted(Properties.READ_ONLY);
1321 	}
1322 
1323 	public void setReadOnly(boolean readOnly) {
1324 		engine.setProperty(Properties.READ_ONLY, readOnly);
1325 	}
1326 
1327 	public boolean isDisabled() {
1328 		return isDisabled(null);
1329 	}
1330 
1331 	/**
1332 	 * See {@link #isDisabled() isDisabled()} for more details
1333 	 */
1334 	public boolean isDisabled(javax.faces.context.FacesContext facesContext) {
1335 		return engine.getBoolProperty(Properties.DISABLED, false, facesContext);
1336 	}
1337 
1338 	/**
1339 	 * Returns <code>true</code> if the attribute "disabled" is set.
1340 	 * @return <code>true</code> if the attribute is set.
1341 	 */
1342 	public final boolean isDisabledSetted() {
1343 		return engine.isPropertySetted(Properties.DISABLED);
1344 	}
1345 
1346 	public void setDisabled(boolean disabled) {
1347 		engine.setProperty(Properties.DISABLED, disabled);
1348 	}
1349 
1350 	public IMenuComponent getMenu() {
1351 
1352 
1353 		return MenuTools.getMenu(this);
1354 		
1355 	}
1356 
1357 	public IMenuComponent getMenu(String menuId) {
1358 
1359 
1360 		return MenuTools.getMenu(this, menuId);
1361 		
1362 	}
1363 
1364 	public IMenuIterator listMenus() {
1365 
1366 
1367 		return MenuTools.listMenus(this);
1368 		
1369 	}
1370 
1371 	public int getHorizontalScrollPosition() {
1372 		return getHorizontalScrollPosition(null);
1373 	}
1374 
1375 	/**
1376 	 * See {@link #getHorizontalScrollPosition() getHorizontalScrollPosition()} for more details
1377 	 */
1378 	public int getHorizontalScrollPosition(javax.faces.context.FacesContext facesContext) {
1379 		return engine.getIntProperty(Properties.HORIZONTAL_SCROLL_POSITION,0, facesContext);
1380 	}
1381 
1382 	/**
1383 	 * Returns <code>true</code> if the attribute "horizontalScrollPosition" is set.
1384 	 * @return <code>true</code> if the attribute is set.
1385 	 */
1386 	public final boolean isHorizontalScrollPositionSetted() {
1387 		return engine.isPropertySetted(Properties.HORIZONTAL_SCROLL_POSITION);
1388 	}
1389 
1390 	public void setHorizontalScrollPosition(int horizontalScrollPosition) {
1391 		engine.setProperty(Properties.HORIZONTAL_SCROLL_POSITION, horizontalScrollPosition);
1392 	}
1393 
1394 	public int getVerticalScrollPosition() {
1395 		return getVerticalScrollPosition(null);
1396 	}
1397 
1398 	/**
1399 	 * See {@link #getVerticalScrollPosition() getVerticalScrollPosition()} for more details
1400 	 */
1401 	public int getVerticalScrollPosition(javax.faces.context.FacesContext facesContext) {
1402 		return engine.getIntProperty(Properties.VERTICAL_SCROLL_POSITION,0, facesContext);
1403 	}
1404 
1405 	/**
1406 	 * Returns <code>true</code> if the attribute "verticalScrollPosition" is set.
1407 	 * @return <code>true</code> if the attribute is set.
1408 	 */
1409 	public final boolean isVerticalScrollPositionSetted() {
1410 		return engine.isPropertySetted(Properties.VERTICAL_SCROLL_POSITION);
1411 	}
1412 
1413 	public void setVerticalScrollPosition(int verticalScrollPosition) {
1414 		engine.setProperty(Properties.VERTICAL_SCROLL_POSITION, verticalScrollPosition);
1415 	}
1416 
1417 	public org.rcfaces.core.model.IFilterProperties getFilterProperties() {
1418 		return getFilterProperties(null);
1419 	}
1420 
1421 	/**
1422 	 * See {@link #getFilterProperties() getFilterProperties()} for more details
1423 	 */
1424 	public org.rcfaces.core.model.IFilterProperties getFilterProperties(javax.faces.context.FacesContext facesContext) {
1425 		return (org.rcfaces.core.model.IFilterProperties)engine.getProperty(Properties.FILTER_PROPERTIES, facesContext);
1426 	}
1427 
1428 	/**
1429 	 * Returns <code>true</code> if the attribute "filterProperties" is set.
1430 	 * @return <code>true</code> if the attribute is set.
1431 	 */
1432 	public final boolean isFilterPropertiesSetted() {
1433 		return engine.isPropertySetted(Properties.FILTER_PROPERTIES);
1434 	}
1435 
1436 	public void setFilterProperties(org.rcfaces.core.model.IFilterProperties filterProperties) {
1437 		engine.setProperty(Properties.FILTER_PROPERTIES, filterProperties);
1438 	}
1439 
1440 	public java.lang.Object getShowValue() {
1441 		return getShowValue(null);
1442 	}
1443 
1444 	/**
1445 	 * See {@link #getShowValue() getShowValue()} for more details
1446 	 */
1447 	public java.lang.Object getShowValue(javax.faces.context.FacesContext facesContext) {
1448 		return engine.getProperty(Properties.SHOW_VALUE, facesContext);
1449 	}
1450 
1451 	/**
1452 	 * Returns <code>true</code> if the attribute "showValue" is set.
1453 	 * @return <code>true</code> if the attribute is set.
1454 	 */
1455 	public final boolean isShowValueSetted() {
1456 		return engine.isPropertySetted(Properties.SHOW_VALUE);
1457 	}
1458 
1459 	public void setShowValue(java.lang.Object showValue) {
1460 		engine.setProperty(Properties.SHOW_VALUE, showValue);
1461 	}
1462 
1463 	public java.lang.String getKeySearchColumnId() {
1464 		return getKeySearchColumnId(null);
1465 	}
1466 
1467 	/**
1468 	 * See {@link #getKeySearchColumnId() getKeySearchColumnId()} for more details
1469 	 */
1470 	public java.lang.String getKeySearchColumnId(javax.faces.context.FacesContext facesContext) {
1471 		return engine.getStringProperty(Properties.KEY_SEARCH_COLUMN_ID, facesContext);
1472 	}
1473 
1474 	/**
1475 	 * Returns <code>true</code> if the attribute "keySearchColumnId" is set.
1476 	 * @return <code>true</code> if the attribute is set.
1477 	 */
1478 	public final boolean isKeySearchColumnIdSetted() {
1479 		return engine.isPropertySetted(Properties.KEY_SEARCH_COLUMN_ID);
1480 	}
1481 
1482 	public void setKeySearchColumnId(java.lang.String keySearchColumnId) {
1483 		engine.setProperty(Properties.KEY_SEARCH_COLUMN_ID, keySearchColumnId);
1484 	}
1485 
1486 	public org.rcfaces.core.preference.IComponentPreferences getPreferences() {
1487 		return getPreferences(null);
1488 	}
1489 
1490 	/**
1491 	 * See {@link #getPreferences() getPreferences()} for more details
1492 	 */
1493 	public org.rcfaces.core.preference.IComponentPreferences getPreferences(javax.faces.context.FacesContext facesContext) {
1494 		return (org.rcfaces.core.preference.IComponentPreferences)engine.getProperty(Properties.PREFERENCES, facesContext);
1495 	}
1496 
1497 	/**
1498 	 * Returns <code>true</code> if the attribute "preferences" is set.
1499 	 * @return <code>true</code> if the attribute is set.
1500 	 */
1501 	public final boolean isPreferencesSetted() {
1502 		return engine.isPropertySetted(Properties.PREFERENCES);
1503 	}
1504 
1505 	public void setPreferences(org.rcfaces.core.preference.IComponentPreferences preferences) {
1506 		engine.setProperty(Properties.PREFERENCES, preferences);
1507 	}
1508 
1509 	public boolean isPaged() {
1510 		return isPaged(null);
1511 	}
1512 
1513 	/**
1514 	 * See {@link #isPaged() isPaged()} for more details
1515 	 */
1516 	public boolean isPaged(javax.faces.context.FacesContext facesContext) {
1517 		return engine.getBoolProperty(Properties.PAGED, false, facesContext);
1518 	}
1519 
1520 	public boolean isPagedSetted() {
1521 
1522 
1523 			return engine.isPropertySetted(Properties.PAGED);
1524 		
1525 	}
1526 
1527 	public void setPaged(boolean paged) {
1528 		engine.setProperty(Properties.PAGED, paged);
1529 	}
1530 
1531 	public int getClientSelectionFullState() {
1532 		return getClientSelectionFullState(null);
1533 	}
1534 
1535 	/**
1536 	 * See {@link #getClientSelectionFullState() getClientSelectionFullState()} for more details
1537 	 */
1538 	public int getClientSelectionFullState(javax.faces.context.FacesContext facesContext) {
1539 		return engine.getIntProperty(Properties.CLIENT_SELECTION_FULL_STATE,0, facesContext);
1540 	}
1541 
1542 	/**
1543 	 * Returns <code>true</code> if the attribute "clientSelectionFullState" is set.
1544 	 * @return <code>true</code> if the attribute is set.
1545 	 */
1546 	public final boolean isClientSelectionFullStateSetted() {
1547 		return engine.isPropertySetted(Properties.CLIENT_SELECTION_FULL_STATE);
1548 	}
1549 
1550 	public void setClientSelectionFullState(int clientSelectionFullState) {
1551 		engine.setProperty(Properties.CLIENT_SELECTION_FULL_STATE, clientSelectionFullState);
1552 	}
1553 
1554 	public int getClientCheckFullState() {
1555 		return getClientCheckFullState(null);
1556 	}
1557 
1558 	/**
1559 	 * See {@link #getClientCheckFullState() getClientCheckFullState()} for more details
1560 	 */
1561 	public int getClientCheckFullState(javax.faces.context.FacesContext facesContext) {
1562 		return engine.getIntProperty(Properties.CLIENT_CHECK_FULL_STATE,0, facesContext);
1563 	}
1564 
1565 	/**
1566 	 * Returns <code>true</code> if the attribute "clientCheckFullState" is set.
1567 	 * @return <code>true</code> if the attribute is set.
1568 	 */
1569 	public final boolean isClientCheckFullStateSetted() {
1570 		return engine.isPropertySetted(Properties.CLIENT_CHECK_FULL_STATE);
1571 	}
1572 
1573 	public void setClientCheckFullState(int clientCheckFullState) {
1574 		engine.setProperty(Properties.CLIENT_CHECK_FULL_STATE, clientCheckFullState);
1575 	}
1576 
1577 	public boolean isHeaderVisible() {
1578 		return isHeaderVisible(null);
1579 	}
1580 
1581 	/**
1582 	 * See {@link #isHeaderVisible() isHeaderVisible()} for more details
1583 	 */
1584 	public boolean isHeaderVisible(javax.faces.context.FacesContext facesContext) {
1585 		return engine.getBoolProperty(Properties.HEADER_VISIBLE, true, facesContext);
1586 	}
1587 
1588 	/**
1589 	 * Returns <code>true</code> if the attribute "headerVisible" is set.
1590 	 * @return <code>true</code> if the attribute is set.
1591 	 */
1592 	public final boolean isHeaderVisibleSetted() {
1593 		return engine.isPropertySetted(Properties.HEADER_VISIBLE);
1594 	}
1595 
1596 	public void setHeaderVisible(boolean headerVisible) {
1597 		engine.setProperty(Properties.HEADER_VISIBLE, headerVisible);
1598 	}
1599 
1600 	public java.lang.Object getCursorValue() {
1601 		return getCursorValue(null);
1602 	}
1603 
1604 	/**
1605 	 * Returns <code>true</code> if the attribute "cursorValue" is set.
1606 	 * @return <code>true</code> if the attribute is set.
1607 	 */
1608 	public final boolean isCursorValueSetted() {
1609 		return engine.isPropertySetted(Properties.CURSOR_VALUE);
1610 	}
1611 
1612 	public void setCursorValue(java.lang.Object cursorValue) {
1613 		engine.setProperty(Properties.CURSOR_VALUE, cursorValue);
1614 	}
1615 
1616 	public String[] getRowDragTypes() {
1617 		return getRowDragTypes(null);
1618 	}
1619 
1620 	public String[] getRowDragTypes(javax.faces.context.FacesContext facesContext) {
1621 		return (String[])engine.getValue(Properties.ROW_DRAG_TYPES, facesContext);
1622 	}
1623 
1624 	public void setRowDragTypes(String[] rowDragTypes) {
1625 		engine.setProperty(Properties.ROW_DRAG_TYPES, rowDragTypes);
1626 	}
1627 
1628 	/**
1629 	 * Returns <code>true</code> if the attribute "rowDragTypes" is set.
1630 	 * @return <code>true</code> if the attribute is set.
1631 	 */
1632 	public boolean isRowDragTypesSetted() {
1633 		return engine.isPropertySetted(Properties.ROW_DRAG_TYPES);
1634 	}
1635 
1636 	public int getRowDragEffects() {
1637 		return getRowDragEffects(null);
1638 	}
1639 
1640 	public int getRowDragEffects(javax.faces.context.FacesContext facesContext) {
1641 		return engine.getIntProperty(Properties.ROW_DRAG_EFFECTS, 0, facesContext);
1642 	}
1643 
1644 	public void setRowDragEffects(int rowDragEffects) {
1645 		engine.setProperty(Properties.ROW_DRAG_EFFECTS, rowDragEffects);
1646 	}
1647 
1648 	/**
1649 	 * Returns <code>true</code> if the attribute "rowDragEffects" is set.
1650 	 * @return <code>true</code> if the attribute is set.
1651 	 */
1652 	public boolean isRowDragEffectsSetted() {
1653 		return engine.isPropertySetted(Properties.ROW_DRAG_EFFECTS);
1654 	}
1655 
1656 	public String[] getRowDropTypes() {
1657 		return getRowDropTypes(null);
1658 	}
1659 
1660 	public String[] getRowDropTypes(javax.faces.context.FacesContext facesContext) {
1661 		return (String[])engine.getValue(Properties.ROW_DROP_TYPES, facesContext);
1662 	}
1663 
1664 	public void setRowDropTypes(String[] rowDropTypes) {
1665 		engine.setProperty(Properties.ROW_DROP_TYPES, rowDropTypes);
1666 	}
1667 
1668 	/**
1669 	 * Returns <code>true</code> if the attribute "rowDropTypes" is set.
1670 	 * @return <code>true</code> if the attribute is set.
1671 	 */
1672 	public boolean isRowDropTypesSetted() {
1673 		return engine.isPropertySetted(Properties.ROW_DROP_TYPES);
1674 	}
1675 
1676 	public int getRowDropEffects() {
1677 		return getRowDropEffects(null);
1678 	}
1679 
1680 	public int getRowDropEffects(javax.faces.context.FacesContext facesContext) {
1681 		return engine.getIntProperty(Properties.ROW_DROP_EFFECTS, 0, facesContext);
1682 	}
1683 
1684 	public void setRowDropEffects(int rowDropEffects) {
1685 		engine.setProperty(Properties.ROW_DROP_EFFECTS, rowDropEffects);
1686 	}
1687 
1688 	/**
1689 	 * Returns <code>true</code> if the attribute "rowDropEffects" is set.
1690 	 * @return <code>true</code> if the attribute is set.
1691 	 */
1692 	public boolean isRowDropEffectsSetted() {
1693 		return engine.isPropertySetted(Properties.ROW_DROP_EFFECTS);
1694 	}
1695 
1696 	/**
1697 	 * Returns the id for the column containing the key for the row.
1698 	 * @return column id
1699 	 */
1700 	public String getRowValueColumnId() {
1701 		return getRowValueColumnId(null);
1702 	}
1703 
1704 	/**
1705 	 * Returns the id for the column containing the key for the row.
1706 	 * @return column id
1707 	 */
1708 	public String getRowValueColumnId(javax.faces.context.FacesContext facesContext) {
1709 		return engine.getStringProperty(Properties.ROW_VALUE_COLUMN_ID, facesContext);
1710 	}
1711 
1712 	/**
1713 	 * Sets the id for the column containing the key for the row.
1714 	 * @param rowValueColumnId column id
1715 	 */
1716 	public void setRowValueColumnId(String rowValueColumnId) {
1717 		engine.setProperty(Properties.ROW_VALUE_COLUMN_ID, rowValueColumnId);
1718 	}
1719 
1720 	/**
1721 	 * Sets the id for the column containing the key for the row.
1722 	 * @param rowValueColumnId column id
1723 	 */
1724 	/**
1725 	 * Returns <code>true</code> if the attribute "rowValueColumnId" is set.
1726 	 * @return <code>true</code> if the attribute is set.
1727 	 */
1728 	public boolean isRowValueColumnIdSetted() {
1729 		return engine.isPropertySetted(Properties.ROW_VALUE_COLUMN_ID);
1730 	}
1731 
1732 	public String getRowLabelColumnId() {
1733 		return getRowLabelColumnId(null);
1734 	}
1735 
1736 	public String getRowLabelColumnId(javax.faces.context.FacesContext facesContext) {
1737 		return engine.getStringProperty(Properties.ROW_LABEL_COLUMN_ID, facesContext);
1738 	}
1739 
1740 	public void setRowLabelColumnId(String rowLabelColumnId) {
1741 		engine.setProperty(Properties.ROW_LABEL_COLUMN_ID, rowLabelColumnId);
1742 	}
1743 
1744 	/**
1745 	 * Returns <code>true</code> if the attribute "rowLabelColumnId" is set.
1746 	 * @return <code>true</code> if the attribute is set.
1747 	 */
1748 	public boolean isRowLabelColumnIdSetted() {
1749 		return engine.isPropertySetted(Properties.ROW_LABEL_COLUMN_ID);
1750 	}
1751 
1752 	/**
1753 	 * Returns a string value specifying the name of the variable receiving the number of rows.
1754 	 * @return variable name
1755 	 */
1756 	public String getRowCountVar() {
1757 		return getRowCountVar(null);
1758 	}
1759 
1760 	/**
1761 	 * Returns a string value specifying the name of the variable receiving the number of rows.
1762 	 * @return variable name
1763 	 */
1764 	public String getRowCountVar(javax.faces.context.FacesContext facesContext) {
1765 		return engine.getStringProperty(Properties.ROW_COUNT_VAR, facesContext);
1766 	}
1767 
1768 	/**
1769 	 * Sets a string value specifying the name of the variable receiving the number of rows.
1770 	 * @param rowCountVar variable name
1771 	 */
1772 	public void setRowCountVar(String rowCountVar) {
1773 		engine.setProperty(Properties.ROW_COUNT_VAR, rowCountVar);
1774 	}
1775 
1776 	/**
1777 	 * Sets a string value specifying the name of the variable receiving the number of rows.
1778 	 * @param rowCountVar variable name
1779 	 */
1780 	/**
1781 	 * Returns <code>true</code> if the attribute "rowCountVar" is set.
1782 	 * @return <code>true</code> if the attribute is set.
1783 	 */
1784 	public boolean isRowCountVarSetted() {
1785 		return engine.isPropertySetted(Properties.ROW_COUNT_VAR);
1786 	}
1787 
1788 	/**
1789 	 * Returns a string value specifying the name of the variable receiving the index of the current row.
1790 	 * @return variable name
1791 	 */
1792 	public String getRowIndexVar() {
1793 		return getRowIndexVar(null);
1794 	}
1795 
1796 	/**
1797 	 * Returns a string value specifying the name of the variable receiving the index of the current row.
1798 	 * @return variable name
1799 	 */
1800 	public String getRowIndexVar(javax.faces.context.FacesContext facesContext) {
1801 		return engine.getStringProperty(Properties.ROW_INDEX_VAR, facesContext);
1802 	}
1803 
1804 	/**
1805 	 * Sets a string value specifying the name of the variable receiving the index of the current row.
1806 	 * @param rowIndexVar variable name
1807 	 */
1808 	public void setRowIndexVar(String rowIndexVar) {
1809 		engine.setProperty(Properties.ROW_INDEX_VAR, rowIndexVar);
1810 	}
1811 
1812 	/**
1813 	 * Sets a string value specifying the name of the variable receiving the index of the current row.
1814 	 * @param rowIndexVar variable name
1815 	 */
1816 	/**
1817 	 * Returns <code>true</code> if the attribute "rowIndexVar" is set.
1818 	 * @return <code>true</code> if the attribute is set.
1819 	 */
1820 	public boolean isRowIndexVarSetted() {
1821 		return engine.isPropertySetted(Properties.ROW_INDEX_VAR);
1822 	}
1823 
1824 	public boolean isCellTextWrap() {
1825 		return isCellTextWrap(null);
1826 	}
1827 
1828 	public boolean isCellTextWrap(javax.faces.context.FacesContext facesContext) {
1829 		return engine.getBoolProperty(Properties.CELL_TEXT_WRAP, false, facesContext);
1830 	}
1831 
1832 	public void setCellTextWrap(boolean cellTextWrap) {
1833 		engine.setProperty(Properties.CELL_TEXT_WRAP, cellTextWrap);
1834 	}
1835 
1836 	/**
1837 	 * Returns <code>true</code> if the attribute "cellTextWrap" is set.
1838 	 * @return <code>true</code> if the attribute is set.
1839 	 */
1840 	public boolean isCellTextWrapSetted() {
1841 		return engine.isPropertySetted(Properties.CELL_TEXT_WRAP);
1842 	}
1843 
1844 	public boolean isBodyDroppable() {
1845 		return isBodyDroppable(null);
1846 	}
1847 
1848 	public boolean isBodyDroppable(javax.faces.context.FacesContext facesContext) {
1849 		return engine.getBoolProperty(Properties.BODY_DROPPABLE, false, facesContext);
1850 	}
1851 
1852 	public void setBodyDroppable(boolean bodyDroppable) {
1853 		engine.setProperty(Properties.BODY_DROPPABLE, bodyDroppable);
1854 	}
1855 
1856 	/**
1857 	 * Returns <code>true</code> if the attribute "bodyDroppable" is set.
1858 	 * @return <code>true</code> if the attribute is set.
1859 	 */
1860 	public boolean isBodyDroppableSetted() {
1861 		return engine.isPropertySetted(Properties.BODY_DROPPABLE);
1862 	}
1863 
1864 	protected Set getCameliaFields() {
1865 		return CAMELIA_ATTRIBUTES;
1866 	}
1867 }