Transferred from the Adobe Open Source Subversion Repository

Revision: 22564
Author:   tkraikit@adobe.com
Date:     2011-09-14T19:50:07.656843Z

Log Message:
-----------
Update ASDoc "@productversion Flex 4.5.2" => "@productversion Flex 4.6"

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/LabelItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/OnDemandDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/graphics/BitmapScaleMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ContentBackgroundAppearance.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/framework/src/mx/core/FlexVersion.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ArrowDirection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/FormatPattern.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentNavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/core/ISoftKeyboardHintClient.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/CalloutArrow.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/YearProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListScrollerSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/ScrollSnappingMode.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/StageTextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultTransparentActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/ToggleSwitchSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateAndTimeProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SpinnerListContainerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/CalloutPosition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImageSource.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/Callout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/StageTextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/collections/NumericDataProvider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreenImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/CalendarDate.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DefaultBeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/globalization/supportClasses/DateTimeFormatterEx.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264441 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -82,7 +82,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="change", type="flash.events.Event")]

@@ -94,7 +94,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="enter", type="mx.events.FlexEvent")]

@@ -111,7 +111,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="focusIn", type="flash.events.FocusEvent")]

@@ -128,7 +128,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="focusOut", type="flash.events.FocusEvent")]

@@ -139,7 +139,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="softKeyboardActivate", type="flash.events.SoftKeyboardEvent")]

@@ -151,7 +151,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="softKeyboardActivating", type="flash.events.SoftKeyboardEvent")]

@@ -162,7 +162,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Event(name="softKeyboardDeactivate", type="flash.events.SoftKeyboardEvent")]

@@ -177,7 +177,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="color", type="uint", format="Color", inherit="yes")]

@@ -193,7 +193,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="fontFamily", type="String", inherit="yes")]

@@ -204,7 +204,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="fontSize", type="Number", format="Length", inherit="yes")]

@@ -216,7 +216,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="fontStyle", type="String", enumeration="normal,italic", inherit="yes")]

@@ -228,7 +228,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="fontWeight", type="String", enumeration="normal,bold", inherit="yes")]

@@ -237,7 +237,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="locale", type="String", inherit="yes")]

@@ -250,7 +250,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 [Style(name="textAlign", type="String", enumeration="start,end,left,right,center", inherit="yes")]

