         {
             textInput.focusEnabled = false;
             textInput.maxChars = _maxChars;
-            // restrict to digits, minus sign, decimal point, and comma
+            // 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(); 
+            
         }
     }
     

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

     *  and constrains the value to the range defined by the 
     *  <code>maximum</code> and <code>minimum</code> properties.
     */
    protected function commitTextInput(dispatchChange:Boolean = false):void
    {
        var inputValue:Number = Number(textInput.text);
        var prevValue:Number = value;
