Transferred from the Adobe Open Source Subversion Repository

Revision: 7078
Author:   jimurphy@adobe.com
Date:     2009-05-19T17:37:04.234888Z

Log Message:
-----------
Merged beta1 revisions 7038,7042,7052,7066 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DataGroup.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/webapps/webtier/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/webtier/j2ee/coldfusion/build.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/webapps/webtier/WEB-INF/flex/flex-config.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -14,7 +14,6 @@

 import flash.display.BlendMode;
 import flash.display.DisplayObject;
-import flash.events.MouseEvent;
 import flash.geom.Rectangle;

 import mx.core.IFontContextComponent;
@@ -196,6 +195,50 @@
             invalidateDisplayObjectOrdering();
     }

+    /**
+     * @private
+     */
+    override mx_internal function set hasMouseListeners(value:Boolean):void
+    {
+        if (mouseOpaque)
+            redrawRequested = true;
+        super.hasMouseListeners = value;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set width(value:Number):void
+    {
+        if (_width != value)
+        {
+            if (mouseOpaque && hasMouseListeners)
+            {
+                // Re-render our mouse event fill if necessary.
+                redrawRequested = true;
+                super.$invalidateDisplayList();
+            }
+        }
+        super.width = value;
+    }
+
+    /**
+     *  @private
+     */
+    override public function set height(value:Number):void
+    {
+        if (_height != value)
+        {
+            if (mouseOpaque && hasMouseListeners)
+            {
+                // Re-render our mouse event fill if necessary.
+                redrawRequested = true;
+                super.$invalidateDisplayList();
+            }
+        }
+        super.height = value;
+    }
+
 	//--------------------------------------------------------------------------
     //
     //  Properties
@@ -312,50 +355,7 @@

         invalidateProperties();
     }
-
-    //----------------------------------
-    //  mouseOpaque
-    //----------------------------------
-
-    /**
-     *  @private
-     *  Storage for the mouseOpaque property
-     */
-    private var _mouseOpaque:Boolean = true;
-    private var mouseEventReferenceCount:int;
-
-    [Inspectable(category="General")]
-
-    /**
-     *  When set to true the mouseOpaque flag ensures that the entire bounds
-     *  of the Group are opaque to all mouse events such as clicks, rollOvers,
-     *  etc.
-     *
-     *  @default true
-     *
-     *  @langversion 4.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get mouseOpaque():Boolean
-    {
-        return _mouseOpaque;
-    }
-
-    /**
-     *  @private
-     */
-    public function set mouseOpaque(value:Boolean):void
-    {
-        if (value == _mouseOpaque)
-            return;
-
-        _mouseOpaque = value;
-        if (mouseEventReferenceCount != 0)
-            invalidateDisplayList();
-    }
-
+
     //----------------------------------
     //  mxmlContent
     //----------------------------------
@@ -642,95 +642,6 @@
         	   !isNaN(scaleGridRight) &&
         	   !isNaN(scaleGridBottom);
     }
-
-    //--------------------------------------------------------------------------
-    //
-    //  Overridden methods: EventDispatcher
-    //
-    //--------------------------------------------------------------------------
-
-    /**
-     *  @private
-     *  We render a transparent background fill by default when we have mouse
-     *  listeners.
-     */
-    override public function addEventListener(type:String, listener:Function,
-        useCapture:Boolean = false, priority:int = 0,
-        useWeakReference:Boolean = false):void
-    {
-        super.addEventListener(type, listener, useCapture, priority,
-            useWeakReference);
-
-        if (_mouseOpaque &&
-            type == MouseEvent.CLICK ||
-            type == MouseEvent.DOUBLE_CLICK ||
-            type == MouseEvent.MOUSE_DOWN ||
-            type == MouseEvent.MOUSE_MOVE ||
-            type == MouseEvent.MOUSE_OVER ||
-            type == MouseEvent.MOUSE_OUT ||
-            type == MouseEvent.ROLL_OUT ||
-            type == MouseEvent.ROLL_OVER ||
-            type == MouseEvent.MOUSE_UP ||
-            type == MouseEvent.MOUSE_WHEEL)
-        {
-            if (mouseEventReferenceCount++ == 0)
-                invalidateDisplayList();
-        }
-    }
-
-    /**
-     *  @private
-     *  We no longer render our default transparent background fill when we have
-     *  no mouse listeners.
-     */
-    override public function removeEventListener( type:String, listener:Function,
-        useCapture:Boolean = false):void
-    {
-        super.removeEventListener(type, listener, useCapture);
-
-        if (_mouseOpaque &&
-            type == MouseEvent.CLICK ||
-            type == MouseEvent.DOUBLE_CLICK ||
-            type == MouseEvent.MOUSE_DOWN ||
-            type == MouseEvent.MOUSE_MOVE ||
-            type == MouseEvent.MOUSE_OVER ||
-            type == MouseEvent.MOUSE_OUT ||
-            type == MouseEvent.ROLL_OUT ||
-            type == MouseEvent.ROLL_OVER ||
-            type == MouseEvent.MOUSE_UP ||
-            type == MouseEvent.MOUSE_WHEEL)
-        {
-            if (--mouseEventReferenceCount == 0)
-                invalidateDisplayList();
-        }
-    }
-
-    /**
-     *  @private
-     *  Automation requires a version of addEventListener that does not
-     *  affect behavior of the underlying component.
-     */
-    mx_internal function $addEventListener(
-                            type:String, listener:Function,
-                            useCapture:Boolean = false,
-                            priority:int = 0,
-                            useWeakReference:Boolean = false):void
-    {
-        super.addEventListener(type, listener, useCapture,
-                               priority, useWeakReference);
-    }
-
-    /**
-     *  @private
-     *  Automation requires a version of removeEventListener that does not
-     *  affect behavior of the underlying component.
-     */
-    mx_internal function $removeEventListener(
-                              type:String, listener:Function,
-                              useCapture:Boolean = false):void
-    {
-        super.removeEventListener(type, listener, useCapture);
-    }

     //--------------------------------------------------------------------------
     //
@@ -829,6 +740,24 @@

     /**
      *  @private
+     */
+    override public function setActualSize(w:Number, h:Number):void
+    {
+        if (_width != w || _height != h)
+        {
+            if (mouseOpaque && hasMouseListeners)
+            {
+                // Re-render our mouse event fill if necessary.
+                redrawRequested = true;
+                super.$invalidateDisplayList();
+            }
+        }
+
+        super.setActualSize(w, h);
+    }
+
+    /**
+     *  @private
      */
     override protected function updateDisplayList(unscaledWidth:Number, unscaledHeight:Number):void
     {
@@ -843,16 +772,11 @@
         // This isn't needed for DataGroup because there's no DisplayObject sharing
         var sharedDisplayObject:ISharedDisplayObject = this;
         if (sharedDisplayObject.redrawRequested)
+        {
             graphics.clear();
-
-        // Render a transparent background fill as necessary to support the mouseOpaque flag.
-        if ( _mouseOpaque && mouseEventReferenceCount != 0)
-        {
-            graphics.beginFill(0xFFFFFF, 0);
-            graphics.drawRect(0, 0, unscaledWidth, unscaledHeight);
-            graphics.endFill();
-        }
-
+            renderFillForMouseOpaque();
+        }
+
         // Iterate through the graphic elements. If an element has a displayObject that has been
         // invalidated, then validate all graphic elements that draw to this displayObject.
         // The algorithm assumes that all of the elements that share a displayObject are in between


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@1290370 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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.
 //
 ////////////////////////////////////////////////////////////////////////////////


disable RemoveUselessComputation shader graph visitor to fix multiple minor issues

--- src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
+++ src/aerys/minko/render/shader/compiler/graph/ShaderGraph.as
@@ -188,7 +188,7 @@
 			OVERWRITER_CLEANER		.process(this);	// remove nested overwriters
 			RESOLVE_CONSTANT		.process(this);	// resolve constant computation
 			CONSTANT_PACKER			.process(this);	// pack constants [0,0,0,1] => [0,1].xxxy
-			REMOVE_USELESS			.process(this);	// remove some useless operations (add 0, mul 0, mul 1...)
+//			REMOVE_USELESS			.process(this);	// remove some useless operations (add 0, mul 0, mul 1...)
 //			RESOLVE_PARAMETRIZED	.process(this);	// replace computations that depend on parameters by evalexp parameters
 //			MATRIX_TRANSFORMATION	.process(this);	// replace ((vector * matrix1) * matrix2) by vector * (matrix1 * matrix2) to save registers on GPU
 			COPY_INSERTER			.process(this);	// ensure there are no operations between constants


Bugfix: hadn't tested this with seated games. :)

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@191 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/ezgame/client/GameControlBackend.as
+++ src/as/com/threerings/ezgame/client/GameControlBackend.as
@@ -757,7 +757,7 @@
         if (_ezObj.players.length == 0) {
             return true; // party game: all occupants are players
         }
-        return (-1 == _ezObj.getPlayerIndex(occupantName));
+        return (-1 != _ezObj.getPlayerIndex(occupantName));
     }

     protected var _ctx :CrowdContext;


