View Javadoc

1   package org.rcfaces.core.component;
2   
3   import javax.faces.component.UIComponent;
4   import org.rcfaces.core.internal.tools.CollectionTools.IComponentValueType;
5   import org.rcfaces.core.internal.component.Properties;
6   import org.rcfaces.core.component.capability.IClientAdditionalInformationFullStateCapability;
7   import org.apache.commons.logging.LogFactory;
8   import org.rcfaces.core.component.capability.IHeaderVisibilityCapability;
9   import org.rcfaces.core.internal.tools.CollectionTools.IComponentValueTypeCapability;
10  import org.rcfaces.core.component.capability.IPagedCapability;
11  import javax.faces.context.FacesContext;
12  import org.rcfaces.core.internal.tools.GridTools;
13  import org.rcfaces.core.component.ComboColumnComponent;
14  import org.rcfaces.core.component.capability.IRowStyleClassCapability;
15  import org.apache.commons.logging.Log;
16  import org.rcfaces.core.internal.tools.SortTools;
17  import org.rcfaces.core.component.capability.ISortedChildrenCapability;
18  import org.rcfaces.core.component.capability.IAdditionalInformationCardinalityCapability;
19  import java.util.Set;
20  import org.rcfaces.core.internal.capability.IAdditionalInformationRangeComponent;
21  import org.rcfaces.core.component.capability.IAdditionalInformationEventCapability;
22  import org.rcfaces.core.model.ISortedComponent;
23  import org.rcfaces.core.internal.tools.AdditionalInformationTools;
24  import org.rcfaces.core.component.iterator.IAdditionalInformationIterator;
25  import org.rcfaces.core.internal.tools.OrderTools;
26  import org.rcfaces.core.component.KeyEntryComponent;
27  import java.lang.String;
28  import org.rcfaces.core.component.iterator.IColumnIterator;
29  import org.rcfaces.core.internal.converter.ClientFullStateConverter;
30  import org.rcfaces.core.component.capability.IAdditionalInformationValuesCapability;
31  import javax.el.ValueExpression;
32  import java.util.HashSet;
33  import org.rcfaces.core.component.capability.IFilterCapability;
34  import java.util.Arrays;
35  import org.rcfaces.core.component.capability.IOrderedChildrenCapability;
36  import org.rcfaces.core.internal.tools.CollectionTools;
37  import org.rcfaces.core.component.capability.IPagerMessageCapability;
38  
39  /**
40   * <p>The comboGrid Component has the same fonctionalities as the combo component but the popup is based on a dataGrid.
41   * The comboGrid can have multiple columns, be filtered, paged and some other datagrid capabilities</p>
42   * <p>The comboGrid Component has the following capabilities :
43   * <ul>
44   * <li>IAdditionalInformationEventCapability</li>
45   * <li>IAdditionalInformationValuesCapability</li>
46   * <li>IClientAdditionalInformationFullStateCapability</li>
47   * <li>IAdditionalInformationCardinalityCapability</li>
48   * <li>IRowStyleClassCapability</li>
49   * <li>IPagerMessageCapability</li>
50   * <li>IFilterCapability</li>
51   * <li>IPagedCapability</li>
52   * <li>IHeaderVisibilityCapability</li>
53   * <li>IOrderedChildrenCapability</li>
54   * <li>ISortedChildrenCapability</li>
55   * <li>IComponentValueTypeCapability</li>
56   * <li>IAdditionalInformationRangeComponent</li>
57   * </ul>
58   * </p>
59   * <p>The default <a href="/apidocs/index.html?org/rcfaces/core/component/ComboGridComponent.html"> comboGrid </a> renderer is link to the <a href="/jsdocs/index.html?f_comboGrid.html" target="_blank">f_comboGrid</a> javascript class. f_comboGrid extends f_keyEntry, fa_dataGridPopup</p>
60   * 
61   * <p> Table of component style classes: </p>
62   * <table border="1" cellpadding="3" cellspacing="0" width="100%">
63   * <tbody>
64   * 
65   * <tr style="text-align:left">
66   * <th  width="33%">Style Name</th>
67   * <th width="50%">Description</th>
68   * </tr>
69   * 
70   * <tr  style="text-align:left">
71   * <td width="33%">f_comboGrid</td>
72   * <td id="ermvsh" width="50%">Defines styles for the wrapper Table element</td>
73   * </tr>
74   * <tr style="text-align:left">
75   * <td width="33%">f_comboGrid_input</td>
76   * <td width="50%">Defines styles for the Input Text</td>
77   * </tr>
78   * <tr style="text-align:left">
79   * <td width="33%">f_comboGrid_popup</td>
80   * <td width="50%">Defines styles for the wrapper DIV elment of the pop-up. Contains fa_dataGridPopup styles</td>
81   * </tr>
82   * 
83   * </tbody>
84   * </table>
85   */
86  public class ComboGridComponent extends KeyEntryComponent implements 
87  	IAdditionalInformationEventCapability,
88  	IAdditionalInformationValuesCapability,
89  	IClientAdditionalInformationFullStateCapability,
90  	IAdditionalInformationCardinalityCapability,
91  	IRowStyleClassCapability,
92  	IPagerMessageCapability,
93  	IFilterCapability,
94  	IPagedCapability,
95  	IHeaderVisibilityCapability,
96  	IOrderedChildrenCapability,
97  	ISortedChildrenCapability,
98  	IComponentValueTypeCapability,
99  	IAdditionalInformationRangeComponent {
100 
101 	private static final Log LOG = LogFactory.getLog(ComboGridComponent.class);
102 
103 	public static final String COMPONENT_TYPE="org.rcfaces.core.comboGrid";
104 
105 	protected static final Set CAMELIA_ATTRIBUTES=new HashSet(KeyEntryComponent.CAMELIA_ATTRIBUTES);
106 	static {
107 		CAMELIA_ATTRIBUTES.addAll(Arrays.asList(new String[] {"headerVisible","filterProperties","clientAdditionalInformationFullState","manyResultsMessage","pagerStyleClass","rowStyleClass","zeroResultMessage","gridStyleClass","popupStyleClass","gridLookId","pagerLookId","message","searchFieldVisible","paged","additionalInformationValues","additionalInformationListener","oneResultMessage","popupHeight","additionalInformationCardinality","popupWidth"}));
108 	}
109 
110 	public ComboGridComponent() {
111 		setRendererType(COMPONENT_TYPE);
112 	}
113 
114 	public ComboGridComponent(String componentId) {
115 		this();
116 		setId(componentId);
117 	}
118 
119 	public UIComponent[] getSortedChildren() {
120 
121 
122 				return SortTools.getSortedChildren(null, this, engine, ComboColumnComponent.class);
123 			
124 	}
125 
126 	public void setSortedChildren(UIComponent[] components) {
127 
128 
129 				SortTools.setSortedChildren(null, this, engine, ComboColumnComponent.class, components);
130 			
131 	}
132 
133 	public void setOrderedChildren(UIComponent[] components) {
134 
135 
136 				OrderTools.setOrderedChildren(null, this, engine, ComboColumnComponent.class, components);
137 			
138 	}
139 
140 	public UIComponent[] getOrderedChildren() {
141 
142 
143 				return OrderTools.getOrderedChildren(null, this, engine, ComboColumnComponent.class);
144 			
145 	}
146 
147 	public IComponentValueType getComponentValueType() {
148 
149 
150 				return GridTools.COMBO_GRID_VALUE_TYPE;
151 			
152 	}
153 
154 	public IColumnIterator listColumns() {
155 
156 
157 			return GridTools.listColumns(this, ComboColumnComponent.class);
158 			
159 	}
160 
161 	public IAdditionalInformationIterator listAdditionalInformations() {
162 
163 
164 			return AdditionalInformationTools.listAdditionalInformations(this);
165 			
166 	}
167 
168 	public void setClientAdditionalInformationFullState(String state) {
169 
170 
171 			setClientAdditionalInformationFullState(((Integer)ClientFullStateConverter.SINGLETON.getAsObject(null, this, state)).intValue());
172 		
173 	}
174 
175 	public int getAdditionalInformationValuesCount() {
176 
177 
178 				return AdditionalInformationTools.getCount(getAdditionalInformationValues());
179 			
180 	}
181 
182 	public Object getFirstAdditionalInformationValue() {
183 
184 
185 				return AdditionalInformationTools.getFirst(getAdditionalInformationValues(), null);
186 			
187 	}
188 
189 	public Object getAdditionalInformationValues(FacesContext facesContext) {
190 
191 
192 				return engine.getValue(Properties.ADDITIONAL_INFORMATION_VALUES, facesContext);
193 			
194 	}
195 
196 	public Object[] listAdditionalInformationValues() {
197 
198 
199 				return AdditionalInformationTools.listValues(getAdditionalInformationValues(), getValue());
200 			
201 	}
202 
203 	public ComboColumnComponent[] getSortedColumns() {
204 
205 
206 				return (ComboColumnComponent[])getSortedChildren();
207 			
208 	}
209 
210 	public ComboColumnComponent getFirstSortedColumn() {
211 
212 
213 				return (ComboColumnComponent)SortTools.getFirstSortedChild(null, this, engine, ComboColumnComponent.class );
214 			
215 	}
216 
217 	public void setSortedColumn(ComboColumnComponent comboColumn) {
218 
219 
220 				SortTools.setSortedChildren(null, this, engine, ComboColumnComponent.class, new ComboColumnComponent[] { comboColumn });
221 			
222 	}
223 
224 	public void setSortedColumns(ComboColumnComponent[] componentsColumns) {
225 
226 
227 				setSortedChildren(componentsColumns);
228 			
229 	}
230 
231 	public ISortedComponent[] listSortedComponents() {
232 
233 
234 				return listSortedComponents(null);
235 			
236 	}
237 
238 	public ISortedComponent[] listSortedComponents(FacesContext context) {
239 
240 
241 				return GridTools.listSortedComponents(context, this);
242 			
243 	}
244 
245 	public void showAdditionalInformation(Object rowValue) {
246 
247 
248 				AdditionalInformationTools.show(null, this, rowValue);
249 			
250 	}
251 
252 	public void showAdditionalInformation(int index) {
253 
254 
255 				AdditionalInformationTools.show(null, this, index);
256 			
257 	}
258 
259 	public void showAdditionalInformation(int[] indexes) {
260 
261 
262 				AdditionalInformationTools.show(null, this, indexes);
263 			
264 	}
265 
266 	public void showAllAdditionalInformations() {
267 
268 
269 				AdditionalInformationTools.showAll(null, this);
270 			
271 	}
272 
273 	public void hideAdditionalInformation(Object rowValue) {
274 
275 
276 				AdditionalInformationTools.hide(null, this, rowValue);
277 			
278 	}
279 
280 	public void hideAdditionalInformation(int index) {
281 
282 
283 				AdditionalInformationTools.hide(null, this, index);
284 			
285 	}
286 
287 	public void hideAdditionalInformation(int[] indexes) {
288 
289 
290 				AdditionalInformationTools.hide(null, this, indexes);
291 			
292 	}
293 
294 	public void hideAllAdditionalInformations() {
295 
296 
297 				AdditionalInformationTools.hideAll(null, this);
298 			
299 	}
300 
301 	public final void addAdditionalInformationListener(org.rcfaces.core.event.IAdditionalInformationListener listener) {
302 		addFacesListener(listener);
303 	}
304 
305 	public final void removeAdditionalInformationListener(org.rcfaces.core.event.IAdditionalInformationListener listener) {
306 		removeFacesListener(listener);
307 	}
308 
309 	public final javax.faces.event.FacesListener [] listAdditionalInformationListeners() {
310 		return getFacesListeners(org.rcfaces.core.event.IAdditionalInformationListener.class);
311 	}
312 
313 	public java.lang.Object getAdditionalInformationValues() {
314 		return getAdditionalInformationValues(null);
315 	}
316 
317 	/**
318 	 * Returns <code>true</code> if the attribute "additionalInformationValues" is set.
319 	 * @return <code>true</code> if the attribute is set.
320 	 */
321 	public final boolean isAdditionalInformationValuesSetted() {
322 		return engine.isPropertySetted(Properties.ADDITIONAL_INFORMATION_VALUES);
323 	}
324 
325 	public void setAdditionalInformationValues(java.lang.Object additionalInformationValues) {
326 		engine.setProperty(Properties.ADDITIONAL_INFORMATION_VALUES, additionalInformationValues);
327 	}
328 
329 	/**
330 	 * Return the type of the property represented by the {@link ValueExpression}, relative to the specified {@link javax.faces.context.FacesContext}.
331 	 */
332 	public Class getAdditionalInformationValuesType(javax.faces.context.FacesContext facesContext) {
333 		ValueExpression valueExpression=engine.getValueExpressionProperty(Properties.ADDITIONAL_INFORMATION_VALUES);
334 		if (valueExpression==null) {
335 			return null;
336 		}
337 		if (facesContext==null) {
338 			facesContext=javax.faces.context.FacesContext.getCurrentInstance();
339 		}
340 		return valueExpression.getType(facesContext.getELContext());
341 	}
342 
343 	public int getClientAdditionalInformationFullState() {
344 		return getClientAdditionalInformationFullState(null);
345 	}
346 
347 	/**
348 	 * See {@link #getClientAdditionalInformationFullState() getClientAdditionalInformationFullState()} for more details
349 	 */
350 	public int getClientAdditionalInformationFullState(javax.faces.context.FacesContext facesContext) {
351 		return engine.getIntProperty(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE,0, facesContext);
352 	}
353 
354 	/**
355 	 * Returns <code>true</code> if the attribute "clientAdditionalInformationFullState" is set.
356 	 * @return <code>true</code> if the attribute is set.
357 	 */
358 	public final boolean isClientAdditionalInformationFullStateSetted() {
359 		return engine.isPropertySetted(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE);
360 	}
361 
362 	public void setClientAdditionalInformationFullState(int clientAdditionalInformationFullState) {
363 		engine.setProperty(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE, clientAdditionalInformationFullState);
364 	}
365 
366 	public int getAdditionalInformationCardinality() {
367 		return getAdditionalInformationCardinality(null);
368 	}
369 
370 	/**
371 	 * See {@link #getAdditionalInformationCardinality() getAdditionalInformationCardinality()} for more details
372 	 */
373 	public int getAdditionalInformationCardinality(javax.faces.context.FacesContext facesContext) {
374 		return engine.getIntProperty(Properties.ADDITIONAL_INFORMATION_CARDINALITY,0, facesContext);
375 	}
376 
377 	/**
378 	 * Returns <code>true</code> if the attribute "additionalInformationCardinality" is set.
379 	 * @return <code>true</code> if the attribute is set.
380 	 */
381 	public final boolean isAdditionalInformationCardinalitySetted() {
382 		return engine.isPropertySetted(Properties.ADDITIONAL_INFORMATION_CARDINALITY);
383 	}
384 
385 	public void setAdditionalInformationCardinality(int additionalInformationCardinality) {
386 		engine.setProperty(Properties.ADDITIONAL_INFORMATION_CARDINALITY, additionalInformationCardinality);
387 	}
388 
389 	public java.lang.String getRowStyleClass() {
390 		return getRowStyleClass(null);
391 	}
392 
393 	/**
394 	 * See {@link #getRowStyleClass() getRowStyleClass()} for more details
395 	 */
396 	public java.lang.String getRowStyleClass(javax.faces.context.FacesContext facesContext) {
397 		return engine.getStringProperty(Properties.ROW_STYLE_CLASS, facesContext);
398 	}
399 
400 	/**
401 	 * Returns <code>true</code> if the attribute "rowStyleClass" is set.
402 	 * @return <code>true</code> if the attribute is set.
403 	 */
404 	public final boolean isRowStyleClassSetted() {
405 		return engine.isPropertySetted(Properties.ROW_STYLE_CLASS);
406 	}
407 
408 	public void setRowStyleClass(java.lang.String rowStyleClass) {
409 		engine.setProperty(Properties.ROW_STYLE_CLASS, rowStyleClass);
410 	}
411 
412 	public java.lang.String getManyResultsMessage() {
413 		return getManyResultsMessage(null);
414 	}
415 
416 	/**
417 	 * See {@link #getManyResultsMessage() getManyResultsMessage()} for more details
418 	 */
419 	public java.lang.String getManyResultsMessage(javax.faces.context.FacesContext facesContext) {
420 		return engine.getStringProperty(Properties.MANY_RESULTS_MESSAGE, facesContext);
421 	}
422 
423 	/**
424 	 * Returns <code>true</code> if the attribute "manyResultsMessage" is set.
425 	 * @return <code>true</code> if the attribute is set.
426 	 */
427 	public final boolean isManyResultsMessageSetted() {
428 		return engine.isPropertySetted(Properties.MANY_RESULTS_MESSAGE);
429 	}
430 
431 	public void setManyResultsMessage(java.lang.String manyResultsMessage) {
432 		engine.setProperty(Properties.MANY_RESULTS_MESSAGE, manyResultsMessage);
433 	}
434 
435 	public java.lang.String getMessage() {
436 		return getMessage(null);
437 	}
438 
439 	/**
440 	 * See {@link #getMessage() getMessage()} for more details
441 	 */
442 	public java.lang.String getMessage(javax.faces.context.FacesContext facesContext) {
443 		return engine.getStringProperty(Properties.MESSAGE, facesContext);
444 	}
445 
446 	/**
447 	 * Returns <code>true</code> if the attribute "message" is set.
448 	 * @return <code>true</code> if the attribute is set.
449 	 */
450 	public final boolean isMessageSetted() {
451 		return engine.isPropertySetted(Properties.MESSAGE);
452 	}
453 
454 	public void setMessage(java.lang.String message) {
455 		engine.setProperty(Properties.MESSAGE, message);
456 	}
457 
458 	public java.lang.String getOneResultMessage() {
459 		return getOneResultMessage(null);
460 	}
461 
462 	/**
463 	 * See {@link #getOneResultMessage() getOneResultMessage()} for more details
464 	 */
465 	public java.lang.String getOneResultMessage(javax.faces.context.FacesContext facesContext) {
466 		return engine.getStringProperty(Properties.ONE_RESULT_MESSAGE, facesContext);
467 	}
468 
469 	/**
470 	 * Returns <code>true</code> if the attribute "oneResultMessage" is set.
471 	 * @return <code>true</code> if the attribute is set.
472 	 */
473 	public final boolean isOneResultMessageSetted() {
474 		return engine.isPropertySetted(Properties.ONE_RESULT_MESSAGE);
475 	}
476 
477 	public void setOneResultMessage(java.lang.String oneResultMessage) {
478 		engine.setProperty(Properties.ONE_RESULT_MESSAGE, oneResultMessage);
479 	}
480 
481 	public java.lang.String getZeroResultMessage() {
482 		return getZeroResultMessage(null);
483 	}
484 
485 	/**
486 	 * See {@link #getZeroResultMessage() getZeroResultMessage()} for more details
487 	 */
488 	public java.lang.String getZeroResultMessage(javax.faces.context.FacesContext facesContext) {
489 		return engine.getStringProperty(Properties.ZERO_RESULT_MESSAGE, facesContext);
490 	}
491 
492 	/**
493 	 * Returns <code>true</code> if the attribute "zeroResultMessage" is set.
494 	 * @return <code>true</code> if the attribute is set.
495 	 */
496 	public final boolean isZeroResultMessageSetted() {
497 		return engine.isPropertySetted(Properties.ZERO_RESULT_MESSAGE);
498 	}
499 
500 	public void setZeroResultMessage(java.lang.String zeroResultMessage) {
501 		engine.setProperty(Properties.ZERO_RESULT_MESSAGE, zeroResultMessage);
502 	}
503 
504 	public boolean isPaged() {
505 		return isPaged(null);
506 	}
507 
508 	/**
509 	 * See {@link #isPaged() isPaged()} for more details
510 	 */
511 	public boolean isPaged(javax.faces.context.FacesContext facesContext) {
512 		return engine.getBoolProperty(Properties.PAGED, false, facesContext);
513 	}
514 
515 	public boolean isPagedSetted() {
516 
517 
518 			return engine.isPropertySetted(Properties.PAGED);
519 		
520 	}
521 
522 	public void setPaged(boolean paged) {
523 		engine.setProperty(Properties.PAGED, paged);
524 	}
525 
526 	public boolean isHeaderVisible() {
527 		return isHeaderVisible(null);
528 	}
529 
530 	/**
531 	 * See {@link #isHeaderVisible() isHeaderVisible()} for more details
532 	 */
533 	public boolean isHeaderVisible(javax.faces.context.FacesContext facesContext) {
534 		return engine.getBoolProperty(Properties.HEADER_VISIBLE, true, facesContext);
535 	}
536 
537 	/**
538 	 * Returns <code>true</code> if the attribute "headerVisible" is set.
539 	 * @return <code>true</code> if the attribute is set.
540 	 */
541 	public final boolean isHeaderVisibleSetted() {
542 		return engine.isPropertySetted(Properties.HEADER_VISIBLE);
543 	}
544 
545 	public void setHeaderVisible(boolean headerVisible) {
546 		engine.setProperty(Properties.HEADER_VISIBLE, headerVisible);
547 	}
548 
549 	public int getPopupWidth() {
550 		return getPopupWidth(null);
551 	}
552 
553 	public int getPopupWidth(javax.faces.context.FacesContext facesContext) {
554 		return engine.getIntProperty(Properties.POPUP_WIDTH, 0, facesContext);
555 	}
556 
557 	public void setPopupWidth(int popupWidth) {
558 		engine.setProperty(Properties.POPUP_WIDTH, popupWidth);
559 	}
560 
561 	/**
562 	 * Returns <code>true</code> if the attribute "popupWidth" is set.
563 	 * @return <code>true</code> if the attribute is set.
564 	 */
565 	public boolean isPopupWidthSetted() {
566 		return engine.isPropertySetted(Properties.POPUP_WIDTH);
567 	}
568 
569 	public int getPopupHeight() {
570 		return getPopupHeight(null);
571 	}
572 
573 	public int getPopupHeight(javax.faces.context.FacesContext facesContext) {
574 		return engine.getIntProperty(Properties.POPUP_HEIGHT, 0, facesContext);
575 	}
576 
577 	public void setPopupHeight(int popupHeight) {
578 		engine.setProperty(Properties.POPUP_HEIGHT, popupHeight);
579 	}
580 
581 	/**
582 	 * Returns <code>true</code> if the attribute "popupHeight" is set.
583 	 * @return <code>true</code> if the attribute is set.
584 	 */
585 	public boolean isPopupHeightSetted() {
586 		return engine.isPropertySetted(Properties.POPUP_HEIGHT);
587 	}
588 
589 	public String getPagerStyleClass() {
590 		return getPagerStyleClass(null);
591 	}
592 
593 	public String getPagerStyleClass(javax.faces.context.FacesContext facesContext) {
594 		return engine.getStringProperty(Properties.PAGER_STYLE_CLASS, facesContext);
595 	}
596 
597 	public void setPagerStyleClass(String pagerStyleClass) {
598 		engine.setProperty(Properties.PAGER_STYLE_CLASS, pagerStyleClass);
599 	}
600 
601 	/**
602 	 * Returns <code>true</code> if the attribute "pagerStyleClass" is set.
603 	 * @return <code>true</code> if the attribute is set.
604 	 */
605 	public boolean isPagerStyleClassSetted() {
606 		return engine.isPropertySetted(Properties.PAGER_STYLE_CLASS);
607 	}
608 
609 	public String getPagerLookId() {
610 		return getPagerLookId(null);
611 	}
612 
613 	public String getPagerLookId(javax.faces.context.FacesContext facesContext) {
614 		return engine.getStringProperty(Properties.PAGER_LOOK_ID, facesContext);
615 	}
616 
617 	public void setPagerLookId(String pagerLookId) {
618 		engine.setProperty(Properties.PAGER_LOOK_ID, pagerLookId);
619 	}
620 
621 	/**
622 	 * Returns <code>true</code> if the attribute "pagerLookId" is set.
623 	 * @return <code>true</code> if the attribute is set.
624 	 */
625 	public boolean isPagerLookIdSetted() {
626 		return engine.isPropertySetted(Properties.PAGER_LOOK_ID);
627 	}
628 
629 	public String getPopupStyleClass() {
630 		return getPopupStyleClass(null);
631 	}
632 
633 	public String getPopupStyleClass(javax.faces.context.FacesContext facesContext) {
634 		return engine.getStringProperty(Properties.POPUP_STYLE_CLASS, facesContext);
635 	}
636 
637 	public void setPopupStyleClass(String popupStyleClass) {
638 		engine.setProperty(Properties.POPUP_STYLE_CLASS, popupStyleClass);
639 	}
640 
641 	/**
642 	 * Returns <code>true</code> if the attribute "popupStyleClass" is set.
643 	 * @return <code>true</code> if the attribute is set.
644 	 */
645 	public boolean isPopupStyleClassSetted() {
646 		return engine.isPropertySetted(Properties.POPUP_STYLE_CLASS);
647 	}
648 
649 	public String getGridStyleClass() {
650 		return getGridStyleClass(null);
651 	}
652 
653 	public String getGridStyleClass(javax.faces.context.FacesContext facesContext) {
654 		return engine.getStringProperty(Properties.GRID_STYLE_CLASS, facesContext);
655 	}
656 
657 	public void setGridStyleClass(String gridStyleClass) {
658 		engine.setProperty(Properties.GRID_STYLE_CLASS, gridStyleClass);
659 	}
660 
661 	/**
662 	 * Returns <code>true</code> if the attribute "gridStyleClass" is set.
663 	 * @return <code>true</code> if the attribute is set.
664 	 */
665 	public boolean isGridStyleClassSetted() {
666 		return engine.isPropertySetted(Properties.GRID_STYLE_CLASS);
667 	}
668 
669 	public String getGridLookId() {
670 		return getGridLookId(null);
671 	}
672 
673 	public String getGridLookId(javax.faces.context.FacesContext facesContext) {
674 		return engine.getStringProperty(Properties.GRID_LOOK_ID, facesContext);
675 	}
676 
677 	public void setGridLookId(String gridLookId) {
678 		engine.setProperty(Properties.GRID_LOOK_ID, gridLookId);
679 	}
680 
681 	/**
682 	 * Returns <code>true</code> if the attribute "gridLookId" is set.
683 	 * @return <code>true</code> if the attribute is set.
684 	 */
685 	public boolean isGridLookIdSetted() {
686 		return engine.isPropertySetted(Properties.GRID_LOOK_ID);
687 	}
688 
689 	public boolean isSearchFieldVisible() {
690 		return isSearchFieldVisible(null);
691 	}
692 
693 	public boolean isSearchFieldVisible(javax.faces.context.FacesContext facesContext) {
694 		return engine.getBoolProperty(Properties.SEARCH_FIELD_VISIBLE, true, facesContext);
695 	}
696 
697 	public void setSearchFieldVisible(boolean searchFieldVisible) {
698 		engine.setProperty(Properties.SEARCH_FIELD_VISIBLE, searchFieldVisible);
699 	}
700 
701 	/**
702 	 * Returns <code>true</code> if the attribute "searchFieldVisible" is set.
703 	 * @return <code>true</code> if the attribute is set.
704 	 */
705 	public boolean isSearchFieldVisibleSetted() {
706 		return engine.isPropertySetted(Properties.SEARCH_FIELD_VISIBLE);
707 	}
708 
709 	protected Set getCameliaFields() {
710 		return CAMELIA_ATTRIBUTES;
711 	}
712 }