001 // ---------- Attention: Generated code, please do not modify! -----------
002
003 /*
004 * Licensed to the Apache Software Foundation (ASF) under one or more
005 * contributor license agreements. See the NOTICE file distributed with
006 * this work for additional information regarding copyright ownership.
007 * The ASF licenses this file to You under the Apache License, Version 2.0
008 * (the "License"); you may not use this file except in compliance with
009 * the License. You may obtain a copy of the License at
010 *
011 * http://www.apache.org/licenses/LICENSE-2.0
012 *
013 * Unless required by applicable law or agreed to in writing, software
014 * distributed under the License is distributed on an "AS IS" BASIS,
015 * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
016 * See the License for the specific language governing permissions and
017 * limitations under the License.
018 */
019
020 package org.apache.myfaces.tobago.component;
021
022 import javax.faces.context.FacesContext;
023 import javax.faces.el.MethodBinding;
024 import org.apache.myfaces.tobago.context.Markup;
025 import org.apache.myfaces.tobago.internal.component.AbstractUITreeNode;
026 import org.apache.commons.lang.ArrayUtils;
027 import org.apache.commons.lang.StringUtils;
028 import org.apache.myfaces.tobago.component.MethodBindingToMethodExpression;
029 import org.apache.myfaces.tobago.component.MethodExpressionToMethodBinding;
030 import org.apache.myfaces.tobago.internal.util.Deprecation;
031 import org.apache.myfaces.tobago.renderkit.MarginValues;
032 import org.apache.myfaces.tobago.renderkit.SpacingValues;
033 import org.apache.myfaces.tobago.renderkit.LayoutComponentRenderer;
034 import javax.el.ELException;
035 import javax.faces.FacesException;
036 import java.util.ArrayList;
037 import java.util.List;
038 import javax.el.MethodExpression;
039 import javax.el.ValueExpression;
040
041 /**
042 Creates a tree node. This component represents a single node inside a tree structure.
043 For interating over tree node use tc:treeData.
044 * UIComponent class, generated from template {@code component1.2.stg} with class
045 * {@link org.apache.myfaces.tobago.internal.taglib.component.TreeNodeTagDeclaration}.
046 */
047 public class UITreeNode
048 extends AbstractUITreeNode implements SupportsMarkup {
049
050 public static final String COMPONENT_TYPE = "org.apache.myfaces.tobago.TreeNode";
051
052 private java.lang.Boolean selected;
053 private java.lang.Boolean marked;
054 private org.apache.myfaces.tobago.context.Markup markup;
055 private javax.faces.el.MethodBinding treeExpansionListener;
056 private org.apache.myfaces.tobago.context.Markup currentMarkup;
057 private java.lang.Boolean expanded;
058 private java.lang.Boolean disabled;
059 private java.lang.String tip;
060
061
062 /**
063 Flag indicating if the node is selected (only possible, when the tree component allows it).
064 <br />Default: <code>false</code>
065 */
066 public boolean isSelected() {
067 if (selected != null) {
068 return selected;
069 }
070 ValueExpression ve = getValueExpression("selected");
071 if (ve != null) {
072 try {
073 Boolean bool = (Boolean) ve.getValue(getFacesContext().getELContext());
074 if (bool != null) {
075 return bool;
076 }
077 } catch (ELException e) {
078 throw new FacesException(e);
079 }
080 }
081 return false;
082 }
083
084 public void setSelected(boolean selected) {
085 this.selected = selected;
086 }
087
088 /**
089 Flag indicating if the node is marked, and should be displayed in a special way.
090 <br />Default: <code>false</code>
091 */
092 public boolean isMarked() {
093 if (marked != null) {
094 return marked;
095 }
096 ValueExpression ve = getValueExpression("marked");
097 if (ve != null) {
098 try {
099 Boolean bool = (Boolean) ve.getValue(getFacesContext().getELContext());
100 if (bool != null) {
101 return bool;
102 }
103 } catch (ELException e) {
104 throw new FacesException(e);
105 }
106 }
107 return false;
108 }
109
110 public void setMarked(boolean marked) {
111 this.marked = marked;
112 }
113
114 public org.apache.myfaces.tobago.context.Markup getMarkup() {
115 if (markup != null) {
116 return markup;
117 }
118 ValueExpression ve = getValueExpression("markup");
119 if (ve != null) {
120 try {
121 Object object = ve.getValue(getFacesContext().getELContext());
122 return Markup.valueOf(object);
123 } catch (ELException e) {
124 throw new FacesException(e);
125 }
126 }
127 return null;
128 }
129
130 public void setMarkup(org.apache.myfaces.tobago.context.Markup markup) {
131 this.markup = markup;
132 }
133
134 public javax.faces.el.MethodBinding getTreeExpansionListener() {
135 return treeExpansionListener;
136 }
137
138 public void setTreeExpansionListener(javax.faces.el.MethodBinding treeExpansionListener) {
139 this.treeExpansionListener = treeExpansionListener;
140 }
141
142 public org.apache.myfaces.tobago.context.Markup getCurrentMarkup() {
143 if (currentMarkup != null) {
144 return currentMarkup;
145 }
146 return null;
147 }
148
149 public void setCurrentMarkup(org.apache.myfaces.tobago.context.Markup currentMarkup) {
150 this.currentMarkup = currentMarkup;
151 }
152
153 /**
154 Flag indicating if the subnodes are to be displayed.
155 <br />Default: <code>false</code>
156 */
157 public boolean isExpanded() {
158 if (expanded != null) {
159 return expanded;
160 }
161 ValueExpression ve = getValueExpression("expanded");
162 if (ve != null) {
163 try {
164 Boolean bool = (Boolean) ve.getValue(getFacesContext().getELContext());
165 if (bool != null) {
166 return bool;
167 }
168 } catch (ELException e) {
169 throw new FacesException(e);
170 }
171 }
172 return false;
173 }
174
175 public void setExpanded(boolean expanded) {
176 this.expanded = expanded;
177 }
178
179 /**
180 Flag indicating that this element is disabled.
181 <br />Default: <code>false</code>
182 */
183 public boolean isDisabled() {
184 if (disabled != null) {
185 return disabled;
186 }
187 ValueExpression ve = getValueExpression("disabled");
188 if (ve != null) {
189 try {
190 Boolean bool = (Boolean) ve.getValue(getFacesContext().getELContext());
191 if (bool != null) {
192 return bool;
193 }
194 } catch (ELException e) {
195 throw new FacesException(e);
196 }
197 }
198 return false;
199 }
200
201 public void setDisabled(boolean disabled) {
202 this.disabled = disabled;
203 }
204
205 /**
206 Text value to display as tooltip.
207
208 */
209 public java.lang.String getTip() {
210 if (tip != null) {
211 return tip;
212 }
213 ValueExpression ve = getValueExpression("tip");
214 if (ve != null) {
215 try {
216 return (java.lang.String) ve.getValue(getFacesContext().getELContext());
217 } catch (ELException e) {
218 throw new FacesException(e);
219 }
220 }
221 return null;
222 }
223
224 public void setTip(java.lang.String tip) {
225 this.tip = tip;
226 }
227
228 public void restoreState(FacesContext context, Object componentState) {
229 Object[] values = (Object[]) componentState;
230 super.restoreState(context, values[0]);
231 selected = (java.lang.Boolean) values[1];
232 marked = (java.lang.Boolean) values[2];
233 markup = (org.apache.myfaces.tobago.context.Markup) values[3];
234 treeExpansionListener = (javax.faces.el.MethodBinding) restoreAttachedState(context, values[4]);
235 expanded = (java.lang.Boolean) values[5];
236 disabled = (java.lang.Boolean) values[6];
237 tip = (java.lang.String) values[7];
238 }
239
240 public Object saveState(FacesContext context) {
241 Object[] values = new Object[8];
242 values[0] = super.saveState(context);
243 values[1] = selected;
244 values[2] = marked;
245 values[3] = markup;
246 values[4] = saveAttachedState(context, treeExpansionListener);
247 values[5] = expanded;
248 values[6] = disabled;
249 values[7] = tip;
250 currentMarkup = null;
251 return values;
252 }
253
254
255 }