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 org.apache.myfaces.tobago.context.Markup;
024    import org.apache.myfaces.tobago.internal.component.AbstractUILabel;
025    import org.apache.myfaces.tobago.layout.Display;
026    import org.apache.myfaces.tobago.layout.Measure;
027    import org.apache.commons.lang.ArrayUtils;
028    import org.apache.commons.lang.StringUtils;
029    import org.apache.myfaces.tobago.component.MethodBindingToMethodExpression;
030    import org.apache.myfaces.tobago.component.MethodExpressionToMethodBinding;
031    import org.apache.myfaces.tobago.internal.util.Deprecation;
032    import org.apache.myfaces.tobago.renderkit.MarginValues;
033    import org.apache.myfaces.tobago.renderkit.SpacingValues;
034    import org.apache.myfaces.tobago.renderkit.LayoutComponentRenderer;
035    import javax.el.ELException;
036    import javax.faces.FacesException;
037    import java.util.ArrayList;
038    import java.util.List;
039    import javax.el.MethodExpression;
040    import javax.el.ValueExpression;
041    
042    /** 
043     Renders a label component.
044      * UIComponent class, generated from template {@code component1.2.stg} with class
045      * {@link org.apache.myfaces.tobago.internal.taglib.component.LabelTagDeclaration}.
046     */
047    public class UILabel
048        extends AbstractUILabel implements SupportsMarkup {
049    
050      public static final String COMPONENT_TYPE = "org.apache.myfaces.tobago.Label";
051    
052      private org.apache.myfaces.tobago.context.Markup markup;
053      private java.lang.Character accessKey;
054      private java.lang.String forComponent;
055      private org.apache.myfaces.tobago.layout.Measure marginLeft;
056      private java.lang.String labelWithAccessKey;
057      private org.apache.myfaces.tobago.layout.Measure minimumHeight;
058      private java.lang.String tip;
059      private org.apache.myfaces.tobago.layout.Measure height;
060      private org.apache.myfaces.tobago.layout.Measure minimumWidth;
061      private java.lang.Boolean inline;
062      private java.lang.Integer rowSpan;
063      private org.apache.myfaces.tobago.layout.Measure left;
064      private java.lang.Integer columnSpan;
065      private org.apache.myfaces.tobago.layout.Measure maximumHeight;
066      private org.apache.myfaces.tobago.layout.Measure top;
067      private org.apache.myfaces.tobago.layout.Measure currentWidth;
068      private org.apache.myfaces.tobago.layout.Measure marginTop;
069      private org.apache.myfaces.tobago.layout.Measure width;
070      private org.apache.myfaces.tobago.layout.Measure marginRight;
071      private org.apache.myfaces.tobago.layout.Measure currentHeight;
072      private org.apache.myfaces.tobago.layout.Measure preferredHeight;
073      private org.apache.myfaces.tobago.layout.Display display;
074      private org.apache.myfaces.tobago.layout.Measure maximumWidth;
075      private org.apache.myfaces.tobago.layout.Measure preferredWidth;
076      private org.apache.myfaces.tobago.layout.Measure marginBottom;
077      private java.lang.Integer verticalIndex;
078      private org.apache.myfaces.tobago.context.Markup currentMarkup;
079      private java.lang.Integer horizontalIndex;
080    
081    
082      public org.apache.myfaces.tobago.context.Markup getMarkup() {
083        if (markup != null) {
084          return markup;
085        }
086        ValueExpression ve = getValueExpression("markup");
087        if (ve != null) {
088          try {
089            Object object = ve.getValue(getFacesContext().getELContext());
090            return Markup.valueOf(object);
091          } catch (ELException e) {
092                      throw new FacesException(e);
093              }
094        }
095        return null;
096      }
097    
098      public void setMarkup(org.apache.myfaces.tobago.context.Markup markup) {
099        this.markup = markup;
100      }
101    
102      /**
103      Deprecated! Has not longer any function.
104    
105      @deprecated*/
106      @Deprecated
107      public java.lang.Character getAccessKey() {
108        if (accessKey != null) {
109          return accessKey;
110        }
111        ValueExpression ve = getValueExpression("accessKey");
112        if (ve != null) {
113          try {
114            return (java.lang.Character) ve.getValue(getFacesContext().getELContext());
115          } catch (ELException e) {
116                      throw new FacesException(e);
117              }
118        }
119        return null;
120      }
121    
122      @Deprecated
123      public void setAccessKey(java.lang.Character accessKey) {
124        this.accessKey = accessKey;
125      }
126    
127      /**
128      Id of the component, this is related to.
129    
130      */
131      public java.lang.String getFor() {
132        if (forComponent != null) {
133          return forComponent;
134        }
135        ValueExpression ve = getValueExpression("for");
136        if (ve != null) {
137          try {
138            return (java.lang.String) ve.getValue(getFacesContext().getELContext());
139          } catch (ELException e) {
140                      throw new FacesException(e);
141              }
142        }
143        return null;
144      }
145    
146      public void setFor(java.lang.String forComponent) {
147        this.forComponent = forComponent;
148      }
149    
150      public org.apache.myfaces.tobago.layout.Measure getMarginLeft() {
151        if (marginLeft != null) {
152          return marginLeft;
153        }
154        ValueExpression ve = getValueExpression("marginLeft");
155        if (ve != null) {
156          try {
157            Object object = ve.getValue(getFacesContext().getELContext());
158            return Measure.valueOf(object);
159          } catch (ELException e) {
160                      throw new FacesException(e);
161              }
162        }
163        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMarginLeft(getFacesContext(), this);
164      }
165    
166      public void setMarginLeft(org.apache.myfaces.tobago.layout.Measure marginLeft) {
167        this.marginLeft = marginLeft;
168      }
169    
170      /**
171      Deprecated! Use 'label' instead.
172       Text value to display as label.
173       If text contains an underscore the next character overwrites 'accesskey'.
174    
175      @deprecated*/
176      @Deprecated
177      public java.lang.String getLabelWithAccessKey() {
178        if (labelWithAccessKey != null) {
179          return labelWithAccessKey;
180        }
181        ValueExpression ve = getValueExpression("labelWithAccessKey");
182        if (ve != null) {
183          try {
184            return (java.lang.String) ve.getValue(getFacesContext().getELContext());
185          } catch (ELException e) {
186                      throw new FacesException(e);
187              }
188        }
189        return null;
190      }
191    
192      @Deprecated
193      public void setLabelWithAccessKey(java.lang.String labelWithAccessKey) {
194        this.labelWithAccessKey = labelWithAccessKey;
195      }
196    
197      public org.apache.myfaces.tobago.layout.Measure getMinimumHeight() {
198        if (minimumHeight != null) {
199          return minimumHeight;
200        }
201        ValueExpression ve = getValueExpression("minimumHeight");
202        if (ve != null) {
203          try {
204            Object object = ve.getValue(getFacesContext().getELContext());
205            return Measure.valueOf(object);
206          } catch (ELException e) {
207                      throw new FacesException(e);
208              }
209        }
210        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMinimumHeight(getFacesContext(), this);
211      }
212    
213      public void setMinimumHeight(org.apache.myfaces.tobago.layout.Measure minimumHeight) {
214        this.minimumHeight = minimumHeight;
215      }
216    
217      /**
218      Text value to display as tooltip.
219    
220      */
221      public java.lang.String getTip() {
222        if (tip != null) {
223          return tip;
224        }
225        ValueExpression ve = getValueExpression("tip");
226        if (ve != null) {
227          try {
228            return (java.lang.String) ve.getValue(getFacesContext().getELContext());
229          } catch (ELException e) {
230                      throw new FacesException(e);
231              }
232        }
233        return null;
234      }
235    
236      public void setTip(java.lang.String tip) {
237        this.tip = tip;
238      }
239    
240      /**
241      This value will usually be set by the layout manager.
242    
243      */
244      public org.apache.myfaces.tobago.layout.Measure getHeight() {
245        if (height != null) {
246          return height;
247        }
248        ValueExpression ve = getValueExpression("height");
249        if (ve != null) {
250          try {
251            Object object = ve.getValue(getFacesContext().getELContext());
252            return Measure.valueOf(object);
253          } catch (ELException e) {
254                      throw new FacesException(e);
255              }
256        }
257        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getHeight(getFacesContext(), this);
258      }
259    
260      public void setHeight(org.apache.myfaces.tobago.layout.Measure height) {
261        this.height = height;
262      }
263    
264      public org.apache.myfaces.tobago.layout.Measure getMinimumWidth() {
265        if (minimumWidth != null) {
266          return minimumWidth;
267        }
268        ValueExpression ve = getValueExpression("minimumWidth");
269        if (ve != null) {
270          try {
271            Object object = ve.getValue(getFacesContext().getELContext());
272            return Measure.valueOf(object);
273          } catch (ELException e) {
274                      throw new FacesException(e);
275              }
276        }
277        return ((LayoutComponentRenderer)getRenderer(getFacesContext())).getMinimumWidth(getFacesContext(), this);
278      }
279    
280      public void setMinimumWidth(org.apache.myfaces.tobago.layout.Measure minimumWidth) {
281        this.minimumWidth = minimumWidth;
282      }
283    
284      /**
285      Flag indicating this component should rendered as an inline element.
286      <br />Default: <code>false</code>
287      */
288      public boolean isInline() {
289        if (inline != null) {
290          return inline;
291        }
292        ValueExpression ve = getValueExpression("inline");
293        if (ve != null) {
294          try {
295            Boolean bool = (Boolean) ve.getValue(getFacesContext().getELContext());
296            if (bool != null) {
297              return bool;
298            }
299          } catch (ELException e) {
300                      throw new FacesException(e);
301              }
302        }
303        return false;
304      }
305    
306      public void setInline(boolean inline) {
307        this.inline = inline;
308      }
309    
310      public java.lang.Integer getRowSpan() {
311        if (rowSpan != null) {
312          return rowSpan;
313        }
314        ValueExpression ve = getValueExpression("rowSpan");
315        if (ve != null) {
316          try {
317            Number number = (Number) ve.getValue(getFacesContext().getELContext());
318            if (number != null) {
319              return number.intValue();
320            }
321          } catch (ELException e) {
322                      throw new FacesException(e);
323              }
324        }
325        return 1;
326      }
327    
328      public void setRowSpan(java.lang.Integer rowSpan) {
329        this.rowSpan = rowSpan;
330      }
331    
332      /**
333      This value will usually be set by the layout manager.
334    
335      */
336      public org.apache.myfaces.tobago.layout.Measure getLeft() {
337        if (left != null) {
338          return left;
339        }
340        ValueExpression ve = getValueExpression("left");
341        if (ve != null) {
342          try {
343            Object object = ve.getValue(getFacesContext().getELContext());
344            return Measure.valueOf(object);
345          } catch (ELException e) {
346                      throw new FacesException(e);
347              }
348        }
349        return null;
350      }
351    
352      public void setLeft(org.apache.myfaces.tobago.layout.Measure left) {
353        this.left = left;
354      }
355    
356      public java.lang.Integer getColumnSpan() {
357        if (columnSpan != null) {
358          return columnSpan;
359        }
360        ValueExpression ve = getValueExpression("columnSpan");
361        if (ve != null) {
362          try {
363            Number number = (Number) ve.getValue(getFacesContext().getELContext());
364            if (number != null) {
365              return number.intValue();
366            }
367          } catch (ELException e) {
368                      throw new FacesException(e);
369              }
370        }
371        return 1;
372      }
373    
374      public void setColumnSpan(java.lang.Integer columnSpan) {
375        this.columnSpan = columnSpan;
376      }
377    
378      public org.apache.myfaces.tobago.layout.Measure getMaximumHeight() {
379        if (maximumHeight != null) {
380          return maximumHeight;
381        }
382        ValueExpression ve = getValueExpression("maximumHeight");
383        if (ve != null) {
384          try {
385            Object object = ve.getValue(getFacesContext().getELContext());
386            return Measure.valueOf(object);
387          } catch (ELException e) {
388                      throw new FacesException(e);
389              }
390        }
391        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMaximumHeight(getFacesContext(), this);
392      }
393    
394      public void setMaximumHeight(org.apache.myfaces.tobago.layout.Measure maximumHeight) {
395        this.maximumHeight = maximumHeight;
396      }
397    
398      /**
399      This value will usually be set by the layout manager.
400    
401      */
402      public org.apache.myfaces.tobago.layout.Measure getTop() {
403        if (top != null) {
404          return top;
405        }
406        ValueExpression ve = getValueExpression("top");
407        if (ve != null) {
408          try {
409            Object object = ve.getValue(getFacesContext().getELContext());
410            return Measure.valueOf(object);
411          } catch (ELException e) {
412                      throw new FacesException(e);
413              }
414        }
415        return null;
416      }
417    
418      public void setTop(org.apache.myfaces.tobago.layout.Measure top) {
419        this.top = top;
420      }
421    
422      /**
423      This value will usually be set by the layout manager. It holds the current width computed by the layout manager.
424    
425      */
426      public org.apache.myfaces.tobago.layout.Measure getCurrentWidth() {
427        if (currentWidth != null) {
428          return currentWidth;
429        }
430        ValueExpression ve = getValueExpression("currentWidth");
431        if (ve != null) {
432          try {
433            Object object = ve.getValue(getFacesContext().getELContext());
434            return Measure.valueOf(object);
435          } catch (ELException e) {
436                      throw new FacesException(e);
437              }
438        }
439        return getWidth();
440      }
441    
442      public void setCurrentWidth(org.apache.myfaces.tobago.layout.Measure currentWidth) {
443        this.currentWidth = currentWidth;
444      }
445    
446      public org.apache.myfaces.tobago.layout.Measure getMarginTop() {
447        if (marginTop != null) {
448          return marginTop;
449        }
450        ValueExpression ve = getValueExpression("marginTop");
451        if (ve != null) {
452          try {
453            Object object = ve.getValue(getFacesContext().getELContext());
454            return Measure.valueOf(object);
455          } catch (ELException e) {
456                      throw new FacesException(e);
457              }
458        }
459        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMarginTop(getFacesContext(), this);
460      }
461    
462      public void setMarginTop(org.apache.myfaces.tobago.layout.Measure marginTop) {
463        this.marginTop = marginTop;
464      }
465    
466      /**
467      This value will usually be set by the layout manager.
468    
469      */
470      public org.apache.myfaces.tobago.layout.Measure getWidth() {
471        if (width != null) {
472          return width;
473        }
474        ValueExpression ve = getValueExpression("width");
475        if (ve != null) {
476          try {
477            Object object = ve.getValue(getFacesContext().getELContext());
478            return Measure.valueOf(object);
479          } catch (ELException e) {
480                      throw new FacesException(e);
481              }
482        }
483        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getWidth(getFacesContext(), this);
484      }
485    
486      public void setWidth(org.apache.myfaces.tobago.layout.Measure width) {
487        this.width = width;
488      }
489    
490      public org.apache.myfaces.tobago.layout.Measure getMarginRight() {
491        if (marginRight != null) {
492          return marginRight;
493        }
494        ValueExpression ve = getValueExpression("marginRight");
495        if (ve != null) {
496          try {
497            Object object = ve.getValue(getFacesContext().getELContext());
498            return Measure.valueOf(object);
499          } catch (ELException e) {
500                      throw new FacesException(e);
501              }
502        }
503        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMarginRight(getFacesContext(), this);
504      }
505    
506      public void setMarginRight(org.apache.myfaces.tobago.layout.Measure marginRight) {
507        this.marginRight = marginRight;
508      }
509    
510      /**
511      This value will usually be set by the layout manager. It holds the current height computed by the layout manager.
512    
513      */
514      public org.apache.myfaces.tobago.layout.Measure getCurrentHeight() {
515        if (currentHeight != null) {
516          return currentHeight;
517        }
518        ValueExpression ve = getValueExpression("currentHeight");
519        if (ve != null) {
520          try {
521            Object object = ve.getValue(getFacesContext().getELContext());
522            return Measure.valueOf(object);
523          } catch (ELException e) {
524                      throw new FacesException(e);
525              }
526        }
527        return getHeight();
528      }
529    
530      public void setCurrentHeight(org.apache.myfaces.tobago.layout.Measure currentHeight) {
531        this.currentHeight = currentHeight;
532      }
533    
534      public org.apache.myfaces.tobago.layout.Measure getPreferredHeight() {
535        if (preferredHeight != null) {
536          return preferredHeight;
537        }
538        ValueExpression ve = getValueExpression("preferredHeight");
539        if (ve != null) {
540          try {
541            Object object = ve.getValue(getFacesContext().getELContext());
542            return Measure.valueOf(object);
543          } catch (ELException e) {
544                      throw new FacesException(e);
545              }
546        }
547        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getPreferredHeight(getFacesContext(), this);
548      }
549    
550      public void setPreferredHeight(org.apache.myfaces.tobago.layout.Measure preferredHeight) {
551        this.preferredHeight = preferredHeight;
552      }
553    
554      /**
555      This attribute is for internal use only.
556    
557      */
558      public org.apache.myfaces.tobago.layout.Display getDisplay() {
559        if (display != null) {
560          return display;
561        }
562        ValueExpression ve = getValueExpression("display");
563        if (ve != null) {
564          try {
565            return (org.apache.myfaces.tobago.layout.Display) ve.getValue(getFacesContext().getELContext());
566          } catch (ELException e) {
567                      throw new FacesException(e);
568              }
569        }
570        return null;
571      }
572    
573      public void setDisplay(org.apache.myfaces.tobago.layout.Display display) {
574        this.display = display;
575      }
576    
577      public org.apache.myfaces.tobago.layout.Measure getMaximumWidth() {
578        if (maximumWidth != null) {
579          return maximumWidth;
580        }
581        ValueExpression ve = getValueExpression("maximumWidth");
582        if (ve != null) {
583          try {
584            Object object = ve.getValue(getFacesContext().getELContext());
585            return Measure.valueOf(object);
586          } catch (ELException e) {
587                      throw new FacesException(e);
588              }
589        }
590        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMaximumWidth(getFacesContext(), this);
591      }
592    
593      public void setMaximumWidth(org.apache.myfaces.tobago.layout.Measure maximumWidth) {
594        this.maximumWidth = maximumWidth;
595      }
596    
597      public org.apache.myfaces.tobago.layout.Measure getPreferredWidth() {
598        if (preferredWidth != null) {
599          return preferredWidth;
600        }
601        ValueExpression ve = getValueExpression("preferredWidth");
602        if (ve != null) {
603          try {
604            Object object = ve.getValue(getFacesContext().getELContext());
605            return Measure.valueOf(object);
606          } catch (ELException e) {
607                      throw new FacesException(e);
608              }
609        }
610        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getPreferredWidth(getFacesContext(), this);
611      }
612    
613      public void setPreferredWidth(org.apache.myfaces.tobago.layout.Measure preferredWidth) {
614        this.preferredWidth = preferredWidth;
615      }
616    
617      public org.apache.myfaces.tobago.layout.Measure getMarginBottom() {
618        if (marginBottom != null) {
619          return marginBottom;
620        }
621        ValueExpression ve = getValueExpression("marginBottom");
622        if (ve != null) {
623          try {
624            Object object = ve.getValue(getFacesContext().getELContext());
625            return Measure.valueOf(object);
626          } catch (ELException e) {
627                      throw new FacesException(e);
628              }
629        }
630        return ((LayoutComponentRenderer) getRenderer(getFacesContext())).getMarginBottom(getFacesContext(), this);
631      }
632    
633      public void setMarginBottom(org.apache.myfaces.tobago.layout.Measure marginBottom) {
634        this.marginBottom = marginBottom;
635      }
636    
637      /**
638      This attribute is for internal use only.
639    
640      */
641      public java.lang.Integer getVerticalIndex() {
642        if (verticalIndex != null) {
643          return verticalIndex;
644        }
645        ValueExpression ve = getValueExpression("verticalIndex");
646        if (ve != null) {
647          try {
648            Number number = (Number) ve.getValue(getFacesContext().getELContext());
649            if (number != null) {
650              return number.intValue();
651            }
652          } catch (ELException e) {
653                      throw new FacesException(e);
654              }
655        }
656        return null;
657      }
658    
659      public void setVerticalIndex(java.lang.Integer verticalIndex) {
660        this.verticalIndex = verticalIndex;
661      }
662    
663      public org.apache.myfaces.tobago.context.Markup getCurrentMarkup() {
664        if (currentMarkup != null) {
665          return currentMarkup;
666        }
667        ValueExpression ve = getValueExpression("currentMarkup");
668        if (ve != null) {
669          try {
670            Object object = ve.getValue(getFacesContext().getELContext());
671            return Markup.valueOf(object);
672          } catch (ELException e) {
673                      throw new FacesException(e);
674              }
675        }
676        return null;
677      }
678    
679      public void setCurrentMarkup(org.apache.myfaces.tobago.context.Markup currentMarkup) {
680        this.currentMarkup = currentMarkup;
681      }
682    
683      /**
684      This attribute is for internal use only.
685    
686      */
687      public java.lang.Integer getHorizontalIndex() {
688        if (horizontalIndex != null) {
689          return horizontalIndex;
690        }
691        ValueExpression ve = getValueExpression("horizontalIndex");
692        if (ve != null) {
693          try {
694            Number number = (Number) ve.getValue(getFacesContext().getELContext());
695            if (number != null) {
696              return number.intValue();
697            }
698          } catch (ELException e) {
699                      throw new FacesException(e);
700              }
701        }
702        return null;
703      }
704    
705      public void setHorizontalIndex(java.lang.Integer horizontalIndex) {
706        this.horizontalIndex = horizontalIndex;
707      }
708    
709      public void restoreState(FacesContext context, Object componentState) {
710        Object[] values = (Object[]) componentState;
711        super.restoreState(context, values[0]);
712        markup = (org.apache.myfaces.tobago.context.Markup) values[1];
713        accessKey = (java.lang.Character) values[2];
714        forComponent = (java.lang.String) values[3];
715        marginLeft = (org.apache.myfaces.tobago.layout.Measure) values[4];
716        labelWithAccessKey = (java.lang.String) values[5];
717        minimumHeight = (org.apache.myfaces.tobago.layout.Measure) values[6];
718        tip = (java.lang.String) values[7];
719        height = (org.apache.myfaces.tobago.layout.Measure) values[8];
720        minimumWidth = (org.apache.myfaces.tobago.layout.Measure) values[9];
721        inline = (java.lang.Boolean) values[10];
722        rowSpan = (java.lang.Integer) values[11];
723        left = (org.apache.myfaces.tobago.layout.Measure) values[12];
724        columnSpan = (java.lang.Integer) values[13];
725        maximumHeight = (org.apache.myfaces.tobago.layout.Measure) values[14];
726        top = (org.apache.myfaces.tobago.layout.Measure) values[15];
727        currentWidth = (org.apache.myfaces.tobago.layout.Measure) values[16];
728        marginTop = (org.apache.myfaces.tobago.layout.Measure) values[17];
729        width = (org.apache.myfaces.tobago.layout.Measure) values[18];
730        marginRight = (org.apache.myfaces.tobago.layout.Measure) values[19];
731        currentHeight = (org.apache.myfaces.tobago.layout.Measure) values[20];
732        preferredHeight = (org.apache.myfaces.tobago.layout.Measure) values[21];
733        display = (org.apache.myfaces.tobago.layout.Display) values[22];
734        maximumWidth = (org.apache.myfaces.tobago.layout.Measure) values[23];
735        preferredWidth = (org.apache.myfaces.tobago.layout.Measure) values[24];
736        marginBottom = (org.apache.myfaces.tobago.layout.Measure) values[25];
737        verticalIndex = (java.lang.Integer) values[26];
738        currentMarkup = (org.apache.myfaces.tobago.context.Markup) values[27];
739        horizontalIndex = (java.lang.Integer) values[28];
740      }
741    
742      public Object saveState(FacesContext context) {
743        Object[] values = new Object[29];
744        values[0] = super.saveState(context);
745        values[1] = markup;
746        values[2] = accessKey;
747        values[3] = forComponent;
748        values[4] = marginLeft;
749        values[5] = labelWithAccessKey;
750        values[6] = minimumHeight;
751        values[7] = tip;
752        values[8] = height;
753        values[9] = minimumWidth;
754        values[10] = inline;
755        values[11] = rowSpan;
756        values[12] = left;
757        values[13] = columnSpan;
758        values[14] = maximumHeight;
759        values[15] = top;
760        values[16] = currentWidth;
761        values[17] = marginTop;
762        values[18] = width;
763        values[19] = marginRight;
764        values[20] = currentHeight;
765        values[21] = preferredHeight;
766        values[22] = display;
767        values[23] = maximumWidth;
768        values[24] = preferredWidth;
769        values[25] = marginBottom;
770        values[26] = verticalIndex;
771        values[27] = currentMarkup;
772        values[28] = horizontalIndex;
773        return values;
774      }
775    
776    
777    }