This is cloggin' the bureau loggin'.
I'm pretty sure it's the BaseGameConfig.
Typically, clients don't add directly to a StreamableHashMap received
from the server, why would they? So let's just treat it as a String-key map
and shut it up.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5937 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/util/StreamableHashMap.as
+++ src/as/com/threerings/util/StreamableHashMap.as
@@ -25,7 +25,6 @@
 import com.threerings.io.ObjectOutputStream;
 import com.threerings.io.Streamable;

-import com.threerings.util.Log;
 import com.threerings.util.Maps;
 import com.threerings.util.maps.ForwardingMap;

@@ -71,9 +70,7 @@
             }

         } else {
-            // shit!
-            Log.getLog(this).warning("Empty StreamableHashMap read, guessing DictionaryMap.");
-            _source = Maps.newMapOf(Object);
+            _source = Maps.newMapOf(String); // hope for the best
         }
     }
 }


Passes on error when instance type is null

--- src/asfac/src/com/thedevstop/asfac/AsFactory.as
+++ src/asfac/src/com/thedevstop/asfac/AsFactory.as
@@ -31,6 +31,9 @@

 		public function registerType(instanceType:Class, type:Class, asSingleton:Boolean=false):void
 		{
+			if (!instanceType)
+				throw new IllegalOperationError("InstanceType cannot be null when registering a type");
+
 			var resolveType:Function = function():Object
 			{
 				return resolveByClass(instanceType);


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@1290365 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridColumnGroup.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridColumnGroup.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  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.
+//  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: 18599
Author:   jszeto@adobe.com
Date:     2010-11-16T00:57:12.000475Z

Log Message:
-----------
ViewMenu Bug Fix

http://bugs.adobe.com/jira/browse/SDK-28355 -  ViewMenu appears in the middle of the screen if user click and hold Menu button

Listen for application resize

QE notes: none
Doc notes: none
Bugs: SDK-28355
Reviewer: Chiedo
Tests run: checkintests
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -642,6 +642,7 @@
             currentViewMenu.addEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, viewMenu_mouseDownOutsideHandler);
             currentViewMenu.addEventListener(PopUpCloseEvent.CLOSE, viewMenuClose_handler);
             currentViewMenu.addEventListener(FlexEvent.OPEN, viewMenuOpen_handler);
+            addEventListener(ResizeEvent.RESIZE, resizeHandler);
         }

         currentViewMenu.open(this, false /*modal*/);
@@ -675,6 +676,7 @@
         currentViewMenu.removeEventListener(PopUpCloseEvent.CLOSE, viewMenuClose_handler);
         currentViewMenu.removeEventListener(FlexMouseEvent.MOUSE_DOWN_OUTSIDE, viewMenu_mouseDownOutsideHandler);
         currentViewMenu.removeEventListener(MouseEvent.CLICK, viewMenu_clickHandler);
+        removeEventListener(ResizeEvent.RESIZE, resizeHandler);

         // Private event for testing
         if (activeView.hasEventListener("viewMenuClose"))
@@ -691,6 +693,14 @@

         // Restore focus
         systemManager.stage.focus = lastFocus;
+    }
+
+    private function resizeHandler(event:ResizeEvent):void
+    {
+        // Size the menu as big as the app
+        currentViewMenu.width = getLayoutBoundsWidth();
+        currentViewMenu.height = getLayoutBoundsHeight();
+        currentViewMenu.invalidateSkinState();
     }

     //--------------------------------------------------------------------------


