View Javadoc

1   package org.rcfaces.core.internal.taglib;
2   
3   import javax.faces.application.Application;
4   import javax.faces.component.UIComponent;
5   import org.rcfaces.core.internal.component.Properties;
6   import javax.el.ValueExpression;
7   import javax.faces.component.UIViewRoot;
8   import org.apache.commons.logging.Log;
9   import javax.servlet.jsp.tagext.Tag;
10  import org.apache.commons.logging.LogFactory;
11  import org.rcfaces.core.component.MessageFieldSetComponent;
12  import org.rcfaces.core.internal.tools.ListenersTools1_2;
13  import org.rcfaces.core.internal.tools.ListenersTools;
14  import javax.faces.context.FacesContext;
15  
16  public class MessageFieldSetTag extends FieldSetTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(MessageFieldSetTag.class);
20  
21  	private ValueExpression forValue;
22  	private ValueExpression errorStyleClass;
23  	private ValueExpression fatalStyleClass;
24  	private ValueExpression infoStyleClass;
25  	private ValueExpression warnStyleClass;
26  	private ValueExpression errorImageURL;
27  	private ValueExpression fatalImageURL;
28  	private ValueExpression infoImageURL;
29  	private ValueExpression warnImageURL;
30  	private ValueExpression setFocusIfMessage;
31  	private ValueExpression showActiveComponentMessage;
32  	public String getComponentType() {
33  		return MessageFieldSetComponent.COMPONENT_TYPE;
34  	}
35  
36  	public final void setFor(ValueExpression forValue) {
37  		this.forValue = forValue;
38  	}
39  
40  	public final void setErrorStyleClass(ValueExpression errorStyleClass) {
41  		this.errorStyleClass = errorStyleClass;
42  	}
43  
44  	public final void setFatalStyleClass(ValueExpression fatalStyleClass) {
45  		this.fatalStyleClass = fatalStyleClass;
46  	}
47  
48  	public final void setInfoStyleClass(ValueExpression infoStyleClass) {
49  		this.infoStyleClass = infoStyleClass;
50  	}
51  
52  	public final void setWarnStyleClass(ValueExpression warnStyleClass) {
53  		this.warnStyleClass = warnStyleClass;
54  	}
55  
56  	public final void setErrorImageURL(ValueExpression errorImageURL) {
57  		this.errorImageURL = errorImageURL;
58  	}
59  
60  	public final void setFatalImageURL(ValueExpression fatalImageURL) {
61  		this.fatalImageURL = fatalImageURL;
62  	}
63  
64  	public final void setInfoImageURL(ValueExpression infoImageURL) {
65  		this.infoImageURL = infoImageURL;
66  	}
67  
68  	public final void setWarnImageURL(ValueExpression warnImageURL) {
69  		this.warnImageURL = warnImageURL;
70  	}
71  
72  	public final void setSetFocusIfMessage(ValueExpression setFocusIfMessage) {
73  		this.setFocusIfMessage = setFocusIfMessage;
74  	}
75  
76  	public final void setShowActiveComponentMessage(ValueExpression showActiveComponentMessage) {
77  		this.showActiveComponentMessage = showActiveComponentMessage;
78  	}
79  
80  	protected void setProperties(UIComponent uiComponent) {
81  		if (LOG.isDebugEnabled()) {
82  			if (MessageFieldSetComponent.COMPONENT_TYPE==getComponentType()) {
83  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
84  			}
85  			LOG.debug("  forValue='"+forValue+"'");
86  			LOG.debug("  errorStyleClass='"+errorStyleClass+"'");
87  			LOG.debug("  fatalStyleClass='"+fatalStyleClass+"'");
88  			LOG.debug("  infoStyleClass='"+infoStyleClass+"'");
89  			LOG.debug("  warnStyleClass='"+warnStyleClass+"'");
90  			LOG.debug("  errorImageURL='"+errorImageURL+"'");
91  			LOG.debug("  fatalImageURL='"+fatalImageURL+"'");
92  			LOG.debug("  infoImageURL='"+infoImageURL+"'");
93  			LOG.debug("  warnImageURL='"+warnImageURL+"'");
94  			LOG.debug("  setFocusIfMessage='"+setFocusIfMessage+"'");
95  			LOG.debug("  showActiveComponentMessage='"+showActiveComponentMessage+"'");
96  		}
97  		if ((uiComponent instanceof MessageFieldSetComponent)==false) {
98  			if (uiComponent instanceof UIViewRoot) {
99  				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
100 			}
101 			throw new IllegalStateException("Component specified by tag is not instanceof of 'MessageFieldSetComponent'.");
102 		}
103 
104 		super.setProperties(uiComponent);
105 
106 		MessageFieldSetComponent component = (MessageFieldSetComponent) uiComponent;
107 		FacesContext facesContext = getFacesContext();
108 
109 		if (forValue != null) {
110 			if (forValue.isLiteralText()==false) {
111 				component.setValueExpression(Properties.FOR, forValue);
112 
113 			} else {
114 				component.setFor(forValue.getExpressionString());
115 			}
116 		}
117 
118 		if (errorStyleClass != null) {
119 			if (errorStyleClass.isLiteralText()==false) {
120 				component.setValueExpression(Properties.ERROR_STYLE_CLASS, errorStyleClass);
121 
122 			} else {
123 				component.setErrorStyleClass(errorStyleClass.getExpressionString());
124 			}
125 		}
126 
127 		if (fatalStyleClass != null) {
128 			if (fatalStyleClass.isLiteralText()==false) {
129 				component.setValueExpression(Properties.FATAL_STYLE_CLASS, fatalStyleClass);
130 
131 			} else {
132 				component.setFatalStyleClass(fatalStyleClass.getExpressionString());
133 			}
134 		}
135 
136 		if (infoStyleClass != null) {
137 			if (infoStyleClass.isLiteralText()==false) {
138 				component.setValueExpression(Properties.INFO_STYLE_CLASS, infoStyleClass);
139 
140 			} else {
141 				component.setInfoStyleClass(infoStyleClass.getExpressionString());
142 			}
143 		}
144 
145 		if (warnStyleClass != null) {
146 			if (warnStyleClass.isLiteralText()==false) {
147 				component.setValueExpression(Properties.WARN_STYLE_CLASS, warnStyleClass);
148 
149 			} else {
150 				component.setWarnStyleClass(warnStyleClass.getExpressionString());
151 			}
152 		}
153 
154 		if (errorImageURL != null) {
155 			if (errorImageURL.isLiteralText()==false) {
156 				component.setValueExpression(Properties.ERROR_IMAGE_URL, errorImageURL);
157 
158 			} else {
159 				component.setErrorImageURL(errorImageURL.getExpressionString());
160 			}
161 		}
162 
163 		if (fatalImageURL != null) {
164 			if (fatalImageURL.isLiteralText()==false) {
165 				component.setValueExpression(Properties.FATAL_IMAGE_URL, fatalImageURL);
166 
167 			} else {
168 				component.setFatalImageURL(fatalImageURL.getExpressionString());
169 			}
170 		}
171 
172 		if (infoImageURL != null) {
173 			if (infoImageURL.isLiteralText()==false) {
174 				component.setValueExpression(Properties.INFO_IMAGE_URL, infoImageURL);
175 
176 			} else {
177 				component.setInfoImageURL(infoImageURL.getExpressionString());
178 			}
179 		}
180 
181 		if (warnImageURL != null) {
182 			if (warnImageURL.isLiteralText()==false) {
183 				component.setValueExpression(Properties.WARN_IMAGE_URL, warnImageURL);
184 
185 			} else {
186 				component.setWarnImageURL(warnImageURL.getExpressionString());
187 			}
188 		}
189 
190 		if (setFocusIfMessage != null) {
191 			if (setFocusIfMessage.isLiteralText()==false) {
192 				component.setValueExpression(Properties.SET_FOCUS_IF_MESSAGE, setFocusIfMessage);
193 
194 			} else {
195 				component.setSetFocusIfMessage(getBool(setFocusIfMessage.getExpressionString()));
196 			}
197 		}
198 
199 		if (showActiveComponentMessage != null) {
200 			if (showActiveComponentMessage.isLiteralText()==false) {
201 				component.setValueExpression(Properties.SHOW_ACTIVE_COMPONENT_MESSAGE, showActiveComponentMessage);
202 
203 			} else {
204 				component.setShowActiveComponentMessage(getBool(showActiveComponentMessage.getExpressionString()));
205 			}
206 		}
207 	}
208 
209 	public void release() {
210 		forValue = null;
211 		errorStyleClass = null;
212 		fatalStyleClass = null;
213 		infoStyleClass = null;
214 		warnStyleClass = null;
215 		errorImageURL = null;
216 		fatalImageURL = null;
217 		infoImageURL = null;
218 		warnImageURL = null;
219 		setFocusIfMessage = null;
220 		showActiveComponentMessage = null;
221 
222 		super.release();
223 	}
224 
225 }