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 }