         
         // Select all the text.
         textInput.setSelection();
+        
+        if (dispatchChange)
+        {
+            if (value != prevValue)
+                dispatchEvent(new Event(Event.CHANGE));
+        }
+    }
+    
+    //--------------------------------------------------------------------------
+    // 
+    //  Private Methods
+    //
+    //--------------------------------------------------------------------------
+    
+    /**
+     *  @private
+     *  Helper method that returns a number corresponding
+     *  to the length of the maximum value displayable in 
+     *  the textInput.  
+     */
+    private function calculateWidestValue():Number
+    {
+        var widestNumber:Number = minimum.toString().length >
+                              maximum.toString().length ?
+                              minimum :
+                              maximum;
+    	widestNumber += stepSize;
+    	return widestNumber.toString().length;
     }
     
     //--------------------------------------------------------------------------

    
    //--------------------------------------------------------------------------
    //
    //  Overridden methods
    //
    //--------------------------------------------------------------------------

        {
            textInput.focusEnabled = false;
            textInput.maxChars = _maxChars;
            // Restrict to digits, minus sign, decimal point, and comma
            textInput.restrict = "0-9\\-\\.\\,";
            textInput.addEventListener(FlexEvent.ENTER,
                                       textInput_enterHandler);
            textInput.addEventListener(FocusEvent.FOCUS_OUT, 
                                       textInput_focusOutHandler); 
            textInput.text = value.toString();
            // Set the the textInput to be wide enough to display
            // widest possible value. 
            textInput.widthInChars = calculateWidestValue(); 
            
        }
    }
    
