<!--
  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.
-->
<!-- saved from url=(0014)about:internet -->
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8"/>
<title>sample1.mxml</title>
<link rel="stylesheet" type="text/css" href="../SourceStyles.css"/>
</head>

<body><pre><span class="MXMLProcessing_Instruction">&lt;?xml version=&quot;1.0&quot; encoding=&quot;utf-8&quot;?&gt;</span>
<span class="MXMLComponent_Tag">&lt;mx:Application</span><span class="MXMLDefault_Text"> xmlns:mx=&quot;</span><span class="MXMLString">http://www.adobe.com/2006/mxml</span><span class="MXMLDefault_Text">&quot; layout=&quot;</span><span class="MXMLString">vertical</span><span class="MXMLDefault_Text">&quot; verticalAlign=&quot;</span><span class="MXMLString">top</span><span class="MXMLDefault_Text">&quot;
    horizontalAlign=&quot;</span><span class="MXMLString">center</span><span class="MXMLDefault_Text">&quot; backgroundGradientColors=&quot;</span><span class="MXMLString">[0x000000,0x323232]</span><span class="MXMLDefault_Text">&quot; paddingTop=&quot;</span><span class="MXMLString">0</span><span class="MXMLDefault_Text">&quot; viewSourceURL=&quot;</span><span class="MXMLString">srcview/index.html</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
    
    <span class="MXMLSpecial_Tag">&lt;mx:Script&gt;</span>
        <span class="ActionScriptReserved">import</span> <span class="ActionScriptDefault_Text">mx</span>.<span class="ActionScriptDefault_Text">controls</span>.<span class="ActionScriptDefault_Text">Alert</span>;
    <span class="MXMLSpecial_Tag">&lt;/mx:Script&gt;</span>

    <span class="MXMLComponent_Tag">&lt;mx:NumberValidator</span><span class="MXMLDefault_Text"> source=&quot;</span><span class="MXMLString">{</span><span class="ActionScriptDefault_Text">age</span><span class="MXMLString">}</span><span class="MXMLDefault_Text">&quot; property=&quot;</span><span class="MXMLString">text</span><span class="MXMLDefault_Text">&quot; integerError=&quot;</span><span class="MXMLString">Enter Integer value</span><span class="MXMLDefault_Text">&quot;
        minValue=&quot;</span><span class="MXMLString">18</span><span class="MXMLDefault_Text">&quot; maxValue=&quot;</span><span class="MXMLString">50</span><span class="MXMLDefault_Text">&quot; domain=&quot;</span><span class="MXMLString">int</span><span class="MXMLDefault_Text">&quot; 
        trigger=&quot;</span><span class="MXMLString">{</span><span class="ActionScriptDefault_Text">myButton</span><span class="MXMLString">}</span><span class="MXMLDefault_Text">&quot; triggerEvent=&quot;</span><span class="MXMLString">click</span><span class="MXMLDefault_Text">&quot;
        valid=&quot;</span><span class="ActionScriptDefault_Text">Alert</span>.<span class="ActionScriptDefault_Text">show</span><span class="ActionScriptBracket/Brace">(</span><span class="ActionScriptString">&apos;Validation Succeeded!&apos;</span><span class="ActionScriptBracket/Brace">)</span>;<span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>


    <span class="MXMLComponent_Tag">&lt;mx:Panel</span><span class="MXMLDefault_Text"> title=&quot;</span><span class="MXMLString">NumberValidator Example</span><span class="MXMLDefault_Text">&quot; layout=&quot;</span><span class="MXMLString">vertical</span><span class="MXMLDefault_Text">&quot; color=&quot;</span><span class="MXMLString">0xffffff</span><span class="MXMLDefault_Text">&quot; borderAlpha=&quot;</span><span class="MXMLString">0.15</span><span class="MXMLDefault_Text">&quot;
         paddingTop=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingRight=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingBottom=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; paddingLeft=&quot;</span><span class="MXMLString">10</span><span class="MXMLDefault_Text">&quot; horizontalAlign=&quot;</span><span class="MXMLString">center</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
         
         <span class="MXMLComponent_Tag">&lt;mx:Form</span><span class="MXMLDefault_Text"> color=&quot;</span><span class="MXMLString">0x323232</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
            <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> label=&quot;</span><span class="MXMLString">Enter an age between 18 and 50: </span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">&gt;</span>
                <span class="MXMLComponent_Tag">&lt;mx:TextInput</span><span class="MXMLDefault_Text"> id=&quot;</span><span class="MXMLString">age</span><span class="MXMLDefault_Text">&quot; width=&quot;</span><span class="MXMLString">100%</span><span class="MXMLDefault_Text">&quot;</span><span class="MXMLComponent_Tag">/&gt;</span>
            <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>

            <span class="MXMLComponent_Tag">&lt;mx:FormItem</span><span class="MXMLDefault_Text"> </span><span class="MXMLComponent_Tag">&gt;</span>
                <span class="MXMLComponent_Tag">&lt;mx:Button</span><span class="MXMLDefault_Text"> id=&quot;</span><span class="MXMLString">myButton</span><span class="MXMLDefault_Text">&quot; label=&quot;</span><span class="MXMLString">Validate</span><span class="MXMLDefault_Text">&quot; </span><span class="MXMLComponent_Tag">/&gt;</span>
            <span class="MXMLComponent_Tag">&lt;/mx:FormItem&gt;</span>
        <span class="MXMLComponent_Tag">&lt;/mx:Form&gt;</span>
        
    <span class="MXMLComponent_Tag">&lt;/mx:Panel&gt;</span>
<span class="MXMLComponent_Tag">&lt;/mx:Application&gt;</span></pre></body>
</html>
