Transferred from the Adobe Open Source Subversion Repository

Revision: 7925
Author:   jszeto@adobe.com
Date:     2009-06-17T22:23:25.686333Z

Log Message:
-----------
PopUpAnchor PARB Changes

Change popUp type from UIComponent -> IFlexDisplayObject
Rename positionPopUp -> calculatePopUpPosition
Rename autoSizePopUpWidth -> popUpWidthMatchesAnchorWidth
Rename autoSizePopUpHeight -> popUpHeightMatchesAnchorHeight

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/PopUpAnchor.as</path>

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

--- frameworks/projects/spark/src/spark/components/PopUpAnchor.as
+++ frameworks/projects/spark/src/spark/components/PopUpAnchor.as
@@ -19,9 +19,11 @@
 import flash.geom.Point;
 import flash.geom.Rectangle;

+import mx.core.IFlexDisplayObject;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.managers.PopUpManager;
+import mx.styles.ISimpleStyleClient;
 import mx.utils.MatrixUtil;

 import spark.core.RelativePosition;
@@ -83,10 +85,10 @@
     //--------------------------------------------------------------------------

     //----------------------------------
-    //  autoSizePopUpHeight
-    //----------------------------------
-
-    private var _autoSizePopUpHeight:Boolean = false;
+    //  popUpHeightMatchesAnchorHeight
+    //----------------------------------
+
+    private var _popUpHeightMatchesAnchorHeight:Boolean = false;

     /**
      *  If true, the popUp's height is set to the value of the PopUpAnchor's height.
@@ -98,12 +100,12 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function set autoSizePopUpHeight(value:Boolean):void
-    {
-        if (_autoSizePopUpHeight == value)
+    public function set popUpHeightMatchesAnchorHeight(value:Boolean):void
+    {
+        if (_popUpHeightMatchesAnchorHeight == value)
             return;

-        _autoSizePopUpHeight = value;
+        _popUpHeightMatchesAnchorHeight = value;

         invalidateDisplayList();
     }
@@ -111,16 +113,16 @@
     /**
      *  @private
      */
-    public function get autoSizePopUpHeight():Boolean
-    {
-        return _autoSizePopUpHeight;
-    }
-
-    //----------------------------------
-    //  autoSizePopUpWidth
-    //----------------------------------
-
-    private var _autoSizePopUpWidth:Boolean = false;
+    public function get popUpHeightMatchesAnchorHeight():Boolean
+    {
+        return _popUpHeightMatchesAnchorHeight;
+    }
+
+    //----------------------------------
+    //  popUpWidthMatchesAnchorWidth
+    //----------------------------------
+
+    private var _popUpWidthMatchesAnchorWidth:Boolean = false;

     /**
      *  If true, the popUp's width is set to the value of the PopUpAnchor's width.
@@ -132,12 +134,12 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function set autoSizePopUpWidth(value:Boolean):void
-    {
-        if (_autoSizePopUpWidth == value)
+    public function set popUpWidthMatchesAnchorWidth(value:Boolean):void
+    {
+        if (_popUpWidthMatchesAnchorWidth == value)
             return;

-        _autoSizePopUpWidth = value;
+        _popUpWidthMatchesAnchorWidth = value;

         invalidateDisplayList();
     }
@@ -145,9 +147,9 @@
     /**
      *  @private
      */