OFC-388 FlexUI: Cannot add negative range values

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/RangeInputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/RangeInputFieldPresenter.as
@@ -11,8 +11,8 @@
 	 */
 	public class RangeInputFieldPresenter extends InputFieldPresenter {

-		protected static const RESTRICT_PATTERN:String = "^(\\*|-|\\?|(\\d*\\.?\\d*)-?\\d*\\.?\\d*)$";
-		protected static const INTEGER_RESTRICT_PATTERN:String = "^(\\*|-|\\?|\\d+-?\\d*)$";
+		protected static const RESTRICT_PATTERN:String = "^(\\*|-|\\?|((-?\\d*\\.?\\d*)(-?(-?\\d*\\.?\\d*))?))$";
+		protected static const INTEGER_RESTRICT_PATTERN:String = "^(\\*|-|\\?|((-?\\d*)(-?(-?\\d*))?))$";
 		protected static const SEPARATOR:String = "-";

 		private var _view:RangeInputField;


My actionscript-fu has improved since I originally wrote this.

git-svn-id: a1a4b28b82a3276cc491891159dd9963a0a72fae@5911 542714f4-19e9-0310-aa3c-eee0fc999fb1

--- src/as/com/threerings/crowd/chat/client/ChatDirector.as
+++ src/as/com/threerings/crowd/chat/client/ChatDirector.as
@@ -163,11 +163,9 @@
      */
     public function getChatFilters () :Array
     {
-        var filters :Array = [];
-        _filters.apply(function (observer :ChatFilter) :void {
-            filters.push(observer);
-        });
-        return filters;
+        var retval :Array = [];
+        _filters.apply(retval.push);
+        return retval;
     }

     /**


Uint64.as 应该是 UInt64.as

Uint64.as 应该是 UInt64.as

--- as3/com/netease/protobuf/Uint64.as
+++ as3/com/netease/protobuf/Uint64.as
@@ -1,19 +0,0 @@
-// vim: tabstop=4 shiftwidth=4
-
-// Copyright (c) 2010 , NetEase.com,Inc. All rights reserved.
-//
-// Author: Yang Bo (pop.atry@gmail.com)
-//
-// Use, modification and distribution are subject to the "New BSD License"
-// as listed at <url: http://www.opensource.org/licenses/bsd-license.php >.
-
-package com.netease.protobuf {
-	public final class UInt64 {
-		public var low:uint;
-		public var high:uint;
-		public function UInt64(low:uint = 0, high:uint = 0) {
-			this.low = low
-			this.high = high
-		}
-	}
-}


Add an accessor for whether or not we are using https. r=Armando

--- src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
+++ src/org/jivesoftware/xiff/core/XMPPBOSHConnection.as
@@ -1,12 +1,10 @@
 package org.jivesoftware.xiff.core
 {
-	import flash.events.ErrorEvent;
 	import flash.events.TimerEvent;
 	import flash.utils.Timer;
 	import flash.xml.XMLDocument;
 	import flash.xml.XMLNode;

-	import mx.messaging.messages.HTTPRequestMessage;
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;
 	import mx.rpc.http.HTTPService;
@@ -97,6 +95,11 @@
 		public function set secure(flag:Boolean):void
 		{
 			https = flag;
+		}
+
+		public function get secure():Boolean
+		{
+			return https;
 		}

 		public override function set port(portnum:Number):void


Improved MXMLNativeSignalTest slightly.

Improved MXMLNativeSignalTest slightly.

--- tests/org/osflash/signals/natives/MXMLNativeSignalTest.as
+++ tests/org/osflash/signals/natives/MXMLNativeSignalTest.as
@@ -29,6 +29,8 @@
 		public function mxml_object_has_NativeSignals_after_creation():void
 		{
 			assertTrue(mxmlSprite.clicked is NativeSignal);
+			assertTrue(mxmlSprite.doubleClicked is NativeSignal);
+			assertTrue(mxmlSprite.addedToStage is NativeSignal);
 		}

 		[Test]


FXU-98 - Updated CIListener to use double quotes in messages sent to Ant task, rather than single quotes.  Single quotes were causing nested single quotes in a failure/error message to cause parsing errors.  Yeah, fun with XML ...

--- FlexUnit4CIListener/src/org/flexunit/listeners/CIListener.as
+++ FlexUnit4CIListener/src/org/flexunit/listeners/CIListener.as
@@ -106,7 +106,7 @@
 		}

 		private function declareBroken( event:TimerEvent ):void {
-			errorHandler( new Event( 'broken') );
+			errorHandler( new Event( "broken") );
 		}

 		[Bindable(event="listenerReady")]
@@ -147,7 +147,7 @@
 			// called after each test
 			if(!lastFailedTest || description.displayName != lastFailedTest.displayName){
 				var desc:Descriptor = getDescriptorFromDescription(description);
-				sendResults("<testcase classname='"+desc.suite+"' name='"+desc.method+"' time='0.000'  status='"+SUCCESS+"'/>");
+				sendResults("<testcase classname=\""+desc.suite+"\" name=\""+desc.method+"\" time=\"0.000\" status=\""+SUCCESS+"\" />");
 			}
 		}

@@ -162,7 +162,7 @@
 			var descriptor:Descriptor = getDescriptorFromDescription(description);

 			var xml:String =
-				"<testcase classname='"+descriptor.suite+"' name='"+descriptor.method+"' time='0.000' status='"+IGNORE+"'>"
+				"<testcase classname=\""+descriptor.suite+"\" name=\""+descriptor.method+"\" time=\"0.000\" status=\""+IGNORE+"\">"
 				+ "<skipped />"
 				+ "</testcase>";

@@ -191,8 +191,8 @@
 			if(FailureFormatter.isError(failure.exception))
 			{
 				xml =
-					"<testcase classname='"+descriptor.suite+"' name='"+descriptor.method+"' time='0.000'  status='"+ERROR+"'>"
-					+ "<error message='" + message + "' type='"+ type +"' >"
+					"<testcase classname=\""+descriptor.suite+"\" name=\""+descriptor.method+"\" time=\"0.000\" status=\""+ERROR+"\">"
+					+ "<error message=\"" + message + "\" type=\""+ type +"\" >"
 					+ "<![CDATA[" + stackTrace + "]]>"
 					+ "</error>"
 					+ "</testcase>";
@@ -200,8 +200,8 @@
 			else
 			{
 				xml =
-					"<testcase classname='"+descriptor.suite+"' name='"+descriptor.method+"' time='0.000'  status='"+FAILURE+"'>"
-					+ "<failure message='" + message + "' type='"+ type +"' >"
+					"<testcase classname=\""+descriptor.suite+"\" name=\""+descriptor.method+"\" time=\"0.000\" status=\""+FAILURE+"\">"
+					+ "<failure message=\"" + message + "\" type=\""+ type +"\" >"
 					+ "<![CDATA[" + stackTrace + "]]>"
 					+ "</failure>"
 					+ "</testcase>";


Whitespace fixes.

Whitespace fixes.


Fix seeking on VODs with non-zero start time.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -529,7 +529,7 @@
 				if(indexHandler.liveEdge != Number.MAX_VALUE)
 					pubTime += indexHandler.liveEdge - indexHandler.windowDuration;
 				else
-					pubTime -= indexHandler.streamStartAbsoluteTime;
+					pubTime += indexHandler.streamStartAbsoluteTime;
 			}

 			return pubTime;


Sanity check for timestamp unwrapping.

Sanity check for timestamp unwrapping.

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -1992,6 +1992,9 @@
 		{
 			var timestampCastHelper:Number = timestamp;

+			if(isNaN(timestampCastHelper))
+				return 0;
+
 			while(timestampCastHelper > int.MAX_VALUE)
 				timestampCastHelper -= Number(uint.MAX_VALUE);


Made Seeking to End of Stream Fix Apply only to VOD Added a small check to ensure that the player would only behave as if it was being seeked to a VOD if it was a VOD (or an ended livestream)

--- HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
+++ HLSPlugin/src/org/osmf/net/httpstreaming/HLSHTTPNetStream.as
@@ -875,8 +875,9 @@
 									_seekTarget = indexHandler.lastKnownPlaylistStartTime;
 								}

-								// Handle a case where seeking to the end of the video causes the replay function to break
-								if (_seekTarget == determinePlaylistLength())
+								// Handle a case where seeking to the end of a VOD causes the replay function to break
+								var HLSResource:HLSStreamingResource = _resource as HLSStreamingResource;
+								if (HLSResource.manifest.streamEnds && _seekTarget == determinePlaylistLength())
 									timeBeforeSeek = Number.NaN;// This forces the player to finish the seeking process

 								_seekTime = -1;


Fix possible null NetStream reference while destorying sounds.

--- src/SoundManager2_AS3.as
+++ src/SoundManager2_AS3.as
@@ -344,6 +344,8 @@
         var hasNewLoaded:Boolean = false;

         if (oSound.useNetstream) {
+          // Don't do anything if there is no NetStream object yet
+          if (!oSound.ns) { continue; }

           // video stream
           bufferLength = oSound.ns.bufferLength;


Transferred from the Adobe Open Source Subversion Repository

Revision: 7743
Author:   clucier@adobe.com
Date:     2009-06-11T13:53:10.203664Z

Log Message:
-----------
Moving away from using namespace qualifiers in most cases in the SDK.  We've run into a few cases now where the use of qualifiers in code that is called excessively can slow things down.
Bugs: SDK-21337
Reviewer: Ryan, Paul
QE Notes: None
Tests: Ran several random Mustella test groups, checkintests.

Modified Paths:
--------------
106 paths were modified

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

--- frameworks/projects/framework/src/mx/resources/ResourceBundle.as
+++ frameworks/projects/framework/src/mx/resources/ResourceBundle.as
@@ -12,11 +12,12 @@
 package mx.resources
 {

-import flash.utils.describeType;
 import flash.system.ApplicationDomain;
+
 import mx.core.mx_internal;
-import mx.managers.ISystemManager;
 import mx.utils.StringUtil;
+
+use namespace mx_internal;

 /**
  *  Provides an implementation of the IResourceBundle interface.
@@ -113,7 +114,7 @@
         var className:String;
         var bundleClass:Class;

-        className = mx_internal::locale + "$" + baseName + "_properties";
+        className = locale + "$" + baseName + "_properties";
         bundleClass = getClassByName(className, currentDomain);

         if (!bundleClass)
@@ -128,15 +129,15 @@
             bundleClass = getClassByName(className, currentDomain);
         }

-        if (!bundleClass && mx_internal::backupApplicationDomain)
+        if (!bundleClass && backupApplicationDomain)
         {
             className = baseName + "_properties";
-            bundleClass = getClassByName(className, mx_internal::backupApplicationDomain);
+            bundleClass = getClassByName(className, backupApplicationDomain);

             if (!bundleClass)
             {
                 className = baseName;
-                bundleClass = getClassByName(className, mx_internal::backupApplicationDomain);
+                bundleClass = getClassByName(className, backupApplicationDomain);
             }
         }

@@ -199,8 +200,8 @@

         super();

-        mx_internal::_locale = locale;
-        mx_internal::_bundleName = bundleName;
+        _locale = locale;
+        _bundleName = bundleName;

         _content = getContent();
     }
@@ -231,7 +232,7 @@
      */
     public function get bundleName():String
     {
-        return mx_internal::_bundleName;
+        return _bundleName;
     }

     //----------------------------------
@@ -277,7 +278,7 @@
      */
     public function get locale():String
     {
-        return mx_internal::_locale;
+        return _locale;
     }

     //--------------------------------------------------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 5119
Author:   smgilson@adobe.com
Date:     2009-03-01T15:19:39.936226Z

Log Message:
-----------
Clean up some ASDoc tags from the addition of the @productversion/@playerversion tags

QE Notes: None
Doc Notes: None
Bugs: -

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/ResultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/remoting/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ServerConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/messages/HTTPRequestMessage.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/CalendarLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/halo/src/mx/skins/halo/HaloBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/NCManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/AbstractConsumer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/Base64Encoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/validators/StringValidator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/SchemaMarshaller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IInteractiveObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/TextView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ContainerRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/channels/AMFChannel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/events/FaultEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/wsdl/WSDL.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/skins/spark/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Tween.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/Accordion.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/videoClasses/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/xml/Schema.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/utils/HexEncoder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/Operation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/http/AbstractOperation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDisplayObjectContainerInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SoundEffectInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Text.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISpriteInterface.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/haloclassic/src/haloclassic/HaloRectBorder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/rpc/soap/mxml/Operation.as</path>

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

--- frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as
+++ frameworks/projects/rpc/src/mx/messaging/channels/HTTPChannel.as
@@ -442,12 +442,6 @@
                     if (smallMessage != null)
                         msgResp.message = smallMessage;
                 }
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 9
-                *  @playerversion AIR 1.1
-                *  @productversion BlazeDS 4
-                *  @productversion LCDS 3
                 */

                 var urlLoader:ChannelRequestLoader;