@@ -310,7 +310,7 @@
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0
- *  @productversion Flex 4.5.2
+ *  @productversion Flex 4.6
  */
 public class StyleableStageText extends UIComponent implements IEditableText, ISoftKeyboardHintClient
 {
@@ -381,7 +381,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function StyleableStageText(multiline:Boolean = false)
     {
@@ -794,7 +794,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get displayAsPassword():Boolean
     {
@@ -825,7 +825,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get editable():Boolean
     {
@@ -914,7 +914,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get maxChars():int
     {
@@ -944,7 +944,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get multiline():Boolean
     {
@@ -981,7 +981,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get restrict():String
     {
@@ -1026,7 +1026,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get selectionActivePosition():int
     {
@@ -1046,7 +1046,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get selectionAnchorPosition():int
     {
@@ -1078,7 +1078,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get text():String
     {
@@ -1157,7 +1157,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get autoCapitalize():String
     {
@@ -1191,7 +1191,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get autoCorrect():Boolean
     {
@@ -1224,7 +1224,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get returnKeyLabel():String
     {
@@ -1260,7 +1260,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function get softKeyboardType():String
     {
@@ -1417,7 +1417,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function appendText(text:String):void
     {
@@ -1494,7 +1494,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function insertText(text:String):void
     {
@@ -1569,7 +1569,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function selectAll():void
     {
@@ -1585,7 +1585,7 @@
      *
      *  @langversion 3.0
      *  @playerversion AIR 3.0
-     *  @productversion Flex 4.5.2
+     *  @productversion Flex 4.6
      */
     public function selectRange(anchorIndex:int, activeIndex:int):void
     {


Added hook for subclasses to initialize things prior to loading a new
piece of media.

git-svn-id: b675b909355d5cf946977f44a8ec5a6ceb3782e4@209 ed5b42cb-e716-0410-a449-f6a68f950b19


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1258753 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/collections/XMLListCollection.as
+++ frameworks/projects/framework/src/mx/collections/XMLListCollection.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  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
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      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.
 //
 ////////////////////////////////////////////////////////////////////////////////


* 整理 import * 注释

* 整理 import
* 注释

--- agec/src/preloader.as
+++ agec/src/preloader.as
@@ -1,6 +1,5 @@
 package
 {
-	import flash.display.BitmapData;
 	import flash.display.Sprite;
 	import flash.errors.IllegalOperationError;
 	import flash.events.Event;
@@ -219,6 +218,7 @@
 		public function onAssetLoadError(asset:IAsset):void
 		{
 			trace("[preloader] 加载过程中发生错误，请查看输出日志");
+			// TODO 界面应提示用户加载失败并刷新
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 17491
Author:   aharui@adobe.com
Date:     2010-08-26T18:31:34.581497Z

Log Message:
-----------
Handle clipped sub-apps

QE notes: none
Doc notes: New optional parameter to SystemManager.getVisibleApplicationRect
Bugs: SDK-26478
Reviewer: Darrell
Tests run: checkintests mustella/MarshallPlan
Is noteworthy for integration: yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/MenuBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark_dmv/src/mx/controls/advancedDataGridClasses/FTEAdvancedDataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallingSupport.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/datavisualization/src/mx/controls/advancedDataGridClasses/AdvancedDataGridItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mx/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/mx/controls/dataGridClasses/FTEDataGridItemRenderer.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1268789 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/dataGridClasses/DataGridItemRenderer.as
@@ -730,7 +730,7 @@
         // Calculate global position of label.
         var sm:ISystemManager = systemManager.topLevelSystemManager;
         var sbRoot:DisplayObject = sm.getSandboxRoot();
-        var screen:Rectangle = sm.getVisibleApplicationRect();
+        var screen:Rectangle = sm.getVisibleApplicationRect(null, true);
         var pt:Point = new Point(0, 0);
         pt = localToGlobal(pt);
         pt = sbRoot.globalToLocal(pt);


REFIX - FLEX-34145 Mobile Theme: TextInput with layoutDirection="rtl" becomes mirror on focus out. Now works also when applicationDPI != runtimeDPI

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ScrollableStageText.as
@@ -1561,9 +1561,13 @@
             }
             if (layoutDirection == LayoutDirection.RTL) {
                 // if mirrored , cancel mirroring for the bitmap, as it's already is the right direction (generated by the OS)
+                // we do that by applying a negative scale
+                // but preserve horizontal scaling, if applicationDPI != runtimeDPI
                 const mirrorMatrix: Matrix = proxy.transform.matrix;
-                mirrorMatrix.a = -1;
-                mirrorMatrix.tx =  width;
+                if (mirrorMatrix.a > 0) {
+                    mirrorMatrix.a = -mirrorMatrix.a;
+                }
+                mirrorMatrix.tx =  width;    // reapply width in case it changed
                 proxy.transform.matrix = mirrorMatrix;
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1253159 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/charts/src/mx/charts/effects/effectClasses/SeriesSlideInstance.as
+++ frameworks/projects/charts/src/mx/charts/effects/effectClasses/SeriesSlideInstance.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.charts.effects.effectClasses
 {


don't need childrenAdded call for containers that are IMXMLDocuments

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/utils/MXMLDataInterpreter.as
@@ -266,11 +266,14 @@
         if (children)
         {
             if (!(comp is IMXMLDocument))
+            {
                 generateMXMLInstances(document, comp as IParent, children);

-            if (comp is IContainer)
-            {
-                IContainer(comp).childrenAdded();
+                // maybe we can remove this.  All IContainers should be IMXMLDocuments?
+                if (comp is IContainer)
+                {
+                    IContainer(comp).childrenAdded();
+                }
             }
         }


Transferred from the Adobe Open Source Subversion Repository

Revision: 23246
Author:   cframpto@adobe.com
Date:     2011-12-20T17:40:08.069454Z

Log Message:
-----------
Rollback 23243.  If comment followed header it was stripped as well.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1261973 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/layoutClasses/LayoutDebugHelper.as
+++ frameworks/projects/framework/src/mx/managers/layoutClasses/LayoutDebugHelper.as
@@ -1,4 +1,14 @@

+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////

 package mx.managers.layoutClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1262004 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as
+++ frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.managers.marshalClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1269532 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/effects/effectClasses/SetPropertyActionInstance.as
+++ frameworks/projects/mx/src/mx/effects/effectClasses/SetPropertyActionInstance.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2007 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.effects.effectClasses
 {


add QuadGeometry.doubleSidedQuadGeometry

--- src/aerys/minko/render/geometry/primitive/QuadGeometry.as
+++ src/aerys/minko/render/geometry/primitive/QuadGeometry.as
@@ -8,11 +8,17 @@

 	public class QuadGeometry extends Geometry
 	{
-		private static var _instance	: QuadGeometry	= null;
+		private static var _instance			: QuadGeometry	= null;
+		private static var _instanceDoubleSided	: QuadGeometry	= null;

 		public static function get quadGeometry() : QuadGeometry
 		{
 			return _instance || (_instance = new QuadGeometry());
+		}
+
+		public static function get doubleSidedQuadGeometry() : QuadGeometry
+		{
+			return _instanceDoubleSided || (_instanceDoubleSided = new QuadGeometry(true));
 		}

 		public function QuadGeometry(doubleSided	: Boolean 	= false,


Fix double-encoding caused by encoding URL TextFlow.

--- src/com/esri/builder/views/supportClasses/TextFlowUtil.as
+++ src/com/esri/builder/views/supportClasses/TextFlowUtil.as
@@ -37,7 +37,7 @@
         }

         var urlSource:String =
-            StringUtil.substitute("{1}", URLUtil.encode(url), label);
+            StringUtil.substitute("{1}", URLUtil.decode(url), label);

         return TextConverter.importToFlow(urlSource,
                                           TextConverter.TEXT_FIELD_HTML_FORMAT,


Register SOCKET_DATA callbacks before connecting.

I think we were losing a race condition here: Flash doesn't buffer
socket data events, so if you don't register before data is received,
you lose the data. I believe this was the cause of the bug where
intermittently the proxy would receive about 140 bytes (the beginning of
a TLS handshake) and then make no further progress.

The new rate limit code gives us a place to buffer read events while one
socket is connected but the other isn't.

--- swfcat.as
+++ swfcat.as
@@ -352,6 +352,7 @@
                 s_c.close();
             dispatchEvent(new Event(Event.COMPLETE));
         });
+        s_r.addEventListener(ProgressEvent.SOCKET_DATA, relay_to_client);

         log("Tor: connecting to " + addr_r.host + ":" + addr_r.port + ".");
         s_r.connect(addr_r.host, addr_r.port);
@@ -382,6 +383,7 @@
                 s_r.close();
             dispatchEvent(new Event(Event.COMPLETE));
         });
+        s_c.addEventListener(ProgressEvent.SOCKET_DATA, client_to_relay);

         log("Client: connecting to " + addr_c.host + ":" + addr_c.port + ".");
         s_c.connect(addr_c.host, addr_c.port);
@@ -402,9 +404,6 @@
     private function client_connected(e:Event):void
     {
         log("Client: connected.");
-
-        s_r.addEventListener(ProgressEvent.SOCKET_DATA, relay_to_client);
-        s_c.addEventListener(ProgressEvent.SOCKET_DATA, client_to_relay);
     }

     private function transfer_chunk(s_from:Socket, s_to:Socket, n:uint,
@@ -422,6 +421,14 @@
     /* Send as much data as the rate limit currently allows. */
     private function flush():void
     {
+        if (flush_id)
+            clearTimeout(flush_id);
+        flush_id = undefined;
+
+        if (!(s_r.connected && s_c.connected))
+            /* Can't do anything until both sockets are connected. */
+            return;
+
         while (!ui.rate_limit.is_limited() &&
                (r2c_schedule.length > 0 || c2r_schedule.length > 0)) {
             if (r2c_schedule.length > 0)
@@ -429,9 +436,7 @@
             if (c2r_schedule.length > 0)
                 transfer_chunk(s_c, s_r, c2r_schedule.shift(), "Client");
         }
-        if (flush_id)
-            clearTimeout(flush_id);
-        flush_id = undefined;
+
         /* Call again when safe, if necessary. */
         if (r2c_schedule.length > 0 || c2r_schedule.length > 0)
             flush_id = setTimeout(flush, ui.rate_limit.when() * 1000);


Adding metadata parameter 'optional' to DisplayInjector

--- raw/src/org/yellcorp/lib/display/inject/DisplayInjector.as
+++ raw/src/org/yellcorp/lib/display/inject/DisplayInjector.as
@@ -71,6 +71,11 @@
  *     an error is thrown.

  *

  *
+ *
optional

+ *

If the search fails, set the target property to null
+ *     instead of throwing an error.

+ *

+ *
  *
adapter

  *

Instead of trying to cast the child DisplayObject to the property's
  *     class, use the class as a constructor, with the child DisplayObject
@@ -138,7 +143,7 @@
     private static function injectProperty(property:XML, metadata:XML,
             source:DisplayObjectContainer, target:*):void
     {
-        var args:Object = { name: null, adapter: null };
+        var args:Object = { name: null, adapter: null, optional: null };

         try {
             collectArgs(metadata, args);
@@ -160,18 +165,24 @@
         catch (die:DisplayInjectorError)
         {
             die.property = property.@name;
-            throw die;
+            if (!args.optional)
+            {
+                throw die;
+            }
         }
         catch (te:TypeError)
         {
-            throw new DisplayPathError(te.message, displayPath, property.@name);
+            if (!args.optional)
+            {
+                throw new DisplayPathError(te.message, displayPath, property.@name);
+            }
         }
     }

     private static function getChildByPath(
             display:DisplayObjectContainer, path:String):*
-    //        throws DisplayPathError
+    //      throws DisplayPathError
     {
         var names:Array = path.split(".");
         var resolvedNames:Array = [ ];
@@ -217,7 +228,7 @@

     private static function collectArgs(metadata:XML, argDict:*):void
-    //        throws DisplayMetadataError
+    //      throws DisplayMetadataError
     {
         for each (var arg:XML in metadata.arg)
         {


force draw of border.  Handle borderWidth

--- frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/SingleLineBorderBead.as
+++ frameworks/as/projects/FlexJSUI/src/org/apache/flex/html/beads/SingleLineBorderBead.as
@@ -66,6 +66,7 @@
             IEventDispatcher(value).addEventListener("heightChanged", changeHandler);
             IEventDispatcher(value).addEventListener("widthChanged", changeHandler);
             IEventDispatcher(value).addEventListener("sizeChanged", changeHandler);
+            changeHandler(null);
 		}

 		private function changeHandler(event:Event):void
@@ -73,7 +74,9 @@
 			var styleObject:* = ValuesManager.valuesImpl.getValue(_strand,"border-color");
 			var borderColor:Number = Number(styleObject);
 			if( isNaN(borderColor) ) borderColor = 0x000000;
-			styleObject = ValuesManager.valuesImpl.getValue(_strand,"border-thickness");
+			styleObject = ValuesManager.valuesImpl.getValue(_strand,"border-width");
+            if (styleObject is String)
+                styleObject = styleObject.replace("px", "");
 			var borderThickness:Number = Number(styleObject);
 			if( isNaN(borderThickness) ) borderThickness = 1;


Transferred from the Adobe Open Source Subversion Repository

Revision: 16545
Author:   chiedozi@adobe.com
Date:     2010-06-14T03:42:53.505665Z

Log Message:
-----------
Added MobileApplication, ViewNavigator, PersistenceManager and ViewTransition prototypes to mobile components swc.

mobilecomponents and mobiletheme eclipse projects now link to airglobal.swc instead of playerglobal.swc so that MobileApplication can respond to StageOrientation and NativeApplication events.

QE notes:
Doc notes:
Bugs:
Reviewer:
Tests run: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/PersistenceManager.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/IPersistenceManager.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/IViewTransition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/.actionScriptProperties</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/events/ViewNavigatorEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1265671 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorApplicationSkin.as
@@ -0,0 +1,50 @@
+package spark.skins.mobile
+{
+import spark.components.MobileApplication;
+import spark.components.ViewNavigator;
+
+public class MobileApplicationSkin extends SliderSkin
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+    public function MobileApplicationSkin()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+    public var hostComponent:MobileApplication;
+    public var navigator:ViewNavigator;
+
+    //--------------------------------------------------------------------------
+    //
+    // Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *
+     */
+    override protected function createChildren():void
+    {
+        navigator = new ViewNavigator();
+        addChild(navigator);
+    }
+
+    /**
+     *
+     */
+    override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
+    {
+        navigator.setLayoutBoundsPosition(0, 0);
+        navigator.setLayoutBoundsSize(unscaledWidth, unscaledHeight);
+    }
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1284283 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as
@@ -14,13 +14,13 @@
 import flash.geom.Vector3D;

 import mx.core.mx_internal;
-import mx.effects.Animation;
-import mx.effects.AnimationProperty;
+import spark.effects.animation.Animation;
+import spark.effects.animation.AnimationProperty;
 import mx.effects.Effect;
-import mx.effects.FxAnimate;
-import mx.effects.effectClasses.FxAnimateInstance;
-import mx.effects.interpolation.IEaser;
-import mx.effects.interpolation.Linear;
+import spark.effects.Animate;
+import spark.effects.supportClasses.AnimateInstance;
+import spark.effects.easing.IEaser;
+import spark.effects.easing.Linear;

 import spark.effects.KeyFrame;
 import spark.effects.MotionPath;
@@ -30,7 +30,7 @@
 /**
  * The instance of the AnimateTransform effect
  */
-public class AnimateTransformInstance extends FxAnimateInstance
+public class AnimateTransformInstance extends AnimateInstance
 {
     //--------------------------------------------------------------------------
     //


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1286019 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package spark.primitives.supportClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 2734
Author:   egeorgie@adobe.com
Date:     2008-08-04T21:16:49.645771Z

Log Message:
-----------
Fix Path actualSize to report correct size

Reviewed by Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/graphics/BitmapGraphic.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285846 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
+++ frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as
@@ -2342,8 +2342,8 @@
      *  @return Returns the transformed size. Transformation is this element's
      *  transformation matrix.
      */
-    private function transformSizeForLayout(width:Number, height:Number,
-                                            actualMatrix:Boolean):Point
+    protected function transformSizeForLayout(width:Number, height:Number,
+                                              actualMatrix:Boolean):Point
     {
         var size:Point = new Point(width, height);
         var m:Matrix = computeMatrix(actualMatrix);


Transferred from the Adobe Open Source Subversion Repository

Revision: 6695
Author:   gosmith@adobe.com
Date:     2009-05-06T20:50:19.055934Z

Log Message:
-----------
Fixed code for drawing debugging backgrounds in SimpleText, RichText, and RichEditableText.

In SimpleText and RichText, it shouldn't do graphics.clear(), and should draw at (drawX, drawY), in order to work properly when TextGraphicElements are sharing a single DisplayObject.

In RichEditableText I moved the static var that controls background-drawing from the subclass of TextContainerManager that actually does the drawing to the RichEditableText class itself, to be consistent with how you set it on SimpleText and RichText.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Ryan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/RichEditableTextContainerManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282483 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -69,16 +69,6 @@
      *  @private
      */
     private var textView:RichEditableText;
-
-    /**
-     *  @private
-     *  Used for debugging.
-     *  Set this to an RGB uint to draw an opaque background
-     *  so that you can see the bounds of the component.
-     *  If it is null, the background is black pixels at 0 alpha,
-     *  to be transparent but catch mouse events.
-     */
-    mx_internal static var backgroundColor:Object = null; // 0xDDDDDD;

     //--------------------------------------------------------------------------
     //
@@ -122,7 +112,7 @@
         var g:Graphics = container.graphics;
         g.clear();
         g.lineStyle();
-        var bc:Object = mx_internal::backgroundColor;
+        var bc:Object = RichEditableText.mx_internal::backgroundColor;
         if (bc != null)
             g.beginFill(uint(bc));
         else


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282531 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  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
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1253357 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/charts/src/mx/charts/series/renderData/AreaSeriesRenderData.as
+++ frameworks/projects/charts/src/mx/charts/series/renderData/AreaSeriesRenderData.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.charts.series.renderData
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23247
Author:   cframpto@adobe.com
Date:     2011-12-20T19:21:13.134833Z

Log Message:
-----------
Remove ADOBE SYSTEMS license and replace with Apache license in headers - frameworks.  A 2nd pass will be needed to get the files not handled up by the scripts.

Modified Paths:
--------------
4959 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1265240 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/CalloutViewNavigatorSkin.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2011 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//  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.
 //
 ////////////////////////////////////////////////////////////////////////////////


Transferred from the Adobe Open Source Subversion Repository

Revision: 19356
Author:   mhorn@adobe.com
Date:     2010-12-14T14:58:28.974295Z

Log Message:
-----------
ASDoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1282868 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as
@@ -180,7 +180,7 @@
 //--------------------------------------

 /**
- *  Normal State
+ *  Normal state.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -190,7 +190,7 @@
 [SkinState("normal")]

 /**
- *  Disabled State
+ *  Disabled state.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -200,7 +200,7 @@
 [SkinState("disabled")]

 /**
- *  Normal State with Prompt
+ *  Normal state with Prompt.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.2
@@ -210,7 +210,7 @@
 [SkinState("normalWithPrompt")]

 /**
- *  Disabled State with Prompt
+ *  Disabled state with Prompt.
  *
  *  @langversion 3.0
  *  @playerversion Flash 10.2
@@ -353,7 +353,7 @@
     [SkinPart(required="false")]

     /**
-     *  The Label or other IDisplayText that may be present
+     *  The Label or other IDisplayText that might be present
      *  in any skin assigned to this component.
      *
      *  @langversion 3.0
@@ -646,10 +646,10 @@
     //----------------------------------

     /**
-     *  @default null
-     *
      *  Text to be displayed if/when the actual
      *  text property is a null or empty string.
+     *
+     *  @default null
      *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
@@ -704,6 +704,8 @@
     //----------------------------------

     /**
+     *  @copy spark.components.RichEditableText#typicalText
+     *
      *  @default null
      *
      *  @see spark.components.RichEditableText#typicalText
@@ -1333,7 +1335,7 @@
     private function addHandlers():void
     {
         addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_START, touchInteractionStartHandler);
-		addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_END, touchInteractionEndHandler);
+        addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_END, touchInteractionEndHandler);
     }

     /**
@@ -2013,32 +2015,32 @@
      */
     private function touchInteractionStartHandler(event:TouchInteractionEvent):void
     {
-		// During a touch scroll we don't want the keyboard to activate. Add a
-		// "softKeyboardActivating" handler to cancel the event.
+        // During a touch scroll we don't want the keyboard to activate. Add a
+        // "softKeyboardActivating" handler to cancel the event.
         textDisplay.addEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING,
-						softKeyboardActivatingHandler);
-    }
-
-	/**
-	 *  @private
-	 */
-	private function touchInteractionEndHandler(event:TouchInteractionEvent):void
-	{
-		// Remove the soft keyboard activate cancelling handler.
-		textDisplay.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING,
-						softKeyboardActivatingHandler);
-	}
-
-	/**
-	 *  @private
-	 *
-	 *  This handler is only added during touch scroll events. It prevents
-	 *  the onscreen keyboard from activating if a scroll occurred.
-	 */
-	private function softKeyboardActivatingHandler(event:SoftKeyboardEvent):void
-	{
-		event.preventDefault();
-	}
+                        softKeyboardActivatingHandler);
+    }
+
+    /**
+     *  @private
+     */
+    private function touchInteractionEndHandler(event:TouchInteractionEvent):void
+    {
+        // Remove the soft keyboard activate cancelling handler.
+        textDisplay.removeEventListener(SoftKeyboardEvent.SOFT_KEYBOARD_ACTIVATING,
+                        softKeyboardActivatingHandler);
+    }
+
+    /**
+     *  @private
+     *
+     *  This handler is only added during touch scroll events. It prevents
+     *  the onscreen keyboard from activating if a scroll occurred.
+     */
+    private function softKeyboardActivatingHandler(event:SoftKeyboardEvent):void
+    {
+        event.preventDefault();
+    }
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21626
Author:   chiedozi@adobe.com
Date:     2011-07-19T22:37:43.213038Z

Log Message:
-----------
TabbedViewNavigator now manages its children using mxmlContent instead of a separate navigators property.  This fixed issues related to states and the IVisualElementContainer methods addItemAt, removeItem, etc...

QE notes:
Doc notes:
Bugs: SDK-30694, SDK-30693, SDK-30708
Reviewer:  Kevin Lin
Tests run: mustella, checkintests
Is noteworthy for integration:

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1264092 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as
@@ -43,8 +43,6 @@
 import spark.events.RendererExistenceEvent;

 use namespace mx_internal;
-
-[DefaultProperty("navigators")]

 //--------------------------------------
 //  Events
@@ -172,7 +170,8 @@
     {
         super();

-        _navigators = new Vector.<ViewNavigatorBase>();
+        addEventListener(ElementExistenceEvent.ELEMENT_ADD, elementAddHandler);
+        addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, elementRemoveHandler);
     }

     //--------------------------------------------------------------------------
@@ -343,8 +342,6 @@
     //  navigators
     //----------------------------------

-    private var _navigators:Vector.<ViewNavigatorBase>;
-
     /**
      *  The view navigators that are managed by this TabbedViewNavigator.
      *  Each view navigator is represented as a tab in the tab bar
@@ -363,7 +360,17 @@
      */
     public function get navigators():Vector.<ViewNavigatorBase>
     {
-        return _navigators;
+        var mxmlContent:Array = currentContentGroup.getMXMLContent();
+
+        if (!mxmlContent)
+            return null;
+
+        // When this class was first released, navigators was typed Vector
+        // and not Array.  In 4.5.2, TabbedViewNavigator moved away from this
+        // model and uses mxmlContent to manage children.  To maintain backwards
+        // compatibility, the return type for this method remained the same.
+        // As a result, the mxmlContent array will need to converted.
+        return Vector.<ViewNavigatorBase>(mxmlContent);
     }

     /**
@@ -371,38 +378,18 @@
      */
     public function set navigators(value:Vector.<ViewNavigatorBase>):void
     {
-        var i:int;
-        var navigator:ViewNavigatorBase;
-
-        // These flags are updated at the beginning of the method so
-        // that the selectedIndex setter doesn't ignore passed in value
-        dataProviderChanged = true;
-        invalidateProperties();
-
-        // Clean up and remove all the previous navigators from the display list
-        if (_navigators)
-        {
-            for (i = 0; i < _navigators.length; ++i)
-            {
-                navigator = _navigators[i];
-
-                cleanUpNavigator(navigator);
-                removeElement(navigator);
-            }
-        }
-
-        _navigators = value ? value.concat() : null;
-
-        if (value)
-        {
-            for (i = 0; i < value.length; ++i)
-            {
-                navigator = _navigators[i];
-                addElement(navigator);
-                setupNavigator(navigator);
-            }
-        }
-
+        // When this class was first released, navigators was typed Vector
+        // and not Array.  In 4.5.2, TabbedViewNavigator moved away from this
+        // model and uses mxmlContent to manage children.  To maintain backwards
+        // compatibility, the return type for this method remained the same.
+        // As a result, the value vector needs to be converted to an array
+        var contentArray:Array = new Array();
+
+        for each (var navigator:ViewNavigatorBase in value)
+            contentArray.push(navigator);
+
+        mxmlContent = contentArray;
+
         if (value && value.length > 0)
         {
             // Reset selectedIndex to -1 and proposed index to 0 so that the appropriate
@@ -417,6 +404,10 @@
         // The proposed selected index is reset because it is no longer valid
         // since the array of navigators has changed.
         selectedIndexChanged = false;
+
+        // Invalidate property flags
+        dataProviderChanged = true;
+        invalidateProperties();

         // Notify listeners that the collection changed
         internalDispatchEvent(CollectionEventKind.RESET);
@@ -440,10 +431,10 @@
      */
     public function get selectedNavigator():ViewNavigatorBase
     {
-        if (!navigators || length == 0 || selectedIndex < 0)
+        if (length == 0 || selectedIndex < 0 || selectedIndex >= length)
             return null;

-        return navigators[selectedIndex];
+        return getElementAt(selectedIndex) as ViewNavigatorBase;
     }

     //--------------------------------------------------------------------------
@@ -611,6 +602,28 @@

     /**
      *  @private
+     */
+    private function addNavigatorListeners(navigator:ViewNavigatorBase):void
+    {
+        navigator.addEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
+        navigator.addEventListener("viewChangeStart", navigator_viewChangeStartHandler);
+        navigator.addEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
+        navigator.addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler);
+    }
+
+    /**
+     *  @private
+     */
+    private function removeNavigatorListeners(navigator:ViewNavigatorBase):void
+    {
+        navigator.removeEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
+        navigator.removeEventListener("viewChangeStart", navigator_viewChangeStartHandler);
+        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
+        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler);
+    }
+
+    /**
+     *  @private
      */
     private function setupNavigator(navigator:ViewNavigatorBase):void
     {
@@ -641,11 +654,7 @@
                 view_propertyChangeHandler);
         }

-        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_ADD,
-            navigator_elementAddHandler);
-        navigator.removeEventListener(ElementExistenceEvent.ELEMENT_REMOVE,
-            navigator_elementRemoveHandler);
-
+        removeNavigatorListeners(navigator);
         stopTrackingUpdates(navigator);
     }

@@ -669,9 +678,9 @@

             // If the data provider has changed, the navigator elements have
             // already been removed, so the following code doesn't need to run
-            if (!selectedIndexAdjusted && !dataProviderChanged && _selectedIndex >= 0)
+            if (!selectedIndexAdjusted && !dataProviderChanged && _selectedIndex >= 0 && _selectedIndex < length)
             {
-                navigator = navigators[_selectedIndex];
+                navigator = getElementAt(_selectedIndex) as ViewNavigatorBase;
                 navigator.setActive(false, !maintainNavigationStack);
                 navigator.visible = false;
                 navigator.includeInLayout = false;
@@ -680,28 +689,20 @@
                     navigator.activeView.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE,
                                                                 view_propertyChangeHandler);

-                // Private event dispatched when a view has finished transitioning
-                navigator.removeEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
-                navigator.removeEventListener("viewChangeStart", navigator_viewChangeStartHandler);
-                navigator.removeEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
-                navigator.removeEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler);
+                removeNavigatorListeners(navigator);
             }

             commitSelection();

             if (_selectedIndex >= 0)
             {
-                navigator = navigators[_selectedIndex];
-
-                navigator.addEventListener("viewChangeComplete", navigator_viewChangeCompleteHandler);
-                navigator.addEventListener("viewChangeStart", navigator_viewChangeStartHandler);
-                navigator.addEventListener(ElementExistenceEvent.ELEMENT_ADD, navigator_elementAddHandler);
-                navigator.addEventListener(ElementExistenceEvent.ELEMENT_REMOVE, navigator_elementRemoveHandler);
-
+                navigator = getElementAt(_selectedIndex) as ViewNavigatorBase;
                 navigator.setActive(true);
                 navigator.visible = true;
                 navigator.includeInLayout = true;
-
+
+                addNavigatorListeners(navigator);
+
                 // Update the states of the controls on the newly activated view navigator.
                 // The updateControlsForView() method will automatically bubble up to all
                 // parents of the navigator.
@@ -711,7 +712,7 @@
                 // occurring in cases where multiple validation passes are required
                 // to completely validate a view
                 if (initialized)
-                    contentGroup.validateNow();
+                    currentContentGroup.validateNow();

                 if (navigator.activeView)
                 {
@@ -997,9 +998,14 @@

         if (savedStacks)
         {
+            var navigator:ViewNavigatorBase;
             var len:Number = Math.min(savedStacks.length, length);
-            for (var i:int = 0; i < len; ++i)
-                navigators[i].loadViewData(savedStacks[i]);
+
+            for (var i:int = 0; i < len; i++)
+            {
+                navigator = getElementAt(i) as ViewNavigatorBase;
+                navigator.loadViewData(savedStacks[i]);
+            }
         }
     }

@@ -1009,20 +1015,16 @@
     override public function saveViewData():Object
     {
         var savedData:Object = super.saveViewData();
-
-        if (navigators)
-        {
-            var childrenStates:Vector.<Object> = new Vector.<Object>();
-
-            for (var i:int = 0; i < navigators.length; ++i)
-                childrenStates.push(navigators[i].saveViewData());
-
-            if (!savedData)
-                savedData = {};
-
-            savedData.selectedIndex = selectedIndex;
-            savedData.childrenStates = childrenStates;
-        }
+        var childrenStates:Vector.<Object> = new Vector.<Object>();
+
+        for (var i:int = 0; i < length; i++)
+            childrenStates.push((getElementAt(i) as ViewNavigatorBase).saveViewData());
+
+        if (!savedData)
+            savedData = {};
+
+        savedData.selectedIndex = selectedIndex;
+        savedData.childrenStates = childrenStates;

         return savedData;
     }
@@ -1073,6 +1075,24 @@
     {
         if (!indexCanChange(event.newIndex))
             event.preventDefault();
+    }
+
+    /**
+     *  @private
+     */
+    private function elementRemoveHandler(event:ElementExistenceEvent):void
+    {
+        cleanUpNavigator(event.element as ViewNavigatorBase);
+        internalDispatchEvent(CollectionEventKind.REMOVE, event.element, event.index);
+    }
+
+    /**
+     *  @private
+     */
+    private function elementAddHandler(event:ElementExistenceEvent):void
+    {
+        setupNavigator(event.element as ViewNavigatorBase);
+        internalDispatchEvent(CollectionEventKind.ADD, event.element, event.index);
     }

     /**
@@ -1310,10 +1330,7 @@
      */
     public function get length():int
     {
-        if (!_navigators)
-            return 0;
-
-        return _navigators.length;
+        return numElements;
     }

     /**
@@ -1365,12 +1382,8 @@
             throw new RangeError(message);
         }

-        navigators.splice(index, 0, item);
-
         setupNavigator(ViewNavigatorBase(item));
         addElementAt(ViewNavigatorBase(item), index);
-
-        internalDispatchEvent(CollectionEventKind.ADD, item, index);

         if (selectedIndex == NO_PROPOSED_SELECTION)
         {
@@ -1408,7 +1421,7 @@
             throw new RangeError(message);
         }

-        return navigators[index];
+        return getElementAt(index);
     }

     /**
@@ -1425,7 +1438,7 @@
      */
     public function getItemIndex(item:Object):int
     {
-        return navigators.indexOf(item);
+        return getElementIndex(item as ViewNavigatorBase);
     }

     /**
@@ -1473,27 +1486,12 @@
      */
     public function removeAll():void
     {
-        var item:IVisualElement;
-        var len:int = length;
-
         // Deactive the active navigator and its view
         if (selectedNavigator)
             selectedNavigator.setActive(false);

-        for (var i:int = 0; i < len; i++)
-        {
-            item = _navigators[i];
-            cleanUpNavigator(ViewNavigatorBase(item));
-            removeElement(item);
-        }
-
-        navigators.length = 0;
-        selectedIndex = NO_PROPOSED_SELECTION;
-        dataProviderChanged = true;
-
-        invalidateProperties();
-
-        internalDispatchEvent(CollectionEventKind.RESET);
+        // Remove all navigators
+        navigators = null;
     }

     /**
@@ -1525,13 +1523,7 @@
             selectedIndexAdjusted = true;
         }

-        var removed:Object = _navigators.splice(index, 1)[0];
-
-        cleanUpNavigator(ViewNavigatorBase(removed));
-        removeElement(IVisualElement(removed));
-
-        internalDispatchEvent(CollectionEventKind.REMOVE, removed, index);
-
+        var removed:Object = removeElementAt(index);
         return removed;
     }

@@ -1566,11 +1558,8 @@
             throw new RangeError(message);
         }

-        var oldItem:Object = _navigators[index];
-        _navigators[index] = item as ViewNavigatorBase;
-
-        cleanUpNavigator(ViewNavigatorBase(oldItem));
-        setupNavigator(ViewNavigatorBase(item));
+        var oldItem:Object = removeElementAt(index);
+        addElementAt(item as ViewNavigatorBase, index);

         if (hasEventListener(CollectionEvent.COLLECTION_CHANGE))
         {
@@ -1600,15 +1589,7 @@
      */
     public function toArray():Array
     {
-        var n:int = _navigators.length;
-        var arraySource:Array = new Array(n);
-
-        for (var i:int = 0; i < n; i++)
-        {
-            arraySource[i] = _navigators[i];
-        }
-
-        return arraySource;
+        return contentGroup.getMXMLContent();
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 20097
Author:   jasonsj@adobe.com
Date:     2011-02-03T17:48:25.773740Z

Log Message:
-----------
Remove use of minWidth and minHeight where possible from mobile skins to fix constraint use cases. Replace usage of minWidth/minHeight and layoutMeasuredWidth/layoutMeasuredHeight with MobileSkin property measuredDefaultWidth/measuredDefaultHeight.

Use minWidth/minHeight for skins that do not scale down: Beveled buttons, CheckBox, RadioButton, and scroll bars.

Doc notes:
Bugs:
SDK-28715 Cannot size and position button correctly in i4 build.
Reviewer: egeorgie
Tests run: checkintests
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarFirstButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaVScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarMiddleButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewMenuItemSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TabbedViewNavigatorTabBarTabSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonBarLastButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ImageSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/BeveledBackButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1265527 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaHScrollBarSkin.as
@@ -33,7 +33,7 @@
             }
             default:
             {
-                // default PPI160
+                // default DPI_160
                 minHeight = 9;
                 paddingBottom = TextAreaHScrollBarThumbSkin.PADDING_BOTTOM_DEFAULTDPI;
                 paddingHorizontal = TextAreaHScrollBarThumbSkin.PADDING_HORIZONTAL_DEFAULTDPI;


Transferred from the Adobe Open Source Subversion Repository

Revision: 4748
Author:   dsubrama@adobe.com
Date:     2009-01-30T00:31:42.781368Z

Log Message:
-----------
Externalizing strings for the flex4 project. We now produce a resource bundle swc (flex4_rb.swc) that has all of the externalized strings for the flex4 project. We include 3 new bundles: components, layout and sparkEffects for the en_US locale. Other locales will come shortly.

QA: Yes, please doublecheck error messages are thrown with the correct error message.
Checkintests: Pass
Reviewer: Gordon

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/components.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxScroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/FxComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/ArrayInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateShaderTransition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="A">/flex/sdk/trunk/layout.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/NumberInterpolator.as</path>
<path kind="file" action="A">/flex/sdk/trunk/sparkEffects.properties</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1285520 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as
@@ -15,7 +15,14 @@
 import flash.geom.Rectangle;
 import mx.graphics.Rect;
 import mx.core.ILayoutElement;
-
+import mx.resources.IResourceManager;
+import mx.resources.ResourceManager;
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+[ResourceBundle("layout")]

 /**
  *  A sparse array of "major dimension" sizes that represent
@@ -58,6 +65,12 @@
     internal static const BLOCK_MASK:uint = 0x7F;
     private var blockTable:Vector.<Block> = new Vector.<Block>(0, false);

+    /**
+     *  @private
+     *  Used for accessing localized Error messages.
+     */
+    private var resourceManager:IResourceManager =
+                                    ResourceManager.getInstance();

     public function LinearLayoutVector(majorAxis:uint = VERTICAL)
     {
@@ -273,7 +286,7 @@
     public function setMajorSize(index:uint, value:Number):void
     {
         if (index >= length)
-            throw new Error("invalid index");
+            throw new Error(resourceManager.getString("layout", "invalidIndex"));

         var blockIndex:uint = index >> BLOCK_SHIFT;
         var block:Block = blockTable[blockIndex];
@@ -324,7 +337,7 @@
             return 0;

         if (index >= _length)
-            throw new Error("invalid index");
+            throw new Error(resourceManager.getString("layout", "invalidIndex"));

         var distance:Number = 0;
         var blockIndex:uint = index >> BLOCK_SHIFT;


Transferred from the Adobe Open Source Subversion Repository

Revision: 12295
Author:   smgilson@adobe.com
Date:     2009-11-30T21:41:29.675871Z

Log Message:
-----------
fix for FLEXDOCS-889, and add doc on the WindowedApplication.useNativeDragManager property

QE notes: -
Doc notes: -
Bugs: - FLEXDOCS-889
Reviewer: -
Tests run: - checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/AnchorStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1249917 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -557,6 +557,7 @@
  *    title=""
  *    titleBarFactory="mx.core.ClassFactory"
  *    titleIcon="null"
+ *    useNativeDragManager="true"
  *
  *    Styles
  *    buttonAlignment="auto"
@@ -2105,10 +2106,31 @@
     [Inspectable(defaultValue="true")]

     /**
-     *  Specifies if the DragManager should use the NativeDragManagerImpl implementation class.
-     *  If false, then the DragManagerImpl class will be used.
+     *  If true, the DragManager should use the NativeDragManagerImpl implementation class.
+     *  If false, then the DragManagerImpl class will be used.
      *
-     *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.

+     *
Note: This property cannot be set by ActionScript code; it must be set in MXML code.
+     *  That means you cannot change its value at run time.

+     *
+     *
By default, the DragManager  for AIR applications built in Flex uses the
+     *  NativeDragManagerImpl class as the implementation class.
+     *  Flash Player applications build in Flex use the DragManagerImpl class.

+     *
+     *
The NativeDragManagerImpl class is a bridge between the AIR NativeDragManager API
+     *  and the Flex DragManager API.
+     *  The AIR NativeDragManager class uses the operating system's drag and drop APIs.
+     *  It supports dragging between AIR windows and between the operating system and AIR.
+     *  Because the operating system controls the drag-and-drop operation,
+     *  it is not possible to customize the cursors during a drag.
+     *  Also, you have no control over the drop animation.
+     *  The behavior is dependent upon the operating system and has some inconsistencies across different platforms.

+     *
+     *
The DragManagerImpl class does not use the operating system for drag-and-drop.
+     *  Instead, it controls the entire drag-and-drop process.
+     *  It supports customizing the cursors and provides a drop animation.
+     *  However, it does not allow dragging between AIR windows and between the operating system or AIR window.

+     *
+     *  @default true
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 13276
Author:   dloverin@adobe.com
Date:     2010-01-05T15:18:31.560408Z

Log Message:
-----------
Min/Max size fixes for AIR Window and WindowedApplication.

AIR won’t allow you to set the min width greater than the current max width (same is true for height). You also can’t set the max width less than the current min width (same is true for height). The code that sets nativeWindow.minSize and nativeWindow.maxSize has been modified to take this into account.

QE notes: None.
Doc notes: None.
Bugs: SDK-24566
Reviewer: Corey
Tests run: checkintests, apollo/spark/components/Window.as, apollo/spark/components/WindowedApplication.as, apollo/Window, apollo/WindowedApplication
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airspark/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1249920 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -2215,14 +2215,43 @@
     {
         super.commitProperties();

+        // AIR won't allow you to set the min width greater than the current
+        // max width (same is true for height). You also can't set the max
+        // width less than the current min width (same is true for height).
+        // This makes the updating of the new minSize and maxSize a bit tricky.
+        if (minWidthChanged || minHeightChanged || maxWidthChanged || maxHeightChanged)
+        {
+            var minSize:Point = nativeWindow.minSize;
+            var maxSize:Point = nativeWindow.maxSize;
+            var newMinWidth:Number  = minWidthChanged  ? _minWidth  + chromeWidth()  : minSize.x;
+            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : minSize.y;
+            var newMaxWidth:Number  = maxWidthChanged  ? _maxWidth  + chromeWidth()  : maxSize.x;
+            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : maxSize.y;
+
+            if (minWidthChanged || minHeightChanged)
+            {
+                // If the new min size is greater than the old max size, then
+                // we need to set the new max size now.
+                if ((maxWidthChanged && newMinWidth > minSize.x) ||
+                    (maxHeightChanged && newMinHeight > minSize.y))
+                {
+                    nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+                }
+
+                nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
+            }
+
+            // Set the max width or height if it is not already set. The max
+            // width and height could have been set above when setting minSize
+            // but the max size would have been rejected by AIR if it were less
+            // than the old min size.
+            if (newMaxWidth != maxSize.x || newMaxHeight != maxSize.y)
+                nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);
+        }
+
         // minimum width and height
         if (minWidthChanged || minHeightChanged)
         {
-            var newMinWidth:Number = minWidthChanged ? _minWidth + chromeWidth() : nativeWindow.minSize.x;
-            var newMinHeight:Number = minHeightChanged ? _minHeight + chromeHeight() : nativeWindow.minSize.y;
-
-            nativeWindow.minSize = new Point(newMinWidth, newMinHeight);
-
             if (minWidthChanged)
             {
                 minWidthChanged = false;
@@ -2242,11 +2271,7 @@
         // maximum width and height
         if (maxWidthChanged || maxHeightChanged)
         {
-            var newMaxWidth:Number = maxWidthChanged ? _maxWidth + chromeWidth() : nativeWindow.maxSize.x;
-            var newMaxHeight:Number = maxHeightChanged ? _maxHeight + chromeHeight() : nativeWindow.maxSize.y;
-
             windowBoundsChanged = true;
-            nativeWindow.maxSize = new Point(newMaxWidth, newMaxHeight);

             if (maxWidthChanged)
             {


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1258595 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/collections/ArrayCollection.as
+++ frameworks/projects/framework/src/mx/collections/ArrayCollection.as
@@ -56,6 +56,11 @@
  *  if (firstItem == firstItemFromCursor)
  *        doCelebration();
  *

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class ArrayCollection extends ListCollectionView implements IExternalizable
 {
@@ -72,6 +77,11 @@
      *
      *
Creates a new ArrayCollection using the specified source array.
      *  If no array is specified an empty array will be used.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function ArrayCollection(source:Array = null)
     {
@@ -98,6 +108,11 @@
      *  The ArrayCollection object does not represent any changes that you make
      *  directly to the source array. Always use
      *  the ICollectionView or IList methods to modify the collection.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get source():Array
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23243
Author:   cframpto@adobe.com
Date:     2011-12-20T00:59:57.384047Z

Log Message:
-----------
In frameworks, remove Adobe headers from all files except xml/mxml file types.  There are also a few .txt files that are license files that I didn't touch yet.

Modified Paths:
--------------
2361 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1258841 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/MovieClipSWFLoader.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2010 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////

 package mx.controls
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

git-svn-id: 7146a936b37d36e51ea0d66f8acbe0b8281bc7b7@1260906 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/formatters/ZipCodeFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/ZipCodeFormatter.as
@@ -0,0 +1,268 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.formatters
+{
+
+import mx.managers.ISystemManager;
+import mx.managers.SystemManager;
+
+[ResourceBundle("formatters")]
+
+/**
+ *  The ZipCodeFormatter class formats a valid number
+ *  into one of the following formats, based on a
+ *  user-supplied formatString property.
+ *
+ *

+ *
#####-####

+ *
##### ####

+ *
#####

+ *
### ### (Canadian)

+ *

+ *
+ *
A six-digit number must be supplied for a six-digit mask.
+ *  If you use a five-digit or a nine-digit mask, you can use
+ *  either a five-digit or a nine-digit number for formatting.

+ *
+ *
If an error occurs, an empty String is returned and a String that
+ *  describes the error is saved to the error property.
+ *  The error property can have one of the following values:

+ *
+ *

+ *
"Invalid value" means an invalid numeric value is passed
+ *    to the format() method. The value should be a valid number
+ *    in the form of a Number or a String, except for Canadian postal code,
+ *    which allows alphanumeric values, or the number of digits does not match
+ *    the allowed digits from the formatString property.

+ *
 "Invalid format" means any of the characters in the
+ *    formatString property do not match the allowed characters
+ *    specified in the validFormatChars property,
+ *    or the number of numeric placeholders does not equal 9, 5, or 6.

+ *

+ *
+ *  @mxml
+ *
+ *
The <mx:ZipCodeFormatter> tag
+ *  inherits all of the tag attributes of its superclass,
+ *  and adds the following tag attributes:

+ *
+ *

+ *  <mx:ZipCodeFormatter
+ *    formatString="#####|#####-####|### ###"
+ *  />
+ *

+ *
+ *  @includeExample examples/ZipCodeFormatterExample.mxml
+ *
+ *  @see mx.formatters.SwitchSymbolFormatter
+ */
+public class ZipCodeFormatter extends Formatter
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+     */
+	private static const VALID_LENGTHS:String = "9,5,6";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function ZipCodeFormatter()
+	{
+		super();
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  formatString
+	//----------------------------------
+
+    /**
+	 *  @private
+	 *  Storage for the formatString property.
+	 */
+	private var _formatString:String;
+
+    /**
+	 *  @private
+	 */
+	private var formatStringOverride:String;
+
+	[Inspectable(category="General", defaultValue="null")]
+
+	/**
+	 *  The mask pattern.
+	 *  Possible values are "#####-####",
+	 *  "##### ####", "#####",
+	 *  "###-###" and "### ###".
+	 *
+	 *  @default "#####"
+	 */
+	public function get formatString():String
+	{
+		return _formatString;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set formatString(value:String):void
+	{
+		formatStringOverride = value;
+
+		_formatString = value != null ?
+						value :
+						resourceManager.getString(
+							"formatters", "zipCodeFormat");
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Overidden methods
+	//
+	//--------------------------------------------------------------------------
+
+    /**
+	 *  @private
+     */
+	override protected function resourcesChanged():void
+	{
+		super.resourcesChanged();
+
+		formatString = formatStringOverride;
+	}
+
+ 	/**
+	 *  Formats the String by using the specified format.
+	 *  If the value cannot be formatted, return an empty String
+	 *  and write a description of the error to the error property.
+	 *
+	 *  @param value Value to format.
+	 *
+	 *  @return Formatted String. Empty if an error occurs. A description
+	 *  of the error condition is written to the error property.
+	 */
+	override public function format(value:Object):String
+	{
+		// Reset any previous errors.
+		if (error)
+			error = null;
+
+		// -- lengths --
+
+		var fStrLen:int;
+		var uStrLen:int = String(value).length;
+
+		if (VALID_LENGTHS.indexOf("" + uStrLen) == -1)
+		{
+			error = defaultInvalidValueError;
+			return "";
+		}
+
+		if (formatString == "#####-####" || formatString == "##### ####")
+		{
+			if (uStrLen != 5 && uStrLen != 9)
+			{
+				error = defaultInvalidValueError;
+				return "";
+			}
+			fStrLen = 9;
+		}
+
+		else if (formatString == "#####")
+		{
+			if (uStrLen != 5 && uStrLen != 9)
+			{
+				error = defaultInvalidValueError;
+				return "";
+			}
+			fStrLen = 5;
+		}
+
+		else if (formatString == "### ###" || formatString == "###-###")
+		{
+			if (uStrLen != 6)
+			{
+				error = defaultInvalidValueError;
+				return "";
+			}
+			fStrLen = 6;
+		}
+
+		else
+		{
+			error = defaultInvalidFormatError;
+			return "";
+		}
+
+		if (fStrLen == 6 && uStrLen != 6)
+		{
+			error = defaultInvalidValueError;
+			return "";
+		}
+
+		// -- value --
+
+		if (fStrLen == 6)
+		{
+			for (var i:int = 0; i < uStrLen; i++)
+			{
+				if ((value.charCodeAt(i) < 64 || value.charCodeAt(i) > 90) &&
+					(value.charCodeAt(i) < 48 || value.charCodeAt(i) > 57))
+				{
+					error = defaultInvalidValueError;
+					return "";
+				}
+			}
+		}
+		else
+		{
+			if (value === null || isNaN(Number(value)))
+			{
+				error = defaultInvalidValueError;
+				return "";
+			}
+		}
+
+		// --format--
+
+		if (fStrLen == 9 && uStrLen == 5)
+			value = String(value).concat("0000");
+
+		if (fStrLen == 5 && uStrLen == 9)
+			value = value.substr(0, 5);
+
+		var dataFormatter:SwitchSymbolFormatter = new SwitchSymbolFormatter();
+
+		return dataFormatter.formatValue(formatString, value);
+	}
+}
+
+}