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.ToolFolderComponent;
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 ToolFolderTag extends AbstractBasicTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(ToolFolderTag.class);
20  
21  	private ValueExpression initListeners;
22  	private ValueExpression mouseOutListeners;
23  	private ValueExpression mouseOverListeners;
24  	private ValueExpression doubleClickListeners;
25  	private ValueExpression verticalAlignment;
26  	private ValueExpression borderType;
27  	public String getComponentType() {
28  		return ToolFolderComponent.COMPONENT_TYPE;
29  	}
30  
31  	public final void setInitListener(ValueExpression initListeners) {
32  		this.initListeners = initListeners;
33  	}
34  
35  	public final void setMouseOutListener(ValueExpression mouseOutListeners) {
36  		this.mouseOutListeners = mouseOutListeners;
37  	}
38  
39  	public final void setMouseOverListener(ValueExpression mouseOverListeners) {
40  		this.mouseOverListeners = mouseOverListeners;
41  	}
42  
43  	public final void setDoubleClickListener(ValueExpression doubleClickListeners) {
44  		this.doubleClickListeners = doubleClickListeners;
45  	}
46  
47  	public final void setVerticalAlignment(ValueExpression verticalAlignment) {
48  		this.verticalAlignment = verticalAlignment;
49  	}
50  
51  	public final void setBorderType(ValueExpression borderType) {
52  		this.borderType = borderType;
53  	}
54  
55  	protected void setProperties(UIComponent uiComponent) {
56  		if (LOG.isDebugEnabled()) {
57  			if (ToolFolderComponent.COMPONENT_TYPE==getComponentType()) {
58  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
59  			}
60  			LOG.debug("  verticalAlignment='"+verticalAlignment+"'");
61  			LOG.debug("  borderType='"+borderType+"'");
62  		}
63  		if ((uiComponent instanceof ToolFolderComponent)==false) {
64  			if (uiComponent instanceof UIViewRoot) {
65  				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
66  			}
67  			throw new IllegalStateException("Component specified by tag is not instanceof of 'ToolFolderComponent'.");
68  		}
69  
70  		super.setProperties(uiComponent);
71  
72  		ToolFolderComponent component = (ToolFolderComponent) uiComponent;
73  		FacesContext facesContext = getFacesContext();
74  
75  		if (initListeners != null) {
76  			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.INIT_LISTENER_TYPE, initListeners);
77  		}
78  
79  		if (mouseOutListeners != null) {
80  			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.MOUSE_OUT_LISTENER_TYPE, mouseOutListeners);
81  		}
82  
83  		if (mouseOverListeners != null) {
84  			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.MOUSE_OVER_LISTENER_TYPE, mouseOverListeners);
85  		}
86  
87  		if (doubleClickListeners != null) {
88  			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DOUBLE_CLICK_LISTENER_TYPE, doubleClickListeners);
89  		}
90  
91  		if (verticalAlignment != null) {
92  			if (verticalAlignment.isLiteralText()==false) {
93  				component.setValueExpression(Properties.VERTICAL_ALIGNMENT, verticalAlignment);
94  
95  			} else {
96  				component.setVerticalAlignment(verticalAlignment.getExpressionString());
97  			}
98  		}
99  
100 		if (borderType != null) {
101 			if (borderType.isLiteralText()==false) {
102 				component.setValueExpression(Properties.BORDER_TYPE, borderType);
103 
104 			} else {
105 				component.setBorderType(borderType.getExpressionString());
106 			}
107 		}
108 	}
109 
110 	public void release() {
111 		initListeners = null;
112 		mouseOutListeners = null;
113 		mouseOverListeners = null;
114 		doubleClickListeners = null;
115 		verticalAlignment = null;
116 		borderType = null;
117 
118 		super.release();
119 	}
120 
121 }