Transferred from the Adobe Open Source Subversion Repository

Revision: 17398
Author:   jszeto@adobe.com
Date:     2010-08-20T00:17:08.738112Z

Log Message:
-----------
Mobile Button/CheckBox/RadioButton Bug Fixes

SDK-27494 - RTE when setting styleName at runtime for CheckBox,RadioButton

When style changed, the iconDisplay was removed in ButtonSkinBase. Added a flag to choose whether to use the icon style.

SDK-27468 - Mobile Button Skin: button does not appear if it doesn't have a label

Added a minimum width

SDK-27426 - CheckBox, RadioButton doesn't resize when changing the label to be a longer value
SDK-27507 - Mobile Button label does not respect states in some test case

Fixed a regression introduced by the MobileTextField change. When the label changes, we need to invalidate the size and layout

SDK-27414 - Button dimension not adjusted when labelPlacement changes to top or bottom

Check for the iconPlacement style changing in styleChanged.

SDK-27407 - Button dimension not adjusted when icon is added or removed from the button
SDK-27351 - RTE when removing iconClass by switching states
SDK-27296 - Setting iconClass using setStyle does not work

Invalidate the size and layout when a style has changed

SDK-27388 - Borderless button skin looks the same when in up, down, and disabled states
SDK-27294 - Skin on enabled and disabled buttons look (almost) similar

Added logic to handle the disabled state. Note that due to a Player bug, text will still appear opaque on the desktop

QE notes: lots of fixes!
Doc notes: none
Bugs: SDK-27494, SDK-27468, SDK-27426, SDK-27507, SDK-27414, SDK-27407, SDK-27351, SDK-27296, SDK-27388, SDK-27294
Reviewer: Glenn
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
@@ -87,6 +87,13 @@
         // Holds the icon
         protected var iconDisplay:DisplayObject;

+        /**
+         *  If true, then create the iconDisplay using the icon style
+         *
+         *  @default true
+         */
+        protected var useIconStyle:Boolean = true;
+
         // TODO (jszeto) Either static consts or styles
         protected var gap:int = 7;
         protected var paddingLeft:int = 20;
@@ -95,6 +102,7 @@
         protected var paddingBottom:int = 20;

         private static var TEXT_WIDTH_PADDING:Number = UITextField.TEXT_WIDTH_PADDING + 1;
+        private static var MIN_WIDTH:Number = 48;

         //--------------------------------------------------------------------------
         //
@@ -114,12 +122,12 @@
         //--------------------------------------------------------------------------

-        /*override protected function commitCurrentState():void
+        override protected function commitCurrentState():void
         {
             super.commitCurrentState();

-            alpha = currentState.indexOf("disabled") == -1 ? 1 : 0.3;
-        }*/
+            alpha = currentState.indexOf("disabled") == -1 ? 1 : 0.5;
+        }

         /**
          *  @private
@@ -146,10 +154,13 @@
         override public function styleChanged(styleProp:String):void
         {
             if (!styleProp ||
-                styleProp == "styleName" || styleProp == "icon")
+                styleProp == "styleName" || styleProp == "icon"
+                || styleProp == "iconPlacement")
             {
                 iconChanged = true;
                 invalidateProperties();
+                invalidateSize();
+                invalidateDisplayList();
             }

             super.styleChanged(styleProp);
@@ -164,11 +175,14 @@
         {
             super.commitProperties();

-            if (iconChanged)
+            if (iconChanged && useIconStyle)
             {
                 if (iconDisplay)
+                {
                     removeChild(iconDisplay);
-
+                    iconDisplay = null;
+                }
+
                 var icon:Class = getStyle("icon");

                 if (icon)
@@ -228,16 +242,13 @@
                     h += gap; // getStyle("verticalGap");
             }

-            // Add padding. !!!Need a hack here to only add padding if we don't
-            // have text or icon. This is required to make small buttons (like scroll
-            // arrows and numeric stepper buttons) look correct.
             if (textWidth || iconWidth)
             {
                 w += paddingLeft + paddingRight; //getStyle("paddingLeft") + getStyle("paddingRight");
                 h += paddingTop + paddingBottom; //getStyle("paddingTop") + getStyle("paddingBottom");
             }

-            measuredMinWidth = measuredWidth = w;
+            measuredMinWidth = measuredWidth = Math.max(w, MIN_WIDTH);
             measuredMinHeight = measuredHeight = h;
         }

@@ -433,9 +444,11 @@
         /**
          *  @private
          */
-        private function labelDisplay_valueCommitHandler(event:Event):void
+        private function labelDisplay_valueCommitHandler(event:FlexEvent):void
         {
             labelDisplayShadow.text = labelDisplay.text;
+            invalidateSize();
+            invalidateDisplayList();
         }

     }


Start of some Layout documentation

Start of some Layout documentation

--- raw/src/org/yellcorp/lib/layout/Layout.as
+++ raw/src/org/yellcorp/lib/layout/Layout.as
@@ -702,6 +702,9 @@
 }

+/**
+ * Base class for binary mathematical operations
+ */
 class BinOp implements ASTNode
 {
     public var a:ASTNode;
@@ -727,6 +730,9 @@
 }

+/**
+ * Returns a + b
+ */
 class Add extends BinOp
 {
     public function Add(a:ASTNode, b:ASTNode) { super(a, b); }
@@ -740,6 +746,10 @@
     }
 }

+
+/**
+ * Returns a - b
+ */
 class Subtract extends BinOp
 {
     public function Subtract(a:ASTNode, b:ASTNode) { super(a, b); }
@@ -754,6 +764,9 @@
 }