@@ -561,12 +555,6 @@
             var serverVersion:Number = msg.headers[CommandMessage.MESSAGING_VERSION] as Number;
             handleServerMessagingVersion(serverVersion);
         }
-        *
-        *  @langversion 3.0
-        *  @playerversion Flash 9
-        *  @playerversion AIR 1.1
-        *  @productversion BlazeDS 4
-        *  @productversion LCDS 3
         */

         connectSuccess();


XIFF-88: Properties for Message class.

XIFF-88: Properties for Message class.

--- src/org/igniterealtime/xiff/data/Message.as
+++ src/org/igniterealtime/xiff/data/Message.as
@@ -447,6 +447,71 @@
 		}

 		/**
+		 * XEP-0184: Message Delivery Receipts
+		 *
+		 *
This XMPP protocol extension for message delivery receipts,
+		 * whereby the sender of a message can request notification that the
+		 * message has been delivered to a client controlled by the intended
+		 * recipient.

+		 *
+		 * @see http://xmpp.org/extensions/xep-0184.html
+		 */
+		public function get receipt():String
+		{
+			var list:Array = [
+				Message.RECEIPT_REQUEST,
+				Message.RECEIPT_RECEIVED
+			];
+			var len:uint = list.length;
+			for (var i:uint = 0; i < len; ++i)
+			{
+				var value:String = list[i];
+				if (xml.children().(localName() == value).length() > 0)
+				{
+					return value;
+				}
+			}
+			return null;
+		}
+		public function set receipt( value:String ):void
+		{
+			if (value != Message.RECEIPT_REQUEST
+				&& value != Message.RECEIPT_RECEIVED
+				&& value != null)
+			{
+				throw new Error("Invalid receipt value: " + value + " for DeliveryReceipt");
+			}
+
+			if ( value == null )
+			{
+				delete xml[Message.RECEIPT_REQUEST];
+				delete xml[Message.RECEIPT_RECEIVED];
+			}
+			else
+			{
+				xml[value].@xmlns = Message.NS_RECEIPT;
+			}
+		}
+
+		/**
+		 * Message ID of the message that had receipt request.
+		 * Can be set only when the 'receipt' is Message.RECEIPT_RECEIVED.
+		 *
+		 *
While sending 'received', this property must be set to
+		 * the message id that contained the 'request'.

+		 *
+		 * @see http://xmpp.org/extensions/xep-0184.html
+		 */
+		public function get receiptId():String
+		{
+			return getChildAttribute(Message.RECEIPT_RECEIVED, "id");
+		}
+		public function set receiptId( value:String ):void
+		{
+			setChildAttribute(Message.RECEIPT_RECEIVED, "id", value);
+		}
+
+		/**
 		 * Messages containing an attention extension SHOULD use the headline message
 		 * type to avoid offline storage. In case the attention property is used,
 		 * type is set to "headline" automatically.


Update M2TSFileHandler.as

Update M2TSFileHandler.as

--- HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
+++ HLSPlugin/src/com/kaltura/hls/m2ts/M2TSFileHandler.as
@@ -445,6 +445,7 @@
 		{
 			if (key)
 			{
+			// If we are working with encrypted data, don't try to unpad because we haven't finished the segment
 				key.usePadding = false;
 			}
 			return basicProcessFileSegment(input, false);


code clean

code clean

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/TaxonAttributeFormItemPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/TaxonAttributeFormItemPresenter.as
@@ -44,7 +44,7 @@
 		private static const MAX_RESULTS:int = 20;
 		private static const SERACH_BY_CODE:String = "byCode";
 		private static const SEARCH_BY_SCIENTIFIC_NAME:String = "byScientificName";
-		private static const SEARCH_BY_VERNACULAR_NAME:String = "byScientificName";
+		private static const SEARCH_BY_VERNACULAR_NAME:String = "byVernacularName";

 		protected static var autoCompletePopUp:TaxonAutoCompletePopUp;
 		protected static var autoCompletePopUpOpen:Boolean = false;


Updates capitalization in "uploadHandler.php" to match filename. This was exposed on a linux machine which is case sensitive.

--- flexEditor/src/org/arisgames/editor/util/AppConstants.as
+++ flexEditor/src/org/arisgames/editor/util/AppConstants.as
@@ -4,23 +4,23 @@
 {
 	//Server URL
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://arisgames.org/stagingserver1"; //For other URL's to append to- Staging
-	public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://Phildos.local/server"; //For other URL's to append to- Phil's Machine
+	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://Phildos.local/server"; //For other URL's to append to- Phil's Machine
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://atsosxdev.doit.wisc.edu/aris/server"; //For other URL's to append to- Dev
 	//public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://arisgames.org/qaserver"; //For other URL's to append to- QA
-
+	public static const APPLICATION_ENVIRONMENT_ROOT_URL:String = "http://warhol.arisgames.org/devserver";

 	//Server Version
 	public static const APPLICATION_ENVIRONMENT_SERVER_VERSION:String = "1_5";

 	public static const APPLICATION_ENVIRONMENT_JSON_SERVICES_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/json.php/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + ".";
 	public static const APPLICATION_ENVIRONMENT_SERVICES_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/"; //staging
-	public static const APPLICATION_ENVIRONMENT_UPLOAD_SERVER_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/uploadhandler.php";
+	public static const APPLICATION_ENVIRONMENT_UPLOAD_SERVER_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/services/aris_" + APPLICATION_ENVIRONMENT_SERVER_VERSION + "/uploadHandler.php";
 	public static const APPLICATION_ENVIRONMENT_GATEWAY_URL:String = APPLICATION_ENVIRONMENT_ROOT_URL+"/gateway.php"; //services-config.xml

 	//Google API
-	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBRloMOfjiI7F4SM41AgXh_4cb6l9xTHRyPNO3mgDcJkTIE742EL8ZoQ_Q"; //arisgames.org
+	public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBRloMOfjiI7F4SM41AgXh_4cb6l9xTHRyPNO3mgDcJkTIE742EL8ZoQ_Q"; //arisgames.org
 	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAArdp0t4v0pcA_JogLZhjrjBTf4EykMftsP7dwAfDsLsFl_zB7rBTq5-3Hy0k3tU1tgyomozB1YmIfNg"; //davembp
-	public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAAo0AIYqWK4StlyQiw0FkCnhTFFMM2iSZ1Oq9cs2gegUR1k01AuBShe9g60gh2q1UpWRotcj3RpzpT2A"; //Phil's Machine
+	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAAo0AIYqWK4StlyQiw0FkCnhTFFMM2iSZ1Oq9cs2gegUR1k01AuBShe9g60gh2q1UpWRotcj3RpzpT2A"; //Phil's Machine
 	//public static const APPLICATION_ENVIRONMENT_GOOGLEMAP_KEY:String = "ABQIAAAA-Z69V9McvCh02XYNV5UHBBQsvlSBtAWfm4N2P3iTGfWOp-UrmRRTU3pFPQwMJB92SZ3plLjvRpMIIw"; //atsosxdev


Transferred from the Adobe Open Source Subversion Repository

Revision: 12935
Author:   pfarland@adobe.com
Date:     2009-12-15T02:46:00.699383Z

Log Message:
-----------
After 12912, non-UIComponents and non-GraphicElements must implement mx.core.IMXMLObject if they need access to the id attribute information at runtime.

QE notes: Please retest.
Doc notes: N/A
Bugs: SDK-24712 - DesignLayer id returns null as of svn 12912
Reviewer: For Corey
Tests run: Checkintests, bug test case
Is noteworthy for integration: No

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/DesignLayer.as

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

--- frameworks/projects/framework/src/mx/core/DesignLayer.as
+++ frameworks/projects/framework/src/mx/core/DesignLayer.as
@@ -38,7 +38,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public class DesignLayer extends EventDispatcher
+    public class DesignLayer extends EventDispatcher implements IMXMLObject
     {
         //--------------------------------------------------------------------------
         //
@@ -400,6 +400,19 @@
         }

         /**
+         *  @inheritDoc
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10
+         *  @playerversion AIR 1.5
+         *  @productversion Flex 4
+         */
+        public function initialized(document:Object, id:String):void
+        {
+            this.id = id;
+        }
+
+        /**
          *  Removes a DesignLayer child from this layer.
          *
          *  @param value The layer child to remove.


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@1259350 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/core/IIMESupport.as
+++ frameworks/projects/framework/src/mx/core/IIMESupport.as
@@ -0,0 +1,45 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-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.core
+{
+
+/**
+ *  The IIMESupport interface defines the interface for any component that supports IME
+ *  (input method editor).
+ *  IME is used for entering characters in Chinese, Japanese, and Korean.
+ *
+ *  @see flash.system.IME
+ */
+public interface IIMESupport
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  imeMode
+	//----------------------------------
+
+	/**
+	 *  The IME mode of the component.
+	 */
+	function get imeMode():String;
+
+	/**
+	 *  @private
+	 */
+	function set imeMode(value:String):void;
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 2709
Author:   preilly@adobe.com
Date:     2008-08-01T20:05:23.137552Z

