<?xml version="1.0" encoding="utf-8"?>
<!--

  Licensed to the Apache Software Foundation (ASF) under one or more
  contributor license agreements.  See the NOTICE file distributed with
  this work for additional information regarding copyright ownership.
  The ASF licenses this file to You under the Apache License, Version 2.0
  (the "License"); you may not use this file except in compliance with
  the License.  You may obtain a copy of the License at

      http://www.apache.org/licenses/LICENSE-2.0

  Unless required by applicable law or agreed to in writing, software
  distributed under the License is distributed on an "AS IS" BASIS,
  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
  See the License for the specific language governing permissions and
  limitations under the License.

-->
<s:SkinnableContainer
    xmlns:fx="http://ns.adobe.com/mxml/2009"
    xmlns:s="library://ns.adobe.com/flex/spark"
    xmlns:mx="library://ns.adobe.com/flex/mx">
    
    <fx:Script>
        <![CDATA[
            import mx.collections.ArrayCollection;
            [Bindable]
            public var statesDP:ArrayCollection = new ArrayCollection(["Arizona","California","Kansas","New Mexico","Texas","Wyoming"]);
        ]]>
    </fx:Script>
    
    <s:Form id="form1">
        <s:FormHeading label="Horizontal"/>
        
        <s:FormItem label="Address" sequenceLabel="1." 
                    required="true" id="formItem1">
            <s:TextInput width="100%"/>
            <s:TextInput width="100%"/>
            <s:TextInput width="100%"/>
            <s:helpContent>
                <s:Label text="(ex. 123 Main Street)" baseline="14" />
                <s:Button label="?" width="30" baseline="14" x="120"/>
            </s:helpContent>
        </s:FormItem>       
        <s:FormItem label="City" sequenceLabel="2." required="true"
                    id="formItem2">
            <s:Button label="Hollywood!" fontSize="20"/>
        </s:FormItem> 
        <s:FormItem label="State" sequenceLabel="3." >
            <s:ComboBox dataProvider="{statesDP}" width="100%"/>
        </s:FormItem>
        <s:FormItem label="ZipCode" sequenceLabel="4." required="true">
            <s:TextInput widthInChars="4" restrict="0123456789"/>
            <s:helpContent>
                <s:Label text="Will appear in your profile" left="0" right="0"/>
            </s:helpContent>
        </s:FormItem>
    </s:Form>
</s:SkinnableContainer>
