View Javadoc

1   package org.rcfaces.core.internal.taglib;
2   
3   import javax.faces.application.Application;
4   import javax.faces.component.UIComponent;
5   import org.rcfaces.core.internal.component.Properties;
6   import javax.el.ValueExpression;
7   import javax.faces.component.UIViewRoot;
8   import org.apache.commons.logging.Log;
9   import javax.servlet.jsp.tagext.Tag;
10  import org.apache.commons.logging.LogFactory;
11  import org.rcfaces.core.internal.tools.ListenersTools1_2;
12  import org.rcfaces.core.internal.tools.ListenersTools;
13  import org.rcfaces.core.component.ComboGridComponent;
14  import javax.faces.context.FacesContext;
15  
16  public class ComboGridTag extends KeyEntryTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(ComboGridTag.class);
20  
21  	private ValueExpression additionalInformationListeners;
22  	private ValueExpression additionalInformationValues;
23  	private ValueExpression clientAdditionalInformationFullState;
24  	private ValueExpression additionalInformationCardinality;
25  	private ValueExpression rowStyleClass;
26  	private ValueExpression manyResultsMessage;
27  	private ValueExpression message;
28  	private ValueExpression oneResultMessage;
29  	private ValueExpression zeroResultMessage;
30  	private ValueExpression paged;
31  	private ValueExpression headerVisible;
32  	private ValueExpression popupWidth;
33  	private ValueExpression popupHeight;
34  	private ValueExpression pagerStyleClass;
35  	private ValueExpression pagerLookId;
36  	private ValueExpression popupStyleClass;
37  	private ValueExpression gridStyleClass;
38  	private ValueExpression gridLookId;
39  	private ValueExpression searchFieldVisible;
40  	public String getComponentType() {
41  		return ComboGridComponent.COMPONENT_TYPE;
42  	}
43  
44  	public final void setAdditionalInformationListener(ValueExpression additionalInformationListeners) {
45  		this.additionalInformationListeners = additionalInformationListeners;
46  	}
47  
48  	public final void setAdditionalInformationValues(ValueExpression additionalInformationValues) {
49  		this.additionalInformationValues = additionalInformationValues;
50  	}
51  
52  	public final void setClientAdditionalInformationFullState(ValueExpression clientAdditionalInformationFullState) {
53  		this.clientAdditionalInformationFullState = clientAdditionalInformationFullState;
54  	}
55  
56  	public final void setAdditionalInformationCardinality(ValueExpression additionalInformationCardinality) {
57  		this.additionalInformationCardinality = additionalInformationCardinality;
58  	}
59  
60  	public final void setRowStyleClass(ValueExpression rowStyleClass) {
61  		this.rowStyleClass = rowStyleClass;
62  	}
63  
64  	public final void setManyResultsMessage(ValueExpression manyResultsMessage) {
65  		this.manyResultsMessage = manyResultsMessage;
66  	}
67  
68  	public final void setMessage(ValueExpression message) {
69  		this.message = message;
70  	}
71  
72  	public final void setOneResultMessage(ValueExpression oneResultMessage) {
73  		this.oneResultMessage = oneResultMessage;
74  	}
75  
76  	public final void setZeroResultMessage(ValueExpression zeroResultMessage) {
77  		this.zeroResultMessage = zeroResultMessage;
78  	}
79  
80  	public final void setPaged(ValueExpression paged) {
81  		this.paged = paged;
82  	}
83  
84  	public final void setHeaderVisible(ValueExpression headerVisible) {
85  		this.headerVisible = headerVisible;
86  	}
87  
88  	public final void setPopupWidth(ValueExpression popupWidth) {
89  		this.popupWidth = popupWidth;
90  	}
91  
92  	public final void setPopupHeight(ValueExpression popupHeight) {
93  		this.popupHeight = popupHeight;
94  	}
95  
96  	public final void setPagerStyleClass(ValueExpression pagerStyleClass) {
97  		this.pagerStyleClass = pagerStyleClass;
98  	}
99  
100 	public final void setPagerLookId(ValueExpression pagerLookId) {
101 		this.pagerLookId = pagerLookId;
102 	}
103 
104 	public final void setPopupStyleClass(ValueExpression popupStyleClass) {
105 		this.popupStyleClass = popupStyleClass;
106 	}
107 
108 	public final void setGridStyleClass(ValueExpression gridStyleClass) {
109 		this.gridStyleClass = gridStyleClass;
110 	}
111 
112 	public final void setGridLookId(ValueExpression gridLookId) {
113 		this.gridLookId = gridLookId;
114 	}
115 
116 	public final void setSearchFieldVisible(ValueExpression searchFieldVisible) {
117 		this.searchFieldVisible = searchFieldVisible;
118 	}
119 
120 	protected void setProperties(UIComponent uiComponent) {
121 		if (LOG.isDebugEnabled()) {
122 			if (ComboGridComponent.COMPONENT_TYPE==getComponentType()) {
123 				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
124 			}
125 			LOG.debug("  additionalInformationValues='"+additionalInformationValues+"'");
126 			LOG.debug("  clientAdditionalInformationFullState='"+clientAdditionalInformationFullState+"'");
127 			LOG.debug("  additionalInformationCardinality='"+additionalInformationCardinality+"'");
128 			LOG.debug("  rowStyleClass='"+rowStyleClass+"'");
129 			LOG.debug("  manyResultsMessage='"+manyResultsMessage+"'");
130 			LOG.debug("  message='"+message+"'");
131 			LOG.debug("  oneResultMessage='"+oneResultMessage+"'");
132 			LOG.debug("  zeroResultMessage='"+zeroResultMessage+"'");
133 			LOG.debug("  paged='"+paged+"'");
134 			LOG.debug("  headerVisible='"+headerVisible+"'");
135 			LOG.debug("  popupWidth='"+popupWidth+"'");
136 			LOG.debug("  popupHeight='"+popupHeight+"'");
137 			LOG.debug("  pagerStyleClass='"+pagerStyleClass+"'");
138 			LOG.debug("  pagerLookId='"+pagerLookId+"'");
139 			LOG.debug("  popupStyleClass='"+popupStyleClass+"'");
140 			LOG.debug("  gridStyleClass='"+gridStyleClass+"'");
141 			LOG.debug("  gridLookId='"+gridLookId+"'");
142 			LOG.debug("  searchFieldVisible='"+searchFieldVisible+"'");
143 		}
144 		if ((uiComponent instanceof ComboGridComponent)==false) {
145 			if (uiComponent instanceof UIViewRoot) {
146 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
147 			}
148 			throw new IllegalStateException("Component specified by tag is not instanceof of 'ComboGridComponent'.");
149 		}
150 
151 		super.setProperties(uiComponent);
152 
153 		ComboGridComponent component = (ComboGridComponent) uiComponent;
154 		FacesContext facesContext = getFacesContext();
155 
156 		if (additionalInformationListeners != null) {
157 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.ADDITIONAL_INFORMATION_LISTENER_TYPE, additionalInformationListeners);
158 		}
159 
160 		if (additionalInformationValues != null) {
161 				component.setValueExpression(Properties.ADDITIONAL_INFORMATION_VALUES, additionalInformationValues);
162 		}
163 
164 		if (clientAdditionalInformationFullState != null) {
165 			if (clientAdditionalInformationFullState.isLiteralText()==false) {
166 				component.setValueExpression(Properties.CLIENT_ADDITIONAL_INFORMATION_FULL_STATE, clientAdditionalInformationFullState);
167 
168 			} else {
169 				component.setClientAdditionalInformationFullState(clientAdditionalInformationFullState.getExpressionString());
170 			}
171 		}
172 
173 		if (additionalInformationCardinality != null) {
174 			if (additionalInformationCardinality.isLiteralText()==false) {
175 				component.setValueExpression(Properties.ADDITIONAL_INFORMATION_CARDINALITY, additionalInformationCardinality);
176 
177 			} else {
178 				component.setAdditionalInformationCardinality(getInt(additionalInformationCardinality.getExpressionString()));
179 			}
180 		}
181 
182 		if (rowStyleClass != null) {
183 			if (rowStyleClass.isLiteralText()==false) {
184 				component.setValueExpression(Properties.ROW_STYLE_CLASS, rowStyleClass);
185 
186 			} else {
187 				component.setRowStyleClass(rowStyleClass.getExpressionString());
188 			}
189 		}
190 
191 		if (manyResultsMessage != null) {
192 			if (manyResultsMessage.isLiteralText()==false) {
193 				component.setValueExpression(Properties.MANY_RESULTS_MESSAGE, manyResultsMessage);
194 
195 			} else {
196 				component.setManyResultsMessage(manyResultsMessage.getExpressionString());
197 			}
198 		}
199 
200 		if (message != null) {
201 			if (message.isLiteralText()==false) {
202 				component.setValueExpression(Properties.MESSAGE, message);
203 
204 			} else {
205 				component.setMessage(message.getExpressionString());
206 			}
207 		}
208 
209 		if (oneResultMessage != null) {
210 			if (oneResultMessage.isLiteralText()==false) {
211 				component.setValueExpression(Properties.ONE_RESULT_MESSAGE, oneResultMessage);
212 
213 			} else {
214 				component.setOneResultMessage(oneResultMessage.getExpressionString());
215 			}
216 		}
217 
218 		if (zeroResultMessage != null) {
219 			if (zeroResultMessage.isLiteralText()==false) {
220 				component.setValueExpression(Properties.ZERO_RESULT_MESSAGE, zeroResultMessage);
221 
222 			} else {
223 				component.setZeroResultMessage(zeroResultMessage.getExpressionString());
224 			}
225 		}
226 
227 		if (paged != null) {
228 			if (paged.isLiteralText()==false) {
229 				component.setValueExpression(Properties.PAGED, paged);
230 
231 			} else {
232 				component.setPaged(getBool(paged.getExpressionString()));
233 			}
234 		}
235 
236 		if (headerVisible != null) {
237 			if (headerVisible.isLiteralText()==false) {
238 				component.setValueExpression(Properties.HEADER_VISIBLE, headerVisible);
239 
240 			} else {
241 				component.setHeaderVisible(getBool(headerVisible.getExpressionString()));
242 			}
243 		}
244 
245 		if (popupWidth != null) {
246 			if (popupWidth.isLiteralText()==false) {
247 				component.setValueExpression(Properties.POPUP_WIDTH, popupWidth);
248 
249 			} else {
250 				component.setPopupWidth(getInt(popupWidth.getExpressionString()));
251 			}
252 		}
253 
254 		if (popupHeight != null) {
255 			if (popupHeight.isLiteralText()==false) {
256 				component.setValueExpression(Properties.POPUP_HEIGHT, popupHeight);
257 
258 			} else {
259 				component.setPopupHeight(getInt(popupHeight.getExpressionString()));
260 			}
261 		}
262 
263 		if (pagerStyleClass != null) {
264 			if (pagerStyleClass.isLiteralText()==false) {
265 				component.setValueExpression(Properties.PAGER_STYLE_CLASS, pagerStyleClass);
266 
267 			} else {
268 				component.setPagerStyleClass(pagerStyleClass.getExpressionString());
269 			}
270 		}
271 
272 		if (pagerLookId != null) {
273 			if (pagerLookId.isLiteralText()==false) {
274 				component.setValueExpression(Properties.PAGER_LOOK_ID, pagerLookId);
275 
276 			} else {
277 				component.setPagerLookId(pagerLookId.getExpressionString());
278 			}
279 		}
280 
281 		if (popupStyleClass != null) {
282 			if (popupStyleClass.isLiteralText()==false) {
283 				component.setValueExpression(Properties.POPUP_STYLE_CLASS, popupStyleClass);
284 
285 			} else {
286 				component.setPopupStyleClass(popupStyleClass.getExpressionString());
287 			}
288 		}
289 
290 		if (gridStyleClass != null) {
291 			if (gridStyleClass.isLiteralText()==false) {
292 				component.setValueExpression(Properties.GRID_STYLE_CLASS, gridStyleClass);
293 
294 			} else {
295 				component.setGridStyleClass(gridStyleClass.getExpressionString());
296 			}
297 		}
298 
299 		if (gridLookId != null) {
300 			if (gridLookId.isLiteralText()==false) {
301 				component.setValueExpression(Properties.GRID_LOOK_ID, gridLookId);
302 
303 			} else {
304 				component.setGridLookId(gridLookId.getExpressionString());
305 			}
306 		}
307 
308 		if (searchFieldVisible != null) {
309 			if (searchFieldVisible.isLiteralText()==false) {
310 				component.setValueExpression(Properties.SEARCH_FIELD_VISIBLE, searchFieldVisible);
311 
312 			} else {
313 				component.setSearchFieldVisible(getBool(searchFieldVisible.getExpressionString()));
314 			}
315 		}
316 	}
317 
318 	public void release() {
319 		additionalInformationListeners = null;
320 		additionalInformationValues = null;
321 		clientAdditionalInformationFullState = null;
322 		additionalInformationCardinality = null;
323 		rowStyleClass = null;
324 		manyResultsMessage = null;
325 		message = null;
326 		oneResultMessage = null;
327 		zeroResultMessage = null;
328 		paged = null;
329 		headerVisible = null;
330 		popupWidth = null;
331 		popupHeight = null;
332 		pagerStyleClass = null;
333 		pagerLookId = null;
334 		popupStyleClass = null;
335 		gridStyleClass = null;
336 		gridLookId = null;
337 		searchFieldVisible = null;
338 
339 		super.release();
340 	}
341 
342 }