+/**
+ * Returns a * b
+ */
 class Multiply extends BinOp
 {
     public function Multiply(a:ASTNode, b:ASTNode) { super(a, b); }
@@ -768,6 +781,9 @@
 }

+/**
+ * Returns a / b
+ */
 class Divide extends BinOp
 {
     public function Divide(a:ASTNode, b:ASTNode) { super(a, b); }
@@ -782,6 +798,10 @@
 }

+/**
+ * Rounds the value of a node to the nearest integer, with half-integer values
+ * rounding towards positive infinity.
+ */
 class Round implements ASTNode
 {
     public var child:ASTNode;
@@ -808,6 +828,10 @@
 }

+/**
+ * Returns the value of a node, unless that value is less than 0, in which case
+ * returns 0.
+ */
 class Max0 implements ASTNode
 {
     public var child:ASTNode;
@@ -820,7 +844,7 @@
     public function eval():*
     {
         var e:* = child.eval();
-        return e > 0 ? e : 0;
+        return e < 0 ? 0 : e;
     }

     public function acceptFilter(filter:ASTFilter):ASTNode
@@ -835,6 +859,9 @@
 }

+/**
+ * Returns the value of an actual property on an object.
+ */
 class GetRuntimeProp implements ASTNode
 {
     public var object:Object;
@@ -856,6 +883,15 @@
 }

+/**
+ * Returns a virtual property of an object.  A virtual property is an
+ * intermediate abstraction that does not exist in the runtime, but will later
+ * be transformed into runtime terms by the VirtualGetResolver AST filter.
+ *
+ * Virtual property  |  X axis   |  Transformed into
+ * MID               |  HCENTER  |  object.x + object.width * 0.5
+ * MAX               |  RIGHT    |  object.x + object.width
+ */
 class GetVirtualProp implements ASTNode
 {
     public var object:Object;
@@ -877,6 +913,9 @@
 }

+/**
+ * Sets an actual property on an object to the value of a node.
+ */
 class SetRuntimeProp implements ASTNode
 {
     public var object:Object;
@@ -903,6 +942,13 @@
 }

+/**
+ * Sets up to two virtual properties.  This is represented as a single node as
+ * both constraints must be known when generating SetRuntimeProp nodes.  When
+ * generating SetRuntimeProps, if only one property is given, the span
+ * (width/height) property of the target object should remain untouched unless
+ * specifically nominated.
+ */
 class SetVirtualProps implements ASTNode
 {
     public var object:Object;
@@ -941,6 +987,11 @@
 }

+/**
+ * When evaluated, simply returns the result of its child node.  The existence
+ * of a ReadOnly node indicates this node can be replaced with its evaluated
+ * child node in the optimization phase.
+ */
 class ReadOnly implements ASTNode
 {
     public var child:ASTNode;
@@ -963,6 +1014,9 @@
 }

+/**
+ * Returns the value of a register.
+ */
 class GetRegister implements ASTNode
 {
     public var regv:Vector.<Number>;
@@ -984,6 +1038,9 @@
 }

+/**
+ * Sets a register with the result of another node.
+ */
 class SetRegister implements ASTNode
 {
     public var regv:Vector.<Number>;
@@ -1010,6 +1067,9 @@
 }

+/**
+ * Stores a constant value.
+ */
 class Value implements ASTNode
 {
     public var value:*;
@@ -1078,6 +1138,9 @@
 }

+/**
+ * Resolves GetVirtualProp nodes into GetRuntimeProp nodes.
+ */
 class VirtualGetResolver extends ASTFilter
 {
     private var _axis:String;
@@ -1117,6 +1180,11 @@
 }

+/**
+ * Uses an instance of PropertyAdapter to replace runtime property getters
+ * and setters with alternate property names.  This is motivated by the
+ * usefulness of transforming stage.width -> stage.stageWidth, etc.
+ */
 class PropertyTransformer extends ASTFilter
 {
     private var propertyAdapter:PropertyAdapter;
@@ -1145,6 +1213,12 @@
 }

+/**
+ * Inserts Max0 nodes between a SetRuntimeProp node and its value, if the
+ * SetRuntimeProp node writes to a 'width' or 'height' property.  This must be
+ * applied before PropertyTransformer as it has no concept of replaced property
+ * names.
+ */
 class Max0SpanSetters extends ASTFilter
 {
     public override function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode
@@ -1161,6 +1235,9 @@
 }

+/**
+ * Inserts Round nodes between a SetRuntimeProp node and its value
+ */
 class RoundSetters extends ASTFilter
 {
     public override function filterSetRuntimePropNode(n:SetRuntimeProp):ASTNode
@@ -1170,6 +1247,9 @@
 }

+/**
+ * Replaces ReadOnly nodes with the evaluated value of their child node.
+ */
 class ReadOnlyEvaluator extends ASTFilter
 {
     public override function filterReadOnlyNode(n:ReadOnly):ASTNode
@@ -1179,6 +1259,9 @@
 }

+/**
+ * Evaluates an arithmetic node if all its children are Value nodes.
+ */
 class ArithmeticConstFolder extends ASTFilter
 {
     private var _replacements:int;
@@ -1249,6 +1332,16 @@
 }

+/**
+ * Performs some simple transformations to eliminate unnecessary arithmetic
+ * operations:
+ *
+ * n +/- 0 or 0 +/- n  ->  n
+ * n * 0 or 0 * n  ->  0
+ * n * 1 or 1 * n  ->  n
+ * n / 1  ->  n
+ * 0 / n, n != 0  -> 0
+ */
 class ArithmeticOptimizer extends ASTFilter
 {
     private var _replacements:int;
@@ -1348,6 +1441,11 @@
 }