Log Message:
-----------
tests Passed: checkintests

Needs QA: YES

Needs DOC: NO

Bug fixes: SDK-15317

API Change: NO

Reviewer: gosmith

Code-level description of changes:

  Modified initializeRepeaterArrays() to handle the case where the
  parent is a document, but it's not the child's document.  In this
  case, we want to copy down the parent's repeater arrays.  This
  allows the child to use an Array when creating references on it's
  document.

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as

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

--- frameworks/projects/framework/src/mx/core/UIComponent.as
+++ frameworks/projects/framework/src/mx/core/UIComponent.as
@@ -5394,8 +5394,12 @@
      */
     public function initializeRepeaterArrays(parent:IRepeaterClient):void
     {
-        if (parent && parent.instanceIndices &&
-            !_instanceIndices && !parent.isDocument)
+        // In the case, where the parent is a document, but isn't the
+        // child's document, we want to copy the instanceIndices down.
+        // See SDK-15317.
+        if (parent && parent.instanceIndices &&
+            ((!parent.isDocument) || (parent != descriptor.document)) &&
+            !_instanceIndices)
         {
             _instanceIndices = parent.instanceIndices;
             _repeaters = parent.repeaters;


Partial fix for untyped properties during unmarshalling. Allow them to be array or arraycollection types. In support of RBL-6937

--- as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
+++ as3/xobjas3/src/com/rpath/xobj/XObjUtils.as
@@ -149,6 +149,9 @@
             if (type == null || type == "")
                 return false;

+            if (type == "*")
+                return true; // unknown type can be array...
+
             if (type is String)
                 type = getClassByName(type);

@@ -172,6 +175,9 @@

             if (type == null || type == "")
                 return false;
+
+            if (type == "*")
+                return true; // unknown type can be arraycollection too...

             if (type is String)
                 type = getClassByName(type);


Transferred from the Adobe Open Source Subversion Repository

Revision: 20844
Author:   jimurphy@adobe.com
Date:     2011-03-14T15:10:07.899037Z

Log Message:
-----------
block hero_private revs 20698,20699,20702 from being merged into trunk
revert 20839,20841,20842,20843

QE notes: no
Doc notes: no
Bugs: no
Reviewer:no
Tests run: no
Is noteworthy for integration:no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/NumberFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ISortField.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/CurrencyFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/formatters/DateTimeFormatter.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/CartesianChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarChart.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/shaderClasses/ColorDodgeShader.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/chartClasses/PolarDataCanvas.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/PlotSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TabBar.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/SolidColorStroke.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/charts/src/mx/charts/series/CandlestickSeries.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/StringUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/spark/src/spark/globalization/StringTools.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/AdvancedStyleClient.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/binding/utils/ChangeWatcher.as</path>
<path kind="file" action="M">/private/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/LinearGradientStroke.as</path>

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

--- frameworks/projects/framework/src/mx/utils/StringUtil.as
+++ frameworks/projects/framework/src/mx/utils/StringUtil.as
@@ -211,7 +211,7 @@
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
-     *  @productversion Flex 4
+     *  @productversion Flex 3
      */
     public static function repeat(str:String, n:int):String
     {
@@ -243,34 +243,34 @@
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
-     *  @productversion Flex 4
+     *  @productversion Flex 3
      */
     public static function restrict(str:String, restrict:String):String
-    {
-        // A null 'restrict' string means all characters are allowed.
+	{
+		// A null 'restrict' string means all characters are allowed.
         if (restrict == null)
-            return str;
-
-        // An empty 'restrict' string means no characters are allowed.
+			return str;
+
+		// An empty 'restrict' string means no characters are allowed.
         if (restrict == "")
-            return "";
-
-        // Otherwise, we need to test each character in 'str'
+			return "";
+
+		// Otherwise, we need to test each character in 'str'
         // to determine whether the 'restrict' string allows it.
         var charCodes:Array = [];
-
-        var n:int = str.length;
-        for (var i:int = 0; i < n; i++)
-        {
-            var charCode:uint = str.charCodeAt(i);
-            if (testCharacter(charCode, restrict))
-                charCodes.push(charCode);
-        }
-
-        return String.fromCharCode.apply(null, charCodes);
-    }
-
-    /**
+
+		var n:int = str.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var charCode:uint = str.charCodeAt(i);
+			if (testCharacter(charCode, restrict))
+				charCodes.push(charCode);
+		}
+
+		return String.fromCharCode.apply(null, charCodes);
+	}
+
+	/**
      *  @private
      *  Helper method used by restrict() to test each character
      *  in the input string against the restriction string.
@@ -281,66 +281,66 @@
      */
     private static function testCharacter(charCode:uint,
                                           restrict:String):Boolean
-    {
-        var allowIt:Boolean = false;
-
-        var inBackSlash:Boolean = false;
-        var inRange:Boolean = false;
-        var setFlag:Boolean = true;
-        var lastCode:uint = 0;
-
-        var n:int = restrict.length;
-        var code:uint;
-
-        if (n > 0)
-        {
-            code = restrict.charCodeAt(0);
-            if (code == 94) // caret
-                allowIt = true;
-        }
-
-        for (var i:int = 0; i < n; i++)
-        {
-            code = restrict.charCodeAt(i)
-
-            var acceptCode:Boolean = false;
-            if (!inBackSlash)
-            {
-                if (code == 45) // hyphen
-                    inRange = true;
-                else if (code == 94) // caret
-                    setFlag = !setFlag;
-                else if (code == 92) // backslash
-                    inBackSlash = true;
-                else
-                    acceptCode = true;
-            }
-            else
-            {
-                acceptCode = true;
-                inBackSlash = false;
-            }
-
-            if (acceptCode)
-            {
-                if (inRange)
-                {
-                    if (lastCode <= charCode && charCode <= code)
-                        allowIt = setFlag;
-                    inRange = false;
-                    lastCode = 0;
-                }
-                else
-                {
-                    if (charCode == code)
-                        allowIt = setFlag;
-                    lastCode = code;
-                }
-            }
-        }
-
-        return allowIt;
-    }
+	{
+		var allowIt:Boolean = false;
+
+		var inBackSlash:Boolean = false;
+		var inRange:Boolean = false;
+		var setFlag:Boolean = true;
+		var lastCode:uint = 0;
+
+		var n:int = restrict.length;
+		var code:uint;
+
+		if (n > 0)
+		{
+			code = restrict.charCodeAt(0);
+			if (code == 94) // caret
+				allowIt = true;
+		}
+
+		for (var i:int = 0; i < n; i++)
+		{
+			code = restrict.charCodeAt(i)
+
+			var acceptCode:Boolean = false;
+			if (!inBackSlash)
+			{
+				if (code == 45) // hyphen
+					inRange = true;
+				else if (code == 94) // caret
+					setFlag = !setFlag;
+				else if (code == 92) // backslash
+					inBackSlash = true;
+				else
+					acceptCode = true;
+			}
+			else
+			{
+				acceptCode = true;
+				inBackSlash = false;
+			}
+
+			if (acceptCode)
+			{
+				if (inRange)
+				{
+					if (lastCode <= charCode && charCode <= code)
+						allowIt = setFlag;
+					inRange = false;
+					lastCode = 0;
+				}
+				else
+				{
+					if (charCode == code)
+						allowIt = setFlag;
+					lastCode = code;
+				}
+			}
+		}
+
+		return allowIt;
+	}
 }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8487
Author:   smgilson@adobe.com
Date:     2009-07-09T18:57:21.985536Z

Log Message:
-----------
final checkin to update the namespace in ASDoc MXML syntax descriptions for Spark components

QE Notes: None
Doc Notes: None
Bugs: -
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/effects/SetAction.as
+++ frameworks/projects/spark/src/spark/effects/SetAction.as
@@ -32,7 +32,7 @@
  *
  *  @mxml
  *
- *
The <mx:SetAction> tag
+ *
The <s:SetAction> tag
  *  inherits all of the tag attributes of its superclass,
  *  and adds the following tag attributes:

  *


fixed some typos (they weren't causing any problems, I just noticed them);

--- flexEditor/src/org/arisgames/editor/view/QuestsEditorView.as
+++ flexEditor/src/org/arisgames/editor/view/QuestsEditorView.as
@@ -65,9 +65,9 @@
         AppServices.getInstance().getQuestsByGameId(GameModel.getInstance().game.gameId, new Responder(handleLoadQuests, handleFault));
     }

-	public function handleRequiementsForActiveButtonClick(evt:MouseEvent):void
-	{
-		trace("QuestsEditorView: handleRequiementsForActiveButtonClick() called with Selected Index = '" + dg.selectedIndex + "'");
+	public function handleRequirementsForActiveButtonClick(evt:MouseEvent):void
+	{
+		trace("QuestsEditorView: handleRequirementsForActiveButtonClick() called with Selected Index = '" + dg.selectedIndex + "'");
 		this.openRequirementsEditor(AppConstants.REQUIREMENTTYPE_QUESTDISPLAY);

 	}
@@ -179,7 +179,7 @@
                     trace("&&&&& Checking j = '" + j + "'; Quest Id = '" + q.questId + "'");
                     if (isNaN(q.questId))
                     {
-                        trace("Found previusly added / saved quest.  Add Id to it and exiting method.");
+                        trace("Found previusly added / saved quest.  Add ID to it and exiting method.");
                         q.questId = qid;
                         quests.refresh();
                         return;


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@1262485 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/framework/src/mx/styles/CSSSelector.as
+++ frameworks/projects/framework/src/mx/styles/CSSSelector.as
@@ -19,6 +19,11 @@
  *  CSS style declarations to components.
  *
  *  @see mx.styles.CSSSelectorKind
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class CSSSelector
 {
@@ -40,6 +45,11 @@
      *  @param ancestor An optional selector to match on a component that
      *  descends from an arbitrary ancestor.
      *  conditions are supported.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function CSSSelector(kind:uint, value:String, conditions:Array=null,
             ancestor:CSSSelector=null)
@@ -68,6 +78,11 @@
     /**
      *  If this selector is part of a descendant selector it may have a further
      *  selector defined for an arbitrary ancestor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get ancestor():CSSSelector
     {
@@ -90,6 +105,11 @@
      *  'pseudo' condition in CSS).
      *
      *  @return Array of CSSCondition specified for this selector.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get conditions():Array
     {
@@ -110,6 +130,11 @@
      *  conditional or descendant.
      *
      *  @see mx.styles.CSSSelectorKind
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get kind():uint
     {
@@ -130,6 +155,11 @@
      *  higher specificity override selectors of lower specificity. If
      *  selectors have equival specificity, the declaration order determines
      *  the precedence (i.e. the last one wins).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get specificity():uint
     {
@@ -169,6 +199,11 @@
      *  If this selector represents the root node of a potential chain of
      *  selectors, the value also represents the subject of the entire selector
      *  expression.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get value():String
     {
@@ -186,6 +221,11 @@
      *
      *  @param object The component to which the selector may apply.
      *  @return true if component is a match, or false if not.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function isMatch(object:IAdvancedStyleClient):Boolean
     {
@@ -270,6 +310,11 @@
     /**
      *  @return A String representation of this selector including all of its
      *  syntax, conditions and ancestors.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function toString():String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 8509
Author:   smgilson@adobe.com
Date:     2009-07-10T17:58:51.724217Z

Log Message:
-----------
- Explicitly list the default skins for Spark components as part of the fix for SDK-18639
- Fix some bad @see links

QE Notes: None
Doc Notes: None
Bugs: - SDK-18639
Checkintests: passed

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/VolumeBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RadioButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamingVideoSource.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/NumericStepper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/mediaClasses/StreamItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VSlider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ToggleButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/CheckBox.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -201,6 +201,10 @@
  *

  *           Maximum size
  *           10000 pixels wide and 10000 pixels high
+ *

+ *

+ *           Default skin class
+ *           spark.skins.spark.ScrollerSkin
  *

  *

  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 4106
Author:   rfrishbe@adobe.com
Date:     2008-11-14T01:56:47.949068Z

Log Message:
-----------
Mostly rename changes.  IVisualItem -> IVisualElement.  IVisualContainer -> IVisualElementContainer.  Also changed the APIs so that it's addElement, removeElement, etc.. instead of addItem, removeItem, etc...  Moreover, all of these APIs have been added to IVisualElementContainer (not just the read-only ones).  Now there's a common interface for all containers (even Halo's Container class implements it).  There's no more need to do:

if (x is Group || x is FxContainer)

Just use the IVisualElementContainer interface.

Some classes, like FxScroller (and perhaps DataGroup/FxDataContainer), will only implement the "getter" part of the API.  For now, if you call the mutation methods, we will throw an exception.  Perhaps later we'll add a separate interface for the read-only portion and the mutator interface will extend that one.

There might be a few more places in the code that need to be updated to use the new names for the methods.  I know Mustella needs cleaning up so it doesn't use getItem and uses getElement instead.  I've left the old APIs in there exactly for this purpose, so we can gradually move over to the new names (esp. QA).

At some point soon, we will remove the old methods as well as type them more strictly to only accept IVisualElements, for example addElement(element:IVisualElement).  Part of this work is dependent on updating the Flash Component Kit so that it implements IVisualElement (and perhaps IVisualElementContainer for containers).

Ran checkintests and all gumbo mustella tests.

QE Notes: Please update your tests to use addElement, removeElement, etc... along with the new IVisualElementContainer interface.  The old APIs (addItem, removeItem, etc...) will be removed soon.
Doc Notes: None
Bugs: -
Reviewer: Hans (he patiently sat through all these files...)

Modified Paths:
--------------
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IVisualContainer.as</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/effects/effectClasses/RemoveActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/LayoutItemUIC.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/RemoveAction.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/effects/effectClasses/FxFadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IUIComponent.as</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/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/layout/ILayoutItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as" copyfrom-rev="4083" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/core/IVisualContainer.as" copyfrom-rev="4083" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElementContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxList.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/AddActionInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/graphicsClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxContainer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Scroller.as
+++ frameworks/projects/spark/src/spark/components/Scroller.as
@@ -18,7 +18,7 @@

 import mx.components.Group;
 import mx.core.IViewport;
-import mx.core.IVisualContainer;
+import mx.core.IVisualElementContainer;
 import mx.layout.LayoutBase;

 import mx.events.PropertyChangeEvent;
@@ -49,7 +49,7 @@
  */

 public class FxScroller extends FxComponent
-       implements IFocusManagerComponent, IVisualContainer
+       implements IFocusManagerComponent, IVisualElementContainer
 {
     include "../core/Version.as";

@@ -145,7 +145,7 @@
         if (skin && viewport)
         {
             viewport.clipContent = true;
-            skin.addItemAt(viewport, 0);
+            skin.addElementAt(viewport, 0);
             viewport.addEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
         }
         if (verticalScrollBar)
@@ -163,7 +163,7 @@
         if (skin && viewport)
         {
             viewport.clipContent = false;
-            skin.removeItem(viewport);
+            skin.removeElement(viewport);
             viewport.removeEventListener(PropertyChangeEvent.PROPERTY_CHANGE, viewport_propertyChangeHandler);
         }
     }
@@ -294,14 +294,16 @@

     //--------------------------------------------------------------------------
     //
-    //  Methods: IVisualContainer
+    //  Methods: IVisualElementContainer
     //
     //--------------------------------------------------------------------------

     /**
      *  Returns 1 if there is a viewport, 0 otherwise.
-     */
-    public function get numItems():int
+     *
+     *  @return The number of visual elements in this visual container
+     */
+    public function get numElements():int
     {
         return viewport ? 1 : 0;
     }
@@ -310,13 +312,13 @@
      *  Returns the viewport if there is a viewport and the
      *  index passed in is 0.  Otherwise, it throws a RangeError.
      *
-     *  @param index The index of the item to retrieve.
+     *  @param index The index of the element to retrieve.
      *
-     *  @return The item at the specified index.
+     *  @return The element at the specified index.
      *
      *  @throws RangeError If the index position does not exist in the child list.
      */
-    public function getItemAt(index:int):Object
+    public function getElementAt(index:int):Object
     {
         if (viewport && index == 0)
             return viewport;
@@ -325,21 +327,135 @@
     }

     /**
-     *  Returns the 0 if the item passed in is the viewport.
+     *  Returns the 0 if the element passed in is the viewport.
      *  Otherwise, it throws an ArgumentError.
      *
-     *  @param item The item to identify.
+     *  @param element The element to identify.
      *
-     *  @return The index position of the item to identify.
-     *
-     *  @throws ArgumentError If the item is not a child of this object.
+     *  @return The index position of the element to identify.
+     *
+     *  @throws ArgumentError If the element is not a child of this object.
      */
-    public function getItemIndex(item:Object):int
-    {
-        if (item != null && item == viewport)
+    public function getElementIndex(element:Object):int
+    {
+        if (element != null && element == viewport)
             return 0;
         else
-            throw ArgumentError(item + " is not found in this FxScroller");
+            throw ArgumentError(element + " is not found in this FxScroller");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function addElement(element:Object):Object
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function addElementAt(element:Object, index:int):Object
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function removeElement(element:Object):Object
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function removeElementAt(index:int):Object
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function setElementIndex(element:Object, index:int):void
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function swapElements(element1 :Object, element2 :Object):void
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    /**
+     *  @inheritDoc
+     *
+     *
This operation is not supported in FxScroller.  FxScroller only
+     *  has one child.  Use the viewport property to manipulate
+     *  it.

+     */
+    public function swapElementsAt(index1:int, index2:int):void
+    {
+        throw new ArgumentError("This operation is not supported");
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Deprecated Methods...
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Deprecated Method
+     */
+    public function get numItems():int
+    {
+        return numElements;
+    }
+
+    /**
+     *  Deprecated Method
+     */
+    public function getItemAt(index:int):Object
+    {
+        return getElementAt(index);
+    }
+
+    /**
+     *  Deprecated Method.
+     */
+    public function getItemIndex(element:Object):int
+    {
+        return getElementIndex(element);
     }

     //--------------------------------------------------------------------------


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@1290624 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/advancedgrids/src/mx/olap/OLAPMeasure.as
+++ frameworks/projects/advancedgrids/src/mx/olap/OLAPMeasure.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7113
Author:   gosmith@adobe.com
Date:     2009-05-20T05:16:39.956387Z

Log Message:
-----------
Added [RichTextContent] metadata to the 'content' property of RichText, RichEditableText, and TextArea.

This metadata tells the MXML compiler to disable some of its default interpreation of the value specified for the 'content' property. Normally, for properties of type Object, it assumes that things looking like numbers are numbers and things looking like arrays are arrays. But <content>1</content> should generate code to set the content to  the String "1", not the int 1, and <content>[1]</content> hould set it to the String "[1]", not the Array [ 1 ]. However, {...} continues to be interpreted as a databinding expression, and @Resource(...), @Embed(...), etc. as compiler directives.

Similar metadata on the mxmlChildren property in TLF's FlowGroupElement and SpanElement classes causes the same rules to apply within <p>, <span>, etc.

QE Notes: None
Doc Notes: None
Bugs: Part of SDK-17748 and SDK-18877
Reviewer: Peter

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/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -150,6 +150,23 @@
     [Bindable("textChanged")]

     /**
+     *  @private
+     *  This metadata tells the MXML compiler to disable some of its default
+     *  interpreation of the value specified for the 'content' property.
+     *  Normally, for properties of type Object, it assumes that things
+     *  looking like numbers are numbers and things looking like arrays
+     *  are arrays. But <content>1</content> should generate code to set the
+     *  content to  the String "1", not the int 1, and <content>[1]</content>
+     *  should set it to the String "[1]", not the Array [ 1 ].
+     *  However, {...} continues to be interpreted as a databinding
+     *  expression, and @Resource(...), @Embed(...), etc.
+     *  as compiler directives.
+     *  Similar metadata on TLF classes causes the same rules to apply
+     *  within <p>, <span>, etc.
+     */
+    [RichTextContent]
+
+    /**
      *  Documentation is not currently available.
      *
      *  @langversion 3.0


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@1267466 13f79535-47bb-0310-9956-ffa450edef68

--- frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/SliderAccImpl.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 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.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 6683
Author:   cframpto@adobe.com
Date:     2009-05-06T14:10:51.953172Z

Log Message:
-----------
Re-submit 6637/6639 with some mods to implement proxy model from SkinnableDataGroup in TextBase.

Fix misnamed tlf internal variable so pasting text with restrict, maxChars or displayAsPassword properties doesn't RTE.

Fix TextArea event dispatching so text/content bindings are triggered when the properties change. Previously all the bindings were only triggered if the text was interactively modified.  They weren't triggered correctly if either text or content was initially set on the TextArea.

Doc Notes:
Bugs: SDK-19980
Reviewers: Gordon

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TextBase.as</path>
<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/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextInput.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -17,6 +17,7 @@
 import spark.components.supportClasses.TextBase;
 import mx.core.mx_internal;
 import mx.core.ScrollPolicy;
+import mx.events.FlexEvent;
 import spark.events.TextOperationEvent;

 //--------------------------------------
@@ -96,11 +97,6 @@
 	//
 	//--------------------------------------------------------------------------

-	/**
-	 *  @private
-	 */
-    private var textInvalid:Boolean = false;
-
 	//--------------------------------------------------------------------------
 	//
 	//  Overridden properties
@@ -120,29 +116,16 @@
 	/**
 	 *  @private
 	 */
-    override public function get text():String
-    {
-        if (textInvalid)
-        {
-            mx_internal::_text = textView.text;
-            textInvalid = false;
-        }
-
-        return mx_internal::_text;
-    }
-
-	/**
-	 *  @private
-	 */
     override public function set text(value:String):void
     {
         // Setting 'text' temporarily causes 'content' to become null.
         // Later, after the 'text' has been committed into the TextFlow,
         // getting 'content' will return the TextFlow.
-        _content = null;
-        contentChanged = false;
+        setContent(null);
+        super.text = value;

-        super.text = value;
+        // Trigger bindings to textChanged.
+        dispatchEvent(new Event("textChanged"));
     }

     //--------------------------------------------------------------------------
@@ -155,16 +138,13 @@
 	//  content
     //----------------------------------

-	/**
-	 *  @private
-	 */
-	private var _content:Object;
-
-	/**
-	 *  @private
-	 */
-	private var contentChanged:Boolean = false;
-
+   /**
+     *  @private
+     *  Once the text or content is composed initially, the content getter
+     *  will return the TextFlow, rather than the initial content.
+     */
+    private var useTextFlowForContent:Boolean = false;
+
 	[Bindable("change")]
 	[Bindable("contentChanged")]
 	[Bindable("textChanged")]
@@ -179,7 +159,8 @@
 	 */
 	public function get content():Object
 	{
-		return _content;
+	    return textView && useTextFlowForContent ? textView.textFlow :
+	                                               getContent();
 	}

 	/**
@@ -187,21 +168,19 @@
 	 */
 	public function set content(value:Object):void
 	{
-		if (value == _content)
+		if (value == getContent())
 			return;

         // Setting 'content' temporarily causes 'text' to become null.
         // Later, after the 'content' has been committed into the TextFlow,
         // getting 'text' will extract the text from the TextFlow.
-        mx_internal::_text = null;
-        mx_internal::textChanged = false;
-
-		_content = value;
-		contentChanged = true;
-
-		invalidateProperties();
-
-		dispatchEvent(new Event("contentChanged"));
+        super.text = null;
+        setContent(value);
+
+        useTextFlowForContent = false;
+
+        // Trigger bindings to contentChanged.
+        dispatchEvent(new Event("contentChanged"));
 	}

 	//----------------------------------
@@ -209,16 +188,6 @@
     //----------------------------------

 	/**
-	 *  @private
-	 */
-	private var _heightInLines:Number = 10;
-
-	/**
-	 *  @private
-	 */
-	private var heightInLinesChanged:Boolean = false;
-
-	/**
 	 *  Documentation is not currently available.
 	 *
 	 *  @langversion 3.0
@@ -228,7 +197,7 @@
 	 */
 	public function get heightInLines():Number
 	{
-		return _heightInLines;
+		return getHeightInLines();
 	}

 	/**
@@ -236,13 +205,7 @@
 	 */
 	public function set heightInLines(value:Number):void
 	{
-		if (value == _heightInLines)
-			return;
-
-		_heightInLines = value;
-		heightInLinesChanged = true;
-
-		invalidateProperties();
+        setHeightInLines(value);
 	}

 	//----------------------------------
@@ -342,54 +305,7 @@

 		invalidateProperties();
 	}
-
-	//----------------------------------
-	//  widthInChars
-    //----------------------------------
-
-	/**
-	 *  @private
-	 */
-	private var _widthInChars:Number = 15;
-
-	/**
-	 *  @private
-	 */
-	private var widthInCharsChanged:Boolean = false;
-
-	/**
-	 *  The default width for the TextInput, measured in characters.
-	 *  The width of the "0" character is used for the calculation,
-	 *  since in most fonts the digits all have the same width.
-	 *  So if you set this property to 5, it will be wide enough
-	 *  to let the user enter 5 digits.
-	 *
-	 *  @default
-	 *
-	 *  @langversion 3.0
-	 *  @playerversion Flash 10
-	 *  @playerversion AIR 1.5
-	 *  @productversion Flex 4
-	 */
-	public function get widthInChars():Number
-	{
-		return _widthInChars;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set widthInChars(value:Number):void
-	{
-		if (value == _widthInChars)
-			return;
-
-		_widthInChars = value;
-		widthInCharsChanged = true;
-
-		invalidateProperties();
-	}
-
+
 	//--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -417,24 +333,6 @@
                 scroller.verticalScrollPolicy = _verticalScrollPolicy;
             verticalScrollPolicyChanged = false;
         }
-
-        if (widthInCharsChanged)
-		{
-			textView.widthInChars = _widthInChars;
-			widthInCharsChanged = false;
-		}
-
-        if (heightInLinesChanged)
-		{
-			textView.heightInLines = _heightInLines;
-			heightInLinesChanged = false;
-		}
-
-        if (contentChanged)
-        {
-            textView.content = _content;
-            contentChanged = false;
-        }
 	}

 	/**
@@ -446,14 +344,11 @@

 		if (instance == textView)
 		{
-			// Set the RichEditableText to allow multiple lines of input.
 			// In default.css, the TextArea selector has a declaration
 			// for lineBreak which sets it to "toFit".  It needs to be on
 			// TextArea rather than RichEditableText so that if changed later it
-			// will be inherited.  It needs to be set with the default
-			// before the possibility that it is changed when TextArea is
-			// created.  In this case, setting it here, would overwrite
-			// that change.
+			// will be inherited.
+
 			textView.heightInLines = 10;
 			textView.multiline = true;
             textView.autoSize = false;
@@ -461,6 +356,8 @@
             textView.addEventListener("textInvalid",
 									  textView_textInvalidHandler);

+            textView.addEventListener(FlexEvent.UPDATE_COMPLETE,
+                                      textView_updateCompleteHandler);
         }

         // The scroller, between textView and this in the chain, should not
@@ -469,6 +366,23 @@
             scroller.focusEnabled = false;
 	}

+    /**
+     *  @private
+     */
+    override protected function partRemoved(partName:String, instance:Object):void
+    {
+        super.partRemoved(partName, instance);
+
+        if (instance == textView)
+        {
+            textView.removeEventListener("textInvalid",
+                                          textView_textInvalidHandler);
+
+            textView.removeEventListener(FlexEvent.UPDATE_COMPLETE,
+                                         textView_updateCompleteHandler);
+        }
+    }
+
 	//--------------------------------------------------------------------------
     //
     //  Methods
@@ -531,6 +445,7 @@

     /**
      *  @private
+     *  Dispatched when there is an editing operation in RichEditableText.
      */
     override protected function textView_changeHandler(
                                         event:TextOperationEvent):void
@@ -540,11 +455,9 @@
         // to extract the text from the TextFlow.
         // That's too expensive for an TextArea,
         // which might have a lot of leaf nodes.
-
-        // Update our storage variable for the content.
-		_content = textView.content;
-        textInvalid = true;
-
+
+        useTextFlowForContent = true;
+
 		// Redispatch the event that came from the RichEditableText.
 		dispatchEvent(event);
 	}
@@ -557,10 +470,33 @@

     /**
      *  @private
+     *  Content changed or in process of being changed.
      */
     private function textView_textInvalidHandler(event:Event):void
     {
-        textInvalid = true;
+        mx_internal::textInvalid = true;
+    }
+
+    /**
+     *  @private
+     *  Called when the RichEditableText dispatches a
+     *  'FlexEvent.UPDATE_COMPLETE' event in response to validation being
+     *  completed.  At this point, the textFlow is composed and the text
+     *  can be extracted from the textFlow, if needed.
+     */
+    protected function textView_updateCompleteHandler(event:Event):void
+    {
+        // This handles the case where text or content is initially set and
+        // no editing operations were done.  Since no editing operations
+        // were done, a change event wasn't dispatched to trigger any bindings
+        // on text or content.  The alternative is to let the RichEditableText
+        // damageHandler dispatch for every updateDisplayList but that seems
+        // much more expensive since the text may still be valid.
+        if (!useTextFlowForContent)
+        {
+            useTextFlowForContent = true;
+            dispatchEvent(new Event("change"));
+       }
     }
 }