Transferred from the Adobe Open Source Subversion Repository

Revision: 3237
Author:   hmuller@adobe.com
Date:     2008-09-16T22:57:19.486417Z

Log Message:
-----------
- Added HGroup and VGroup wrappers for Group+Horizontal,VerticalLayout.

- Removed the provisional support for specifying layout with a
classname string.  The type of the layout property in Group
and in ItemsComponent is now ILayout.

More about the rationale for this change here:
https://zerowing.corp.adobe.com/display/flex/Shorthand+MXML+syntax+for+object+values

Now, one must either use HGroup,VGroup or an explicit layout tag.
This change will affect most MXML files.  Upgrading is pretty easy.
For example, change

  <Group layout="flex.layout.VerticalLayout"/>

to this:

  <Group>
      <layout> <VerticalLayout/> </layout>
  </Group>

or this:

  <VGroup/>

The Panel and Application classes, whose default layout is BasicLayout,
have to be upgraded with an additional layout element, as in the
first example.

Substantially revised ScrollerSkin's measure and updateDisplayList
methods. The latter now calls invalidateSize (on itself!) if the
visibility of either scrollbar changes.  This causes the measure
method to compute new values for measuredWidth,Height based on the new
visibility state for the scrollbars.  When the scroll policy is "auto"
the Scroller's measured size includes space for the visible
scrollbars.

Note also: the logic for calling updateDisplayList and then restarting
the process if the component has become invalid is in
mx.managers.LayoutManager::validateDisplayList.

- Removed the protected Group invalidateSizeAndLayout() method.
It wasn't being used.

QE: This change will break many existing tests
Doc: No
Checkintests: Pass
Reviewer: Evtim
Bugs:
  SDK-16782 -  ScrollBars overlap content in Scroller

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/states/statefulNodes.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/AddItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/PanelSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/layout/layout.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/RemoveItemsTest.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/ItemsComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ItemsComponentSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/DefaultItemRenderer.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/states/statefulAttributes.mxml</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/skin/ListSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/tests/flex4/flex4test.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ToggleButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/SelectorSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/core/Group.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/skin/ScrollerSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/flex4test.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/VGroup.as
+++ frameworks/projects/spark/src/spark/components/VGroup.as
@@ -0,0 +1,149 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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 flex.component
+{
+import flex.core.Group;
+import flex.intf.ILayout;
+import flex.layout.VerticalLayout;
+
+/**
+ *  A Group with a VerticalLayout.
+ *
+ *  All of the VerticalLayout properties exposed by this class are simply
+ *  delegated to the layout property.
+ *
+ *  The layout property should not be set or configured directly.
+ *
+ *  @see flex.layout.VerticalLayout
+ */
+public class VGroup extends Group
+{
+    /**
+     *  Initializes the layout property to an instance of VerticalLayout.
+     *
+     *  @see flex.layout.VerticalLayout
+     */
+	public function VGroup():void
+	{
+		super();
+		super.layout = new VerticalLayout();
+	}
+
+    private function get verticalLayout():VerticalLayout
+    {
+        return VerticalLayout(layout);
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  gap
+    //----------------------------------
+
+    /**
+     * @copy flex.layout.VerticalLayout#gap
+     */
+    public function get gap():int
+    {
+        return verticalLayout.gap;
+    }
+
+    /**
+     *  @private
+     */
+    public function set gap(value:int):void
+    {
+        verticalLayout.gap = value;
+    }
+
+    //----------------------------------
+    //  rowCount
+    //----------------------------------
+
+    /**
+     * @copy flex.layout.VerticalLayout#rowCount
+     */
+    public function get rowCount():int
+    {
+        return verticalLayout.rowCount;
+    }
+
+    //----------------------------------
+    //  requestedRowCount
+    //----------------------------------
+
+    /**
+     * @copy flex.layout.VerticalLayout#requestedRowCount
+     */
+    public function get requestedRowCount():int
+    {
+        return verticalLayout.requestedRowCount;
+    }
+
+    /**
+     *  @private
+     */
+    public function set requestedRowCount(value:int):void
+    {
+        verticalLayout.requestedRowCount = value;
+    }
+
+    //----------------------------------
+    //  rowHeight
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     * @copy flex.layout.VerticalLayout#rowHeight
+     */
+    public function get rowHeight():Number
+    {
+        return verticalLayout.rowHeight;
+    }
+
+    /**
+     *  @private
+     */
+    public function set rowHeight(value:Number):void
+    {
+        verticalLayout.rowHeight = value;
+    }
+
+    //----------------------------------
+    //  variableRowHeight
+    //----------------------------------
+
+    [Inspectable(category="General")]
+
+    /**
+     * @copy flex.layout.VerticalLayout#variableRowHeight
+     */
+    public function get variableRowHeight():Boolean
+    {
+        return verticalLayout.variableRowHeight;
+    }
+
+    /**
+     *  @private
+     */
+    public function set variableRowHeight(value:Boolean):void
+    {
+        verticalLayout.variableRowHeight = value;
+    }
+
+}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5393
Author:   rfrishbe@adobe.com
Date:     2009-03-18T17:43:37.919635Z

Log Message:
-----------
For item renderers, we weren't correctly parsing the color name for alternatingItemColor.

Also, in VGroup/HGroup, we ended up allocating 2 different layout objects.  Now, we only allocate one of them because the GroupBase constructor takes an optional layout parameter.

QE Notes: -
Doc Notes: -
Bugs: SDK-19486, SDK-19976
Reviewer: Deepa
tests: checkintests, datagroup, group, fxdatacontainer, list (some failed, but qa has approved me as they must be Mac issues)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/VGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/HGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/baseClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/VGroup.as
+++ frameworks/projects/spark/src/spark/components/VGroup.as
@@ -52,8 +52,7 @@
      */
 	public function VGroup():void
 	{
-		super();
-		layout = new VerticalLayout();
+		super(new VerticalLayout());
 	}

     private function get verticalLayout():VerticalLayout


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

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


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

--- frameworks/projects/spark/src/spark/effects/CrossFade.as
+++ frameworks/projects/spark/src/spark/effects/CrossFade.as
@@ -1,13 +1,3 @@
-////////////////////////////////////////////////////////////////////////////////
-//
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2008 Adobe Systems Incorporated
-//  All Rights Reserved.
-//
-//  NOTICE: Adobe permits you to use, modify, and distribute this file
-//  in accordance with the terms of the license agreement accompanying it.
-//
-////////////////////////////////////////////////////////////////////////////////
 package spark.effects
 {
 import flash.utils.ByteArray;


Renaming *Vector AST nodes to *Register

Renaming *Vector AST nodes to *Register

--- raw/src/org/yellcorp/lib/layout/Layout.as
+++ raw/src/org/yellcorp/lib/layout/Layout.as
@@ -273,7 +273,7 @@

         var regIndex:uint = regs.nextFreeIndex();
         var measureNode:ASTNode = nodeFactory.measure(target, targetVirtualProp, relative, relativeVirtualProp);
-        var storeNode:ASTNode = new SetVector(regs.regv, regIndex, measureNode);
+        var storeNode:ASTNode = new SetRegister(regs.regv, regIndex, measureNode);
         var calculateNode:ASTNode = nodeFactory.calculate(regIndex, relative, relativeVirtualProp);

         virtualMeasureProgram.push(storeNode);
@@ -653,7 +653,7 @@
     {
         return new Add(
             new GetVirtualProp(relativeObject, relativeProperty),
-            new ReadOnly(new GetVector(regv, registerIndex))
+            new ReadOnly(new GetRegister(regv, registerIndex))
         );
     }
 }
@@ -680,7 +680,7 @@
     {
         return new Multiply(
             new GetVirtualProp(relativeObject, relativeProperty),
-            new ReadOnly(new GetVector(regv, registerIndex))
+            new ReadOnly(new GetRegister(regv, registerIndex))
         );
     }
 }
@@ -960,45 +960,45 @@
 }

