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.LineBreakComponent;
14  import javax.faces.context.FacesContext;
15  
16  public class LineBreakTag extends CameliaTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(LineBreakTag.class);
20  
21  	private ValueExpression styleClass;
22  	private ValueExpression visible;
23  	private ValueExpression hiddenMode;
24  	private ValueExpression rendered;
25  	public String getComponentType() {
26  		return LineBreakComponent.COMPONENT_TYPE;
27  	}
28  
29  	public final void setStyleClass(ValueExpression styleClass) {
30  		this.styleClass = styleClass;
31  	}
32  
33  	public final void setVisible(ValueExpression visible) {
34  		this.visible = visible;
35  	}
36  
37  	public final void setHiddenMode(ValueExpression hiddenMode) {
38  		this.hiddenMode = hiddenMode;
39  	}
40  
41  	public final void setRendered(ValueExpression rendered) {
42  		this.rendered = rendered;
43  	}
44  
45  	protected void setProperties(UIComponent uiComponent) {
46  		if (LOG.isDebugEnabled()) {
47  			if (LineBreakComponent.COMPONENT_TYPE==getComponentType()) {
48  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
49  			}
50  			LOG.debug("  styleClass='"+styleClass+"'");
51  			LOG.debug("  visible='"+visible+"'");
52  			LOG.debug("  hiddenMode='"+hiddenMode+"'");
53  			LOG.debug("  rendered='"+rendered+"'");
54  		}
55  		if ((uiComponent instanceof LineBreakComponent)==false) {
56  			if (uiComponent instanceof UIViewRoot) {
57  				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
58  			}
59  			throw new IllegalStateException("Component specified by tag is not instanceof of 'LineBreakComponent'.");
60  		}
61  
62  		super.setProperties(uiComponent);
63  
64  		LineBreakComponent component = (LineBreakComponent) uiComponent;
65  		FacesContext facesContext = getFacesContext();
66  
67  		if (styleClass != null) {
68  			if (styleClass.isLiteralText()==false) {
69  				component.setValueExpression(Properties.STYLE_CLASS, styleClass);
70  
71  			} else {
72  				component.setStyleClass(styleClass.getExpressionString());
73  			}
74  		}
75  
76  		if (visible != null) {
77  			if (visible.isLiteralText()==false) {
78  				component.setValueExpression(Properties.VISIBLE, visible);
79  
80  			} else {
81  				component.setVisible(getBool(visible.getExpressionString()));
82  			}
83  		}
84  
85  		if (hiddenMode != null) {
86  			if (hiddenMode.isLiteralText()==false) {
87  				component.setValueExpression(Properties.HIDDEN_MODE, hiddenMode);
88  
89  			} else {
90  				component.setHiddenMode(hiddenMode.getExpressionString());
91  			}
92  		}
93  
94  		if (rendered != null) {
95  			if (rendered.isLiteralText()==false) {
96  				component.setValueExpression(Properties.RENDERED, rendered);
97  
98  			} else {
99  				component.setRendered(getBool(rendered.getExpressionString()));
100 			}
101 		}
102 	}
103 
104 	public void release() {
105 		styleClass = null;
106 		visible = null;
107 		hiddenMode = null;
108 		rendered = null;
109 
110 		super.release();
111 	}
112 
113 }