<?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:Application 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 com.adobe.linguistics.spelling.SpellUI;	
				
				private function enableSpelling():void {
					SpellUI.enableSpelling(textArea, "en_US");
				}
		]]>
	</fx:Script>

	<s:Panel title="Spell Check" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
		</s:layout>
		<s:Group width="100%" height="100%">
			<s:TextArea id="textArea" width="50%" height="50%"
						text="I know Enlish. Use the context menu to see the suggestions of the missbelled word." />					
		</s:Group>
		<s:Button label="Check Spelling" click="enableSpelling()" /> 
	</s:Panel>

</s:Application>
