<?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:Module 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 spark.components.RichTextEditor;
			import spark.events.TextOperationEvent;

			private var rte:RichTextEditor;

			protected override function createChildren():void
			{
				super.createChildren();
				rte = new RichTextEditor();
				rte.htmlText = '<b>This is great!</b><br/><font color="#FF0000">Another Line.</font>';
				rte.addEventListener(TextOperationEvent.CHANGE, handleChange);
				container.addElementAt(rte, 0);
				handleChange();
			}

			private function handleChange(e:TextOperationEvent = null):void
			{
				richTextEditorOutput.text = rte.htmlText;
			}
		]]>
	</fx:Script>

	<s:Panel title="RichTextEditor Sample" width="100%" height="100%">
		<s:layout>
			<s:VerticalLayout paddingLeft="10" paddingRight="10" paddingTop="10" paddingBottom="10"/>
		</s:layout>

		<s:VGroup id="container" width="600" paddingBottom="10" paddingLeft="10" paddingRight="10" paddingTop="10">
			<s:Label text="HTML Output:" fontSize="20"/>
			<s:Label id="richTextEditorOutput" width="100%"/>
		</s:VGroup>
	</s:Panel>
</s:Module>
