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.ItemsToolFolderComponent;
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 ItemsToolFolderTag extends AbstractInputTag implements Tag {
17  
18  
19  	private static final Log LOG=LogFactory.getLog(ItemsToolFolderTag.class);
20  
21  	private ValueExpression doubleClickListeners;
22  	private ValueExpression textPosition;
23  	private ValueExpression borderType;
24  	private ValueExpression selectionListeners;
25  	private ValueExpression checkListeners;
26  	private ValueExpression checkedValues;
27  	private ValueExpression readOnly;
28  	private ValueExpression verticalAlignment;
29  	private ValueExpression showDropDownMark;
30  	private ValueExpression defaultItemLookId;
31  	private ValueExpression defaultItemStyleClass;
32  	private ValueExpression itemHiddenMode;
33  	public String getComponentType() {
34  		return ItemsToolFolderComponent.COMPONENT_TYPE;
35  	}
36  
37  	public final void setDoubleClickListener(ValueExpression doubleClickListeners) {
38  		this.doubleClickListeners = doubleClickListeners;
39  	}
40  
41  	public final void setTextPosition(ValueExpression textPosition) {
42  		this.textPosition = textPosition;
43  	}
44  
45  	public final void setBorderType(ValueExpression borderType) {
46  		this.borderType = borderType;
47  	}
48  
49  	public final void setSelectionListener(ValueExpression selectionListeners) {
50  		this.selectionListeners = selectionListeners;
51  	}
52  
53  	public final void setCheckListener(ValueExpression checkListeners) {
54  		this.checkListeners = checkListeners;
55  	}
56  
57  	public final void setCheckedValues(ValueExpression checkedValues) {
58  		this.checkedValues = checkedValues;
59  	}
60  
61  	public final void setReadOnly(ValueExpression readOnly) {
62  		this.readOnly = readOnly;
63  	}
64  
65  	public final void setVerticalAlignment(ValueExpression verticalAlignment) {
66  		this.verticalAlignment = verticalAlignment;
67  	}
68  
69  	public final void setShowDropDownMark(ValueExpression showDropDownMark) {
70  		this.showDropDownMark = showDropDownMark;
71  	}
72  
73  	public final void setDefaultItemLookId(ValueExpression defaultItemLookId) {
74  		this.defaultItemLookId = defaultItemLookId;
75  	}
76  
77  	public final void setDefaultItemStyleClass(ValueExpression defaultItemStyleClass) {
78  		this.defaultItemStyleClass = defaultItemStyleClass;
79  	}
80  
81  	public final void setItemHiddenMode(ValueExpression itemHiddenMode) {
82  		this.itemHiddenMode = itemHiddenMode;
83  	}
84  
85  	protected void setProperties(UIComponent uiComponent) {
86  		if (LOG.isDebugEnabled()) {
87  			if (ItemsToolFolderComponent.COMPONENT_TYPE==getComponentType()) {
88  				LOG.debug("Component id='"+getId()+"' type='"+getComponentType()+"'.");
89  			}
90  			LOG.debug("  textPosition='"+textPosition+"'");
91  			LOG.debug("  borderType='"+borderType+"'");
92  			LOG.debug("  checkedValues='"+checkedValues+"'");
93  			LOG.debug("  readOnly='"+readOnly+"'");
94  			LOG.debug("  verticalAlignment='"+verticalAlignment+"'");
95  			LOG.debug("  showDropDownMark='"+showDropDownMark+"'");
96  			LOG.debug("  defaultItemLookId='"+defaultItemLookId+"'");
97  			LOG.debug("  defaultItemStyleClass='"+defaultItemStyleClass+"'");
98  			LOG.debug("  itemHiddenMode='"+itemHiddenMode+"'");
99  		}
100 		if ((uiComponent instanceof ItemsToolFolderComponent)==false) {
101 			if (uiComponent instanceof UIViewRoot) {
102 				throw new IllegalStateException("The first component of the page must be a UIViewRoot component !");
103 			}
104 			throw new IllegalStateException("Component specified by tag is not instanceof of 'ItemsToolFolderComponent'.");
105 		}
106 
107 		super.setProperties(uiComponent);
108 
109 		ItemsToolFolderComponent component = (ItemsToolFolderComponent) uiComponent;
110 		FacesContext facesContext = getFacesContext();
111 
112 		if (doubleClickListeners != null) {
113 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.DOUBLE_CLICK_LISTENER_TYPE, doubleClickListeners);
114 		}
115 
116 		if (textPosition != null) {
117 			if (textPosition.isLiteralText()==false) {
118 				component.setValueExpression(Properties.TEXT_POSITION, textPosition);
119 
120 			} else {
121 				component.setTextPosition(textPosition.getExpressionString());
122 			}
123 		}
124 
125 		if (borderType != null) {
126 			if (borderType.isLiteralText()==false) {
127 				component.setValueExpression(Properties.BORDER_TYPE, borderType);
128 
129 			} else {
130 				component.setBorderType(borderType.getExpressionString());
131 			}
132 		}
133 
134 		if (selectionListeners != null) {
135 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.SELECTION_LISTENER_TYPE, selectionListeners);
136 		}
137 
138 		if (checkListeners != null) {
139 			ListenersTools1_2.parseListener(facesContext, component, ListenersTools.CHECK_LISTENER_TYPE, checkListeners);
140 		}
141 
142 		if (checkedValues != null) {
143 				component.setValueExpression(Properties.CHECKED_VALUES, checkedValues);
144 		}
145 
146 		if (readOnly != null) {
147 			if (readOnly.isLiteralText()==false) {
148 				component.setValueExpression(Properties.READ_ONLY, readOnly);
149 
150 			} else {
151 				component.setReadOnly(getBool(readOnly.getExpressionString()));
152 			}
153 		}
154 
155 		if (verticalAlignment != null) {
156 			if (verticalAlignment.isLiteralText()==false) {
157 				component.setValueExpression(Properties.VERTICAL_ALIGNMENT, verticalAlignment);
158 
159 			} else {
160 				component.setVerticalAlignment(verticalAlignment.getExpressionString());
161 			}
162 		}
163 
164 		if (showDropDownMark != null) {
165 			if (showDropDownMark.isLiteralText()==false) {
166 				component.setValueExpression(Properties.SHOW_DROP_DOWN_MARK, showDropDownMark);
167 
168 			} else {
169 				component.setShowDropDownMark(getBool(showDropDownMark.getExpressionString()));
170 			}
171 		}
172 
173 		if (defaultItemLookId != null) {
174 			if (defaultItemLookId.isLiteralText()==false) {
175 				component.setValueExpression(Properties.DEFAULT_ITEM_LOOK_ID, defaultItemLookId);
176 
177 			} else {
178 				component.setDefaultItemLookId(defaultItemLookId.getExpressionString());
179 			}
180 		}
181 
182 		if (defaultItemStyleClass != null) {
183 			if (defaultItemStyleClass.isLiteralText()==false) {
184 				component.setValueExpression(Properties.DEFAULT_ITEM_STYLE_CLASS, defaultItemStyleClass);
185 
186 			} else {
187 				component.setDefaultItemStyleClass(defaultItemStyleClass.getExpressionString());
188 			}
189 		}
190 
191 		if (itemHiddenMode != null) {
192 			if (itemHiddenMode.isLiteralText()==false) {
193 				component.setValueExpression(Properties.ITEM_HIDDEN_MODE, itemHiddenMode);
194 
195 			} else {
196 				component.setItemHiddenMode(itemHiddenMode.getExpressionString());
197 			}
198 		}
199 	}
200 
201 	public void release() {
202 		doubleClickListeners = null;
203 		textPosition = null;
204 		borderType = null;
205 		selectionListeners = null;
206 		checkListeners = null;
207 		checkedValues = null;
208 		readOnly = null;
209 		verticalAlignment = null;
210 		showDropDownMark = null;
211 		defaultItemLookId = null;
212 		defaultItemStyleClass = null;
213 		itemHiddenMode = null;
214 
215 		super.release();
216 	}
217 
218 }