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