-    public function get autoSizePopUpWidth():Boolean
-    {
-        return _autoSizePopUpWidth;
+    public function get popUpWidthMatchesAnchorWidth():Boolean
+    {
+        return _popUpWidthMatchesAnchorWidth;
     }

     //----------------------------------
@@ -206,12 +208,12 @@
     //  popUp
     //----------------------------------

-    private var _popUp:UIComponent;
+    private var _popUp:IFlexDisplayObject;

     [Bindable ("popUpChanged")]

     /**
-     *  UIComponent to add to the PopUpManager when the PopUpAnchor is opened.
+     *  IFlexDisplayObject to add to the PopUpManager when the PopUpAnchor is opened.
      *  If the popUp implements IFocusManagerContainer, the popUp will have its
      *  own FocusManager so that, if the user uses the Tab key to navigate between
      *  controls, only the controls in the popUp are accessed.
@@ -221,15 +223,15 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    public function set popUp(value:UIComponent):void
+    public function set popUp(value:IFlexDisplayObject):void
     {
         if (_popUp == value)
             return;

         _popUp = value;

-        if (_popUp)
-            _popUp.styleName = this;
+        if (_popUp is ISimpleStyleClient)
+            ISimpleStyleClient(_popUp).styleName = this;

         dispatchEvent(new Event("popUpChanged"));
     }
@@ -237,7 +239,7 @@
     /**
      *  @private
      */
-    public function get popUp():UIComponent
+    public function get popUp():IFlexDisplayObject
     {
         return _popUp
     }
@@ -324,14 +326,16 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function positionPopUp():Point
+    protected function calculatePopUpPosition():Point
     {
         // This implementation doesn't handle rotation
         var matrix:Matrix = $transform.concatenatedMatrix;
         var regPoint:Point = new Point();

         var popUpBounds:Rectangle = new Rectangle();
-        determinePosition(popUpPosition, popUp.width, popUp.height,
+        var popUpAsDisplayObject:DisplayObject = popUp as DisplayObject;
+
+        determinePosition(popUpPosition, popUpAsDisplayObject.width, popUpAsDisplayObject.height,
                           matrix, regPoint, popUpBounds);

         var adjustedPosition:String;
@@ -366,7 +370,8 @@
         {
             var adjustedRegPoint:Point = new Point();
             var adjustedBounds:Rectangle = new Rectangle();
-            determinePosition(adjustedPosition, popUp.width, popUp.height,
+            determinePosition(adjustedPosition, popUpAsDisplayObject.width,
+            				  popUpAsDisplayObject.height,
                               matrix, adjustedRegPoint, adjustedBounds);

             if (screen)
@@ -445,15 +450,19 @@
         if(popUp == null)
             return;

-        if(popUp.parent == null && displayPopUp)
+        if(DisplayObject(popUp).parent == null && displayPopUp)
         {
             PopUpManager.addPopUp(popUp,this,false);
             popUpIsDisplayed = true;
-            popUpWidth = popUp.explicitWidth;
-            popUpHeight = popUp.explicitHeight;
+            if (popUp is UIComponent)
+            {
+            	popUpWidth = UIComponent(popUp).explicitWidth;
+            	popUpHeight = UIComponent(popUp).explicitHeight;
+			}
+
             applyPopUpTransform(width, height);
         }
-        else if (popUp.parent != null && displayPopUp == false)
+        else if (DisplayObject(popUp).parent != null && displayPopUp == false)
         {
             removeAndResetPopUp();
         }
@@ -466,8 +475,12 @@
     {
         PopUpManager.removePopUp(popUp);
         popUpIsDisplayed = false;
-        popUp.explicitWidth = popUpWidth;
-        popUp.explicitHeight = popUpHeight;
+
+        if (popUp is UIComponent)
+        {
+        	UIComponent(popUp).explicitWidth = popUpWidth;
+        	UIComponent(popUp).explicitHeight = popUpHeight;
+        }

         /*if (popUpFactory)
         {
@@ -509,15 +522,17 @@
                 // already 0,0
                 break;
         }
+
+        var popUpAsDisplayObject:DisplayObject = popUp as DisplayObject;

         var globalTL:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.y += popUp.height;
+        registrationPoint.y += popUpAsDisplayObject.height;
         var globalBL:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.x += popUp.width;
+        registrationPoint.x += popUpAsDisplayObject.width;
         var globalBR:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.y -= popUp.height;
+        registrationPoint.y -= popUpAsDisplayObject.height;
         var globalTR:Point = matrix.transformPoint(registrationPoint);
-        registrationPoint.x -= popUp.width;
+        registrationPoint.x -= popUpAsDisplayObject.width;

         bounds.left = Math.min(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
         bounds.right = Math.max(globalTL.x, globalBL.x, globalBR.x, globalTR.x);
@@ -537,12 +552,21 @@

         // Set the dimensions explicitly because UIComponents always set themselves to their
         // measured / explicit dimensions if they are parented by the SystemManager.
-        if (autoSizePopUpWidth)
-            popUp.width = unscaledWidth;
-        if (autoSizePopUpHeight)
-            popUp.height = unscaledHeight;
-
-        var popUpPoint:Point = positionPopUp();
+        if (popUp is UIComponent)
+        {
+	        if (popUpWidthMatchesAnchorWidth)
+	            UIComponent(popUp).width = unscaledWidth;
+	        if (popUpHeightMatchesAnchorHeight)
+	            UIComponent(popUp).height = unscaledHeight;
+        }
+        else
+        {
+        	var w:Number = popUpWidthMatchesAnchorWidth ? unscaledWidth : popUp.measuredWidth;
+        	var h:Number = popUpHeightMatchesAnchorHeight ? unscaledHeight : popUp.measuredHeight;
+        	popUp.setActualSize(w, h);
+        }
+
+        var popUpPoint:Point = calculatePopUpPosition();

         // the transformation doesn't take the fullScreenRect in to account
         // if we are in fulLScreen mode
@@ -555,10 +579,13 @@
         // Position the popUp.
         m.tx = popUpPoint.x;
         m.ty = popUpPoint.y;
-        popUp.setLayoutMatrix(m,false);
+        if (popUp is UIComponent)
+        	UIComponent(popUp).setLayoutMatrix(m,false);
+        else if (popUp is DisplayObject)
+        	DisplayObject(popUp).transform.matrix = m;

         // apply the color transformation
-        popUp.transform.colorTransform = $transform.concatenatedColorTransform
+        DisplayObject(popUp).transform.colorTransform = $transform.concatenatedColorTransform
     }

     //--------------------------------------------------------------------------
@@ -581,7 +608,7 @@
      */
     private function removedFromStageHandler(event:Event):void
     {
-        if (popUp.parent != null)
+        if (DisplayObject(popUp).parent != null)
             removeAndResetPopUp();

         addedToStage = false;


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

--- frameworks/projects/mx/src/mx/containers/utilityClasses/BoxLayout.as
+++ frameworks/projects/mx/src/mx/containers/utilityClasses/BoxLayout.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


qnd: check bw logic, to be activated only if we have the BW plugin included

git-svn-id: 3f608e5a9a704dd448217c0a64c508e7f145cfa1@91227 6b8eccd3-e8c5-4e7d-8186-e12b5326b719

--- kdp3Lib/src/com/kaltura/kdpfl/controller/LoadConfigCommand.as
+++ kdp3Lib/src/com/kaltura/kdpfl/controller/LoadConfigCommand.as
@@ -666,62 +666,77 @@
 			}

 			_mediaProxy.vo.deliveryType = _flashvars.streamerType;
+
+			///////////////////////////////////////////////////////////////////////////////
+			//////Check if we should load BW detection plugin/////////////////////////////
+			///////////////////////////////////////////////////////////////////////////////
+
 			//indicates if BW check is required
-			var doBWCheck:Boolean = true;
-			//inidicates if we need to perform flavors comparison before BW check
-			var doConditionalBWCheck:Boolean = false;
-			//Retrieval of the Bitrate cookie value.
-			if (!_flashvars.disableBitrateCookie || _flashvars.disableBitrateCookie=="false")
-			{
-				var flavorCookie : SharedObject;
-				try
-				{
-					flavorCookie = SharedObject.getLocal("Kaltura");
-				}
-				catch (e: Error)
-				{
-					KTrace.getInstance().log("no permissions to access partner's file system");
-				}
-
-
-				KTrace.getInstance().log("---check if we need BW detection");
-				if(flavorCookie && flavorCookie.data.preferedFlavorBR)
-				{
-					//interval between bandwidth checks, in seconds
-					var bwInterval:int = _flashvars.bwInterval ? _flashvars.bwInterval : DEFAULT_BW_INTERVAL;
-					if (bwInterval && flavorCookie.data.timeStamp)
-					//check if the flavor cookie was saved in the confiugrable time interval
+			var doBWCheck:Boolean;
+			//inidicates if we need to perform flavors comparison before BW check (in BW plugin)
+			var doConditionalBWCheck:Boolean;
+
+			//If BW plugin exist and its loadingPolicy="onDemand", check if we should load it
+			var bwPlugin : XMLList = xml..Plugin.(@id=="bitrateDetection");
+			if (bwPlugin && bwPlugin.length() && bwPlugin.@loadingPolicy=="onDemand")
+			{
+				doBWCheck = true;
+				//Retrieval of the Bitrate cookie value.
+				if (!_flashvars.disableBitrateCookie || _flashvars.disableBitrateCookie=="false")
+				{
+					var flavorCookie : SharedObject;
+					try
 					{
-						var diff:Number = (new Date()).time - flavorCookie.data.timeStamp;
-						if (diff <= Number(bwInterval * 1000))
+						flavorCookie = SharedObject.getLocal("Kaltura");
+					}
+					catch (e: Error)
+					{
+						KTrace.getInstance().log("no permissions to access partner's file system");
+					}
+
+
+					KTrace.getInstance().log("---check if we need BW detection");
+					if(flavorCookie && flavorCookie.data.preferedFlavorBR)
+					{
+						//interval between bandwidth checks, in seconds
+						var bwInterval:int = _flashvars.bwInterval ? _flashvars.bwInterval : DEFAULT_BW_INTERVAL;
+						if (bwInterval && flavorCookie.data.timeStamp)
+							//check if the flavor cookie was saved in the confiugrable time interval
 						{
-							KTrace.getInstance().log("---bw interval is still valid");
-							doBWCheck = false;
-						}
-					}
-
-					if (!doBWCheck)
-					{
-						//check if the last detected bitrate is still relevant with the current flavor set:
-						//if the last playing flavor was the highest available (with 20%  range of difference) then there might be more suitable flaor now
-						if (flavorCookie.data.lastHighestBR && (Math.abs(flavorCookie.data.preferedFlavorBR - flavorCookie.data.lastHighestBR))<=(flavorCookie.data.preferedFlavorBR * 0.2))
-						{
-							KTrace.getInstance().log("---preferredBR was the heighest possible, might need BW check");
-							//if the difference between the detected BW and the actual playing BW is too big (more than 50% out of the detected BR)
-							//we should perform BW check
-							if (flavorCookie.data.detectedBitrate && (0.5 * flavorCookie.data.detectedBitrate)>flavorCookie.data.preferedFlavorBR)
+							var diff:Number = (new Date()).time - flavorCookie.data.timeStamp;
+							if (diff <= Number(bwInterval * 1000))
 							{
-								KTrace.getInstance().log("---difference between detected BR and preferred is too high, do BW check!");
-								doConditionalBWCheck = true;
+								KTrace.getInstance().log("---bw interval is still valid");
+								doBWCheck = false;
 							}
 						}

-						//maybe BW check is not required, save the value from the cookie
-						_mediaProxy.vo.preferedFlavorBR = flavorCookie.data.preferedFlavorBR;
+						if (!doBWCheck)
+						{
+							//check if the last detected bitrate is still relevant with the current flavor set:
+							//if the last playing flavor was the highest available (with 20%  range of difference) then there might be more suitable flaor now
+							if (flavorCookie.data.lastHighestBR && (Math.abs(flavorCookie.data.preferedFlavorBR - flavorCookie.data.lastHighestBR))<=(flavorCookie.data.preferedFlavorBR * 0.2))
+							{
+								KTrace.getInstance().log("---preferredBR was the heighest possible, might need BW check");
+								//if the difference between the detected BW and the actual playing BW is too big (more than 50% out of the detected BR)
+								//we should perform BW check
+								if (flavorCookie.data.detectedBitrate && (0.5 * flavorCookie.data.detectedBitrate)>flavorCookie.data.preferedFlavorBR)
+								{
+									KTrace.getInstance().log("---difference between detected BR and preferred is too high, do BW check!");
+									doConditionalBWCheck = true;
+								}
+							}
+
+							//maybe BW check is not required, save the value from the cookie
+							_mediaProxy.vo.preferedFlavorBR = flavorCookie.data.preferedFlavorBR;
+						}
+
 					}
-
-				}
-			}
+				}
+			}
+
+			////////////////////////////////////////////////////////////////////////////////////////////
+

 			// convert all flashvars with dot syntax (e.g. watermark.path) to objects
 			buildFlashvarsTree();
@@ -731,20 +746,13 @@

 			if (doBWCheck || doConditionalBWCheck)
 			{
-				//load bitrate detection plugin, if it's in the config xml
-				var bwPlugin : XMLList = xml..Plugin.(@id=="bitrateDetection");
-				if (bwPlugin)
-				{
-					bwPlugin.@loadingPolicy = "wait";
-					KTrace.getInstance().log("!!! LOAD BW CHECK PLUGIN");
-					//we should load BW plugin, but maybe the detection is still unnecessary, tell the plugin to run check before
-					if (doConditionalBWCheck)
-					{
-						bwPlugin.@runPreCheck = "true";
-					}
-				}
-
-
+				bwPlugin.@loadingPolicy = "wait";
+				KTrace.getInstance().log("---------LOAD BW CHECK PLUGIN-----------");
+				//we should load BW plugin, but maybe the detection is still unnecessary, tell the plugin to run check before
+				if (doConditionalBWCheck)
+				{
+					bwPlugin.@runPreCheck = "true";
+				}
 			}

 			// override layout and proxy variables using flashvars


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

--- frameworks/projects/spark/src/spark/components/mediaClasses/DynamicStreamingVideoSource.as
+++ frameworks/projects/spark/src/spark/components/mediaClasses/DynamicStreamingVideoSource.as
@@ -22,7 +22,7 @@
  *  classes can take a StreamingVideoSource instance as its source
  *  property.
  *
- *  @see spark.controls.VideoPlayer
+ *  @see spark.components.VideoPlayer
  *  @see spark.primitives.VideoElement
  *
  *  @langversion 3.0


Remove comments

Remove comments

--- src/aerys/minko/render/shader/part/phong/attenuation/PCFShadowMapAttenuationShaderPart.as
+++ src/aerys/minko/render/shader/part/phong/attenuation/PCFShadowMapAttenuationShaderPart.as
@@ -117,8 +117,6 @@
 				noShadows.scaleBy(1 / (2 * numSamples + 1));
 			}

-			//return noShadows.x;
-
 			var insideShadow 	: SFloat = multiply(multiply(lessThan(uv.x, 1), greaterThan(uv.x, 0)), multiply(lessThan(uv.y, 1), greaterThan(uv.y, 0)));
 			var outsideShadow	: SFloat = subtract(1, insideShadow);


Transferred from the Adobe Open Source Subversion Repository

Revision: 10006
Author:   gruehle@adobe.com
Date:     2009-09-03T22:04:47.081899Z

Log Message:
-----------
Initial checkin of the "More styles for Spark skins" feature. Details here:
http://opensource.adobe.com/wiki/display/flexsdk/More+Styles+for+Spark+Skins

There are some known issues:
* Panel bottom corners not rounded correctly when the panel has a control bar
* cornerRadius on Tab and DateChooser non functional
* cornerRadius values > 4 have drawing artifacts in the "down" state of Button and button-like components
* TextInput/TextArea incorrectly list lineBreak and verticalAlign as valid styles

This checkin also includes a couple minor unrelated bug fixes:
* Remove MiniDebugTarget. This is a logging target that used MiniDebug, which hasn't worked since Flex 1.5
* Fix RTEs when setting focusSkin to null
* Optimization: don't measure skins if the host component has explicit sizes

QE notes: Yes, many baseline images will need to be regenerated
Doc notes: New ASDoc comments should be scrubbed
Bugs: SDK-22931, SDK-22798, SDK-22217, SDK-19358
Reviewer: Jason
Tests run: checkintests, cyclone
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperIncrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PopUpButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/SparkChromeWindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/skins/spark/WindowedApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateChooser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/NumericStepper.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/framework/src/mx/logging/targets/MiniDebugTarget.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/airframework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/StepperDecrButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.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/skins/spark/SpinnerDecrementButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/INavigatorContent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IDeferredContentOwner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/BasicTests.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/TextAreaSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Skin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/EditableComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarLastButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/SparkSkinForHalo.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/TextInputBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/SpinnerIncrementButtonSkin.mxml</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/sparkskins/src/mx/skins/spark/ButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/halo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/metadata/BorderStyles.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.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/framework/src/mx/controls/ComboBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/PanelBorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ButtonBarFirstButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/DropDownListButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/ComboBoxSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RectangularDropShadow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/sparkskins/src/mx/skins/spark/BorderSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/NumericStepperTextInputSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/spark/ApplicationSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/basicTests/spark/scripts/BorderTestScript.mxml</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/skins/spark/FocusSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/wireframe/src/spark/skins/wireframe/ApplicationSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as
@@ -448,8 +448,9 @@

                 if (focusSkinClass)
                     focusObj = new focusSkinClass();
-
-                super.addChildAt(focusObj, 0);
+
+                if (focusObj)
+                    super.addChildAt(focusObj, 0);
             }
             if (focusObj && "focusObject" in focusObj)
                 focusObj["focusObject"] = this;


Transferred from the Adobe Open Source Subversion Repository

Revision: 3342
Author:   chaase@adobe.com
Date:     2008-09-24T23:47:01.007481Z

Log Message:
-----------
Added new Rotate effect. Also, minor API additions to Animation class and minor refactoring of AnimateFilterInstance.

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>

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

--- frameworks/projects/spark/src/spark/effects/supportClasses/AnimateFilterInstance.as
+++ frameworks/projects/spark/src/spark/effects/supportClasses/AnimateFilterInstance.as
@@ -59,16 +59,17 @@
     //--------------------------------------------------------------------------

     /**
-     *  @copy mx.effects.IEffectInstance#startEffect()
+     * @private
      */
-    override public function startEffect():void
-    {
+    override public function play():void
+    {
         // Apply our filter instance.
         var filters:Array = target.filters;
         filters.push(bitmapFilter);
         target.filters = filters;
-        super.startEffect();
+        super.play();
     }
+

     /**
      *  @copy mx.effects.IEffectInstance#finishEffect()
@@ -114,7 +115,7 @@
      *
      * @private
      */
-    override protected function getCurrentValue(property:String):Number
+    override protected function getCurrentValue(property:String):*
     {
         return bitmapFilter[property];
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17701
Author:   hmuller@adobe.com
Date:     2010-09-14T19:42:02.652272Z

Log Message:
-----------
Changed right padding from 10 to 5 in DefaultGridItemRenderer and UITextFieldGridItemRenderer.   Added the latter to spark-manifest.xml.

Fixed a horizontal scrolling performance problem introduced by SVN 17668.  Moved itemRenderer (IFactory) wrapping and caching from GridColumn to GridLayout/itemToRenderer().

QE notes: checkin tests pass, Mustella tests that fail due to the layout change have been excluded
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: checkin, mustella cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGrid.as</path>

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

--- frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
+++ frameworks/projects/spark/src/spark/skins/spark/TextFieldGridItemRendererInclude.as
@@ -35,7 +35,7 @@
      *  See setLayoutBoundsPosition() and setLayoutBoundsSize().
      */
     private static const LEFT_PADDING:Number = 5;
-    private static const RIGHT_PADDING:Number = 10;
+    private static const RIGHT_PADDING:Number = 5;
     private static const TOP_PADDING:Number = 4;
     private static const BOTTOM_PADDING:Number = 3;


Transferred from the Adobe Open Source Subversion Repository

Revision: 10542
Author:   chaase@adobe.com
Date:     2009-09-23T18:52:15.384014Z

Log Message:
-----------
Fix for drift during simple rotation effects. The combination of numerical precision in the player for object position and transform and our reliance on those values for cumulative placement calculations during a rotate-only or scale-only animation adds up to a drift by some number of pixels over the course of the effect. At the end of the effect, we then 'snap' to the real location, causing a jarring artifact as the object adjusts position by one or more pixels.
The fix was to use nonzero rotation and non-one scale (for any axis) to enable advanced layout features, where we use full numerical precision for our transform, thus avoiding the player precision problem.

QE notes: 9 Mustella failures in spark/effects, but this is probably due to our different (and more correct) calculation. OK'd by QE.
Doc notes: None
Bugs: SDK-23374
Reviewer: Ely
Tests run: checkintests, Mustella spark/effects
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/core/SpriteVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as
@@ -3365,10 +3365,16 @@
     {
         if (_layoutFeatures == null)
         {
+            // TODO (chaase): should provide a way to return to having no
+            // layoutFeatures if we call this later with a more trivial
+            // situation
             var needAdvancedLayout:Boolean =
-                (scale != null && scale.z != 1 && !isNaN(scale.z)) ||
+                (scale != null && ((!isNaN(scale.x) && scale.x != 1) ||
+                    (!isNaN(scale.y) && scale.y != 1) ||
+                    (!isNaN(scale.z) && scale.z != 1))) ||
                 (rotation != null && ((!isNaN(rotation.x) && rotation.x != 0) ||
-                                     (!isNaN(rotation.y) && rotation.y != 0))) ||
+                    (!isNaN(rotation.y) && rotation.y != 0) ||
+                    (!isNaN(rotation.z) && rotation.z != 0))) ||
                 (translation != null && translation.z != 0 && !isNaN(translation.z)) ||
                 postLayoutScale != null ||
                 postLayoutRotation != null ||


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

--- frameworks/projects/framework/src/mx/resources/IResourceModule.as
+++ frameworks/projects/framework/src/mx/resources/IResourceModule.as
@@ -33,6 +33,11 @@
 	 *
 	 *
The order of ResourceBundle instances in this Array
 	 *  is not specified.

+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	function get resourceBundles():Array /* of ResourceBundle */;
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20843
Author:   mhorn@adobe.com
Date:     2011-03-14T14:36:04.836183Z

Log Message:
-----------
merge

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/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/charts/src/mx/charts/series/CandlestickSeries.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/framework/src/mx/utils/StringUtil.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/spark/src/spark/formatters/DateTimeFormatter.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/charts/src/mx/charts/chartClasses/PolarDataCanvas.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/charts/src/mx/charts/series/PlotSeries.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/spark/src/spark/components/TabBar.as</path>

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

--- frameworks/projects/spark/src/spark/formatters/NumberFormatter.as
+++ frameworks/projects/spark/src/spark/formatters/NumberFormatter.as
@@ -629,7 +629,8 @@
     }

     /**
-     *  Lists all of the locale ID names supported by this class.
+     *  Lists all of the locale ID names supported by this class. This is a list of locales supported by
+     *  the operating system, not a list of locales that the ResourceManager has resources for.
      *
      *  @return A vector of strings containing all of the locale ID names
      *         supported by this class and operating system.


Transferred from the Adobe Open Source Subversion Repository

Revision: 19950
Author:   egeorgie@adobe.com
Date:     2011-01-26T06:26:50.785803Z

Log Message:
-----------
Fix for http://bugs.adobe.com/jira/browse/SDK-29118 Text renders inconsistently in flip view transition with dpi =160

In this change:
- introduce dpi scaling factor between the skinnable components and the skins while the flip transition is underway.  This forces rasterization of higher-resolution texture.

QE notes:
Doc notes:
Bugs: SDK-29118
Reviewer: Corey
Tests run: checkin tests
Is noteworthy for integration: No

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as

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

--- frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
+++ frameworks/projects/mobilecomponents/src/spark/transitions/FlipViewTransition.as
@@ -18,6 +18,7 @@
 import flash.geom.PerspectiveProjection;
 import flash.geom.Point;

+import mx.core.FlexGlobals;
 import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
 import mx.core.UIComponent;
@@ -28,10 +29,12 @@
 import mx.events.FlexEvent;
 import mx.managers.SystemManager;

+import spark.components.Application;
 import spark.components.Group;
 import spark.components.TabbedViewNavigator;
 import spark.components.ViewNavigator;
 import spark.components.supportClasses.ButtonBarBase;
+import spark.components.supportClasses.SkinnableComponent;
 import spark.effects.*;
 import spark.effects.animation.Keyframe;
 import spark.effects.animation.MotionPath;
@@ -265,7 +268,7 @@

         return (mode == FlipViewTransitionMode.CARD) ?
             prepareCardViewEffect() :
-            prepareCubeViewEffect();
+            prepareCubeViewEffect();
     }

     /**
@@ -303,6 +306,10 @@
     {
         actionBarTransitionDirection = direction;
         super.prepareForPlay();
+
+        // Work-around for SDK-29118
+        if (dpiScale != 1 && transitionGroup)
+            applyDPIScaleToElements(transitionGroup, dpiScale);
     }

     //--------------------------------------------------------------------------
@@ -338,7 +345,16 @@

         return createCardFlipAnimation(endView.width);
     }
-
+
+    /**
+     *  @private
+     */
+    private function get dpiScale():Number
+    {
+        return (Application(FlexGlobals.topLevelApplication).runtimeDPI /
+                Application(FlexGlobals.topLevelApplication).applicationDPI);
+    }
+
     /**
      *  @private
      *  Shared helper routine which serves as our effect factory for both standard
@@ -349,10 +365,10 @@
         // Now offset our transform center as appropriate for the transition direction
         transitionGroup.transformX = viewWidth / 2;
         transitionGroup.transformY = viewHeight / 2;
-
+
         // Validate our transition group prior to the start of our animation.
         transitionGroup.validateNow();
-
+
         var animation:Animate = new Animate();

         // Create motion path for our rotation property.
@@ -694,7 +710,43 @@
         navigatorProps.targetNavigatorIncludeInLayout = targetNavigator.includeInLayout;
         targetNavigator.includeInLayout = false;
     }
-
+
+    /**
+     *  @private
+     *  For all children of the group, if they are SkinnableComponents:
+     *  then applies "scale" to the skin and inverse scale to the component.
+     *  If "scale" is "1", then it clears the scale from both the component
+     *  and its skin.
+     *
+     *  This is used as a work-around for SDK-29118, to force the player to
+     *  use texture with size that takes the dpi scale into account.
+     */
+    private function applyDPIScaleToElements(group:Group, scale:Number):void
+    {
+        var count:int = group.numElements;
+        for (var i:int = 0; i < count; i++)
+        {
+            var element:IVisualElement = group.getElementAt(i);
+            if (element is SkinnableComponent)
+            {
+                var comp:SkinnableComponent = SkinnableComponent(element);
+                comp.skin.scaleX = scale;
+                comp.skin.scaleY = scale;
+
+                if (scale == 1)
+                {
+                    comp.scaleX = scale;
+                    comp.scaleY = scale;
+                }
+                else
+                {
+                    comp.scaleX /= scale;
+                    comp.scaleY /= scale;
+                }
+            }
+        }
+    }
+
     //--------------------------------------------------------------------------
     //  Cleanup related methods.
     //--------------------------------------------------------------------------
@@ -732,7 +784,11 @@
      */
     protected function deferredCleanUp():void
     {
-
+        // Work-around for SDK-29118
+        // Clean-up any scale that we have applied to the elements
+        if (dpiScale != 1 && transitionGroup)
+            applyDPIScaleToElements(transitionGroup, 1);
+
         if (!consolidatedTransition && transitionGroup)
         {
             if (endView)
@@ -775,7 +831,7 @@
             // Restore targetNavigator properties.
             targetNavigator.includeInLayout = navigatorProps.targetNavigatorIncludeInLayout;
         }
-
+
         transitionGroup = null;
         cachedNavigator = null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 22590
Author:   chiedozi@adobe.com
Date:     2011-09-15T23:38:39.356750Z

Log Message:
-----------
Adding a missing import form last checkin

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

Modified Paths:
--------------
/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/SplitViewNavigatorSkin.as

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/SplitViewNavigatorSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/SplitViewNavigatorSkin.as
@@ -11,13 +11,15 @@

 package spark.skins.mobile
 {
+import mx.core.mx_internal;
+
 import spark.components.Callout;
 import spark.components.Group;
+import spark.components.SkinnablePopUpContainer;
 import spark.components.SplitViewNavigator;
 import spark.layouts.HorizontalLayout;
 import spark.skins.mobile.supportClasses.MobileSkin;

-import mx.core.mx_internal;
 use namespace mx_internal;

 /**


used array notation for objects defined in .swf file to not get property warning

--- src/SWFAsset.as
+++ src/SWFAsset.as
@@ -27,8 +27,8 @@
 		}

 		private function onFrameLoop(evt:Event):void {
-			oMovieClip.cycle.x = mouseX;
-			oMovieClip.cycle.wheel.rotation = mouseX;
+			oMovieClip["cycle"]["x"] = mouseX;
+			oMovieClip["cycle"]["wheel"]["rotation"] = mouseX;
 		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20306
Author:   chiedozi@adobe.com
Date:     2011-02-11T23:51:08.085547Z

Log Message:
-----------
Added [ExcludeClass] metadata tags to ViewDescriptor and NavigationStack
Removed unnecessary imports from ViewNavigatorApplication and TabbedViewNavigatorApplication

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewDescriptor.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as
@@ -19,6 +19,8 @@

 import spark.components.supportClasses.ViewDescriptor;
 use namespace mx_internal;
+
+[ExcludeClass]

 /**
  *  The NavigationStack class is a data structure that is internally used by


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

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

 package mx.olap.aggregators
 {


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

--- frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as
+++ frameworks/projects/framework/src/mx/validators/NumberValidatorDomainType.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2009 Adobe Systems Incorporated
-//  All Rights Reserved.
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
 //
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
 //
 ////////////////////////////////////////////////////////////////////////////////


This class is remarkably pointless.
We could trash it and change our toStringBuf() methods
to just return a String. I guess. Then the caller would
have to assign the string somewhere. I guess this has some value.

So anyway: Occam's razor, and fixes a small bug: appending undefined
would print as "null" since it was being forced to an Object first.

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

--- src/as/com/threerings/util/StringBuilder.as
+++ src/as/com/threerings/util/StringBuilder.as
@@ -34,9 +34,7 @@
      */
     public function append (... args) :StringBuilder
     {
-        for each (var o :Object in args) {
-            _buf += String(o);
-        }
+        _buf += args.join("");
         return this;
     }


fix wrong update of the reference to the previous pass in case it got dismissed realy because it's not enabled

--- src/aerys/minko/scene/controller/scene/RenderingController.as
+++ src/aerys/minko/scene/controller/scene/RenderingController.as
@@ -236,15 +236,15 @@
 			var numTriangles	: uint 				= 0;

 			var sortValues 		: Vector.<Number> 	= TMP_NUMBERS;
-			var i				: uint				= 0;
+			var passId			: uint				= 0;

 			context.enableErrorChecking = (Minko.debugLevel & DebugLevel.CONTEXT) != 0;
-
+
 			// sort passes
 			if (!_passesAreSorted && numPasses > 1)
 			{
-				for (i = 0; i < numPasses; ++i)
-					sortValues[i] = -(_passes[i] as ShaderInstance).settings.priority;
+				for (passId = 0; passId < numPasses; ++passId)
+					sortValues[passId] = -(_passes[passId] as ShaderInstance).settings.priority;

 				Sort.flashSort(sortValues, _passes, numPasses);
 				_passesAreSorted = true;
@@ -258,9 +258,9 @@
 			var passes			: Array				= _passes.concat();
 			var clearedTargets	: Dictionary		= new Dictionary(true);

-			for (i = 0; i < numPasses; ++i)
-			{
-				var pass			: ShaderInstance	= passes[i];
+			for (passId = 0; passId < numPasses; ++passId)
+			{
+				var pass			: ShaderInstance	= passes[passId];
 				var calls 			: Array				= _passInstanceToDrawCalls[pass];
 				var settings		: ShaderSettings	= pass.settings;
 				var renderTarget 	: RenderTarget 		= settings.renderTarget || backBuffer;
@@ -274,7 +274,10 @@
 				clearedTargets[renderTarget] = true;

 				if (!pass.settings.enabled || !pass.shader.enabled || !calls)
+                {
+                    previous = pass;
 					continue;
+                }

 				++_numEnabledPasses;

@@ -287,8 +290,8 @@
 				// sort draw calls if necessary
 				if (pass.settings.depthSortDrawCalls)
 				{
-					for (var k : uint = 0; k < numCalls; ++k)
-						sortValues[k] = -(calls[k] as DrawCall).depth;
+					for (var drawCallId : uint = 0; drawCallId < numCalls; ++drawCallId)
+						sortValues[drawCallId] = -(calls[drawCallId] as DrawCall).depth;

 					Sort.flashSort(sortValues, calls, numCalls);
 				}


Out, vile dos line endings

Out, vile dos line endings

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

--- src/main/as/com/threerings/io/streamers/DelegatingStreamer.as
+++ src/main/as/com/threerings/io/streamers/DelegatingStreamer.as
@@ -1,70 +1,70 @@
-//
-// $Id$
-//
-// Narya library - tools for developing networked games
-// Copyright (C) 2002-2011 Three Rings Design, Inc., All Rights Reserved
-// http://code.google.com/p/narya/
-//
-// This library is free software; you can redistribute it and/or modify it
-// under the terms of the GNU Lesser General Public License as published
-// by the Free Software Foundation; either version 2.1 of the License, or
-// (at your option) any later version.
-//
-// This library is distributed in the hope that it will be useful,
-// but WITHOUT ANY WARRANTY; without even the implied warranty of
-// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
-// Lesser General Public License for more details.
-//
-// You should have received a copy of the GNU Lesser General Public
-// License along with this library; if not, write to the Free Software
-// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
-
-package com.threerings.io.streamers {
+//
+// $Id$
+//
+// Narya library - tools for developing networked games
+// Copyright (C) 2002-2011 Three Rings Design, Inc., All Rights Reserved
+// http://code.google.com/p/narya/
+//
+// This library is free software; you can redistribute it and/or modify it
+// under the terms of the GNU Lesser General Public License as published
+// by the Free Software Foundation; either version 2.1 of the License, or
+// (at your option) any later version.
+//
+// This library is distributed in the hope that it will be useful,
+// but WITHOUT ANY WARRANTY; without even the implied warranty of
+// MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the GNU
+// Lesser General Public License for more details.
+//
+// You should have received a copy of the GNU Lesser General Public
+// License along with this library; if not, write to the Free Software
+// Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 USA
+
+package com.threerings.io.streamers {
 import com.threerings.io.ObjectInputStream;
 import com.threerings.io.ObjectOutputStream;
 import com.threerings.io.Streamer;

-/**
- * A streamer that allows subclasses or implementations of the classes or interfaces supported by
- * other streamers to be included in upstream messages. All serialization support is impelemented
- * using the parent streamer, but the java class name is different. This is so that the streamer
- * caching mechanism and the upstream class mappings both work.
- */
-public class DelegatingStreamer extends Streamer
-{
-    public function DelegatingStreamer (parent :Streamer, targ:Class, jname:String=null)
-    {
-        super(targ, jname);
-        _parent = parent;
-    }
-
-    /** @inheritDoc */
-    override public function getUpstreamJavaClassName () :String
-    {
-        return _parent.getUpstreamJavaClassName();
-    }
-
-    /** @inheritDoc */
-    override public function writeObject (obj :Object, out :ObjectOutputStream) :void
-        //throws IOError
-    {
-        _parent.writeObject(obj, out);
-    }
-
-    /** @inheritDoc */
-    override public function createObject (ins :ObjectInputStream) :Object
-        //throws IOError
-    {
-        return _parent.createObject(ins);
-    }
-
-    /** @inheritDoc */
-    override public function readObject (obj :Object, ins :ObjectInputStream) :void
-        //throws IOError
-    {
-        _parent.readObject(obj, ins);
-    }
-
-    protected var _parent :Streamer;
-}
-}
+/**
+ * A streamer that allows subclasses or implementations of the classes or interfaces supported by
+ * other streamers to be included in upstream messages. All serialization support is impelemented
+ * using the parent streamer, but the java class name is different. This is so that the streamer
+ * caching mechanism and the upstream class mappings both work.
+ */
+public class DelegatingStreamer extends Streamer
+{
+    public function DelegatingStreamer (parent :Streamer, targ:Class, jname:String=null)
+    {
+        super(targ, jname);
+        _parent = parent;
+    }
+
+    /** @inheritDoc */
+    override public function getUpstreamJavaClassName () :String
+    {
+        return _parent.getUpstreamJavaClassName();
+    }
+
+    /** @inheritDoc */
+    override public function writeObject (obj :Object, out :ObjectOutputStream) :void
+        //throws IOError
+    {
+        _parent.writeObject(obj, out);
+    }
+
+    /** @inheritDoc */
+    override public function createObject (ins :ObjectInputStream) :Object
+        //throws IOError
+    {
+        return _parent.createObject(ins);
+    }
+
+    /** @inheritDoc */
+    override public function readObject (obj :Object, ins :ObjectInputStream) :void
+        //throws IOError
+    {
+        _parent.readObject(obj, ins);
+    }
+
+    protected var _parent :Streamer;
+}
+}


OFC-519 For composite attribute, check refresh of text when entering data fast

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/InputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/InputFieldPresenter.as
@@ -46,7 +46,6 @@
 		public static const REASON_BLANK_SYMBOLS:Array = [FieldSymbol.BLANK_ON_FORM, FieldSymbol.DASH_ON_FORM, FieldSymbol.ILLEGIBLE];

 		private var _view:InputField;
-		private var _changed:Boolean = false;
 		private var _contextMenu:InputFieldContextMenu;

 		private static var _dataClient:DataClient;
@@ -61,6 +60,7 @@
 			eventDispatcher.addEventListener(NodeEvent.DELETE_NODE, deleteNodeHandler);
 			eventDispatcher.addEventListener(NodeEvent.CONFIRM_ERROR, confirmErrorHandler);
 			eventDispatcher.addEventListener(NodeEvent.APPROVE_MISSING, approveMissingHandler);
+			eventDispatcher.addEventListener(NodeEvent.APPLY_DEFAULT_VALUE, applyDefaultValueHandler);
 		}

 		public function InputFieldPresenter(inputField:InputField) {
@@ -104,6 +104,16 @@
 				operation.nodeName = event.nodeName;
 				updRequest.addOperation(operation);
 			}
+			_dataClient.updateActiveRecord(updRequest, null, faultHandler);
+		}
+
+		protected static function applyDefaultValueHandler(event:NodeEvent):void {
+			var updRequestOp:UpdateRequestOperation = new UpdateRequestOperation();
+			updRequestOp.method = UpdateRequestOperation$Method.APPLY_DEFAULT_VALUE;
+			updRequestOp.parentEntityId = event.nodeProxy.parentId;
+			updRequestOp.nodeId = event.nodeProxy.id;
+
+			var updRequest:UpdateRequest = new UpdateRequest(updRequestOp);
 			_dataClient.updateActiveRecord(updRequest, null, faultHandler);
 		}

@@ -409,7 +419,9 @@
 			var hasRemarks:Boolean = false;
 			if(_view.attributeDefinition != null) {
 				var text:String = getTextFromValue();
-				_view.text = text;
+				if ( ! _view.changed ) {
+					_view.text = text;
+				}
 				hasRemarks = StringUtil.isNotBlank(getRemarks());
 				_contextMenu.updateItems();
 			}


OFC-537 Error when confirming errors on multiple code input field

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/InputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/InputFieldPresenter.as
@@ -251,14 +251,31 @@
 			}
 		}

-		protected static function confirmErrorHandler(event:NodeEvent): void {
+		protected static function confirmErrorHandler(event:NodeEvent):void {
+			var updRequest:UpdateRequest = new UpdateRequest();
+			var op:UpdateRequestOperation;
+			if ( event.nodeProxy != null ) {
+				op = createConfirmErrorOperation(event.nodeProxy);
+				updRequest.addOperation(op);
+			} else {
+				for each (var node:NodeProxy in event.nodes) {
+					var a:AttributeProxy = AttributeProxy(node);
+					if ( a.hasErrors() && ! a.errorConfirmed ) {
+						op = createConfirmErrorOperation(node);
+						updRequest.addOperation(op);
+					}
+				}
+			}
+			_dataClient.updateActiveRecord(updRequest, null, faultHandler);
+		}
+
+		protected static function createConfirmErrorOperation(node:NodeProxy):UpdateRequestOperation {
 			var updRequestOp:UpdateRequestOperation = new UpdateRequestOperation();
 			updRequestOp.method = UpdateRequestOperation$Method.CONFIRM_ERROR;
-			updRequestOp.nodeId = event.nodeProxy.id;
-			updRequestOp.parentEntityId = event.nodeProxy.parentId;
-
-			var updRequest:UpdateRequest = new UpdateRequest(updRequestOp);
-			_dataClient.updateActiveRecord(updRequest, null, faultHandler);
+			updRequestOp.parentEntityId = node.parentId;
+			updRequestOp.nodeName = node.name;
+			updRequestOp.nodeId = node.id;
+			return updRequestOp;
 		}

 		protected static function deleteNodeHandler(event:NodeEvent):void {


Update frame2.as

Update frame2.as

--- as/form/frame2.as
+++ as/form/frame2.as
@@ -1,4 +1,4 @@
-#include "includes/idiomes.as"
+#include "includes/idiomes.as"
 //Segonquart Studio 2007. Steal it with respect , honey ;-)
 //-------------------------------
 //Imports


renamed ShaderInstance.config to ShaderInstance.settings

--- src/aerys/minko/render/shader/ShaderInstance.as
+++ src/aerys/minko/render/shader/ShaderInstance.as
@@ -40,7 +40,7 @@
 			return _signature;
 		}

-		public function get config() : ShaderSettings
+		public function get settings() : ShaderSettings
 		{
 			return _config;
 		}
@@ -70,7 +70,7 @@
 									   backBuffer	: RenderTarget,
 									   previous		: ShaderInstance) : void
 		{
-			_config.prepareContext(context, backBuffer, previous != null ? previous.config : null);
+			_config.prepareContext(context, backBuffer, previous != null ? previous.settings : null);
 			_program.prepareContext(context, previous != null ? previous.program : null);
 		}


fix asdoc comment again

fix asdoc comment again

--- src/com/google/analytics/core/DomainNameMode.as
+++ src/com/google/analytics/core/DomainNameMode.as
@@ -83,10 +83,10 @@
          * Custom is used to set explicitly to your domain name if your website spans multiple hostnames,
          * and you want to track visitor behavior across all hosts.
          *
For example, if you have two hosts : server1.example.com and server2.example.com,
-         * you would set the domain name as follows :
+         * you would set the domain name as follows :

          *

          * pageTracker.setDomainName( new Domain( DomainName.custom, ".example.com" ) ) ;
-         *

+         *

          */
         public static const custom:DomainNameMode  = new DomainNameMode( 2, "custom" );


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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:
--------------
147 paths were modified

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

--- frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
+++ frameworks/projects/rpc/src/mx/messaging/messages/AsyncMessage.as
@@ -22,6 +22,12 @@

 /**
  *  AsyncMessage is the base class for all asynchronous messages.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion BlazeDS 4
+ *  @productversion LCDS 3
  */
 public class AsyncMessage extends AbstractMessage implements ISmallMessage
 {
@@ -34,6 +40,12 @@
 	/**
 	 *  Messages sent by a MessageAgent with a defined subtopic
 	 *  property indicate their target subtopic in this header.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion BlazeDS 4
+	 *  @productversion LCDS 3
 	 */
 	public static const SUBTOPIC_HEADER:String = "DSSubtopic";

@@ -64,6 +76,12 @@
      *  @param body The optional body to assign to the message.
      *
      *  @param headers The optional headers to assign to the message.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function AsyncMessage(body:Object = null, headers:Object = null)
     {
@@ -104,6 +122,12 @@
      *  previous message that this message refers to.
      *
      *  @see mx.messaging.messages.AbstractMessage#messageId
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion BlazeDS 4
+     *  @productversion LCDS 3
      */
     public function get correlationId():String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17522
Author:   jasonsj@adobe.com
Date:     2010-08-30T21:32:50.069066Z

Log Message:
-----------
ProgressBar, ToolTip and ButtonBarButton are discouraged for mobile.

QE notes:
Doc notes:
Bugs:
FBG-1722 codehints: <mx:ProgressBar> <mx:ToolTip><s:ToolTip> need to be discouraged for mobile
FBG-1723 codehints: <s:ButtonBarButton> need to be discouraged since <s:ButtonBar> is discouraged for mobile
Reviewer: rfrishbe
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ProgressBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/controls/ToolTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>

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

--- frameworks/projects/spark/src/spark/components/ButtonBarButton.as
+++ frameworks/projects/spark/src/spark/components/ButtonBarButton.as
@@ -31,6 +31,18 @@
  *
  */
 [Event(name="dataChange", type="mx.events.FlexEvent")]
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+/**
+ * Because this component does not define a skin for the mobile theme, Adobe
+ * recommends that you not use it in a mobile application. Alternatively, you
+ * can define your own mobile skin for the component. For more information,
+ * see Spark Skinning.
+ */
+[DiscouragedForProfile("mobileDevice")]

 /**
  *  The ButtonBarButton class defines the custom item renderer


Transferred from the Adobe Open Source Subversion Repository

Revision: 3553
Author:   chaase@adobe.com
Date:     2008-10-09T23:14:18.257660Z

Log Message:
-----------
Fixed sdk-17113, sdk-17139, sdk-16526, sdk-16884, sdk-17154, sdk-16999, sdk-16631, sdk-17214. Most of these fixes are related to making effects work when contraints are enabled on the target. For that, two new attributes were added to FxAnimate: disableLayout (default false) and adjustConstraints (default false). Fixes were also made for various other effects issues, such as running all animations and startDelays off of the same global timer.
The change also includes renames of some effects classes and the easing API (now in mx.effects.interpolation).

Reviewed by: Jason (effects code) and Hans (renames)
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxResizeInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/IEaser.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/IEaser.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Linear.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Animate3DInstance.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimate3DInstance.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animate3D.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxMoveInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Animate3DInstance.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Timeline.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Constant.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Constant.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Rotate3DInstance.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxRotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Rotate3D.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate3D.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/EaseInOut.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/EaseInOut.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Power.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Power.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/Rotate3DInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>
<path kind="file" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Sine.as" copyfrom-rev="3548" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/Sine.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Rotate3D.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Timeline.as
+++ frameworks/projects/spark/src/spark/effects/animation/Timeline.as
@@ -0,0 +1,64 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.effects
+{
+import flash.utils.getTimer;
+
+/**
+ * The Timeline class is an internal utility used by Animation to
+ * keep a single pulse for animations. This ensures that all animations
+ * run off a single timer, rather than individually calling getTimer().
+ * This approach means that effects that are set up to end/start at the same
+ * time, through use of duration and startDelay properties, will be
+ * synchronized.
+ */
+internal class Timeline
+{
+    // TODO (chaase): This class is internal for now, but it may eventually
+    // make sense to make it public and accessible outside of just the
+    // Animation class. For example, effects may want to access the global
+    // animation time. Also, we  may want to have child timelines, or expose
+    // other capabilities such as speeding up and slowing down time.
+    // Note that the static methods may instead become instance methods
+    // on a singleton.
+
+    private static var startTime:int = -1;
+    private static var _currentTime:int = -1;
+
+    public function Timeline()
+    {
+    }
+
+    public static function pulse():int
+    {
+        if (startTime < 0)
+        {
+            startTime = getTimer();
+            _currentTime = 0;
+            return _currentTime;
+        }
+        _currentTime = getTimer() - startTime;
+        return _currentTime;
+    }
+
+    public static function get currentTime():int
+    {
+        if (_currentTime < 0)
+        {
+            var retVal:int = pulse();
+            return pulse();
+        }
+        return _currentTime;
+    }
+
+}
+}


Updated version to "1.0 Beta Nightly Build"

Change-Id: I83ba35ecc48a26aec4083c33392519d996e405b2

--- WeaveUI/src/weave/WeaveProperties.as
+++ WeaveUI/src/weave/WeaveProperties.as
@@ -40,7 +40,7 @@
 	 */
 	public class WeaveProperties implements ILinkableObject
 	{
-		public const version:LinkableString = new LinkableString("1.0 Beta 1"); // Weave version
+		public const version:LinkableString = new LinkableString("1.0 Beta Nightly Build"); // Weave version

 		public function WeaveProperties()
 		{


XIFF-104: RFC 6122 linking

XIFF-104: RFC 6122 linking

git-svn-id: c197267f952b24206666de142881703007ca05d5@13295 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/igniterealtime/xiff/core/AbstractJID.as
+++ src/org/igniterealtime/xiff/core/AbstractJID.as
@@ -216,54 +216,62 @@
 		/**
 		 * The resource portion of the JID.
 		 *
-		 * Ensure that the resourcepart of an XMPP address is at
-least one byte in length and at most 1023 bytes in length.
-		 *
-		 * The resourcepart of a JID is an optional identifier placed after the
-domainpart and separated from the latter by the ’/’ character. A
-resourcepart can modify either a <localpart@domainpart> address or a
-mere <domainpart> address. Typically a resourcepart uniquely
-identifies a specific connection (e.g., a device or location) or
-object (e.g., an occupant in a multi-user chat room) belonging to the
-entity associated with an XMPP localpart at a domain (i.e.,
-<localpart@domainpart/resourcepart>).
-A resourcepart MUST be formatted such that the Resourceprep profile
-of [STRINGPREP] can be applied without failing (see Appendix B).
-Before comparing two resourceparts, an application MUST first ensure
-that the Resourceprep profile has been applied to each identifier
-(the profile need not be applied each time a comparison is made, as
-long as it has been applied before comparison).
-A resourcepart MUST NOT be zero bytes in length and MUST NOT be more
-than 1023 bytes in length. This rule is to be enforced after any
-mapping or normalization resulting from application of the
-Resourceprep profile of stringprep (e.g., in Resourceprep some
-characters can be mapped to nothing, which might result in a string
-of zero length).
-Informational Note: For historical reasons, the term "resource
-identifier" is often used in XMPP to refer to the optional portion
-of an XMPP address that follows the domainpart and the "/"
-separator character; to help prevent confusion between an XMPP
-"resource identifier" and the meanings of "resource" and
-"identifier" provided in Section 1.1 of [URI], this specification
-uses the term "resourcepart" instead of "resource identifier" (as
-in RFC 3920).
-
-XMPP entities SHOULD consider resourceparts to be opaque strings and
-SHOULD NOT impute meaning to any given resourcepart. In particular:
-o Use of the ’/’ character as a separator between the domainpart and
-the resourcepart does not imply that XMPP addresses are
-hierarchical in the way that, say, HTTP addresses are
-hierarchical; thus for example an XMPP address of the form
-<localpart@domainpart/foo/bar> does not identify a resource "bar"
-that exists below a resource "foo" in a hierarchy of resources
-associated with the entity "localpart@domain".
-o The ’@’ character is allowed in the resourcepart and is often used
-in the "nick" shown in XMPP chatrooms. For example, the JID
-<room@chat.example.com/user@host> describes an entity who is an
-occupant of the room <room@chat.example.com> with an (asserted)
-nick of <user@host>. However, chatroom services do not
-necessarily check such an asserted nick against the occupant’s
-real JID.
+		 *
Ensure that the resourcepart of an XMPP address is at
+		 * least one byte in length and at most 1023 bytes in length.

+		 *
+		 *
The resourcepart of a JID is an optional identifier placed after the
+		 * domainpart and separated from the latter by the ’/’ character. A
+		 * resourcepart can modify either a <localpart@domainpart> address or a
+		 * mere <domainpart> address. Typically a resourcepart uniquely
+		 * identifies a specific connection (e.g., a device or location) or
+		 * object (e.g., an occupant in a multi-user chat room) belonging to the
+		 * entity associated with an XMPP localpart at a domain (i.e.,
+		 * <localpart@domainpart/resourcepart>).

+		 *
+		 *
A resourcepart MUST be formatted such that the Resourceprep profile
+		 * of [STRINGPREP] can be applied without failing (see Appendix B).
+		 * Before comparing two resourceparts, an application MUST first ensure
+		 * that the Resourceprep profile has been applied to each identifier
+		 * (the profile need not be applied each time a comparison is made, as
+		 * long as it has been applied before comparison).

+		 *
+		 *
A resourcepart MUST NOT be zero bytes in length and MUST NOT be more
+		 * than 1023 bytes in length. This rule is to be enforced after any
+		 * mapping or normalization resulting from application of the
+		 * Resourceprep profile of stringprep (e.g., in Resourceprep some
+		 * characters can be mapped to nothing, which might result in a string
+		 * of zero length).

+		 *
+		 *
Informational Note: For historical reasons, the term "resource
+		 * identifier" is often used in XMPP to refer to the optional portion
+		 * of an XMPP address that follows the domainpart and the "/"
+		 * separator character; to help prevent confusion between an XMPP
+		 * "resource identifier" and the meanings of "resource" and
+		 * "identifier" provided in Section 1.1 of [URI], this specification
+		 * uses the term "resourcepart" instead of "resource identifier" (as
+		 * in RFC 3920).

+		 *
+		 *
XMPP entities SHOULD consider resourceparts to be opaque strings and
+		 * SHOULD NOT impute meaning to any given resourcepart. In particular:

+		 *
+		 *

+		 *
Use of the ’/’ character as a separator between the domainpart and
+		 * the resourcepart does not imply that XMPP addresses are
+		 * hierarchical in the way that, say, HTTP addresses are
+		 * hierarchical; thus for example an XMPP address of the form
+		 * <localpart@domainpart/foo/bar> does not identify a resource "bar"
+		 * that exists below a resource "foo" in a hierarchy of resources
+		 * associated with the entity "localpart@domain".

+		 *
The ’@’ character is allowed in the resourcepart and is often used
+		 * in the "nick" shown in XMPP chatrooms. For example, the JID
+		 * <room@chat.example.com/user@host> describes an entity who is an
+		 * occupant of the room <room@chat.example.com> with an (asserted)
+		 * nick of <user@host>. However, chatroom services do not
+		 * necessarily check such an asserted nick against the occupant’s
+		 * real JID.

+		 *

+		 *
+		 * @see http://tools.ietf.org/html/rfc6122#section-2.4
 		 */
 		public function get resource():String
 		{
@@ -285,31 +293,32 @@
 		/**
 		 * The localpart (used to be called 'node') portion of the JID.
 		 *
-		 * Ensure that the localpart of an XMPP address is at
-least one byte in length and at most 1023 bytes in length
-		 *
-		 * The localpart of a JID is an optional identifier placed before the
-domainpart and separated from the latter by the ’@’ character.
-Typically a localpart uniquely identifies the entity requesting and
-using network access provided by a server (i.e., a local account),
-although it can also represent other kinds of entities (e.g., a chat
-room associated with a multi-user chat service). The entity
-represented by an XMPP localpart is addressed within the context of a
-specific domain (i.e., <localpart@domainpart>).
-A localpart MUST be formatted such that the Nodeprep profile of
-[STRINGPREP] can be applied without failing (see Appendix A). Before
-comparing two localparts, an application MUST first ensure that the
-Nodeprep profile has been applied to each identifier (the profile
-need not be applied each time a comparison is made, as long as it has
-been applied before comparison).
-A localpart MUST NOT be zero bytes in length and MUST NOT be more
-than 1023 bytes in length. This rule is to be enforced after any
-mapping or normalization resulting from application of the Nodeprep
-profile of stringprep (e.g., in Nodeprep some characters can be
-mapped to nothing, which might result in a string of zero length).
-
-
-
+		 *
Ensure that the localpart of an XMPP address is at
+		 * least one byte in length and at most 1023 bytes in length.

+		 *
+		 *
The localpart of a JID is an optional identifier placed before the
+		 * domainpart and separated from the latter by the ’@’ character.
+		 * Typically a localpart uniquely identifies the entity requesting and
+		 * using network access provided by a server (i.e., a local account),
+		 * although it can also represent other kinds of entities (e.g., a chat
+		 * room associated with a multi-user chat service). The entity
+		 * represented by an XMPP localpart is addressed within the context of a
+		 * specific domain (i.e., <localpart@domainpart>).

+		 *
+		 *
A localpart MUST be formatted such that the Nodeprep profile of
+		 * [STRINGPREP] can be applied without failing (see Appendix A). Before
+		 * comparing two localparts, an application MUST first ensure that the
+		 * Nodeprep profile has been applied to each identifier (the profile
+		 * need not be applied each time a comparison is made, as long as it has
+		 * been applied before comparison).

+		 *
+		 *
A localpart MUST NOT be zero bytes in length and MUST NOT be more
+		 * than 1023 bytes in length. This rule is to be enforced after any
+		 * mapping or normalization resulting from application of the Nodeprep
+		 * profile of stringprep (e.g., in Nodeprep some characters can be
+		 * mapped to nothing, which might result in a string of zero length).

+		 *
+		 * @see http://tools.ietf.org/html/rfc6122#section-2.3
 		 */
 		public function get localpart():String
 		{
@@ -331,75 +340,83 @@
 		/**
 		 * The domain portion of the JID.
 		 *
-		 * Ensure that the domainpart of an XMPP address is at
-least one byte in length and at most 1023 bytes in length, and
-conforms to the underlying length limits of the DNS.
-		 *
-		 * The domainpart of a JID is that portion after the ’@’ character (if
-any) and before the ’/’ character (if any); it is the primary
-identifier and is the only REQUIRED element of a JID (a mere
-domainpart is a valid JID). Typically a domainpart identifies the
-"home" server to which clients connect for XML routing and data
-management functionality. However, it is not necessary for an XMPP
-domainpart to identify an entity that provides core XMPP server
-functionality (e.g., a domainpart can identify an entity such as a
-multi-user chat service, a publish-subscribe service, or a user
-directory).
-The domainpart for every XMPP service MUST be a fully qualified
-domain name (FQDN; see [DNS]), IPv4 address, IPv6 address, or
-unqualified hostname (i.e., a text label that is resolvable on a
-local network).
-Interoperability Note: Domainparts that are IP addresses might not
-be accepted by other services for the sake of server-to-server
-communication, and domainparts that are unqualified hostnames
-cannot be used on public networks because they are resolvable only
-on a local network.
-If the domainpart includes a final character considered to be a label
-separator (dot) by [IDNA2003] or [DNS], this character MUST be
-stripped from the domainpart before the JID of which it is a part is
-used for the purpose of routing an XML stanza, comparing against
-another JID, or constructing an [XMPP-URI]. In particular, the
-character MUST be stripped before any other canonicalization steps
-are taken, such as application of the [NAMEPREP] profile of
-[STRINGPREP] or completion of the ToASCII operation as described in
-[IDNA2003].
-A domainpart consisting of a fully qualified domain name MUST be an
-"internationalized domain name" as defined in [IDNA2003]; that is, it
-MUST be "a domain name in which every label is an internationalized
-label" and MUST follow the rules for construction of
-internationalized domain names specified in [IDNA2003]. When
-preparing a text label (consisting of a sequence of UTF-8 encoded
-Unicode code points) for representation as an internationalized label
-in the process of constructing an XMPP domainpart or comparing two
-XMPP domainparts, an application MUST ensure that for each text label
-it is possible to apply without failing the ToASCII operation
-specified in [IDNA2003] with the UseSTD3ASCIIRules flag set (thus
-forbidding ASCII code points other than letters, digits, and
-hyphens). If the ToASCII operation can be applied without failing,
-then the label is an internationalized label. (Note: The ToASCII
-operation includes application of the [NAMEPREP] profile of
-[STRINGPREP] and encoding using the algorithm specified in
-[PUNYCODE]; for details, see [IDNA2003].) Although XMPP applications
-do not communicate the output of the ToASCII operation (called an
-"ACE label") over the wire, it MUST be possible to apply that
-operation without failing to each internationalized label. If an
-XMPP application receives as input an ACE label, it SHOULD convert
-that ACE label to an internationalized label using the ToUnicode
-operation (see [IDNA2003]) before including the label in an XMPP
-domainpart that will be communicated over the wire on an XMPP network
-(however, instead of converting the label, there are legitimate
-reasons why an application might instead refuse the input altogether
-and return an error to the entity that provided the offending data).
-A domainpart MUST NOT be zero bytes in length and MUST NOT be more
-than 1023 bytes in length. This rule is to be enforced after any
-mapping or normalization resulting from application of the Nameprep
-profile of stringprep (e.g., in Nameprep some characters can be
-mapped to nothing, which might result in a string of zero length).
-Naturally, the length limits of [DNS] apply, and nothing in this
-document is to be interpreted as overriding those more fundamental
-limits.
-In the terms of IDNA2008 [IDNA-DEFS], the domainpart of a JID is a
-"domain name slot".
+		 *
Ensure that the domainpart of an XMPP address is at
+		 * least one byte in length and at most 1023 bytes in length, and
+		 * conforms to the underlying length limits of the DNS.

+		 *
+		 *
The domainpart of a JID is that portion after the ’@’ character (if
+		 * any) and before the ’/’ character (if any); it is the primary
+		 * identifier and is the only REQUIRED element of a JID (a mere
+		 * domainpart is a valid JID). Typically a domainpart identifies the
+		 * "home" server to which clients connect for XML routing and data
+		 * management functionality. However, it is not necessary for an XMPP
+		 * domainpart to identify an entity that provides core XMPP server
+		 * functionality (e.g., a domainpart can identify an entity such as a
+		 * multi-user chat service, a publish-subscribe service, or a user
+		 * directory).

+		 *
+		 *
The domainpart for every XMPP service MUST be a fully qualified
+		 * domain name (FQDN; see [DNS]), IPv4 address, IPv6 address, or
+		 * unqualified hostname (i.e., a text label that is resolvable on a
+		 * local network).

+		 *
+		 *
Interoperability Note: Domainparts that are IP addresses might not
+		 * be accepted by other services for the sake of server-to-server
+		 * communication, and domainparts that are unqualified hostnames
+		 * cannot be used on public networks because they are resolvable only
+		 * on a local network.

+		 *
+		 *
If the domainpart includes a final character considered to be a label
+		 * separator (dot) by [IDNA2003] or [DNS], this character MUST be
+		 * stripped from the domainpart before the JID of which it is a part is
+		 * used for the purpose of routing an XML stanza, comparing against
+		 * another JID, or constructing an [XMPP-URI]. In particular, the
+		 * character MUST be stripped before any other canonicalization steps
+		 * are taken, such as application of the [NAMEPREP] profile of
+		 * [STRINGPREP] or completion of the ToASCII operation as described in
+		 * [IDNA2003].

+		 *
+		 *
A domainpart consisting of a fully qualified domain name MUST be an
+		 * "internationalized domain name" as defined in [IDNA2003]; that is, it
+		 * MUST be "a domain name in which every label is an internationalized
+		 * label" and MUST follow the rules for construction of
+		 * internationalized domain names specified in [IDNA2003]. When
+		 * preparing a text label (consisting of a sequence of UTF-8 encoded
+		 * Unicode code points) for representation as an internationalized label
+		 * in the process of constructing an XMPP domainpart or comparing two
+		 * XMPP domainparts, an application MUST ensure that for each text label
+		 * it is possible to apply without failing the ToASCII operation
+		 * specified in [IDNA2003] with the UseSTD3ASCIIRules flag set (thus
+		 * forbidding ASCII code points other than letters, digits, and
+		 * hyphens). If the ToASCII operation can be applied without failing,
+		 * then the label is an internationalized label. (Note: The ToASCII
+		 * operation includes application of the [NAMEPREP] profile of
+		 * [STRINGPREP] and encoding using the algorithm specified in
+		 * [PUNYCODE]; for details, see [IDNA2003].) Although XMPP applications
+		 * do not communicate the output of the ToASCII operation (called an
+		 * "ACE label") over the wire, it MUST be possible to apply that
+		 * operation without failing to each internationalized label. If an
+		 * XMPP application receives as input an ACE label, it SHOULD convert
+		 * that ACE label to an internationalized label using the ToUnicode
+		 * operation (see [IDNA2003]) before including the label in an XMPP
+		 * domainpart that will be communicated over the wire on an XMPP network
+		 * (however, instead of converting the label, there are legitimate
+		 * reasons why an application might instead refuse the input altogether
+		 * and return an error to the entity that provided the offending data).

+		 *
+		 *
A domainpart MUST NOT be zero bytes in length and MUST NOT be more
+		 * than 1023 bytes in length. This rule is to be enforced after any
+		 * mapping or normalization resulting from application of the Nameprep
+		 * profile of stringprep (e.g., in Nameprep some characters can be
+		 * mapped to nothing, which might result in a string of zero length).
+		 * Naturally, the length limits of [DNS] apply, and nothing in this
+		 * document is to be interpreted as overriding those more fundamental
+		 * limits.

+		 *
+		 *
In the terms of IDNA2008 [IDNA-DEFS], the domainpart of a JID is a
+		 * "domain name slot".

+		 *
+		 * @see http://tools.ietf.org/html/rfc6122#section-2.2
 		 */
 		public function get domain():String
 		{