-class GetVector implements ASTNode
-{
-    public var vector:Vector.<Number>;
+class GetRegister implements ASTNode
+{
+    public var regv:Vector.<Number>;
     public var index:uint;
-    public function GetVector(vector:Vector.<Number>, index:uint)
-    {
-        this.vector = vector;
+    public function GetRegister(regv:Vector.<Number>, index:uint)
+    {
+        this.regv = regv;
         this.index = index;
     }
     public function eval():*
     {
-        return vector[index];
+        return regv[index];
     }
     public function acceptFilter(filter:ASTFilter):ASTNode
     {
-        return filter.filterGetVectorNode(this);
+        return filter.filterGetRegisterNode(this);
     }
     public function filterChildren(filter:ASTFilter):void { }
 }

-class SetVector implements ASTNode
-{
-    public var vector:Vector.<Number>;
+class SetRegister implements ASTNode
+{
+    public var regv:Vector.<Number>;
     public var index:uint;
     public var child:ASTNode;
-    public function SetVector(vector:Vector.<Number>, index:uint, child:ASTNode)
-    {
-        this.vector = vector;
+    public function SetRegister(regv:Vector.<Number>, index:uint, child:ASTNode)
+    {
+        this.regv = regv;
         this.index = index;
         this.child = child;
     }
     public function eval():*
     {
-        return vector[index] = child.eval();
+        return regv[index] = child.eval();
     }
     public function acceptFilter(filter:ASTFilter):ASTNode
     {
-        return filter.filterSetVectorNode(this);
+        return filter.filterSetRegisterNode(this);
     }
     public function filterChildren(filter:ASTFilter):void
     {
@@ -1049,8 +1049,8 @@
     public function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode { return n; }
     public function filterGetVirtualPropNode(n:GetVirtualProp):ASTNode { return n; }
     public function filterSetVirtualPropsNode(n:SetVirtualProps):ASTNode { return n; }
-    public function filterSetVectorNode(n:SetVector):ASTNode { return n; }
-    public function filterGetVectorNode(n:GetVector):ASTNode { return n; }
+    public function filterSetRegisterNode(n:SetRegister):ASTNode { return n; }
+    public function filterGetRegisterNode(n:GetRegister):ASTNode { return n; }
     public function filterReadOnlyNode(n:ReadOnly):ASTNode { return n; }
     public function filterValueNode(n:Value):ASTNode { return n; }
 }
@@ -1068,8 +1068,8 @@
     public override function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode { return new SetRuntimeProp(n.object, n.prop, n.child); }
     public override function filterGetVirtualPropNode(n:GetVirtualProp):ASTNode { return new GetVirtualProp(n.object, n.vprop); }
     public override function filterSetVirtualPropsNode(n:SetVirtualProps):ASTNode { return new SetVirtualProps(n.object, n.vprop0, n.child0, n.vprop1, n.child1); }
-    public override function filterSetVectorNode(n:SetVector):ASTNode { return new SetVector(n.vector, n.index, n.child); }
-    public override function filterGetVectorNode(n:GetVector):ASTNode { return new GetVector(n.vector, n.index); }
+    public override function filterSetRegisterNode(n:SetRegister):ASTNode { return new SetRegister(n.regv, n.index, n.child); }
+    public override function filterGetRegisterNode(n:GetRegister):ASTNode { return new GetRegister(n.regv, n.index); }
     public override function filterReadOnlyNode(n:ReadOnly):ASTNode { return new ReadOnly(n.child); }
     public override function filterValueNode(n:Value):ASTNode { return new Value(n.value); }
 }
@@ -1432,15 +1432,15 @@
         return n;
     }

-    public override  function filterSetVectorNode(n:SetVector):ASTNode
-    {
-        println("SetVector(" + n.index + ")");
-        return n;
-    }
-
-    public override function filterGetVectorNode(n:GetVector):ASTNode
-    {
-        println("GetVector(" + n.index + ")");
+    public override  function filterSetRegisterNode(n:SetRegister):ASTNode
+    {
+        println("SetRegister(" + n.index + ")");
+        return n;
+    }
+
+    public override function filterGetRegisterNode(n:GetRegister):ASTNode
+    {
+        println("GetRegister(" + n.index + ")");
         return n;
     }


adjusted console libraries

adjusted console libraries

--- WeaveCore/src/weave/utils/ConsoleEngine.as
+++ WeaveCore/src/weave/utils/ConsoleEngine.as
@@ -22,7 +22,9 @@

 	import avmplus.DescribeType;

+	import weave.api.getSessionState;
 	import weave.api.reportError;
+	import weave.api.setSessionState;
 	import weave.compiler.Compiler;
 	import weave.compiler.GlobalLib;
 	import weave.compiler.ICompiledObject;
@@ -33,7 +35,7 @@
 	{
 		public function ConsoleEngine()
 		{
-			compiler.includeLibraries(GlobalLib, ObjectUtil, WeaveAPI.SessionManager, DescribeType, DebugUtils);
+			compiler.includeLibraries(GlobalLib, ObjectUtil, DescribeType, DebugUtils);
 			compiler.setHashOperator(debugHelper);
 			compiler.setEvalFunction(runCommand);
 		}
@@ -66,6 +68,8 @@
 			'chain': methodChainer,
 			'display': DebugUtils.debugDisplayList,
 			'debugCompiler': function(script:String):String { return ObjectUtil.toString(new Compiler().compileToObject(script), null, 'evaluatedMethod,evaluatedHost,evaluatedMethodName,evaluatedParams,evalIndex,originalTokens'.split(',')); },
+			'getState': getSessionState as Function,
+			'setState': setSessionState as Function,
 			'_': {}
 		};


Transferred from the Adobe Open Source Subversion Repository

Revision: 12850
Author:   jimurphy@adobe.com
Date:     2009-12-11T14:57:14.623098Z

Log Message:
-----------
add 6 new DMV projects to the SDK:
automation
automation_air
automation_dmv
automation_flashflexkit
automation_spark
datavisualization

These projects are setup to build in an ant main call.  There are currently several warnings in the datavisualization project that will be cleaned up.  No checkintests exist for these projects as of yet.

I also modified the exisitng projects build files for easier management of the localization targets, bundle and fat-swc. If the projects that I updated:airframework,airspark,framework,playerglobal,rpc,and spark.  All the new projects have been implemented this same way.

QE notes: DMV folks should run through their tests
Doc notes: probably
Bugs: nope
Reviewer:
Tests run: ran the following targets: compile,checkintests,other.locales and doc
Is noteworthy for integration: no

Modified Paths:
--------------
1404 paths were modified

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

--- frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
+++ frameworks/projects/advancedgrids/src/mx/printing/PrintAdvancedDataGrid.as
@@ -0,0 +1,967 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.printing
+{
+
+import flash.events.KeyboardEvent;
+
+import mx.collections.CursorBookmark;
+import mx.controls.AdvancedDataGrid;
+import mx.controls.advancedDataGridClasses.AdvancedDataGridColumn;
+import mx.core.EdgeMetrics;
+import mx.core.ScrollPolicy;
+import mx.core.mx_internal;
+import mx.events.AdvancedDataGridEvent;
+
+use namespace mx_internal;
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+//--------------------------------------
+//  public properties
+//--------------------------------------
+
+[Exclude(name="allowDragSelection", kind="property")]
+[Exclude(name="allowMultipleSelection", kind="property")]
+[Exclude(name="dataTipField", kind="property")]
+[Exclude(name="dataTipFunction", kind="property")]
+[Exclude(name="doubleClickEnabled", kind="property")]
+[Exclude(name="dragEnabled", kind="property")]
+[Exclude(name="draggableColumns", kind="property")]
+[Exclude(name="dragMoveEnabled", kind="property")]
+[Exclude(name="dropEnabled", kind="property")]
+[Exclude(name="dropTarget", kind="property")]
+[Exclude(name="editable", kind="property")]
+[Exclude(name="editedItemPosition", kind="property")]
+[Exclude(name="editedItemRenderer", kind="property")]
+[Exclude(name="horizontalScrollBar", kind="property")]
+[Exclude(name="horizontalScrollPolicy", kind="property")]
+[Exclude(name="maxHorizontalScrollPosition", kind="property")]
+[Exclude(name="maxVerticalScrollPosition", kind="property")]
+[Exclude(name="scrollTipFunction", kind="property")]
+[Exclude(name="selectable", kind="property")]
+[Exclude(name="selectedIndex", kind="property")]
+[Exclude(name="selectedIndices", kind="property")]
+[Exclude(name="selectedItem", kind="property")]
+[Exclude(name="selectedItems", kind="property")]
+[Exclude(name="showScrollTips", kind="property")]
+[Exclude(name="toolTip", kind="property")]
+[Exclude(name="useHandCursor", kind="property")]
+[Exclude(name="verticalScrollBar", kind="property")]
+[Exclude(name="verticalScrollPolicy", kind="property")]
+
+//--------------------------------------
+//  protected properties
+//--------------------------------------
+
+[Exclude(name="anchorBookmark", kind="property")]
+[Exclude(name="anchorIndex", kind="property")]
+[Exclude(name="caretBookmark", kind="property")]
+[Exclude(name="caretIndex", kind="property")]
+[Exclude(name="caretIndicator", kind="property")]
+[Exclude(name="caretItemRenderer", kind="property")]
+[Exclude(name="caretUID", kind="property")]
+[Exclude(name="dragImage", kind="property")]
+[Exclude(name="dragImageOffsets", kind="property")]
+[Exclude(name="highlightIndicator", kind="property")]
+[Exclude(name="highlightUID", kind="property")]
+[Exclude(name="keySelectionPending", kind="property")]
+[Exclude(name="lastDropIndex", kind="property")]
+[Exclude(name="selectionLayer", kind="property")]
+[Exclude(name="selectionTweens", kind="property")]
+[Exclude(name="showCaret", kind="property")]
+
+//--------------------------------------
+//  public methods
+//--------------------------------------
+
+[Exclude(name="calculateDropIndex", kind="method")]
+[Exclude(name="createItemEditor", kind="method")]
+[Exclude(name="destroyItemEditor", kind="method")]
+[Exclude(name="effectFinished", kind="method")]
+[Exclude(name="effectStarted", kind="method")]
+[Exclude(name="endEffectStarted", kind="method")]
+[Exclude(name="hideDropFeedback", kind="method")]
+[Exclude(name="isItemHighlighted", kind="method")]
+[Exclude(name="isItemSelected", kind="method")]
+[Exclude(name="showDropFeedback", kind="method")]
+[Exclude(name="startDrag", kind="method")]
+
+//--------------------------------------
+//  protected methods
+//--------------------------------------
+
+[Exclude(name="dragCompleteHandler", kind="method")]
+[Exclude(name="dragDropHandler", kind="method")]
+[Exclude(name="dragEnterHandler", kind="method")]
+[Exclude(name="dragExitHandler", kind="method")]
+[Exclude(name="dragOverHandler", kind="method")]
+[Exclude(name="dragScroll", kind="method")]
+[Exclude(name="drawCaretIndicator", kind="method")]
+[Exclude(name="drawHighlightIndicator", kind="method")]
+[Exclude(name="drawSelectionIndicator", kind="method")]
+[Exclude(name="mouseClickHandler", kind="method")]
+[Exclude(name="mouseDoubleClickHandler", kind="method")]
+[Exclude(name="mouseDownHandler", kind="method")]
+[Exclude(name="mouseEventToItemRenderer", kind="method")]
+[Exclude(name="mouseMoveHandler", kind="method")]
+[Exclude(name="mouseOutHandler", kind="method")]
+[Exclude(name="mouseOverHandler", kind="method")]
+[Exclude(name="mouseUpHandler", kind="method")]
+[Exclude(name="mouseWheelHandler", kind="method")]
+[Exclude(name="moveSelectionHorizontally", kind="method")]
+[Exclude(name="moveSelectionVertically", kind="method")]
+[Exclude(name="placeSortArrow", kind="method")]
+[Exclude(name="removeIndicators", kind="method")]
+[Exclude(name="selectItem", kind="method")]
+[Exclude(name="setScrollBarProperties", kind="method")]
+[Exclude(name="expandItemHandler", kind="method")]
+
+//--------------------------------------
+//  events
+//--------------------------------------
+
+[Exclude(name="click", kind="event")]
+[Exclude(name="doubleClick", kind="event")]
+[Exclude(name="dragComplete", kind="event")]
+[Exclude(name="dragDrop", kind="event")]
+[Exclude(name="dragEnter", kind="event")]
+[Exclude(name="dragExit", kind="event")]
+[Exclude(name="dragOver", kind="event")]
+[Exclude(name="effectEnd", kind="event")]
+[Exclude(name="effectStart", kind="event")]
+[Exclude(name="headerRelease", kind="event")]
+[Exclude(name="itemClick", kind="event")]
+[Exclude(name="itemDoubleClick", kind="event")]
+[Exclude(name="itemEditBegin", kind="event")]
+[Exclude(name="itemEditBeginning", kind="event")]
+[Exclude(name="itemEditEnd", kind="event")]
+[Exclude(name="itemFocusIn", kind="event")]
+[Exclude(name="itemFocusOut", kind="event")]
+[Exclude(name="itemRollOut", kind="event")]
+[Exclude(name="itemRollOver", kind="event")]
+[Exclude(name="keyDown", kind="event")]
+[Exclude(name="keyUp", kind="event")]
+[Exclude(name="mouseDown", kind="event")]
+[Exclude(name="mouseDownOutside", kind="event")]
+[Exclude(name="mouseFocusChange", kind="event")]
+[Exclude(name="mouseMove", kind="event")]
+[Exclude(name="mouseOut", kind="event")]
+[Exclude(name="mouseOver", kind="event")]
+[Exclude(name="mouseUp", kind="event")]
+[Exclude(name="mouseWheel", kind="event")]
+[Exclude(name="mouseWheelOutside", kind="event")]
+[Exclude(name="rollOut", kind="event")]
+[Exclude(name="rollOver", kind="event")]
+[Exclude(name="toolTipCreate", kind="event")]
+[Exclude(name="toolTipEnd", kind="event")]
+[Exclude(name="toolTipHide", kind="event")]
+[Exclude(name="toolTipShow", kind="event")]
+[Exclude(name="toolTipShown", kind="event")]
+[Exclude(name="toolTipStart", kind="event")]
+
+//--------------------------------------
+//  styles
+//--------------------------------------
+
+[Exclude(name="columnDropIndicatorSkin", kind="style")]
+[Exclude(name="columnResizeSkin", kind="style")]
+[Exclude(name="dropIndicatorSkin", kind="style")]
+[Exclude(name="headerDragProxyStyleName", kind="style")]
+[Exclude(name="horizontalScrollBarStyleName", kind="style")]
+[Exclude(name="rollOverColor", kind="style")]
+[Exclude(name="selectionColor", kind="style")]
+[Exclude(name="selectionDisabledColor", kind="style")]
+[Exclude(name="selectionDuration", kind="style")]
+[Exclude(name="selectionEasingFunction", kind="style")]
+[Exclude(name="strechCursor", kind="style")]
+[Exclude(name="textRollOverColor", kind="style")]
+[Exclude(name="textSelectedColor", kind="style")]
+[Exclude(name="useRollOver", kind="style")]
+[Exclude(name="verticalScrollBarStyleName", kind="style")]
+
+//--------------------------------------
+//  effects
+//--------------------------------------
+
+[Exclude(name="addedEffect", kind="effect")]
+[Exclude(name="creationCompleteEffect", kind="effect")]
+[Exclude(name="focusInEffect", kind="effect")]
+[Exclude(name="focusOutEffect", kind="effect")]
+[Exclude(name="hideEffect", kind="effect")]
+[Exclude(name="mouseDownEffect", kind="effect")]
+[Exclude(name="mouseUpEffect", kind="effect")]
+
+[Exclude(name="moveEffect", kind="effect")]
+[Exclude(name="removedEffect", kind="effect")]
+[Exclude(name="resizeEffect", kind="effect")]
+[Exclude(name="rollOutEffect", kind="effect")]
+[Exclude(name="rollOverEffect", kind="effect")]
+[Exclude(name="showEffect", kind="effect")]
+
+/**
+ *  The PrintAdvancedDataGrid control is an AdvancedDataGrid subclass that is styled
+ *  to show a table with line borders and is optimized for printing.
+ *  It can automatically size to properly fit its container, and removes
+ *  any partially displayed rows.
+ *
+ *  @mxml
+ *
+ *
The <mx:PrintAdvancedDataGrid> tag inherits the tag attributes
+ *  of its superclass; however, you do not use the properties, styles, events,
+ *  and effects (or methods) associated with user interaction.
+ *  The <mx:PrintAdvancedDataGrid> tag adds the following tag attribute:
+ *

+ *

+ *  <mx:PrintAdvancedDataGrid
+ *    Properties
+ *    allowInteraction="true|false"
+ *    displayIcons="true|false"
+ *    sizeToPage="true|false"
+ *    source="null"
+ *  >
+ *  ...
+ *  </mx:PrintAdvancedDataGrid>
+ *

+ *
+ *  @see mx.printing.FlexPrintJob
+ *  @see mx.printing.PrintDataGrid
+ *  @see mx.controls.AdvancedDataGrid
+ *
+ *  @includeExample examples/AdvancedPrintDataGridExample.mxml
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class PrintAdvancedDataGrid extends AdvancedDataGrid
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *
Constructs a PrintAdvancedDataGrid control with no scroll bars, user interactivity,
+     *  column sorting, resizing, drag scrolling, selection, or keyboard
+     *  interaction.
+     *  The default height is 100% of the container height, or the height
+     *  required to display all the data provider rows, whichever is smaller.

+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function PrintAdvancedDataGrid()
+    {
+        super();
+
+        horizontalScrollPolicy = ScrollPolicy.OFF;
+        verticalScrollPolicy = ScrollPolicy.OFF;
+        sortableColumns = false;
+        selectable = false;
+        // to disable dragScrolling
+        dragEnabled = true;
+        resizableColumns = false;
+        mouseChildren = false;
+        super.percentHeight = 100;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Previous Page row count.
+     */
+    private var previousPageRowCount:int = 0;
+
+    /**
+     *  @private
+     *  Variable for storing the folderClosedIcon.
+     */
+    private var folderClosedIconClass:Class;
+
+    /**
+     *  @private
+     *  Variable for storing the folderOpenIcon.
+     */
+     private var folderOpenIconClass:Class;
+
+    /**
+     *  @private
+     *  Variable for storing the defaultLeafIcon.
+     */
+    private var defaultLeafIconClass:Class;
+
+    /**
+     *  @private
+     *  Storage variable for changes to displayIcons.
+     */
+    private var displayIconsChanged:Boolean;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  height
+    //----------------------------------
+
+    [Bindable("heightChanged")]
+    [Inspectable(category="General")]
+    [PercentProxy("percentHeight")]
+
+    /**
+     *  @private
+     *  Getter needs to be overridden if setter is overridden.
+     */
+    override public function get height():Number
+    {
+        return super.height;
+    }
+
+    /**
+     *  @private
+     *  Height setter needs to be overridden to update _originalHeight.
+     */
+    override public function set height(value:Number):void
+    {
+        _originalHeight = value;
+        if (!isNaN(percentHeight))
+        {
+            super.percentHeight = NaN;
+            measure();
+            value = measuredHeight;
+        }
+
+        super.height = value;
+
+        invalidateDisplayList();
+
+        if (sizeToPage && !isNaN(explicitHeight))
+            explicitHeight = NaN;
+    }
+
+    //----------------------------------
+    //  percentHeight
+    //----------------------------------
+
+    [Bindable("resize")]
+    [Inspectable(category="Size", defaultValue="NaN")]
+    /**
+     *  @private
+     *  Getter needs to be overridden if setter is overridden.
+     */
+    override public function get percentHeight():Number
+    {
+        return super.percentHeight;
+    }
+
+    /**
+     *  @private
+     *  percentHeight setter needs to be overridden to update _originalHeight.
+     */
+    override public function set percentHeight(value:Number):void
+    {
+        _originalHeight = NaN;
+        super.percentHeight = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  currentPageHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the currentPageHeight property.
+     */
+    private var _currentPageHeight:Number;
+
+    /**
+     *  The height that the PrintAdvancedDataGrid would be if the sizeToPage
+     *  property is true, meaning that the PrintAdvancedDataGrid displays only completely
+     *  viewable rows and displays no partial rows.
+     *  If the sizeToPage property
+     *  is false, the value of this property equals
+     *  the height property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get currentPageHeight():Number
+    {
+        return _currentPageHeight;
+    }
+
+    //----------------------------------
+    //  displayIcons
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Indicates that the folder/leaf icons will be displayed or not.
+     */
+    private var _displayIcons:Boolean = true;
+
+    /**
+     *  If true, display the folder and leaf icons in the navigation tree.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get displayIcons():Boolean
+    {
+        return _displayIcons;
+    }
+
+    public function set displayIcons(value:Boolean):void
+    {
+        if (value != _displayIcons)
+        {
+            _displayIcons = value;
+            displayIconsChanged = true;
+
+            itemsSizeChanged = true;
+            invalidateProperties();
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    //----------------------------------
+    //  allowInteraction
+    //----------------------------------
+
+    /**
+     *  Storage for the allowInteraction property.
+     *  @private
+     */
+    private var _allowInteraction:Boolean;
+
+    /**
+     *  If true, allows some interactions with the control,
+     *  such as column resizing, column reordering, and expanding or collapsing nodes.
+     *
+     *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get allowInteraction():Boolean
+    {
+        return _allowInteraction;
+    }
+
+    public function set allowInteraction(value:Boolean):void
+    {
+        _allowInteraction = value;
+        if(value)
+        {
+            mouseChildren = true;
+            resizableColumns = true;
+        }
+        else
+        {
+            mouseChildren = false;
+            resizableColumns = false;
+        }
+    }
+
+    //----------------------------------
+    //  originalHeight
+    //----------------------------------
+
+    /**
+     *  Storage for the originalHeight property.
+     *  @private
+     */
+    private var _originalHeight:Number;
+
+    /**
+     *  The height of the PrintAdvancedDataGrid as set by the user.
+     *  If the sizeToPage property is false,
+     *  the value of this property equals the height property.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get originalHeight():Number
+    {
+        return _originalHeight;
+    }
+
+    //----------------------------------
+    //  sizeToPage
+    //----------------------------------
+
+    /**
+     *  If true, the PrintAdvancedDataGrid readjusts its height to display
+     *  only completely viewable rows.
+     *
+     *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public var sizeToPage:Boolean = true;
+
+    //----------------------------------
+    //  source
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Source ADG.
+     */
+    private var _source:AdvancedDataGrid;
+
+    /**
+     *  Initializes the PrintAdvancedDataGrid control and all of its properties
+     *  from the specified AdvancedDataGrid control.
+     *
+     *
Note: The width and height of the PrintAdvancedDataGrid control
+     *  are not taken from the source AdvancedDataGrid control.
+     *  Changes to the source AdvancedDataGrid control are not automatically reflected
+     *  in the PrintAdvancedDataGrid instance.
+     *  Therefore, you must reset the source property after changing
+     *  the source AdvancedDataGrid control.

+     *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get source():AdvancedDataGrid
+    {
+        return _source;
+    }
+
+    /**
+     *  @private
+     */
+    public function set source(value:AdvancedDataGrid):void
+    {
+    	_source = value;
+
+        this.dataProvider = value.dataProvider; // set the dataProvider
+
+        var i:int = 0;
+        var n:int = 0;
+
+        // assign groupedColumns only if Column Grouping
+        // is present in the source AdvancedDataGrid
+        if (value.groupedColumns != null)
+        {
+        	var groupColumnsArray:Array = [];
+        	n = value.groupedColumns.length;
+        	for (i = 0; i < n; i++)
+	        {
+	        	groupColumnsArray.push(value.groupedColumns[i].clone());
+	        }
+
+	        this.groupedColumns = groupColumnsArray;
+        }
+        else
+        {
+        	// assign the columns
+	        var columnArray:Array = [];
+	        n = value.columns != null ? value.columns.length : 0;
+	        for (i = 0; i < n; i++)
+	        {
+	        	var sourceColumn:AdvancedDataGridColumn = value.columns[i];
+	        	var col:AdvancedDataGridColumn = sourceColumn.clone();
+
+	        	// check for treeColumn
+	        	if (sourceColumn == value.treeColumn)
+	        		this.treeColumn = col;
+
+	        	columnArray.push(col);
+	        }
+
+	        this.columns = columnArray;
+        }
+
+        this.itemRenderer = value.itemRenderer; // set the itemRenderer
+        this.headerRenderer = value.headerRenderer; // set the headerRenderer
+        this.groupItemRenderer = value.groupItemRenderer; // set the groupItemRenderer
+        this.rendererProviders = value.rendererProviders; // set the rendererProviders
+
+        this.labelField = value.labelField; // set the labelField
+        this.labelFunction = value.labelFunction; // set the labelFunction
+        this.groupIconFunction = value.groupIconFunction; // set the groupIconFunction
+        this.groupLabelFunction = value.groupLabelFunction; // set the groupLabelFunction
+
+        this.displayDisclosureIcon = value.displayDisclosureIcon; // set displayDisclosureIcon
+        this.displayItemsExpanded = value.displayItemsExpanded; // set displayItemsExpanded
+        this.itemIcons = value.itemIcons; // set the itemsIcons
+
+        this.lockedColumnCount = value.lockedColumnCount; // set lockecColumnCount
+        this.lockedRowCount = value.lockedRowCount; // set lockedRowCount
+
+        this.wordWrap = value.wordWrap; // set wordWrap
+        this.variableRowHeight = value.variableRowHeight; // set variableRowHeight
+
+        columnsInvalid = true;
+        itemsSizeChanged = true;
+
+        // invalidate everything
+        invalidateProperties();
+        invalidateSize();
+        invalidateDisplayList();
+
+    }
+
+    //----------------------------------
+    //  validNextPage
+    //----------------------------------
+
+    /**
+     *  Indicates that the data provider contains additional data rows that follow
+     *  the rows that the PrintAdvancedDataGrid control currently displays.
+     *
+     *  @return A Boolean value of true if a set of rows is
+     *  available else false</false>.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get validNextPage():Boolean
+    {
+        var vPos:int = verticalScrollPosition + rowCount ;
+
+        return dataProvider && vPos < dataProvider.length ? true : false;
+    }
+
+    //----------------------------------
+    //  validPreviousPage
+    //----------------------------------
+
+    /**
+     *  Indicates that the data provider contains data rows that precede
+     *  the rows that the PrintAdvancedDataGrid control currently displays.
+     *
+     *  @return A Boolean value of true if a set of rows is
+     *  available else false</false>.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function get validPreviousPage():Boolean
+    {
+        var vPos:int = verticalScrollPosition - previousPageRowCount ;
+
+        return dataProvider && vPos >= 0 ? true : false;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Checks the changes in displayIcons and update the display.
+     */
+    override protected function commitProperties():void
+    {
+        super.commitProperties();
+
+        // set treeColumn in case of a column grouped AdvacnedDataGrid
+        if (source && source.groupedColumns && source.treeColumn)
+        {
+        	var n:int = source.columns.length;
+	        for (var i:int = 0; i < n; i++)
+	        {
+	        	var sourceColumn:AdvancedDataGridColumn = source.columns[i];
+
+	        	if (sourceColumn == source.treeColumn)
+	        	{
+	        		this.treeColumn = this.columns[i];
+	        		break;
+	        	}
+	        }
+	    }
+
+        if(displayIconsChanged)
+        {
+            displayIconsChanged = false;
+            if(displayIcons)
+            {
+                setStyle("defaultLeafIcon",defaultLeafIconClass);
+                setStyle("folderClosedIcon",folderClosedIconClass);
+                setStyle("folderOpenIcon",folderOpenIconClass);
+            }
+            else
+            {
+                // get the styles and store them
+                folderClosedIconClass = getStyle("folderClosedIcon");
+                folderOpenIconClass = getStyle("folderOpenIcon");
+                defaultLeafIconClass = getStyle("defaultLeafIcon");
+
+                // set the folder/leaf icons to null
+                setStyle("defaultLeafIcon",null);
+                setStyle("folderClosedIcon",null);
+                setStyle("folderOpenIcon",null);
+            }
+        }
+    }
+
+    /**
+     *  @private
+     *  Sets the default number of display rows to dataProvider.length.
+     */
+    override protected function measure():void
+    {
+        var oldRowCount:uint = rowCount;
+
+        var count:uint;
+
+        count = (dataProvider) ? dataProvider.length : 0;
+
+        // Headers should show even if there is no dataProvider
+        if (count == 0 && headerVisible)
+        	count++;
+
+        if (count >= verticalScrollPosition)
+            count -= verticalScrollPosition;
+        else
+            count = 0;
+
+        setRowCount(count);
+
+        // need to calculate rowCount before super()
+        super.measure();
+        measureHeight();
+
+        if (isNaN(_originalHeight))
+            _originalHeight = measuredHeight;
+        _currentPageHeight = measuredHeight;
+
+        if (!sizeToPage)
+        {
+            setRowCount(oldRowCount);
+            super.measure();
+        }
+    }
+
+    /**
+     *  @private
+     *  setActualSize() is overridden to update _originalHeight.
+     */
+    override public function setActualSize(w:Number, h:Number):void
+    {
+        if (!isNaN(percentHeight))
+        {
+            _originalHeight = h;
+            super.percentHeight = NaN;
+            measure();
+            h = measuredHeight;
+        }
+
+        super.setActualSize(w, h);
+
+        invalidateDisplayList();
+
+        if (sizeToPage && !isNaN(explicitHeight))
+            explicitHeight = NaN;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: ListBase
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Overridden configureScrollBars to disable autoScrollUp.
+     */
+    override protected function configureScrollBars():void
+    {
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Puts the next set of data rows in view;
+     *  that is, it sets the PrintAdvancedDataGrid verticalScrollPosition
+     *  property to equal verticalScrollPosition + (number of scrollable rows).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function nextPage():void
+    {
+        previousPageRowCount = rowCount - lockedRowCount;
+
+        if (verticalScrollPosition < dataProvider.length)
+        {
+            verticalScrollPosition += rowCount - lockedRowCount;
+            // TODO: can this be avoided?
+            itemsSizeChanged = true;
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    /**
+     *  Puts the previous set of data rows in view;
+     *  that is, it sets the PrintAdvancedDataGrid verticalScrollPosition
+     *  property to equal verticalScrollPosition - (number of rows in the previous page).
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function previousPage():void
+    {
+        if (verticalScrollPosition > 0)
+        {
+            verticalScrollPosition = Math.max(0, (verticalScrollPosition - previousPageRowCount));
+
+            invalidateSize();
+            invalidateDisplayList();
+        }
+    }
+
+    /**
+     *  @private
+     *  ListBase.measure() does'nt calculate measuredHeight in required way
+     *  so have to add the code here.
+     */
+    private function measureHeight():void
+    {
+        if( dataProvider && dataProvider.length > 0
+            && (verticalScrollPosition >= dataProvider.length))
+        {
+            setRowCount(0);
+            measuredHeight = 0;
+            measuredMinHeight = 0;
+            return;
+        }
+
+        var o:EdgeMetrics = viewMetrics;
+        var rc:int = (explicitRowCount < 1) ? rowCount : explicitRowCount;
+
+        var maxHeight:Number = isNaN(_originalHeight) ? -1
+                                : _originalHeight - o.top - o.bottom;
+
+        measuredHeight = measureHeightOfItemsUptoMaxHeight(
+            -1, rc, maxHeight) + o.top + o.bottom;
+
+        measuredMinHeight = measureHeightOfItemsUptoMaxHeight(
+            -1, Math.min(rc, 2), maxHeight) + o.top + o.bottom;
+    }
+
+    /**
+     *  Moves to the first page of the PrintAdvancedDataGrid control,
+     *  which corresponds to the first set of visible rows.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function moveToFirstPage():void
+    {
+        // move the iterator to the first position
+        // this is done because when nextPage() is called without
+        // checking for validNextPage(), listItems becomes empty after the last page
+        // and the iterator is not seeked to the desired position.
+        iterator.seek(CursorBookmark.FIRST);
+        verticalScrollPosition = 0;
+
+        invalidateSize();
+        invalidateDisplayList();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden event handlers: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Overridden keyDown to disable keyboard functionality.
+     */
+    override protected function keyDownHandler(event:KeyboardEvent):void
+    {
+    }
+
+    /**
+     *  @private
+     *  Overridden expandItemHandler to disable animation
+     *  and recalculate the height
+     *  when allowInteraction is false.
+     */
+    override mx_internal function expandItemHandler(event:AdvancedDataGridEvent):void
+    {
+            event.animate = false; // no animation
+            super.expandItemHandler(event);
+
+            // we have to recalculate the height
+            itemsSizeChanged = true;
+
+            invalidateDisplayList();
+            invalidateSize();
+            invalidateProperties();
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11490
Author:   gruehle@adobe.com
Date:     2009-11-06T01:34:58.836883Z

Log Message:
-----------
Add accentColor style. This color is used to tint "emphasized" buttons, and as the color for slider track highlighting.

QE notes: Tests should be added for this style.
Doc notes: ASDoc added, but should be reviewed.
Bugs: SDK-23450, SDK-23451
Reviewer: Ryan
Tests run: checkintests, components/Slider, components/Alert
Is noteworthy for integration: Yes

Modified Paths:
--------------
<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/framework/src/mx/controls/Button.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/sparkskins/src/mx/skins/spark/SliderTrackHighlightSkin.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/DefaultButtonSkin.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/framework/src/mx/controls/sliderClasses/Slider.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/skins/spark/DefaultButtonSkin.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -41,6 +41,19 @@
 include "../../styles/metadata/BasicInheritingTextStyles.as"
 include "../../styles/metadata/AdvancedInheritingTextStyles.as"
 include "../../styles/metadata/SelectionFormatTextStyles.as"
+
+/**
+ *  Accent color used by component skins. The default button skin uses this color
+ *  to tint the background. Slider track highlighting uses this color.
+ *
+ *  @default #0099FF
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="accentColor", type="uint", format="Color", inherit="yes", theme="spark")]

 /**
  *  The colors to use for the backgrounds of the items in the list.
@@ -141,6 +154,7 @@
 //  Excluded APIs
 //--------------------------------------

+[Exclude(name="focusBlendMode", kind="style")]
 [Exclude(name="focusThickness", kind="style")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 3755
Author:   chaase@adobe.com
Date:     2008-10-20T21:09:39.321431Z

Log Message:
-----------
Fixed sdk-17414, sdk-17413, sdk-17409. Also fixed various small asdoc errors (related to recent classname changes).

QE Notes: None
Doc Notes: None
Bugs: sdk-17414, sdk-17413, sdk-17409
Reviewer: Hans

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/PauseInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Pause.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxRotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/PropertyValuesHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/interpolation/IInterpolator.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxMove.as</path>

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

--- frameworks/projects/spark/src/spark/effects/interpolation/IInterpolator.as
+++ frameworks/projects/spark/src/spark/effects/interpolation/IInterpolator.as
@@ -11,7 +11,7 @@
 package mx.effects.interpolation
 {
 /**
- * The Interpolator interface is used by classes that calculate
+ * The IInterpolator interface is used by classes that calculate
  * intermediate values for the Animation class. The Animation class
  * can handle parametric interpolation between Number values and
  * arrays of Number values, but it cannot handle different types


Transferred from the Adobe Open Source Subversion Repository

Revision: 17079
Author:   hmuller@adobe.com
Date:     2010-07-27T22:20:12.190950Z

Log Message:
-----------
Restored truncation in DefaultGridItemRenderer.  Hooray.

QE notes: changes apply to Spark DataGrid only
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: none
Is noteworthy for integration: no

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -362,6 +362,8 @@
         measuredMinHeight = measuredHeight;
     }

+    private var textIsTruncated:Boolean = false;
+
     /**
      *  @private
      */
@@ -372,6 +374,11 @@
         // labelDisplay layout: padding of 3 on left and right and padding of 5 on top and bottom.

         labelDisplay.setActualSize(width-6, height-10);
+
+        if (textIsTruncated)
+            labelDisplay.text = _label;
+        textIsTruncated = labelDisplay.truncateToFit();
+
         labelDisplay.move(3, 5);
     }


fix MeshVisibilityController to set its data provider usage to DataProviderUsage.EXCLUSIVE in order to make sure cloning the mesh nodes won't cause duplicate binding properties errors

--- src/aerys/minko/scene/controller/mesh/MeshVisibilityController.as
+++ src/aerys/minko/scene/controller/mesh/MeshVisibilityController.as
@@ -10,6 +10,7 @@
 	import aerys.minko.scene.node.camera.AbstractCamera;
 	import aerys.minko.type.binding.DataBindings;
 	import aerys.minko.type.binding.DataProvider;
+	import aerys.minko.type.enum.DataProviderUsage;
 	import aerys.minko.type.enum.FrustumCulling;
 	import aerys.minko.type.math.BoundingBox;
 	import aerys.minko.type.math.BoundingSphere;
@@ -75,8 +76,11 @@

 		private function initialize() : void
 		{
-			_data = new DataProvider();
-			_data.setProperty('computedVisibility', false);
+			_data = new DataProvider(
+				{ computedVisibility : false },
+				'MeshVisibilityDataProvider',
+				DataProviderUsage.EXCLUSIVE
+			);

 			_boundingBox = new BoundingBox(Vector4.ZERO, Vector4.ONE);
 			_boundingSphere = new BoundingSphere(Vector4.ZERO, 0.);


BitmapResourceCacheItem now handles cancelled commands more gracefully

git-svn-id: e38e7cdd6ace00d8230583a2d3b43e9a55f5c011@645 bc4816be-ef27-423a-9c4d-fc420be121a2

--- src/reprise/external/BitmapResourceCacheItem.as
+++ src/reprise/external/BitmapResourceCacheItem.as
@@ -168,7 +168,7 @@
 			m_httpStatus = m_loader.httpStatus();
 			m_bytesLoaded = m_loader.bytesLoaded();
 			m_bytesTotal = m_loader.bytesTotal();
-			m_success = e.success;
+			m_success = e.success && !m_loader.isCancelled();

 			if (m_success)
 			{
@@ -179,7 +179,8 @@

 			for each (var target : BitmapResource in m_targets)
 			{
-				applyDataToTarget(target);
+				// target can be null. @see removeTarget
+				if (target) applyDataToTarget(target);
 			}
 			m_targets = null;


Time is now specified in milliseconds, as is the norm for times.
Added a note.

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

--- src/as/com/threerings/util/ExpiringSet.as
+++ src/as/com/threerings/util/ExpiringSet.as
@@ -18,6 +18,8 @@

 /**
  * Data structure that keeps its elements for a short time, and then removes them automatically.
+ * Note that expirations are done based on Timer granularity, so you may pull a value out
+ * that technicaly should be expired, but only by a few milliseconds.
  *
  * All operations are O(n), including add().
  */
@@ -30,12 +32,12 @@
     /**
      * Initializes the expiring set.
      *
-     * @param ttl Time to live value for set elements, in seconds.
+     * @param ttl Time to live value for set elements, in milliseconds.
      * @param expireHandler a function to be conveniently registered as an event listener.
      */
-    public function ExpiringSet (ttl :Number, expireHandler :Function = null)
-    {
-        _ttl = Math.round(ttl * 1000);
+    public function ExpiringSet (ttl :int, expireHandler :Function = null)
+    {
+        _ttl = ttl;
         _timer = new Timer(_ttl, 1);
         _timer.addEventListener(TimerEvent.TIMER, checkTimer);

@@ -48,9 +50,9 @@
      * Returns the time to live value for this ExpiringSet.  This value cannot be changed after
      * set creation.
      */
-    public function get ttl () :Number
-    {
-        return _ttl / 1000;
+    public function get ttl () :int
+    {
+        return _ttl;
     }

     /**


implemented feature 1001:

implemented feature 1001:

--- WeaveUI/src/weave/visualization/layers/InteractiveVisualization.as
+++ WeaveUI/src/weave/visualization/layers/InteractiveVisualization.as
@@ -36,6 +36,7 @@
 	import weave.Weave;
 	import weave.api.WeaveAPI;
 	import weave.api.data.IQualifiedKey;
+	import weave.api.detectLinkableObjectChange;
 	import weave.api.newLinkableChild;
 	import weave.api.primitives.IBounds2D;
 	import weave.api.registerLinkableChild;
@@ -214,7 +215,6 @@
 		// this function can be defined with override by extending classes and call super.handleMouseClick(event);
 		protected function handleMouseClick(event:MouseEvent):void
 		{
-			clearSelection();
 			handleMouseEvent(event);
 		}

@@ -227,6 +227,9 @@
 		protected function handleMouseDown(event:MouseEvent):void
 		{
 			updateMouseMode(InteractionController.DRAG); // modifier keys may have changed just prior to pressing mouse button, so update mode now
+
+			//for detecting change between drag start and drag end
+			detectLinkableObjectChange( handleMouseDown, layers );

 			mouseDragActive = true;
 			// clear probe when drag starts
@@ -348,7 +351,9 @@
 				}
 				case InteractionController.SELECT:
 				{
-					if (mouseDragActive)
+					if ( dragReleased && !detectLinkableObjectChange( handleMouseDown, layers ))
+						clearSelection();
+				   	else if (mouseDragActive)
 						handleSelection(event, _mouseMode);
 					break;
 				}
@@ -594,21 +599,9 @@
 			{
 				// only if selection is enabled
 				if (enableSelection.value)
-				{
-					// handle selection
-					if (mode == InteractionController.SELECT && mouseDragStageCoords.getWidth() == 0 && mouseDragStageCoords.getHeight() == 0)
-					{
-						// clear selection when drag area is empty
-						clearSelection();
-					}
-					else
-					{
-						delayedHandleSelection();
-					}
-				}
-			}
-		}
-
+					delayedHandleSelection();
+			}
+		}
 		private function clearSelection():void
 		{
 			var _layers:Array = layers.getObjects(SelectablePlotLayer);
@@ -690,7 +683,7 @@
 			// don't set a selection or clear the probe keys if selection is disabled
 			if (!enableSelection.value)
 				return;
-
+
 			var _layers:Array = layers.getObjects(SelectablePlotLayer); // bottom to top
 			// loop from bottom layer to top layer
 			for (var index:int = 0; index < _layers.length; index++)
@@ -706,7 +699,6 @@
 				// when using the selection layer, clear the probe
 				setProbeKeys(layer, []);
 				projectDragBoundsToDataQueryBounds(layer, false);
-

 				// calculate minImportance
 				layer.getDataBounds(tempDataBounds);
@@ -806,14 +798,14 @@
 		}

 		protected function setSelectionKeys(layer:SelectablePlotLayer, keys:Array, useMouseMode:Boolean = false):void
-		{
+		{
 			if (!Weave.properties.enableToolSelection.value || !enableSelection.value)
 				return;

 			// set the probe filter to a new set of keys
 			var keySet:KeySet = layer.selectionFilter.internalObject as KeySet;
 			if (keySet != null)
-			{
+			{
 				if (useMouseMode && _mouseMode == InteractionController.SELECT_ADD)
 					keySet.addKeys(keys);
 				else if (useMouseMode && _mouseMode == InteractionController.SELECT_REMOVE)


added alpha column

added alpha column

--- WeaveUISpark/src/weave/visualization/plotters/ImageGlyphPlotter.as
+++ WeaveUISpark/src/weave/visualization/plotters/ImageGlyphPlotter.as
@@ -56,6 +56,7 @@
 		}

 		public const color:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
+		public const alpha:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);

 		public const imageURL:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
 		public const imageSize:AlwaysDefinedColumn = newLinkableChild(this, AlwaysDefinedColumn);
@@ -134,7 +135,7 @@
 				var dy:Number = Math.round(tempPoint.y) + (_rotation == 0 && image.height % 2 ? 0.5 : 0);
 				tempMatrix.translate(dx, dy);

-				var ct:ColorTransform = null;
+				var ct:ColorTransform = tempColorTransform;
 				var color:Number = this.color.getValueFromKey(recordKey, Number);
 				if (isFinite(color))
 				{
@@ -142,11 +143,17 @@
 					const G:int = 0x00FF00;
 					const B:int = 0x0000FF;

-					ct = tempColorTransform;
 					ct.redMultiplier = ((color & R) >> 16) / 255;
 					ct.greenMultiplier = ((color & G) >> 8) / 255;
 					ct.blueMultiplier = (color & B) / 255;
 				}
+				else
+				{
+					ct.redMultiplier = 1;
+					ct.greenMultiplier = 1;
+					ct.blueMultiplier = 1;
+				}
+				ct.alphaMultiplier = alpha.getValueFromKey(recordKey, Number);

 				// draw image
 				task.buffer.draw(image, tempMatrix, ct, null, null, true);


-removed old import

-removed old import

--- actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
+++ actionscript/src/com/freshplanet/ane/AirFacebook/Facebook.as
@@ -25,7 +25,6 @@
 	import flash.external.ExtensionContext;
 	import flash.system.Capabilities;
 	import com.freshplanet.ane.AirFacebook.FacebookPermissionEvent;
-	import com.pixelfederation.PixelAccessToken;

 	public class Facebook extends EventDispatcher
 	{


Added fix for async operation

Added fix for async operation

--- as3/src/asunit/framework/AsyncOperation.as
+++ as3/src/asunit/framework/AsyncOperation.as
@@ -53,7 +53,7 @@
             if(null != failureHandler) {
                 failureHandler(new Event('async timeout'));
             }
-            testCase.asyncOperationTimeout(this, duration);
+            testCase.asyncOperationTimeout(this, duration, null==failureHandler);
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 142
Author:   proberts@adobe.com
Date:     2008-01-09T21:41:12.224334Z

Log Message:
-----------
Severity: ignore
Description: docs update -- fixing formatting of @mxml sections; also minor enhancements to FlexHTMLLoader class and member descriptions.

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

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

--- frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
+++ frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as
@@ -215,10 +215,10 @@
  *    mnemonicIndexField="mnemonicIndex"
  *    mnemonicIndexFunction="undefined"
  *    showRoot="true"
- *
+ *
  *    Events
- *    itemClick="No default"
- *    menuShow="No default"
+ *    itemClick="No default"
+ *    menuShow="No default"
  *  />
  *

  *


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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/framework/src/mx/formatters/NumberFormatter.as
+++ frameworks/projects/framework/src/mx/formatters/NumberFormatter.as
@@ -63,6 +63,11 @@
  *
  *  @see mx.formatters.NumberBase
  *  @see mx.formatters.NumberBaseRoundType
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class NumberFormatter extends Formatter
 {
@@ -76,6 +81,11 @@

     /**
      *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function NumberFormatter()
     {
@@ -116,6 +126,11 @@
      *  @default "."
      *
      *  @see #format()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get decimalSeparatorFrom():String
     {
@@ -163,6 +178,11 @@
      *  @default "."
      *
      *  @see #format()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get decimalSeparatorTo():String
     {
@@ -209,6 +229,11 @@
      *  rounding, return a value based on that rounding type.
      *
      *  @default -1
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get precision():Object
     {
@@ -257,6 +282,11 @@
      *  @default NumberBaseRoundType.NONE
      *
      *  @see mx.formatters.NumberBaseRoundType
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get rounding():String
     {
@@ -304,6 +334,11 @@
      *  @default ","
      *
      *  @see #format()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get thousandsSeparatorFrom():String
     {
@@ -352,6 +387,11 @@
      *  @default ","
      *
      *  @see #format()
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get thousandsSeparatorTo():String
     {
@@ -396,6 +436,11 @@
      *  surrounded by parentheses, for example (400).
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get useNegativeSign():Object
     {
@@ -437,6 +482,11 @@
      *  by using a separator character.
      *
      *  @default true
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get useThousandsSeparator():Object
     {
@@ -487,6 +537,11 @@
      *  @param value Value to format.
      *
      *  @return Formatted String. Empty if an error occurs.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     override public function format(value:Object):String
     {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3748
Author:   pfarland@adobe.com
Date:     2008-10-20T18:23:33.228666Z

Log Message:
-----------
2 alpha bug fixes. Removing describeType usage - despite only used once per type, it is too expensive. Restoring previous mechanism of traversing superclass definition chain, but refactoring so that we can support descendant selectors.

Also a quick fix for global id selectors.

QE: Yes
Doc: No
Checkintests: Pass
Reviewer: Corey
Bugs:
SDK-17671 - [Advanced CSS] global id selectors are broken as of build 3639
SDK-17669 - Swf start up time is slow...

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>

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

--- frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
+++ frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as
@@ -342,12 +342,29 @@
      */
     public function isAdvanced():Boolean
     {
-        if (selector != null &&
-           (selector.kind == CSSSelectorKind.DESCENDANT_SELECTOR ||
-           (selector.kind == CSSSelectorKind.CONDITIONAL_SELECTOR &&
-                subject != "global")))
-        {
-            return true;
+        if (selector != null)
+        {
+            if (selector.kind == CSSSelectorKind.DESCENDANT_SELECTOR)
+            {
+                return true;
+            }
+            else if (selector.kind == CSSSelectorKind.CONDITIONAL_SELECTOR)
+            {
+                if (subject != "global")
+                {
+                    return true;
+                }
+                else if (selector.conditions != null)
+                {
+                    for each (var condition:CSSCondition in selector.conditions)
+                    {
+                        if (condition.kind != CSSConditionKind.CLASS_CONDITION)
+                        {
+                            return true;
+                        }
+                    }
+                }
+            }
         }

         return false;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11323
Author:   aharui@adobe.com
Date:     2009-10-30T20:07:45.203965Z

Log Message:
-----------
Some tweaks to MXItemRenderer

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Ryan
API Change: no
Is noteworthy for integration: No
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/BaseListData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridListData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeListData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/mx/controls/listClasses/MXItemRenderer.as</path>

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

--- frameworks/projects/mx/src/mx/controls/treeClasses/TreeListData.as
+++ frameworks/projects/mx/src/mx/controls/treeClasses/TreeListData.as
@@ -79,7 +79,7 @@
 	//  depth
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  The level of the item in the tree. The top level is 1.
@@ -95,7 +95,7 @@
 	//  disclosureIcon
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  A Class representing the disclosure icon for the item in the Tree control.
@@ -111,7 +111,7 @@
 	//  hasChildren
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  Contains true if the node has children.
@@ -127,7 +127,7 @@
 	//  icon
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  A Class representing the icon for the item in the Tree control.
@@ -143,7 +143,7 @@
 	//  indent
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  The default indentation for this row of the Tree control.
@@ -159,7 +159,7 @@
 	//  node
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  The data for this item in the Tree control.
@@ -175,7 +175,7 @@
 	//  open
     //----------------------------------

-	[Bindable("dataChange")]
+	[Bindable("__NoChangeEvent__")]

     /**
 	 *  Contains true if the node is open.


Transferred from the Adobe Open Source Subversion Repository

Revision: 8516
Author:   cframpto@adobe.com
Date:     2009-07-10T22:42:47.680183Z

Log Message:
-----------
- Fix layout looping in SDK-22186.  Actually a TLF bug but easy to work around.  The compositionWidth/compositionHeight setters should check for NaN, since they are legal values, when decided if the value has changed.  Since they weren't they were damaging the text flow even though there were no changes.
- If changing the selection temporarily, to use TLF API which works on the current selection, don't dispatch a selection change event.
- More for the flicker bug SDK-21387.  Moved reflow code to updateDisplayList(), per Evtim's suggestion, so it now works for Halo containers as well.

QA Notes:
Doc Notes: SDK-22186.
Reviewers: will be Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -504,6 +504,11 @@
     /**
      *  @private
      */
+    mx_internal var ignoreSelectionChangeEvent:Boolean = false;
+
+    /**
+     *  @private
+     */
     mx_internal var passwordChar:String = "*";

     /**
@@ -1779,34 +1784,6 @@

             verticalScrollPositionChanged = false;
         }
-    }
-
-    /**
-     *  @private
-     *  We override the setLayoutBoundsSize to determine whether to perform
-     *  text reflow. This is a convenient place, as the layout passes NaN
-     *  for a dimension not constrained to the parent.
-     */
-    override public function setLayoutBoundsSize(
-                                width:Number, height:Number,
-                                postLayoutTransform:Boolean = true):void
-    {
-        //trace("setLayoutBoundsSize", width, height, "autoSize", autoSize);
-
-        // If both values are constrained don't need to remeasure.
-        if (!isNaN(width) && !isNaN(height))
-            autoSize = false;
-
-        if (autoSize)
-        {
-            // Only autoSize cares about the real measured width.  This may
-            // update measuredWidth and measuredHeight with new values which
-            // will be used by the layout manager when the object's actual
-            // size is set.
-            remeasureConstrainedText(width, height, postLayoutTransform);
-        }
-
-        super.setLayoutBoundsSize(width, height, postLayoutTransform);
     }

     /**
@@ -1939,15 +1916,11 @@
                 }
             }

-            // Make sure we weren't previously scrolled.
+            // Make sure we weren't previously scrolled.
             if (autoSize)
              {
-                ignoreDamageEvent = true;
-
                 _textContainerManager.horizontalScrollPosition = 0;
-                _textContainerManager.verticalScrollPosition = 0;
-
-                ignoreDamageEvent = false;
+                _textContainerManager.verticalScrollPosition = 0;
              }

              invalidateDisplayList();
@@ -1962,24 +1935,25 @@
     override protected function updateDisplayList(unscaledWidth:Number,
                                                   unscaledHeight:Number):void
     {
-        // If we need to remeasure don't bother updating the display.
-        if (invalidateSizeFlag)
+        //trace("updateDisplayList", unscaledWidth, unscaledHeight, "autoSize", autoSize);
+
+        // Check if the auto-size text is constrained in some way and needs
+        // to be remeasured.  If one of the dimension changes, the text may
+        // compose differently and have a different size which the layout
+        // manager needs to know.
+        if (autoSize && remeasureText(unscaledWidth, unscaledHeight))
             return;
-
-        //trace("updateDisplayList", unscaledWidth, unscaledHeight, "autoSize", autoSize);

         super.updateDisplayList(unscaledWidth, unscaledHeight);

         // If we're autoSizing we're telling the layout manager one set of
         // values and TLF another set of values so there is room for the text
         // to grow.
-        ignoreDamageEvent = true;
-
-        _textContainerManager.compositionWidth = unscaledWidth;
-        _textContainerManager.compositionHeight = autoSize ? NaN :
-                                                  unscaledHeight;
-
-        ignoreDamageEvent = false;
+        if  (!autoSize)
+        {
+            _textContainerManager.compositionWidth = unscaledWidth;
+            _textContainerManager.compositionHeight = unscaledHeight;
+        }

         if (debug)
             trace("updateContainer()");
@@ -2443,75 +2417,68 @@

     /**
      *  @private
-     *
-     *  This assumes one of width or height is constrained, but not both.
-     *  If both are constrained there is no need to remeasure the text.
-     */
-    private function remeasureConstrainedText(
-                                width:Number, height:Number,
-                                postLayoutTransform:Boolean = true):void
-    {
-        // If we have a transform we don't support reflow.
-        // We could add support for scale, but not skew or rotation.
-        if (postLayoutTransform && nonDeltaLayoutMatrix() != null)
-        {
-            autoSize = false;
-            return;
-        }
-
-        if (!isNaN(width))
-        {
-            // Did we already constrain the width?
-            if (widthConstraint == width)
-                return;
-
-            // Note that we compare with measuredWidth,
-            // as for example the RichEditableText can be
-            // constrained by the layout with "left" and "right", but the
-            // container width itself may not be constrained and it would depend
-            // on the element's measuredWidth.
-            if (width == measuredWidth || width == 0)
-                return;
-
-            // No reflow for explicit lineBreak
-            if (hostFormat.lineBreak == "explicit")
-                return;
-
+     *  If auto-sizing text, it may need to be remeasured if it is constrained
+     *  by the layout manager.  Changing one dimension may change the size of
+     *  the measured text and the layout manager needs to know this.
+     */
+    private function remeasureText(width:Number, height:Number):Boolean
+    {
+        // Neither dimensions changed.
+        if (width == measuredWidth && height == measuredHeight)
+            return false;
+
+        if (width != measuredWidth)
+        {
             // Do we have a constrained width and an explicit height?
             // If so, the sizes are set so no need to remeasure now.
             if (!isNaN(explicitHeight) || !isNaN(_heightInLines))
             {
                 autoSize = false;
-                return;
+                return false;
             }

+            // Did we already constrain the width or is there no width?
+            if (widthConstraint == width || width == 0)
+                return false;
+
+            // No reflow for explicit lineBreak
+            if (hostFormat.lineBreak == "explicit")
+                return false;
+
             widthConstraint = width;
         }
-        else
-        {
-            // Did we already constrain the height?
-            if (height == heightConstraint)
-                return;
-
-            if (height == measuredHeight || height == 0)
-                return;
-
+        else // height != measuredHeight
+        {
             // Do we have a constrained height and an explicit width?
             // If so, the sizes are set so no need to remeasure now.
             if (!isNaN(explicitWidth) || !isNaN(_widthInChars))
             {
                 autoSize = false;
-                return;
+                return false;
             }
+
+            // Did we already constrain the height or is there no height?
+            if (height == heightConstraint || height == 0)
+                return false;

             heightConstraint = height;
         }
-
+
         // Force the remeasure now.  We don't want to do it in two passes
         // because there is flicker as the display objects are updated with the
         // sizes and positions from layout pass1 and then from layout pass 2.
         invalidateSize();
-        validateSize();
+
+        // Changing the text size can change the
+        // size of other components, for example, if text is in a panel.
+        // If we do not intervene, the rest of the updates will occur, then any
+        // invalidated components will be remeasured and the display updated
+        // again, which can cause flicker if the sizes change.
+        //if (parentDocument is UIComponent)
+        //    (UIComponent(parentDocument)).validateNow();
+        // return false;
+
+        return true;
     }

     /**
@@ -2890,6 +2857,7 @@
             oldAnchorPosition = _selectionAnchorPosition;
             oldActivePosition = _selectionActivePosition;

+            ignoreSelectionChangeEvent = true;
             selectionManager.selectRange(anchorPosition, activePosition);
         }

@@ -2905,6 +2873,7 @@
         if (anchorPosition != -1 && activePosition != -1)
         {
             selectionManager.selectRange(oldAnchorPosition, oldActivePosition);
+            ignoreSelectionChangeEvent = false;
         }

         // Extract the requested formats to return.
@@ -3315,14 +3284,9 @@

         // We don't need to call invalidateProperties()
         // because the hostFormat and the _textFlow are still valid.
-
+
         invalidateSize();
         invalidateDisplayList();
-
-        // This is necessary to get any constraints there are reapplied by
-        // the layout manager.  This matters if we are auto-sizing text.
-        if (!isMeasureFixed())
-            invalidateParentSizeAndDisplayList();
     }

     /**
@@ -3366,6 +3330,9 @@
     private function textContainerManager_selectionChangeHandler(
                         event:SelectionEvent):void
     {
+        if (ignoreSelectionChangeEvent)
+            return;
+
         var oldAnchor:int = _selectionAnchorPosition;
         var oldActive:int = _selectionActivePosition;


Transferred from the Adobe Open Source Subversion Repository

Revision: 11333
Author:   gosmith@adobe.com
Date:     2009-10-30T21:50:40.218356Z

Log Message:
-----------
RichEditableText now implements flash.text.engine.ITextSupport, although some of the implementations are just stubs.

This is currently a new interface in Player 10.1, although it is likely to change before 10.1 ships. Flex 4.0 compiles against Player 10.0, which does not have this interface in its playerglobal.swc. So Flex 4.0 now has a copy of this player interface in spark.swc to compile against. When running on 10.0, it is ignored. When running on 10.1, there will be a copy in the SWF or RSL and another in the Player; they will be identical, but the Player one should "win" because it is loaded first.

This interface is currently used to support three different things:

1. Exposing text selections to accessibility clients via the GetSelection() method of the COM interface ISimpleTextSelection.

2. Helping to implement inline IME.

3. Exposing FTE/TLF text to headless players used by web crawlers.

The part we're trying to get working first is #1. Unfortunately, ITextSupport currently requires selection-range properties called selectionAnchorIndex and selectionActiveIndex, while RichEditableText has named these selectionAnchorPosition and selectionActivePosition, following their names in TLF. The names will hopefully change before 10.1 ships so that RichEditableText does not have both pairs.

This interface also may get split up so that components that want to support web crawling do not also have to look like they support editable text.

QE notes: None
Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: ant checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/flash/text</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/flash/text/engine/ITextSupport.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/flash/text/engine</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/spark/src/flash</path>

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

--- frameworks/projects/spark/src/spark/components/RichEditableText.as
+++ frameworks/projects/spark/src/spark/components/RichEditableText.as
@@ -26,6 +26,7 @@
 import flash.text.engine.ElementFormat;
 import flash.text.engine.FontDescription;
 import flash.text.engine.FontLookup;
+import flash.text.engine.ITextSupport;
 import flash.text.engine.TextBlock;
 import flash.text.engine.TextElement;
 import flash.text.engine.TextLine;
@@ -383,7 +384,7 @@
  *  @productversion Flex 4
  */
 public class RichEditableText extends UIComponent
-    implements IViewport, IFocusManagerComponent, IIMESupport
+    implements IFocusManagerComponent, IIMESupport, ITextSupport, IViewport
 {
     include "../core/Version.as";

@@ -1080,7 +1081,19 @@
     //
     //--------------------------------------------------------------------------

-
+    //----------------------------------
+    //  canReconvert
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  FIXME (gosmith)
+	 */
+	public function get canReconvert():Boolean
+	{
+		return enabled && editable;
+	}
+
     //----------------------------------
     //  content
     //----------------------------------
@@ -1609,6 +1622,34 @@
     }

     //----------------------------------
+    //  selectionActiveIndex
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  FIXME (gosmith): ITextSupport needs to rename its
+	 *  selectionActiveIndex to selectionActivePosition.
+	 */
+	public function get selectionActiveIndex():int
+	{
+		return _selectionActivePosition;
+	}
+
+    //----------------------------------
+    //  selectionAnchorIndex
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  FIXME (gosmith): ITextSupport needs to rename its
+	 *  selectionAnchorIndex to selectionAnchorPosition.
+	 */
+	public function get selectionAnchorIndex():int
+	{
+		return _selectionAnchorPosition;
+	}
+
+    //----------------------------------
     //  selectionActivePosition
     //----------------------------------

@@ -3667,6 +3708,16 @@

         dispatchChangeAndChangingEvents = true;
     }
+
+	/**
+	 *  @private
+	 *  FIXME (gosmith).
+	 */
+	public function getTextInRange(startIndex:int = -1,
+								   endIndex:int = -1):String
+	{
+		return null;
+	}

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3006
Author:   chaase@adobe.com
Date:     2008-08-26T20:20:09.265543Z

Log Message:
-----------
Fix for SDK-16447. Fade effect would toggle visibility of target only when alphaFrom/To values were not set. This fix expands that logic to encompass situations where the alpha values are supplied as well.

Reviewed by Jason S
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animation.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/Animation.as
+++ frameworks/projects/spark/src/spark/effects/animation/Animation.as
@@ -47,7 +47,7 @@
  * as well as when the animation repeats and at regular update intervals during
  * the animation. These calls pass values which Animation calculated from
  * the start and end values and the easer and interpolator objects. These
- * values can then be used to set property values on target obects.

+ * values can then be used to set property values on target objects.

  *
  *  @see flex.effects.Animate
  *  @see flex.effects.effectClasses.AnimateInstance


Transferred from the Adobe Open Source Subversion Repository

Revision: 3509
Author:   jimurphy@adobe.com
Date:     2008-10-07T18:19:17.646255Z

Log Message:
-----------
Rename of flex -> mx.

For compatibility reasons it was decided that the new functionality remain integrated with the old framework, although we will continue to build two separate SWCs, one with primarily existing framework classes, and one with new Flex 4 classes. This change removes duplicate names from the Flex 4 framework to avoid class name overlapping with the old framework code.  The naming overlap consists of two major areas:  New Components, and New Effects

Modified Paths:
--------------
386 paths were modified

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

--- frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as
+++ frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as
@@ -1,4 +1,4 @@
-package flex.filters
+package mx.filters
 {

 import flash.filters.BitmapFilter;


Make the proper call here - there's no remove() on arrays...

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

--- src/as/com/threerings/media/Ticker.as
+++ src/as/com/threerings/media/Ticker.as
@@ -20,6 +20,8 @@

 import flash.events.TimerEvent;
 import flash.utils.Timer;
+
+import com.threerings.util.ArrayUtil;

 /**
  * Registers objects that wish to be sent a tick() call once per frame.
@@ -59,7 +61,7 @@

     public function removeTickable (tickable :Tickable) :void
     {
-        _tickables.remove(tickable);
+        ArrayUtil.removeFirst(_tickables, tickable);
     }

     /** Everyone who wants to hear about our ticks. */


Removed some now defunct comments...

Removed some now defunct comments...

--- src/com/kelvinluck/audio/MP3Player.as
+++ src/com/kelvinluck/audio/MP3Player.as
@@ -139,12 +139,9 @@

 		public function pause():void
 		{
-			// TODO: Check this actually works!
 			_channel.stop();
 			_isPlaying = false;
 		}
-
-		// TODO: unpause??

 		public function stop(resetPhase:Boolean = true):void
 		{