  */
 [SkinState("disabled")]
 
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[AccessibilityClass(implementation="spark.accessibility.SpinnerAccImpl")]
+
 [IconFile("Spinner.png")]
 
-[AccessibilityClass(implementation="spark.accessibility.SpinnerAccImpl")]
 /**
  *  A Spinner component selects a value from an
  *  ordered set. It uses two buttons that increase or

    /**
     *  @private
     */
    override protected function partAdded(partName:String, instance:Object):void
    {
        // FIXME (hmuller): autoRepeat as a property on Spinner?        
        if (instance == incrementButton)
        {
            incrementButton.focusEnabled = false;
            incrementButton.addEventListener(FlexEvent.BUTTON_DOWN,
                                        incrementButton_buttonDownHandler);
            incrementButton.autoRepeat = true;
        }
        else if (instance == decrementButton)
        {
            decrementButton.focusEnabled = false;
            decrementButton.addEventListener(FlexEvent.BUTTON_DOWN,
                                        decrementButton_buttonDownHandler);
            decrementButton.autoRepeat = true;
        }
    }

    /**
     *  @private
     */
    override protected function partRemoved(partName:String, instance:Object):void
    {
        if (instance == incrementButton)
        {
            incrementButton.removeEventListener(FlexEvent.BUTTON_DOWN, 
                                           incrementButton_buttonDownHandler);
        }
        else if (instance == decrementButton)
        {
            decrementButton.removeEventListener(FlexEvent.BUTTON_DOWN, 
                                           decrementButton_buttonDownHandler);
        }
    }
    
    /**
     *  @private
     */
    override public function changeValueByStep(increase:Boolean = true):void
    {
        if (allowValueWrap)

    //
    //--------------------------------------------------------------------------
    
	//----------------------------------
	//  decrementButton
	//----------------------------------

    [SkinPart(required="false")]
    
    /**
     *  A skin part that defines the  button that, 
     *  when pressed, decrements the <code>value</code> property
     *  by <code>stepSize</code>.
     *  
     *  @langversion 3.0
     *  @playerversion Flash 10
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
    public var decrementButton:Button;
    
	//----------------------------------
	//  incrementButton
	//----------------------------------

    [SkinPart(required="false")]
    
    /**