+/**
+ * Accumulates a string representation of an AST and otherwise passes the
+ * AST unfiltered.  The result is an array of Strings, each representing a line
+ * of output.  For plaintext tracing, the lines array should be joined with "\n"
+ */
 class ASTDumper extends ASTFilter
 {
     public var lines:Array = [ ];


If shutting down media that has a different url than it should, log both urls.

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

--- src/as/com/threerings/flash/MediaContainer.as
+++ src/as/com/threerings/flash/MediaContainer.as
@@ -132,12 +132,12 @@
         if (Util.equals(_url, url)) {
             return; // no change
         }
-        _url = url;

         // shutdown any previous media
         if (_media != null) {
             shutdown(false);
         }
+        _url = url;

         // set up the new media
         willShowNewMedia();
@@ -158,10 +158,10 @@
      */
     public function setMediaObject (disp :DisplayObject) :void
     {
-        _url = null;
         if (_media != null) {
             shutdown(false);
         }
+        _url = null;

         willShowNewMedia();
         addChildAt(disp, 0);
@@ -310,7 +310,8 @@
                 loader.unload();

                 removeChild(loader);
-                log.info("Unloaded media [url=" + url + "].");
+                var extra :String  = (url == _url) ? "" : (", _url=" + _url);
+                log.info("Unloaded media [url=" + url + extra + "].");

             } else if (_media is VideoDisplayer) {
                 var vid :VideoDisplayer = (_media as VideoDisplayer);


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 3594
Author:   pfarland@adobe.com
Date:     2008-10-13T18:00:52.025975Z

Log Message:
-----------
Initial check-in for Advanced CSS selector support. Note that since direct AST generation for advanced styles (i.e. equivalent code of StyleModule.vm, StyleDef.vm, ClassDefLib.vm) is not yet implemented and as such advanced selector support is only enabled when the compiler -keep=true is enabled at this time. Direct AST generation to follow.

This change adds support for descendant type selectors (e.g. Panel VBox Button), non-global class selectors (e.g. Button.special), id selectors (e.g. Button#button14), and combinations of these types of selectors (e.e. Panel.special VBox.box12 Button.cancel). Pseudo selector awareness is included but it is not yet wired up to the runtime states mechanism as an efficient method of reacting to state changes is still being developed. Combinator conditional global selectors will be supported soon (i.e. the scenario of combining both an id and class selector at the top level, e.g. .foo#foo12, this requires a more expensive search of global class selectors).

This change juggles both the introduction of advanced selector support while retaining legacy styles APIs. The major difference with advanced styles is that multiple styles need to be considered for a type. This requires new data structures to keep track of selectors by subject. Performance analysis will be conducted to ensure these new data structures do not add unacceptable overhead to the style subsystem.

For the compiler this change consolidates styles processing in the base StyleModule class and then MXML-specific overrides (i.e. inline <Styles> nodes and SWC defaults.css) are in the StylesContainer.java class, which now extends StyleModule. The existing structure for legacy simple style codegen was retained and advanced style codegen wedged in.

QA: Yes
Doc: Not yet
Checkintests: Pass 100%
mxunit styles tests: Pass 100% (note that styles modules include tests you need to manually compile the .css files to swf and they're currently cleaned out each time a build runs... QE please correct this).
mustella styles tests: QE's select list of components testsuites pass 100%. Any failures in the full suite will be addressed in the next-checkin.
Reviewers: Glenn (framework), Paul (compiler)

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/CssCompiler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StylesContainer.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/rep/MxmlDocument.java</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager3.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/rpc/src/mx/messaging/config/ConfigMap.as</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleSelector.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleProperty.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDeclaration.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelectorKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSConditionKind.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/FontFaceRule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/ImplementationGenerator.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleClient.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<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/modules/compiler/src/java/flash/css/StyleSheet.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleDocumentHandler.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleProtoChain.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSSelector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManager.as</path>
<path kind="file" action="D">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleProperty.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleModule.vm</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IAdvancedStyleClient.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSCondition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/gen/ClassDefLib.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/Rule.java</path>
<path kind="file" action="A">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleCondition.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.java</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/css/StyleDef.vm</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flash/css/StyleParser.java</path>

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

--- frameworks/projects/framework/src/mx/styles/CSSSelector.as
+++ frameworks/projects/framework/src/mx/styles/CSSSelector.as
@@ -0,0 +1,286 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.styles
+{
+
+import mx.core.mx_internal;
+
+/**
+ *  Represents a selector node in a potential chain of selectors used to match
+ *  CSS style declarations to components.
+ *
+ *  @see mx.styles.CSSSelectorKind
+ */
+public class CSSSelector
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @param kind  The kind of selector. For valid values see the
+     *  CSSSelectorKind enumeration.
+     *  @param value  The plain representation of this selector without
+     *  conditions or ancestors.
+     *  @param conditions  An optional Array of conditions used to match a
+     *  subset of component instances. Currently only a single or a pair of
+     *  @param ancestor An optional selector to match on a component that
+     *  descends from an arbitrary ancestor.
+     *  conditions are supported.
+     */
+    public function CSSSelector(kind:uint, value:String, conditions:Array=null,
+            ancestor:CSSSelector=null)
+    {
+        _kind = kind;
+        _value = value;
+        _conditions = conditions;
+        _ancestor = ancestor;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  ancestor
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _ancestor:CSSSelector;
+
+    /**
+     *  If this selector is part of a descendant selector it may have a further
+     *  selector defined for an arbitrary ancestor.
+     */
+    public function get ancestor():CSSSelector
+    {
+        return _ancestor;
+    }
+
+    //----------------------------------
+    //  conditions
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _conditions:Array; // of CSSCondition
+
+    /**
+     *  This selector may match a subset of components by specifying further
+     *  conditions, i.e. the component may have a particular id, styleName
+     *  (equivalent to a 'class' condition in CSS) or state (equivalent to a
+     *  'pseudo' condition in CSS).
+     *
+     *  @return Array of CSSCondition specified for this selector.
+     */
+    public function get conditions():Array
+    {
+        return _conditions;
+    }
+
+    //----------------------------------
+    //  kind
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _kind:uint;
+
+    /**
+     *  The kind of selector this instance represents. Options are type,
+     *  conditional or descendant.
+     *
+     *  @see mx.styles.CSSSelectorKind
+     */
+    public function get kind():uint
+    {
+        return _kind;
+    }
+
+    //----------------------------------
+    //  specificity
+    //----------------------------------
+
+    /**
+     *  Calculates the specificity of a selector chain in order to determine
+     *  the precedence when applying several matching style declarations. Note
+     *  that id conditions contribute 100 points, pseudo and class conditions
+     *  each contribute 10 points, types (including descendants in a chain of
+     *  selectors) contribute 1 point. Global selectors (i.e. *) contribute
+     *  nothing. The result is the sum of these contributions. Selectors with a
+     *  higher specificity override selectors of lower specificity. If
+     *  selectors have equival specificity, the declaration order determines
+     *  the precedence (i.e. the last one wins).
+     */
+    public function get specificity():uint
+    {
+        var s:uint = 0;
+
+        if ("*" != value && "global" != value)
+            s = 1;
+
+        if (conditions != null)
+        {
+            for each (var condition:CSSCondition in conditions)
+            {
+                s += condition.specificity;
+            }
+        }
+
+        if (ancestor != null)
+            s += ancestor.specificity;
+
+        return s;
+    }
+
+    //----------------------------------
+    //  value
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _value:String;
+
+    /**
+     *  The value of this selector node (only). To get a String representation
+     *  of all conditions and descendants of this selector call the toString()
+     *  method.
+     *
+     *  If this selector represents the root node of a potential chain of
+     *  selectors, the value also represents the subject of the entire selector
+     *  expression.
+     */
+    public function get value():String
+    {
+        return _value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Determines whether this selector matches the given component.
+     *
+     *  @param object The component to which the selector may apply.
+     *  @param ignoreType Whether to ignore the component type in the match.
+     *  @return true if component is a match, or false if not.
+     */
+    public function isMatch(object:IAdvancedStyleClient, ignoreType:Boolean=false):Boolean
+    {
+        var match:Boolean = false;
+
+        if (kind == CSSSelectorKind.TYPE_SELECTOR
+            || kind == CSSSelectorKind.CONDITIONAL_SELECTOR)
+        {
+            if (ignoreType || value == "*" || value == "global" ||
+                object.className == value)
+            {
+                match = true;
+            }
+
+            if (match && conditions != null)
+            {
+                for each (var condition:CSSCondition in conditions)
+                {
+                    match = condition.isMatch(object);
+                    if (!match)
+                        break;
+                }
+            }
+        }
+        else if (kind == CSSSelectorKind.DESCENDANT_SELECTOR)
+        {
+            if (ancestor != null)
+            {
+                var parent:IAdvancedStyleClient = object.styleParent;
+                while (parent != null)
+                {
+                    // TODO: Handle * ancestor
+                    if (parent.className == ancestor.value)
+                    {
+                        match = ancestor.isMatch(parent);
+                        break;
+                    }
+                    parent = parent.styleParent;
+                }
+            }
+        }
+
+        return match;
+    }
+
+    /**
+     *  @private
+     */
+    public function isPseudoSelector():Boolean
+    {
+        var result:Boolean = false;
+
+        if (kind == CSSSelectorKind.CONDITIONAL_SELECTOR && conditions != null)
+        {
+            for each (var condition:CSSCondition in conditions)
+            {
+                if (condition.kind == CSSConditionKind.PSEUDO_CONDITION)
+                {
+                    result = true;
+                    break;
+                }
+            }
+        }
+
+        return result;
+    }
+
+    /**
+     *  @return A String representation of this selector including all of its
+     *  syntax, conditions and ancestors.
+     */
+    public function toString():String
+    {
+        var s:String;
+
+        if (ancestor != null)
+        {
+            s = ancestor.toString() + " " + value;
+        }
+        else
+        {
+            s = value;
+        }
+
+        if (conditions != null)
+        {
+            for each (var condition:CSSCondition in conditions)
+            {
+                s += condition.toString();
+            }
+        }
+
+        return s;
+    }
+}
+
+}


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

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

 package mx.skins.halo
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23043
Author:   smgilson@adobe.com
Date:     2011-10-18T13:40:38.640930Z

Log Message:
-----------
Add note to ComboBox.as: When the user enters a new item, the selectedIndex property is set to -3.

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

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

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

--- frameworks/projects/spark/src/spark/components/ComboBox.as
+++ frameworks/projects/spark/src/spark/components/ComboBox.as
@@ -124,6 +124,8 @@
  *  from a list of predefined items in the control.
  *  The ComboBox control lets the user either select a predefined item,
  *  or enter a new item into the prompt area.
+ *  When the user enters a new item, the selectedIndex property
+ *  is set to -3.
  *  Your application can recognize that a new item has been entered and,
  *  optionally, add it to the list of items in the control.

  *


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/effects/easing/Sine.as
+++ frameworks/projects/spark/src/spark/effects/easing/Sine.as
@@ -1,3 +1,13 @@
+		////////////////////////////////////////////////////////////////////////////////
+//
+//  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.easing
 {
 /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.core
 {


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

--- frameworks/projects/framework/src/mx/managers/IToolTipManagerClient.as
+++ frameworks/projects/framework/src/mx/managers/IToolTipManagerClient.as
@@ -0,0 +1,51 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2005-2006 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.managers
+{
+
+import mx.core.IFlexDisplayObject;
+
+/**
+ *  Components that implement IToolTipManagerClient can have tooltips and must
+ *  have a toolTip getter/setter.
+ *  The ToolTipManager class manages showing and hiding the
+ *  tooltip on behalf of any component which is an IToolTipManagerClient.
+ *
+ *  @see mx.controls.ToolTip
+ *  @see mx.managers.ToolTipManager
+ *  @see mx.core.IToolTip
+ */
+public interface IToolTipManagerClient extends IFlexDisplayObject
+{
+	//--------------------------------------------------------------------------
+	//
+	//  Properties
+	//
+	//--------------------------------------------------------------------------
+
+	//----------------------------------
+	//  toolTip
+	//----------------------------------
+
+	/**
+	 *  The text of this component's tooltip.
+	 */
+	function get toolTip():String;
+
+	/**
+	 *  @private
+	 */
+	function set toolTip(value:String):void;
+
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 17372
Author:   gruehle@adobe.com
Date:     2010-08-18T23:23:45.776465Z

Log Message:
-----------
More mobile text feature work:
* Address all remaining TODOs in the code
* Alphabetize the properties in IEditableText and MobileTextField
* Add support for embedded fonts

QE notes: No
Doc notes: No
Bugs: SDK-27474
Reviewer: Jason Szeto
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/assets/TextInput_border.fxg</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/core/IEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as
@@ -14,6 +14,8 @@

 import flash.display.DisplayObject;
 import flash.events.Event;
+
+import mx.events.FlexEvent;

 import spark.components.TextArea;
 import spark.components.supportClasses.MobileTextField;
@@ -88,6 +90,7 @@
         textDisplay.multiline = true;
         textDisplay.wordWrap = true;
         textDisplay.addEventListener(Event.CHANGE, textDisplay_changeHandler);
+        textDisplay.addEventListener(FlexEvent.VALUE_COMMIT, textDisplay_changeHandler);
         addChild(textDisplay);
     }

@@ -98,7 +101,11 @@
     {
         super.measure();

-        // TODO: Don't use hard-coded values
+        // TextDisplay always defaults to 440 pixels wide, and tall enough to
+        // show all text.
+        //
+        // You can set an explicit width and the height will adjust accordingly. The opposite
+        // is not true: setting an explicit height will not adjust the width accordingly.
         measuredWidth = 440;
         measuredHeight = Math.max(textDisplay.textHeight + (VERTICAL_PADDING * 2), 55);
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5097
Author:   gauravj@adobe.com
Date:     2009-02-27T02:06:23.424936Z

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:
--------------
<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/controls/fileSystemClasses/FileSystemTreeDataDescriptor.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/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/FlexContentHolder.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/StatusBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/WindowExistenceEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemControlHelper.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/managers/NativeDragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemRawChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/windowClasses/TitleBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemChildrenList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>

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

--- frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as
+++ frameworks/projects/flash-integration/src/mx/flash/ContainerMovieClip.as
@@ -62,6 +62,11 @@
  *
For more information, see the documentation that ships with the
  *  Flex/Flash Integration Kit at
  *  http://www.adobe.com/go/flex3_cs3_swfkit.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public dynamic class ContainerMovieClip extends UIMovieClip
 {
@@ -74,6 +79,11 @@

    /**
     *  Constructor
+    *
+    *  @langversion 3.0
+    *  @playerversion Flash 9
+    *  @playerversion AIR 1.1
+    *  @productversion Flex 3
     */
     public function ContainerMovieClip()
     {
@@ -165,6 +175,11 @@
      * </mx:Application>
      * </listing>
      *
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get content():IUIComponent
     {
@@ -202,6 +217,11 @@
      *  container.

      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get fillContentToSize():Boolean
     {
@@ -237,6 +257,11 @@
      *  container due to sizing.

      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function get scaleContent():Boolean
     {


persist HUD point settings

persist HUD point settings

--- src/battlecode/client/viewer/render/RenderConfiguration.as
+++ src/battlecode/client/viewer/render/RenderConfiguration.as
@@ -220,6 +220,7 @@
                 pointLabel = false;
                 pointBar = false;
             }
+            saveConfiguration();
         }
     }


fixing test

fixing test

--- test/httpclient/http/HeaderTest.as
+++ test/httpclient/http/HeaderTest.as
@@ -40,9 +40,7 @@
         assertTrue(response.isSuccess);
       };

-      var uri:URI = new URI("http://localhost:8080/shrub/test");
-      client.get(uri);
-
+      var uri:URI = new URI("http://localhost:8080/shrub/test");
       var request:HttpRequest = new Get();
       request.addHeader("X-WSSE", "UsernameToken");
       request.addHeader("Username", "tom");


Do some smooth centering a la the java version of MisoScenePanel

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

--- src/as/com/threerings/miso/client/MisoScenePanel.as
+++ src/as/com/threerings/miso/client/MisoScenePanel.as
@@ -54,6 +54,7 @@
 import com.threerings.util.Sets;
 import com.threerings.util.StringUtil;
 import com.threerings.util.maps.WeakValueMap;
+import com.threerings.media.Tickable;
 import com.threerings.media.tile.BaseTile;
 import com.threerings.media.tile.Colorizer;
 import com.threerings.media.tile.NoSuchTileSetError;
@@ -63,6 +64,7 @@
 import com.threerings.media.util.AStarPathSearch_Stepper;
 import com.threerings.media.util.LineSegmentPath;
 import com.threerings.media.util.Path;
+import com.threerings.media.util.Pathable;
 import com.threerings.media.util.TraversalPred;
 import com.threerings.miso.client.MisoMetricsTransformation;
 import com.threerings.miso.client.PrioritizedSceneLayoutRenderer;
@@ -74,7 +76,7 @@
 import com.threerings.miso.util.MisoSceneMetrics;

 public class MisoScenePanel extends Sprite
-    implements PlaceView, TraversalPred
+    implements PlaceView, TraversalPred, Tickable
 {
     private var log :Log = Log.getLog(MisoScenePanel);

@@ -89,6 +91,9 @@

         _isoView = new IsoView();
         _isoView.setSize(DEF_WIDTH, DEF_HEIGHT);
+
+        _centerer = new Centerer(_isoView);
+
         _vbounds = new Rectangle(0, 0,
             _isoView.size.x, _isoView.size.y);

@@ -98,6 +103,30 @@
         _objScene.layoutRenderer = new ClassFactory(PrioritizedSceneLayoutRenderer);

         addChild(_loading = createLoadingPanel());
+
+        addEventListener(Event.ADDED_TO_STAGE, addedToStage);
+        addEventListener(Event.REMOVED_FROM_STAGE, removedFromStage);
+    }
+
+    /**
+     * Handles Event.ADDED_TO_STAGE.
+     */
+    protected function addedToStage (event :Event) :void
+    {
+        _ctx.getTicker().registerTickable(this);
+    }
+
+    /**
+     * Handles Event.REMOVED_FROM_STAGE.
+     */
+    protected function removedFromStage (event :Event) :void
+    {
+        _ctx.getTicker().removeTickable(this);
+    }
+
+    public function tick (tickStamp :int) :void
+    {
+        _centerer.tick(tickStamp);
     }

     /**
@@ -136,16 +165,15 @@
     public function handleMousePressed (hobject :Object, event :MouseEvent) :Boolean
     {
         var viewPt :Point = _isoView.globalToLocal(new Point(event.stageX, event.stageY));
-        moveBy(new Point(viewPt.x - _isoView.width / 2, viewPt.y - _isoView.height / 2));
+        moveBy(new Point(viewPt.x - _isoView.width / 2, viewPt.y - _isoView.height / 2), false);
         return true;
     }

-    public function moveBy (pt :Point) :void
+    public function moveBy (pt :Point, immediate :Boolean) :void
     {
         // No scene model yet, just do it...
         if (_model == null) {
-            _isoView.centerOnPt(new Pt(pt.x + _isoView.currentX,
-                pt.y + _isoView.currentY), false);
+            _centerer.moveTo(pt.x + _isoView.currentX, pt.y + _isoView.currentY, immediate);
             return;
         }

@@ -299,8 +327,8 @@

         // Then we let the scene finally move if it's trying to...
         if (_pendingMoveBy != null) {
-            _isoView.centerOnPt(new Pt(_pendingMoveBy.x + _isoView.currentX,
-                _pendingMoveBy.y + _isoView.currentY), false);
+            _centerer.moveTo(_pendingMoveBy.x + _isoView.currentX,
+                _pendingMoveBy.y + _isoView.currentY, false);
             _pendingMoveBy = null;
         }

@@ -476,6 +504,8 @@

     protected var _covered :Set = Sets.newSetOf(String);

+    protected var _centerer :Centerer;
+
     protected const DEF_WIDTH :int = 985;
     protected const DEF_HEIGHT :int = 560;

@@ -483,3 +513,107 @@
 }
 }

+import as3isolib.display.IsoView;
+import as3isolib.geom.Pt;
+
+import com.threerings.media.util.LineSegmentPath;
+import com.threerings.media.util.Path;
+import com.threerings.media.util.Pathable;
+import com.threerings.media.Tickable;
+
+import com.threerings.util.DirectionCodes;
+
+
+class Centerer
+    implements Pathable, Tickable
+{
+    public function Centerer (isoView :IsoView)
+    {
+        _isoView = isoView;
+    }
+
+    public function moveTo (x :int, y:int, immediate :Boolean) :void
+    {
+        if (immediate) {
+            cancelMove();
+            setLocation(x, y);
+        } else {
+            var path :LineSegmentPath =
+                LineSegmentPath.createWithInts(_isoView.currentX, _isoView.currentY, x, y);
+            path.setVelocity(SCROLL_VELOCITY);
+            move(path);
+        }
+    }
+
+    public function move (path :Path) :void
+    {
+        // if there's a previous path, let it know that it's going away
+        cancelMove();
+
+        // save off this path
+        _path = path;
+
+        // we'll initialize it on our next tick thanks to a zero path stamp
+        _pathStamp = 0;
+    }
+
+    public function cancelMove () :void
+    {
+        if (_path != null) {
+            var oldpath :Path = _path;
+            _path = null;
+            oldpath.wasRemoved(this);
+        }
+    }
+
+    public function tick (tickStamp :int) :void
+    {
+        if (_path != null) {
+            if (_pathStamp == 0) {
+                _pathStamp = tickStamp
+                _path.init(this, _pathStamp);
+            }
+            _path.tick(this, tickStamp);
+        }
+    }
+
+    public function getX () :Number
+    {
+        return _isoView.currentX;
+    }
+
+    public function getY () :Number
+    {
+        return _isoView.currentY;
+    }
+
+    public function setLocation (x :Number, y :Number) :void
+    {
+        _isoView.centerOnPt(new Pt(x, y), false);
+    }
+
+    public function setOrientation (orient :int) :void
+    {
+    }
+
+    public function getOrientation () :int
+    {
+        return DirectionCodes.NONE;
+    }
+
+    public function pathBeginning () :void
+    {
+    }
+
+    public function pathCompleted (timestamp :int) :void
+    {
+        _path = null;
+    }
+
+    protected var _isoView :IsoView;
+    protected var _path :Path;
+    protected var _pathStamp :int;
+
+    /** Our scroll path velocity. */
+    protected static const SCROLL_VELOCITY :Number = 0.4;
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 20845
Author:   mhorn@adobe.com
Date:     2011-03-14T15:29:23.391952Z

Log Message:
-----------
merge 20756,20790,20712,20805

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

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

--- frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as
+++ frameworks/projects/advancedgrids/src/mx/collections/HierarchicalCollectionViewCursor.as
@@ -304,6 +304,9 @@
     /**
      *  @inheritDoc
      *
+     *
Note that for this class, the view does not need to be sorted in order to
+     *  call this method.

+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -340,6 +343,9 @@
     /**
      *  @inheritDoc
      *
+     *
Note that for this class, the view does not need to be sorted in order to
+     *  call this method.

+     *
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
@@ -352,6 +358,9 @@

     /**
      *  @inheritDoc
+     *
+     *
Note that for this class, the view does not need to be sorted in order to
+     *  call this method.

      *
      *  @langversion 3.0
      *  @playerversion Flash 9
@@ -421,8 +430,8 @@
                     try
                     {
                         currentNode = childCursor.current;
-						// update parent map
-						updateParentMap(currentNode);
+                        // update parent map
+                        updateParentMap(currentNode);
                     }
                     catch (e:ItemPendingError)
                     {
@@ -580,8 +589,8 @@
                 }
             }
         }
-
-		updateParentMap(currentNode);
+
+        updateParentMap(currentNode);

         currentIndex++;
         return true;
@@ -739,7 +748,7 @@
             }
         }

-		updateParentMap(currentNode);
+        updateParentMap(currentNode);

         currentIndex--;
         return true;
@@ -899,20 +908,20 @@
         }
         return true;
     }
-
-	/**
-	 * @private
-	 * Update the parent map.
-	 */
-	private function updateParentMap(currentNode:Object):void
-	{
-		if (currentNode != null)
-		{
-			var uid:String = UIDUtil.getUID(currentNode);
-			if (!collection.parentMap.hasOwnProperty(uid))
-				collection.parentMap[uid] = parentNodes[parentNodes.length - 1];
-		}
-	}
+
+    /**
+     * @private
+     * Update the parent map.
+     */
+    private function updateParentMap(currentNode:Object):void
+    {
+        if (currentNode != null)
+        {
+            var uid:String = UIDUtil.getUID(currentNode);
+            if (!collection.parentMap.hasOwnProperty(uid))
+                collection.parentMap[uid] = parentNodes[parentNodes.length - 1];
+        }
+    }

     /**
      *  @private
@@ -1298,14 +1307,14 @@
             // dispatch CURSOR_UPDATE event
             collection.dispatchEvent(new FlexEvent(FlexEvent.CURSOR_UPDATE));
         }
-		else if (event.kind == CollectionEventKind.REFRESH)
-		{
-			// find the correct index of the item
-			if (!(beforeFirst || afterLast))
-			{
-				findFirst(current);
-			}
-		}
+        else if (event.kind == CollectionEventKind.REFRESH)
+        {
+            // find the correct index of the item
+            if (!(beforeFirst || afterLast))
+            {
+                findFirst(current);
+            }
+        }
     }
 }


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

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

-/**
- *  The color for the icon in a skin.
- *  For example, this style is used by the CheckBoxIcon skin class
- *  to draw the check mark for a CheckBox control,
- *  by the ComboBoxSkin class to draw the down arrow of the ComboBox control,
- *  and by the DateChooserMonthArrowSkin skin class to draw the month arrow
- *  for the DateChooser control.
- *
- *  The default value depends on the component class;
- *  if it is not overridden by the class, the default value is 0x111111.
- *
- *  @langversion 3.0
- *  @playerversion Flash 9
- *  @playerversion AIR 1.1
- *  @productversion Flex 3
- */
 [Style(name="iconColor", type="uint", format="Color", inherit="yes", theme="halo")]

 /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 12539
Author:   mhorn@adobe.com
Date:     2009-12-04T18:26:28.712292Z

Log Message:
-----------
asdoc updates in prep for l10n

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextSelectionHighlighting.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/events/TextOperationEvent.as</path>

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

--- frameworks/projects/spark/src/spark/events/TextOperationEvent.as
+++ frameworks/projects/spark/src/spark/events/TextOperationEvent.as
@@ -21,8 +21,17 @@
  *  when text content changes due to user operations
  *  such as inserting characters, backspacing, pasting,
  *  or changing text attributes.
+ *
+ *
This event is dispatched by subclasses of the SkinnableTextBase class. This
+ *  includes RichEditableText and classes that use RichEditableText such as ComboBox and
+ *  TextInput, as well as TextArea. Text controls that have no user interaction,
+ *  such as RichText and Label, do not dispatch events of this type.

  *
  *  @see spark.components.RichEditableText
+ *  @see spark.components.TextArea
+ *  @see spark.components.ComboBox
+ *  @see spark.components.TextInput
+ *  @see spark.components.supportClasses.SkinnableTextBase
  *
  *  @langversion 3.0
  *  @playerversion Flash 10
@@ -154,6 +163,13 @@
      *
This might be an InsertTextOperation, a DeleteTextOperation,
      *  a SplitParagraphOperation, a CutOperation, a PasteOperation,
      *  an UndoOperation, or other subclass of FlowOperation.

+     *
+     *  @see flashx.textLayout.operations.InsertTextOperation
+     *  @see flashx.textLayout.operations.DeleteTextOperation
+     *  @see flashx.textLayout.operations.SplitParagraphOperation
+     *  @see flashx.textLayout.operations.PasteOperation
+     *  @see flashx.textLayout.operations.CutOperation
+     *  @see flashx.textLayout.operations.UndoOperation
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Another missing license header

Another missing license header

Signed-off-by: Erik de Bruin <c195b508e6f0c57aeafdb5e96947e2b79e6a4b40@ixsoftware.nl>

--- frameworks/tests/unitTests/spark/components/gridClasses/DataGridEditor_FLEX_34543_Test.as
+++ frameworks/tests/unitTests/spark/components/gridClasses/DataGridEditor_FLEX_34543_Test.as
@@ -1,3 +1,22 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Licensed to the Apache Software Foundation (ASF) under one or more
+//  contributor license agreements.  See the NOTICE file distributed with
+//  this work for additional information regarding copyright ownership.
+//  The ASF licenses this file to You under the Apache License, Version 2.0
+//  (the "License"); you may not use this file except in compliance with
+//  the License.  You may obtain a copy of the License at
+//
+//      http://www.apache.org/licenses/LICENSE-2.0
+//
+//  Unless required by applicable law or agreed to in writing, software
+//  distributed under the License is distributed on an "AS IS" BASIS,
+//  WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied.
+//  See the License for the specific language governing permissions and
+//  limitations under the License.
+//
+////////////////////////////////////////////////////////////////////////////////
+
 package spark.components.gridClasses {
     import mx.collections.ArrayCollection;
     import mx.collections.ArrayList;


Transferred from the Adobe Open Source Subversion Repository

Revision: 6320
Author:   cframpto@adobe.com
Date:     2009-04-28T13:23:08.762750Z

Log Message:
-----------
Missing if in what was suppose to be an else-if clause was causing text to be clipped in updateDisplayList().

QE Notes:
Doc Notes:
Bugs:
Reviewers: Gordon

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -766,7 +766,7 @@
                 // recompose if the height changes.
                 compose = true;
             }
-            else (unscaledHeight < mx_internal::bounds.height)
+            else if (unscaledHeight < mx_internal::bounds.height)
             {
                 // Don't need to recompose but need to clip since not all the
                 // height is needed.


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.olap
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 7377
Author:   jimurphy@adobe.com
Date:     2009-05-28T18:43:12.971970Z

Log Message:
-----------
Merged beta1 revisions 7173,7179,7183,7214,7216,7219,7282 -> trunk

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/flex-config.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/ComponentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/themes/Wooden/Wooden.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/themes/AeonGraphical/AeonGraphical.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/themes/Smoke/Smoke.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/builder/DocumentBuilder.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/themes/Ice/Ice.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/air-config.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler_en.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/TitleWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/themes/Institutional/Institutional.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>

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

--- frameworks/projects/spark/src/spark/components/ButtonBar.as
+++ frameworks/projects/spark/src/spark/components/ButtonBar.as
@@ -50,6 +50,9 @@
  *  @productversion Flex 4
  */
 [Event(name="itemClick", type="mx.events.ItemClickEvent")]
+
+
+[Alternative(replacement="mx.controls.ButtonBar", since="4.0")]

 /**
  *  The ButtonBar control defines a horizontal group of


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/effects/easing/Power.as
+++ frameworks/projects/spark/src/spark/effects/easing/Power.as
@@ -1,3 +1,13 @@
+		////////////////////////////////////////////////////////////////////////////////
+//
+//  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.easing
 {
 /**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.effects.effectClasses
 {


* 修复了删除帧时最大帧数不正确的 bug

* 修复了删除帧时最大帧数不正确的 bug

--- ageb/src/ageb/modules/avatar/op/RemoveFrame.as
+++ ageb/src/ageb/modules/avatar/op/RemoveFrame.as
@@ -31,7 +31,6 @@
 		override public function redo():void
 		{
 			var i:int, n:int, layer:FrameLayerInfoEditable;
-			var numFrames:int = 0;

 			// 遍历所有 CellPosition，进行删除操作
 			for (i = cells.length - 1; i >= 0; i--)
@@ -48,18 +47,8 @@
 			{
 				layer = info.getLayerAt(insertPositions[i].rowIndex);
 				layer.notifyFramesChange();
-
-				// 修改后的图层帧长度
-				if (layer.numFrames > numFrames)
-				{
-					numFrames = layer.numFrames;
-				}
 			}
-
-			if (numFrames > 0)
-			{
-				info.numFrames = numFrames;
-			}
+			info.updateNumFrames();
 		}

 		/**


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

 package mx.olap
 {