Transferred from the Adobe Open Source Subversion Repository

Revision: 16602
Author:   jasonsj@adobe.com
Date:     2010-06-21T18:38:18.429731Z

Log Message:
-----------
ActionBar and SlideViewTransition prototypes

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -3,6 +3,7 @@
 import flash.events.Event;

 import mx.core.ISelectableList;
+import mx.core.IVisualElement;
 import mx.core.mx_internal;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
@@ -18,6 +19,7 @@
 import spark.events.IndexChangeEvent;
 import spark.events.NavigatorEvent;
 import spark.events.ViewNavigatorEvent;
+import spark.layouts.supportClasses.LayoutBase;

 use namespace mx_internal;

@@ -142,6 +144,84 @@
     // Variables
     //
     //--------------------------------------------------------------------------
+
+    [ArrayElementType("mx.core.IVisualElement")]
+
+    /**
+     *  Default ActionBar action content when not supplied by a View.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var actionContent:Array;
+
+    /**
+     *  Defines the default layout for the ActionBar actionContent.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var actionLayout:LayoutBase;
+
+    [ArrayElementType("mx.core.IVisualElement")]
+
+    /**
+     *  Default ActionBar title content when not supplied by a View.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var titleContent:Array;
+
+    /**
+     *  Defines the default layout for the ActionBar titleContent.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var titleLayout:LayoutBase;
+
+    [ArrayElementType("mx.core.IVisualElement")]
+
+    /**
+     *  Default ActionBar navigation content when not supplied by a View.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var navigationContent:Array;
+
+    /**
+     *  Defines the default layout for the ActionBar navigationContent.
+     *
+     *  @default null
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     */
+    public var navigationLayout:LayoutBase;

     /**
      *
@@ -721,13 +801,15 @@
         if (transition)
         {
             transition.addEventListener(Event.COMPLETE, transitionComplete);
-            transition.currentView = currentView;
+            transition.previousView = currentView;
             transition.nextView = pendingView;
             transition.navigator = this;

             // Give the transition a chance to prepare before the view updates
             transition.prepare();
         }
+
+        updateActionBar(currentView, pendingView);

         // Notify listeners that a new view has been successfully added to the stage
         if (hasEventListener(ViewNavigatorEvent.VIEW_ADD))
@@ -746,6 +828,34 @@
         {
             endViewChange();
         }
+    }
+
+    protected function updateActionBar(currentView:View, pendingView:View):void
+    {
+        if (!actionBar)
+            return;
+
+        // TODO: setup data binding from active view to ActionBar
+        // TODO: allow MobileApplication and/or ViewNavigator to define default ActionBar content
+        actionBar.title = pendingView.title;
+
+        var content:Array = pendingView.titleContent;
+        var contentLayout:LayoutBase = (pendingView.titleLayout) ? pendingView.titleLayout : this.titleLayout;
+
+        actionBar.titleContent = (content) ? content : this.titleContent;
+        actionBar.titleLayout = contentLayout;
+
+        content = pendingView.navigationContent;
+        contentLayout = (pendingView.navigationLayout) ? pendingView.navigationLayout : this.navigationLayout;
+
+        actionBar.navigationContent = (content) ? content : this.navigationContent;
+        actionBar.navigationLayout = navigationLayout;
+
+        content = pendingView.actionContent;
+        contentLayout = (pendingView.actionLayout) ? pendingView.actionLayout : this.actionLayout;
+
+        actionBar.actionContent = (content) ? content : this.actionContent;
+        actionBar.actionLayout = actionLayout;
     }

     protected function transitionComplete(event:Event):void


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

--- frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.as
+++ frameworks/projects/spark/src/spark/accessibility/NumericStepperAccImpl.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 spark.accessibility
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 4137
Author:   egeorgie@adobe.com
Date:     2008-11-19T01:53:32.903090Z

Log Message:
-----------
Optimize Group layout invalidation.
This change adds two Boolean flags to track if Group’s layout is invalidated. This way whenever a GraphicElement’s invalidateDisplayList() is called, the Group won’t redo the layout, but only validate that particular GraphicElement’s display list. Similar for size. Also I removed unconditional updateDisplayList() while assigning GraphicElement display objects and instead invalidate only the GraphicElements that have their sharedDisplayObject reassigned (we were already invalidating when the exclusive display object is assigned).
Additionally I added a small check in the stroke property change event handler to make sure we invalidate parent size & layout only when the stroke weight is changed, which minimizes layout passes for skin state changes, where states would change stroke color/settings.

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: Glenn
tests: checkintests, mustella (gumbo/core, gumbo/layout, graphictags, gumbo/filters)

Modified Paths:
--------------
<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>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/StrokedElement.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as
@@ -91,6 +91,8 @@

     private var _layout:LayoutBase;  // initialized in the ctor
     private var _layoutProperties:Object = null;
+    private var layoutInvalidateSizeFlag:Boolean = false;
+    private var layoutInvalidateDisplayListFlag:Boolean = false;

     /**
      *  The layout object for this container.
@@ -545,14 +547,35 @@
     /**
      *  @private
      */
+    override public function invalidateSize():void
+    {
+        super.invalidateSize();
+        layoutInvalidateSizeFlag = true;
+    }
+
+    /**
+     *  @private
+     */
+    override public function invalidateDisplayList():void
+    {
+        super.invalidateDisplayList();
+        layoutInvalidateDisplayListFlag = true;
+    }
+
+    /**
+     *  @private
+     */
     override protected function measure():void
     {
         super.measure();

-        if (_layout)
+        if (_layout && layoutInvalidateSizeFlag)
+        {
+            layoutInvalidateSizeFlag = false;
             _layout.measure();
-    }
-
+        }
+    }
+
     /**
      *  @private
      */
@@ -566,12 +589,15 @@

         super.updateDisplayList(unscaledWidth, unscaledHeight);

-        if (autoLayout && _layout)
-            _layout.updateDisplayList(unscaledWidth, unscaledHeight);
-
-        if (_layout)
-            _layout.updateScrollRect(unscaledWidth, unscaledHeight);
-
+        if (layoutInvalidateDisplayListFlag)
+        {
+            layoutInvalidateDisplayListFlag = false;
+            if (autoLayout && _layout)
+                _layout.updateDisplayList(unscaledWidth, unscaledHeight);
+
+            if (_layout)
+                _layout.updateScrollRect(unscaledWidth, unscaledHeight);
+        }
     }

     //----------------------------------
@@ -842,8 +868,8 @@
     public function elementChanged(e:IGraphicElement):void
     {
         // TODO!!! Optimize
-        invalidateSize();
-        invalidateDisplayList();
+        // Call super, so that we don't invalidate the layout
+        super.invalidateDisplayList();
     }

     /**
@@ -854,8 +880,8 @@
     public function elementSizeChanged(e:IGraphicElement):void
     {
         // TODO!!! Optimize
-        invalidateSize();
-        invalidateDisplayList();
+        // Call super so that we don't invalidate the layout
+        super.invalidateSize();
     }

     /**
@@ -867,8 +893,8 @@
     {
         // TODO!!! Optimize
         // TODO!!! Need to recalculate the elements
-        invalidateSize();
-        invalidateDisplayList();
+        // Call super, so that we don't invalidate the layout
+        super.invalidateDisplayList();
     }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 17141
Author:   hmuller@adobe.com
Date:     2010-07-30T19:32:02.296714Z

Log Message:
-----------
If DataGrid/Grid is configured for fixed row heights, then DefaultGridItemRenderer clips if its UITextField is not going to fit within the allocated height.

QE notes:
Doc notes:
Bugs: SDK-27161
Reviewer: Kevin
Tests run: none
Is noteworthy for integration: yes

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

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

--- frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
+++ frameworks/projects/spark/src/spark/skins/spark/DefaultGridItemRenderer.as
@@ -3,12 +3,15 @@

 import flash.display.DisplayObject;
 import flash.events.Event;
+import flash.geom.Matrix;
+import flash.geom.Rectangle;
 import flash.text.TextFieldAutoSize;

 import mx.core.LayoutElementUIComponentUtils;
 import mx.core.UIComponent;
 import mx.core.UITextField;

+import spark.components.Grid;
 import spark.components.IGridItemRenderer;
 import spark.components.supportClasses.GridColumn;

@@ -22,6 +25,13 @@
         super();
     }

+    /**
+     *  Padding added to the labelDisplay's textWidth and textHeight properties to compute
+     *  the renderer's measured width and height.
+     */
+    private static const TEXT_WIDTH_PADDING:Number = 15;
+    private static const TEXT_HEIGHT_PADDING:Number = 10;
+
     //--------------------------------------------------------------------------
     //
     //  Properties
@@ -318,7 +328,7 @@
     public function discard(hasBeenRecycled:Boolean):void
     {
     }
-
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods: UIComponent
@@ -348,32 +358,72 @@

     /**
      *  @private
+     *  The renderer's measuredWidth,Height are just padded versions of the labelDisplay's
+     *  textWidth,Height properties.   The code below is based on the UITextField
+     *  meausuredWidth,Height get methods, although we do not call validateNow() here (as
+     *  they do).
+     *
+     */
+    private function updateMeasuredSize():void
+    {
+        if (!labelDisplay.stage || labelDisplay.embedFonts)
+        {
+            measuredWidth = labelDisplay.textWidth + TEXT_WIDTH_PADDING;
+            measuredHeight = labelDisplay.textHeight + TEXT_HEIGHT_PADDING;
+        }
+        else
+        {
+            const m:Matrix = labelDisplay.transform.concatenatedMatrix;
+            measuredWidth = Math.abs((labelDisplay.textWidth * m.a / m.d)) + TEXT_WIDTH_PADDING;
+            measuredHeight = Math.abs((labelDisplay.textHeight * m.a / m.d)) + TEXT_HEIGHT_PADDING;
+        }
+    }
+
+    /**
+     *  @private
      */
     override protected function measure():void
     {
-        super.measure();
-
-        // labelDisplay layout: padding of 3 on left and right and padding of 5 on top and bottom.
-
-        measuredHeight = LayoutElementUIComponentUtils.getPreferredBoundsHeight(labelDisplay, null) + 6;
-        measuredWidth = LayoutElementUIComponentUtils.getPreferredBoundsWidth(labelDisplay, null) + 10;
-    }
-
-    /**
-     *  @private
+        super.measure();  // initializes measured{Min}Width,Height to 0
+        updateMeasuredSize();
+    }
+
+    /**
+     *  @private
+     *  True if the labelDisplay's scrollRect has been set.  See below.
+     */
+    private var clippingEnabled:Boolean = false;
+
+    /**
+     *  @private
+     *  Watch Out: this code relies on the fact that UITextField/setActualSize() can cause
+     *  labelDisplay.textHeight to change, if the text wraps.  The text field's measuredHeight
+     *  is just a padded version of textHeight.  This is the only place where labelDisplay.setActualSize()
+     *  is called, so we update the measuredHeight of this render here.  Very unconventional.
+     *  Doing so is essential because after this code runs, i.e. after GridLayout/layoutGridElement()
+     *  invokes validateNow() on this renderer, it uses the renderer's preferredBoundsHeight()
+     *  (that's the measuredHeight in our case) to update the overall row height.
      */
     override protected function updateDisplayList(width:Number, height:Number):void
     {
         super.updateDisplayList(width, height);

-        // labelDisplay layout: padding of 5 on left and right and padding of 5 on top.
-
-        labelDisplay.setActualSize(width - 10, height - 5);
-
-        // GridLayout/layoutItemRenderers() assumes that after validating the renderer
-        // (see GridLayout/layoutGridElement) renderer.getPreferredBoundsHeight() will
-        // return a value that reflects the column's current width.
-        measuredHeight = LayoutElementUIComponentUtils.getPreferredBoundsHeight(labelDisplay, null) + 6;
+        labelDisplay.setActualSize(width - 10, height - 5);  // setActualSize() side-effects labelDisplay.textHeight
+        updateMeasuredSize();  // See @private comment above
+
+        // If the Grid's row heights are fixed and the labelDisplay will not fit, then clip.
+
+        const grid:Grid = column.grid;
+        if (grid && !grid.variableRowHeight && (measuredHeight > grid.rowHeight))
+        {
+            clippingEnabled = true;
+            labelDisplay.scrollRect = new Rectangle(0, 0, width - 10, height - 5);
+        }
+        else if (clippingEnabled)
+        {
+            clippingEnabled = false;
+            labelDisplay.scrollRect = null;
+        }

         labelDisplay.move(5, 5);
     }


added ability to start "consecutive imp" check manually

--- src/org/openvv/OVVAsset.as
+++ src/org/openvv/OVVAsset.as
@@ -173,9 +173,13 @@
 		private var _impressionEventRaised: Boolean = false;

 		/**
-		* Indicate whether the ImpressionUnmeasurable event was raised
-		*/
+		 * Indicate whether the ImpressionUnmeasurable event was raised
+		 */
 		private var _impressionUnmeasurableEventRaised: Boolean = false;
+
+        private var _startImpressionCheckAutomatically: Boolean;
+
+        private var _jsReady: Boolean;

 		/**
 		 * A array of all VPAID events
@@ -211,20 +215,18 @@
          * @param interval The number of milliseconds between polls to
          * JavaScript for viewability information. Defaults to 250.
          */
-        public function OVVAsset(beaconSwfUrl:String = null, id:String = null, stage:Stage=null) {
+        public function OVVAsset(beaconSwfUrl:String = null, id:String = null, stage:Stage = null, startImpressionCheckAutomatically:Boolean = true) {

             if (!externalInterfaceIsAvailable()) {
-                dispatchEvent(new OVVEvent(OVVEvent.OVVError, {
-                    "message": "ExternalInterface unavailable"
-                }));
                 return;
             }

             _id = (id !== null) ? id : "ovv" + Math.floor(Math.random() * 1000000000).toString();
             _stage = stage;
+            _startImpressionCheckAutomatically = startImpressionCheckAutomatically;

             ExternalInterface.addCallback(_id, flashProbe);
-            ExternalInterface.addCallback("startImpressionTimer", startImpressionTimer);
+            ExternalInterface.addCallback("startImpressionTimer", handleStartImpressionCheck);

             _sprite = new Sprite();
             _renderMeter = new OVVRenderMeter(_sprite);
@@ -373,7 +375,7 @@
          *
          * @param someData An optional parameter which is ignored
          */
-        public function flashProbe(someData: * ): void {
+        protected function flashProbe(someData: * ): void {
             return;
         }

@@ -381,7 +383,23 @@
          * When the JavaScript portion of OpenVV is ready, it calls this function
          * to start the interval timer which does viewability checks every
          */
+        protected function handleStartImpressionCheck():void {
+            _jsReady = true;
+
+            if (_startImpressionCheckAutomatically) {
+                startImpressionTimer();
+            }
+        }
+
+        /**
+         * Starts impression check if not started yet
+         */
         public function startImpressionTimer(): void {
+            if (!_jsReady && !_intervalTimer) {
+                _startImpressionCheckAutomatically = true;
+                return;
+            }
+
             if (!_intervalTimer) {
                 _intervalsInView = 0;
                 _intervalsUnMeasurable = 0;


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

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


FLEX-33987 Add fault tolerance to FocusManager.  Getting null here probably means that something is mis-configured. See bug notes for more info.

--- frameworks/projects/framework/src/mx/managers/FocusManager.as
+++ frameworks/projects/framework/src/mx/managers/FocusManager.as
@@ -1590,7 +1590,8 @@
     public function getNextFocusManagerComponent(
                             backward:Boolean = false):IFocusManagerComponent
 	{
-		return getNextFocusManagerComponent2(backward, fauxFocus).displayObject as IFocusManagerComponent;
+        const focusInfo:FocusInfo = getNextFocusManagerComponent2(backward, fauxFocus);
+        return focusInfo ? focusInfo.displayObject as IFocusManagerComponent : null;
 	}

 	/**


Transferred from the Adobe Open Source Subversion Repository

Revision: 12610
Author:   dloverin@adobe.com
Date:     2009-12-07T18:08:38.995213Z

Log Message:
-----------
Fix RTE in EmbeddedFontRegistry.

projects/framework/src/mx/managers/SystemManager.as
•         I added back the "mx.styles::IStyleManager" interface. I investigated the file history and found the code was removed during frame1 cleanup.

projects/framework/src/mx/core/EmbeddedFontRegistry.as
•         Fix RTE by only getting a ResourceManager instance when it is needed. The RTE happened when an RSL with embedded fonts, loading in frame1 created the registry. The ResourceManager is not ready at this point.

projects/framework/src/mx/styles/IStyleManager2.as
projects/framework/src/mx/styles/StyleManagerImpl.as
•         Removed parent setter. PARB approved.
•         Removed hasEventListener() check in dispatchInheritingStylesChangeEvent(). Each call to dispatchInheritingStylesChangeEvent() was already guarded with a listener check.

QE notes: None.
Doc notes: None.
Bugs: SDK-24467
Reviewer: Alex, Corey
Tests run: checkintests, PerModuleStyles
Is noteworthy for integration: no

Modified Paths:
--------------
<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/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/IStyleManager2.as</path>

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

--- frameworks/projects/framework/src/mx/styles/IStyleManager2.as
+++ frameworks/projects/framework/src/mx/styles/IStyleManager2.as
@@ -47,11 +47,6 @@
      */
     function get parent():IStyleManager2;

-    /**
-     *  @private
-     */
-    function set parent(parent:IStyleManager2):void;
-
     //----------------------------------
     //  qualifiedTypeSelectors
     //----------------------------------


Transferred from the Adobe Open Source Subversion Repository

Revision: 19344
Author:   egeorgie@adobe.com
Date:     2010-12-14T00:38:13.222484Z

Log Message:
-----------
PARB changes for density scaling

- authorDensity -> applicationDPI, type changed to int
- DensityUtil not visible in the documentation anymore [ExcludeClass]
- DensityUtil. screenDPIToDeviceDensity() -> classifyDPI(), returns int now
- DensityUtil. getDensityScale() -> getDPIScale(), takes int now
- DeviceDensity enum -> DPIClassification enum
- ISystemManager.densityScale property has been removed.
- New property to Application -> runtimeDPI.

QE notes: can start writing automated tests now
Doc notes:
Bugs:
Reviewer: Alex, Glenn, Jason SJ,
Tests run: checkintest
Is noteworthy for integration: Yes

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/DensityUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as" copyfrom-rev="19256" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DPIClassification.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationAngledButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/DeviceDensity.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/preloaders/SplashScreen.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Application.as</path>

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

--- frameworks/projects/spark/src/spark/components/Application.as
+++ frameworks/projects/spark/src/spark/components/Application.as
@@ -41,6 +41,7 @@
 import mx.styles.CSSStyleDeclaration;
 import mx.styles.StyleManager;
 import mx.utils.BitFlagUtil;
+import mx.utils.DensityUtil;
 import mx.utils.LoaderUtil;

 import spark.layouts.supportClasses.LayoutBase;
@@ -764,25 +765,69 @@
     public var splashScreenMinimumDisplayTime:Number;

     //----------------------------------
-    //  authorDensity
+    //  applicationDPI
     //----------------------------------

-    [Inspectable(category="General", enumeration="160ppi,240ppi,320ppi")]
+    /**
+     *  Storage for the applicationDPI property.
+     *
+     *  @private
+     */
+    private var _applicationDPI:int = -1;

-    /**
-     *  The density that the application is authored for.
+    [Inspectable(category="General", enumeration="160,240,320")]
+
+    /**
+     *  The DPI of the application.
      *
-     *  When set, Flex will automatically scale between the author density and
-     *  the density of the current device the application is running on.
+     *  By default, this is the DPI of the device that the application is currently running on.
+     *
+     *  When set in MXML, Flex will scale the Application to match its DPI to the
+     *  runtimeDPI.
      *
      *  This property cannot be set by ActionScript code; it must be set in MXML code.
      *
-     *  @see mx.core.DeviceDensity
-     *  @see mx.core.DensityUtil
-     *  @see mx.core.ISystemManager#densityScale
-     */
-    public var authorDensity:String;
-
+     *  @see #runtimeDPI
+     *  @see mx.core.DPIClassification
+     */
+    public function get applicationDPI():int
+    {
+        if (_applicationDPI == -1)
+        {
+            var value:String = systemManager.info()["applicationDPI"];
+            _applicationDPI = value ? int(value) : runtimeDPI;
+        }
+
+        return _applicationDPI;
+    }
+
+    /**
+     *  @private
+     */
+    public function set applicationDPI(value:int):void
+    {
+        // Can't change at run-time so do nothing here.
+        // The compiler will propagate the MXML value to the
+        // systemManager's info object.
+    }
+
+    //----------------------------------
+    //  runtimeDPI
+    //----------------------------------
+
+    /**
+     *  The DPI of the device the application is currently running on.
+     *
+     *  Flex rounds the value to one of the DPIClassification choices.
+     *
+     *  @see #applicationDPI
+     *  @see mx.core.DPIClassification
+     */
+    public function get runtimeDPI():int
+    {
+        return DensityUtil.classifyDPI(flash.system.Capabilities.screenDPI);
+    }
+
     //----------------------------------
     //  usePreloader
     //----------------------------------


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

--- frameworks/projects/rpc/src/mx/rpc/xml/SchemaConstants.as
+++ frameworks/projects/rpc/src/mx/rpc/xml/SchemaConstants.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2006-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: 8509
Author:   smgilson@adobe.com
Date:     2009-07-10T17:58:51.724217Z

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

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

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

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

--- frameworks/projects/spark/src/spark/components/HSlider.as
+++ frameworks/projects/spark/src/spark/components/HSlider.as
@@ -58,6 +58,12 @@
  *

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

+ *

+ *           Default skin classes
+ *           spark.skins.spark.HSliderSkin
+ *
spark.skins.spark.HSliderThumbSkin

+ *
spark.skins.spark.HSliderTrackSkin

  *

  *

  *


Transferred from the Adobe Open Source Subversion Repository

Revision: 7943
Author:   hmuller@adobe.com
Date:     2009-06-18T00:50:32.894448Z

Log Message:
-----------
Range et al PARB changes, Opus #2.

Made the following protected Scrollbar functions mx_internal:
  viewportResizeHandler
  viewportContentWidthChangeHandler
  viewportContentHeightChangeHandler
  viewportHorizontalScrollPositionChangeHandler
  viewportVerticalScrollPositionChangeHandler

Made TrackBase/stage_mouseWheelHandler private

QE Notes: Shouldn't break anything
Doc Notes:
Bugs:
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/VScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ScrollBarBase.as
@@ -11,14 +11,13 @@

 package spark.components.supportClasses
 {
-import __AS3__.vec.Vector;
-
 import flash.events.Event;
 import flash.events.MouseEvent;
 import flash.events.TimerEvent;
 import flash.geom.Point;
 import flash.utils.Timer;

+import mx.core.mx_internal;
 import mx.events.FlexEvent;
 import mx.events.PropertyChangeEvent;
 import mx.events.ResizeEvent;
@@ -32,6 +31,8 @@
 import spark.effects.easing.IEaser;
 import spark.effects.easing.Linear;
 import spark.effects.easing.Sine;
+
+use namespace mx_internal;

 /**
  *  @copy spark.components.supportClasses.GroupBase#symbolColor
@@ -627,6 +628,7 @@

    /**
+    *  @private
     *  Called when the viewport's width or height value changes. Does nothing by default.
     *
     *  @langversion 3.0
@@ -634,11 +636,12 @@
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
-    protected function viewportResizeHandler(event:ResizeEvent):void
+    mx_internal function viewportResizeHandler(event:ResizeEvent):void
     {
     }

    /**
+    *  @private
     *  Called when the viewport's contentWidth value changes. Does nothing by default.
     *
     *  @langversion 3.0
@@ -646,11 +649,12 @@
     *  @playerversion AIR 1.5
     *  @productversion Flex 4
     */
-    protected function viewportContentWidthChangeHandler(event:PropertyChangeEvent):void
-    {
-    }
-
-    /**
+    mx_internal function viewportContentWidthChangeHandler(event:PropertyChangeEvent):void
+    {
+    }
+
+    /**
+     *  @private
      *  Called when the viewport's contentHeight value changes. Does nothing by default.
      *
      *  @langversion 3.0
@@ -658,11 +662,12 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function viewportContentHeightChangeHandler(event:PropertyChangeEvent):void
-    {
-    }
-
-    /**
+    mx_internal function viewportContentHeightChangeHandler(event:PropertyChangeEvent):void
+    {
+    }
+
+    /**
+     *  @private
      *  Called when the viewport's horizontalScrollPosition value changes. Does nothing by default.
      *
      *  @langversion 3.0
@@ -670,11 +675,12 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function viewportHorizontalScrollPositionChangeHandler(event:PropertyChangeEvent):void
+    mx_internal function viewportHorizontalScrollPositionChangeHandler(event:PropertyChangeEvent):void
     {
     }

     /**
+     *  @private
      *  Called when the viewport's verticalScrollPosition value changes. Does nothing by default.
      *
      *  @langversion 3.0
@@ -682,7 +688,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    protected function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void
+    mx_internal function viewportVerticalScrollPositionChangeHandler(event:PropertyChangeEvent):void
     {
     }


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

--- frameworks/projects/automation_spark/src/spark/automation/tabularData/SkinnableContainerTabularData.as
+++ frameworks/projects/automation_spark/src/spark/automation/tabularData/SkinnableContainerTabularData.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 spark.automation.tabularData
 {


qnd: code enhancement

qnd: code enhancement

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

--- as3FlexClient/src/com/kaltura/delegates/MultiRequestDelegate.as
+++ as3FlexClient/src/com/kaltura/delegates/MultiRequestDelegate.as
@@ -58,12 +58,8 @@
 				var myInst : Object = new cls(null , null);

 				//build the result as a regular result
-				var xml : String = "<result><result>";
-				xml += result.result.item[i].children().toString();
-				xml +="</result></result>";
-				//fix weird issue with chrome: sometimes res XML contained empty nodes because the xml string had "\n"
-				xml = xml.replace(/>\n/g, ">");
-				var res : XML = new XML(xml);
+				var res:XML = new XML("<result><result/></result>");
+				res.result.appendChild(result.result.item[i].children());
 				try {
 					var obj : Object = (myInst as WebDelegateBase).parse( res );
 					resArr.push( obj );


338 Converted some constants to literals

--- raw/src/org/yellcorp/lib/color/matrix/ColorMatrixUtil.as
+++ raw/src/org/yellcorp/lib/color/matrix/ColorMatrixUtil.as
@@ -5,13 +5,11 @@

 public class ColorMatrixUtil
 {
-    public static const MAX:int = 20;
-    public static const WIDTH:int = 5;
     public static const EPSILON:Number = 1 / 512;

     public static function makeIdentity(cm:Array = null):Array
     {
-        if (!cm) cm = new Array(MAX);
+        if (!cm) cm = new Array(20);

         setDiagonal(cm, 1, 1, 1, 1);
         setOffset(cm, 0, 0, 0, 0);
@@ -25,11 +23,11 @@
         var i:int;
         var str:String = "[ColorMatrix [";

-        for (i = 0; i < MAX; i++)
+        for (i = 0; i < 20; i++)
         {
             if (i > 0)
             {
-                if (i % WIDTH == 0)
+                if (i % 5 == 0)
                 {
                     str += "], [";
                 }
@@ -158,7 +156,7 @@
         var i:int;
         if (!out) out = [ ];

-        for (i = 0; i < MAX; i++)
+        for (i = 0; i < 20; i++)
             out[i] = a[i] + t * (b[i] - a[i]);

         return out;
@@ -167,7 +165,7 @@
     public static function isfinite(m:Array):Boolean
     {
         var e:Number;
-        for (var i:int = 0; i < MAX; i++)
+        for (var i:int = 0; i < 20; i++)
         {
             e = m[i];
             if (!isFinite(e))
@@ -203,7 +201,7 @@
         // some kind of decomposition? does anyone even invert colormatrices?
         if (!out)
         {
-            out = new Array(MAX);
+            out = new Array(20);
         }
         makeIdentity(out);
         rref(m.concat(), out);
@@ -229,7 +227,7 @@
         // [ 15 16 17 18 19 ] [ 0 0 0 1 0 ]
         // [  0  0  0  0  1 ] [ 0 0 0 0 1 ]

-        for (row = 0, col = 0; row < MAX; row += WIDTH, col++)
+        for (row = 0, col = 0; row < 20; row += 5, col++)
         {
             if (orig[row + col] == 0 &&
                 !moveNonZeroToDiagonal(orig, aug, row, col))
@@ -253,7 +251,7 @@
         zeroOffsets(orig, aug);

         // now run backwards and up from row/column 3
-        for (row = 3 * WIDTH, col = 3; row >= 0; row -= WIDTH, col--)
+        for (row = 15, col = 3; row >= 0; row -= 5, col--)
         {
             if (row > 0)
             {
@@ -265,7 +263,7 @@

     private static function moveNonZeroToDiagonal(orig:Array, aug:Array, row:int, col:int):Boolean
     {
-        for (var searchRow:int = row + WIDTH; searchRow < MAX; searchRow += WIDTH)
+        for (var searchRow:int = row + 5; searchRow < 20; searchRow += 5)
         {
             if (orig[searchRow + col] != 0)
             {
@@ -279,11 +277,11 @@

     private static function zeroRows(orig:Array, aug:Array, refRow:int, col:int, up:Boolean):void
     {
-        var rowStep:int = up ? -WIDTH : WIDTH;
+        var rowStep:int = up ? -5 : 5;
         var pivot:Number = orig[refRow + col];
         var eliminate:Number;

-        for (var row:int = refRow + rowStep; row >= 0 && row < MAX; row += rowStep)
+        for (var row:int = refRow + rowStep; row >= 0 && row < 20; row += rowStep)
         {
             eliminate = orig[row + col];
             if (eliminate != 0)
@@ -297,7 +295,7 @@
     {
         var temp:Number;

-        for (var i:int = 0; i < WIDTH; i++)
+        for (var i:int = 0; i < 5; i++)
         {
             temp = m[rowA + i];
             m[rowA + i] = m[rowB + i];
@@ -307,7 +305,7 @@

     private static function addRowMultiple(orig:Array, aug:Array, fromRow:int, toRow:int, factor:Number):void
     {
-        for (var col:int = 0; col < WIDTH; col++)
+        for (var col:int = 0; col < 5; col++)
         {
             orig[toRow + col] += orig[fromRow + col] * factor;
             aug[toRow + col]  += aug[fromRow + col]  * factor;
@@ -316,7 +314,7 @@

     private static function divideRow(aug:Array, row:int, factor:Number):void
     {
-        for (var col:int = 0; col < WIDTH; col++)
+        for (var col:int = 0; col < 5; col++)
         {
             aug[row + col] /= factor;
         }
@@ -324,7 +322,7 @@

     private static function zeroOffsets(orig:Array, aug:Array):void
     {
-        for (var i:int = WIDTH - 1; i < MAX; i += WIDTH)
+        for (var i:int = 5 - 1; i < 20; i += 5)
         {
             aug[i] -= orig[i];
             orig[i] = 0;


Transferred from the Adobe Open Source Subversion Repository

Revision: 9209
Author:   egeorgie@adobe.com
Date:     2009-08-10T21:19:44.304070Z

Log Message:
-----------
Fix bug http://bugs.adobe.com/jira/browse/SDK-22457 [Gumbo_Priority] Layout bounds for FXG items are incorrect

Fix:
1. Add resizeMode property with default of 'scale' to SpriteVisualElement
2. Switch the Graphic class default for the resizeMode property to 'scale'
3. Beef up the transformation and sizing logic of the SpriteVisualElement.as
4. Minor clean-up and fixes for UIComponent and UIMovieClip transformations

QE notes: None
Doc notes: None
Bugs: SDK-22457
Reviewer: Ryan
Tests run: checkintests, spark/primitives/graphic, graphics, graphicTags

Is noteworthy for integration: Yes, bug came from Thermo.

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

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

--- frameworks/projects/framework/src/mx/geom/CompoundTransform.as
+++ frameworks/projects/framework/src/mx/geom/CompoundTransform.as
@@ -236,15 +236,7 @@
 	{
 	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        if (value > 180 || value < -180)
-        {
-            value = value % 360;
-
-            if (value > 180)
-                value = value - 360;
-            else if (value < -180)
-                value = value + 360;
-        }
+		value = MatrixUtil.clampRotation(value);

 		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		if(value == _rotationX)
@@ -274,15 +266,7 @@
 	{
 	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        if (value > 180 || value < -180)
-        {
-            value = value % 360;
-
-            if (value > 180)
-                value = value - 360;
-            else if (value < -180)
-                value = value + 360;
-        }
+		value = MatrixUtil.clampRotation(value);

 		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		if(value == _rotationY)
@@ -312,15 +296,7 @@
 	{
 	    // clamp the rotation value between -180 and 180.  This is what
         // the Flash player does, so let's mimic it here too.
-        if (value > 180 || value < -180)
-        {
-            value = value % 360;
-
-            if (value > 180)
-                value = value - 360;
-            else if (value < -180)
-                value = value + 360;
-        }
+		value = MatrixUtil.clampRotation(value);

 		if ((_flags & PROPERTIES_VALID) == false) validatePropertiesFromMatrix();
 		if(value == _rotationZ)


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

--- frameworks/projects/framework/src/mx/managers/CursorManager.as
+++ frameworks/projects/framework/src/mx/managers/CursorManager.as
@@ -0,0 +1,342 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.managers
+{
+
+import mx.core.IUIComponent;
+import mx.core.Singleton;
+import mx.core.mx_internal;
+
+//--------------------------------------
+//  Styles
+//--------------------------------------
+
+/**
+ *  The skin for the busy cursor
+ *
+ *  @default mx.skins.halo.BusyCursor
+ */
+[Style(name="busyCursor", type="Class", inherit="no")]
+
+/**
+ *  The CursorManager class controls a prioritized list of cursors,
+ *  where the cursor with the highest priority is currently visible.
+ *  If the cursor list contains more than one cursor with the same priority,
+ *  the Cursor Manager displays the most recently created cursor.
+ *
+ *
For example, if your application performs processing
+ *  that requires the user to wait until the processing completes,
+ *  you can change the cursor so that it reflects the waiting period.
+ *  In this case, you can change the cursor to an hourglass
+ *  or other image.

+ *
+ *
You also might want to change the cursor to provide feedback
+ *  to the user to indicate the actions that the user can perform.
+ *  For example, you can use one cursor image to indicate that user input
+ *  is enabled, and another to indicate that input is disabled.
+ *  You can use a JPEG, GIF, PNG, or SVG image, a Sprite object, or a SWF file
+ *  as the cursor image.

+ *
+ *
All methods and properties of the CursorManager are static,
+ *  so you do not need to create an instance of it.

+ *
+ *
In AIR, each mx.core.Window instance uses its own instance of the CursorManager class.
+ *  Instead of directly referencing the static methods and properties of the CursorManager class,
+ *  use the Window.cursorManager property to reference the CursorManager instance
+ *  for the Window instance.

+ *
+ *  @see mx.managers.CursorManagerPriority
+ *  @see mx.core.Window
+ */
+public class CursorManager
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constant that is the value of currentCursorID property
+     *  when there is no cursor managed by the CursorManager and therefore
+     *  the system cursor is being displayed.
+     */
+    public static const NO_CURSOR:int = 0;
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     *  Linker dependency on implementation class.
+     */
+    private static var implClassDependency:CursorManagerImpl;
+
+    /**
+     *  @private
+     *  Storage for the impl getter.
+     *  This gets initialized on first access,
+     *  not at static initialization time, in order to ensure
+     *  that the Singleton registry has already been initialized.
+     */
+    private static var _impl:ICursorManager;
+
+    /**
+     *  @private
+     *  The singleton instance of CursorManagerImpl which was
+     *  registered as implementing the ICursorManager interface.
+     */
+    private static function get impl():ICursorManager
+    {
+        if (!_impl)
+        {
+            _impl = ICursorManager(
+                Singleton.getInstance("mx.managers::ICursorManager"));
+        }
+
+        return _impl;
+    }
+
+    /**
+     *  Each mx.core.Window instance in an AIR application has its own CursorManager instance.
+     *  This method returns the CursorManager instance for the main Window instance.
+     *
+     *  @return The CursorManager instance for the main Window instance in an AIR application.
+     */
+    public static function getInstance():ICursorManager
+    {
+        return impl;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  currentCursorID
+    //----------------------------------
+
+    /**
+     *  ID of the current custom cursor,
+     *  or NO_CURSOR if the system cursor is showing.
+     */
+    public static function get currentCursorID():int
+    {
+        return impl.currentCursorID;
+    }
+
+    /**
+     *  @private
+     */
+    public static function set currentCursorID(value:int):void
+    {
+        impl.currentCursorID = value;
+    }
+
+    //----------------------------------
+    //  currentCursorXOffset
+    //----------------------------------
+
+    /**
+     *  The x offset of the custom cursor, in pixels,
+     *  relative to the mouse pointer.
+     *
+     *  @default 0
+     */
+    public static function get currentCursorXOffset():Number
+    {
+        return impl.currentCursorXOffset;
+    }
+
+    /**
+     *  @private
+     */
+    public static function set currentCursorXOffset(value:Number):void
+    {
+        impl.currentCursorXOffset = value;
+    }
+
+    //----------------------------------
+    //  currentCursorYOffset
+    //----------------------------------
+
+    /**
+     *  The y offset of the custom cursor, in pixels,
+     *  relative to the mouse pointer.
+     *
+     *  @default 0
+     */
+    public static function get currentCursorYOffset():Number
+    {
+        return impl.currentCursorYOffset;
+    }
+
+    /**
+     *  @private
+     */
+    public static function set currentCursorYOffset(value:Number):void
+    {
+        impl.currentCursorYOffset = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class methods
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Makes the cursor visible.
+     *  Cursor visibility is not reference-counted.
+     *  A single call to the showCursor() method
+     *  always shows the cursor regardless of how many calls
+     *  to the hideCursor() method were made.
+     *
+     *
Calling this method does not affect the system cursor.
+     *  Use the Mouse.show() and
+     *  Mouse.hide() methods to directly
+     *  control the system cursor.

+     */
+    public static function showCursor():void
+    {
+        impl.showCursor();
+    }
+
+    /**
+     *  Makes the cursor invisible.
+     *  Cursor visibility is not reference-counted.
+     *  A single call to the hideCursor() method
+     *  always hides the cursor regardless of how many calls
+     *  to the showCursor() method were made.
+     *
+     *
Calling this method does not affect the system cursor.
+     *  Use the Mouse.show() and
+     *  Mouse.hide() methods to directly
+     *  control the system cursor.

+     */
+    public static function hideCursor():void
+    {
+        impl.hideCursor();
+    }
+
+    /**
+     *  Creates a new cursor and sets an optional priority for the cursor.
+     *  Adds the new cursor to the cursor list.
+     *
+     *  @param cursorClass Class of the cursor to display.
+     *
+     *  @param priority Integer that specifies
+     *  the priority level of the cursor.
+     *  Possible values are CursorManagerPriority.HIGH,
+     *  CursorManagerPriority.MEDIUM, and CursorManagerPriority.LOW.
+     *
+     *  @param xOffset Number that specifies the x offset
+     *  of the cursor, in pixels, relative to the mouse pointer.
+     *
+     *  @param yOffset Number that specifies the y offset
+     *  of the cursor, in pixels, relative to the mouse pointer.
+     *
+     *  @param setter The IUIComponent that set the cursor. Necessary (in multi-window environments)
+     *  to know which window needs to display the cursor.
+     *
+     *  @return The ID of the cursor.
+     *
+     *  @see mx.managers.CursorManagerPriority
+     */
+    public static function setCursor(cursorClass:Class, priority:int = 2,
+                                     xOffset:Number = 0,
+                                     yOffset:Number = 0):int
+    {
+        return impl.setCursor(cursorClass, priority, xOffset, yOffset);
+    }
+
+    /**
+     *  Removes a cursor from the cursor list.
+     *  If the cursor being removed is the currently displayed cursor,
+     *  the CursorManager displays the next cursor in the list, if one exists.
+     *  If the list becomes empty, the CursorManager displays
+     *  the default system cursor.
+     *
+     *  @param cursorID ID of cursor to remove.
+     */
+    public static function removeCursor(cursorID:int):void
+    {
+        impl.removeCursor(cursorID);
+    }
+
+    /**
+     *  Removes all of the cursors from the cursor list
+     *  and restores the system cursor.
+     */
+    public static function removeAllCursors():void
+    {
+        impl.removeAllCursors();
+    }
+
+    /**
+     *  Displays the busy cursor.
+     *  The busy cursor has a priority of CursorManagerPriority.LOW.
+     *  Therefore, if the cursor list contains a cursor
+     *  with a higher priority, the busy cursor is not displayed
+     *  until you remove the higher priority cursor.
+     *  To create a busy cursor at a higher priority level,
+     *  use the setCursor() method.
+     */
+    public static function setBusyCursor():void
+    {
+        impl.setBusyCursor();
+    }
+
+    /**
+     *  Removes the busy cursor from the cursor list.
+     *  If other busy cursor requests are still active in the cursor list,
+     *  which means you called the setBusyCursor() method more than once,
+     *  a busy cursor does not disappear until you remove
+     *  all busy cursors from the list.
+     */
+    public static function removeBusyCursor():void
+    {
+        impl.removeBusyCursor();
+    }
+
+
+    /**
+     *  @private
+     *  Called by other components if they want to display
+     *  the busy cursor during progress events.
+     */
+    mx_internal static function registerToUseBusyCursor(source:Object):void
+    {
+        impl.registerToUseBusyCursor(source);
+    }
+
+    /**
+     *  @private
+     *  Called by other components to unregister
+     *  a busy cursor from the progress events.
+     */
+    mx_internal static function unRegisterToUseBusyCursor(source:Object):void
+    {
+        impl.unRegisterToUseBusyCursor(source);
+    }
+
+}
+
+}
+


Transferred from the Adobe Open Source Subversion Repository

Revision: 5301
Author:   clucier@adobe.com
Date:     2009-03-13T18:40:17.284526Z

Log Message:
-----------
Adding debug helper code which highlights all recently validated visual elements.
Just uncomment all code marked with LAYOUT_DEBUG.

Modified Paths:
--------------
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/layoutClasses/LayoutDebugHelper.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/graphics/baseClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>

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

--- frameworks/projects/framework/src/mx/managers/LayoutManager.as
+++ frameworks/projects/framework/src/mx/managers/LayoutManager.as
@@ -12,17 +12,18 @@
 package mx.managers
 {

-import flash.display.DisplayObject;
+import flash.display.Sprite;
 import flash.display.Stage;
 import flash.events.Event;
 import flash.events.EventDispatcher;

 import mx.core.ApplicationGlobals;
-import mx.core.IFlexDisplayObject;
+import mx.core.ILayoutElement;
+import mx.core.UIComponent;
 import mx.core.mx_internal;
-import mx.core.UIComponent;
 import mx.events.FlexEvent;
 import mx.managers.layoutClasses.PriorityQueue;
+

 use namespace mx_internal;

@@ -178,7 +179,7 @@
 	{
 		super();
 	}
-
+
 	//--------------------------------------------------------------------------
 	//
 	//  Variables
@@ -368,6 +369,26 @@
 		}
 	}

+    //----------------------------------
+    //  debugHelper
+    //----------------------------------
+
+    /*
+    // LAYOUT_DEBUG
+    import mx.managers.layoutClasses.LayoutDebugHelper;
+    private static var _layoutDebugHelper:LayoutDebugHelper;
+
+    public static function get debugHelper():LayoutDebugHelper
+    {
+        if (!_layoutDebugHelper)
+        {
+            _layoutDebugHelper = new LayoutDebugHelper();
+            _layoutDebugHelper.mouseEnabled = false;
+            ApplicationGlobals.application.systemManager.addChild(_layoutDebugHelper);
+        }
+        return _layoutDebugHelper;
+    } */
+
 	//--------------------------------------------------------------------------
 	//
 	//  Methods: Invalidation
@@ -661,9 +682,7 @@
 	 */
 	private function validateDisplayList():void
 	{
-
-		// trace("--- LayoutManager: validateDisplayList --->");
-
+		// trace("--- LayoutManager: validateDisplayList --->");
 		var obj:ILayoutManagerClient = ILayoutManagerClient(invalidateDisplayListQueue.removeSmallest());
 		while (obj)
 		{


Transferred from the Adobe Open Source Subversion Repository

Revision: 18767
Author:   dloverin@adobe.com
Date:     2010-11-22T12:13:05.651102Z

Log Message:
-----------
RSL Sharing Among Modules feature check-in.

Made PARB changes.
Added Compiler API and FlexTask for 'application-domain' option.
Renamed compiler option 'application-domains' to 'application-domain'.

frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as
    addPreloadedRSL() stub.

frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as
    ASDoc change.

frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as
    Update due to PARB changes in RSLData.

frameworks/projects/framework/src/mx/core/FlexModuleFactory.as
    PARB changes.

frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as
    Add addPreloadedRSL() to interface. Changes rsl parameter type from Array to Vector.<RSLData>.

frameworks/projects/framework/src/mx/core/RSLData.as
    PARB changes:
•        Change var to getters for read-only properties except for moduleFactory.

•        Rename url to rslURL.

•        Rename policyFileUrl to policyFileURL

frameworks/projects/framework/src/mx/managers/SystemManager.as
    PARB changes.

frameworks/projects/framework/src/mx/utils/LoaderUtil.as
    PARB changes and implement new rule where a sub-app/module loaded into the top-level appdomain has its RSLs loaded into the top-level application. The RSLs can them be shared with other sub-apps/modules of the top-level application.

modules/antTasks/src/flex/ant/MxmlcTask.java
    new ant task for “application-domain” option.

modules/compiler/src/java/flex2/compiler/common/Configuration.java
    add alias “rsl-domain” for “application-domain”.

modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java
    Rename “application-domains” option to “application-domain”.

modules/compiler/src/java/flex2/configuration_en.properties
modules/compiler/src/java/flex2/tools/flexbuilder/BuilderConfiguration.java
modules/compiler/src/java/flex2/tools/oem/Configuration.java
modules/compiler/src/java/flex2/tools/oem/internal/ConfigurationConstants.java
modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java
    Add Compiler API for setting “application-domain”.

modules/compiler/src/java/flex2/tools/PreLink.java
    Generate stub code for addPreloadedRSL().

QE notes: None.
Doc notes: None.
Bugs:
Reviewer: Alex
Tests run: cyclone server, checkintests
Is noteworthy for integration: Yes.

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/CrossDomainRSLItem.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/configuration_en.properties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/internal/OEMConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/Configuration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/compiler/common/RuntimeSharedLibrarySettingsConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/RSLData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/ApplicationDomainTarget.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/flexbuilder/BuilderConfiguration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/IFlexModuleFactory.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/Configuration.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/utils/LoaderUtil.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/antTasks/src/flex/ant/MxmlcTask.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/modules/compiler/src/java/flex2/tools/oem/internal/ConfigurationConstants.java</path>

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

--- frameworks/projects/framework/src/mx/managers/SystemManager.as
+++ frameworks/projects/framework/src/mx/managers/SystemManager.as
@@ -458,9 +458,10 @@
     /**
      *  @private
      *  Array of RSLData objects that represent the list of RSLs this
-     *  module factory is loading.
+     *  module factory is loading. Each element of the Array is an
+     *  Array of RSLData.
      */
-    private var rslDataList:Array;
+    private var rslDataList:Array

     //--------------------------------------------------------------------------
     //
@@ -1037,14 +1038,8 @@
     //----------------------------------

     /**
-     *  The RSLs loaded by this SystemManager or FlexModuleFactory before the
-     *  application starts. RSLs loaded by the application are not included in
-     *  this list. This dictionary may also include RSLs loaded into this
-     *  module factory's application domain by other modules or
-     *  sub-applications.
-     *
-     *  Information about preloadedRSLs is stored in a Dictionary. The key is
-     *  the RSL's LoaderInfo. The value is the RSL's RSLData.
+     *  @inheritDoc
+     *
      */
     public function  get preloadedRSLs():Dictionary
     {
@@ -1053,17 +1048,14 @@
     }

     /**
-     *  @private
-     *  Add an RSL to the preloadedRSLs list. This method is called by child
-     *  module factories when they add load an RSL into this module factory's
-     *  application domain.
-     *
-     *  @param loaderInfo The loaderInfo of the loaded RSL.
-     *  @param rsl The rsl configuration information. An array of RSLData.
-     *  The first element in the array is the primary RSL. The remaining
-     *  elements are failover RSLs.
+     *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 4.5
      */
-    public function addPreloadedRSL(loaderInfo:LoaderInfo, rsl:Array):void
+    public function addPreloadedRSL(loaderInfo:LoaderInfo, rsl:Vector.<RSLData>):void
     {
         preloadedRSLs[loaderInfo] = rsl;
         if (hasEventListener(RSLEvent.RSL_ADD_PRELOADED))
@@ -1959,6 +1951,9 @@
         // Append RSL information in the RSL list.
         if (rsls != null && rsls.length > 0)
         {
+            if (rslDataList == null)
+                rslDataList = [];
+
             if (normalizedURL == null)
                 normalizedURL = LoaderUtil.normalizeURL(this.loaderInfo);

@@ -1969,6 +1964,8 @@
                                                normalizedURL,
                                                this);
                 rslItemList.push(node);
+                rslDataList.push([new RSLData(rsls[i].url, null, null, null,
+                                  false, false, "current")]);
             }
         }

@@ -2591,15 +2588,15 @@
     {
         if (!event.isResourceModule && event.loaderInfo)
         {
-            var rsl:Array = rslDataList[event.rslIndex];
+            var rsl:Vector.<RSLData> = Vector.<RSLData>(rslDataList[event.rslIndex]);
             var moduleFactory:IFlexModuleFactory = this;
             if (rsl && rsl[0].moduleFactory)
                 moduleFactory = rsl[0].moduleFactory;

             if (moduleFactory == this)
                 preloadedRSLs[event.loaderInfo] =  rsl;
-            else if ("addPreloadedRSL" in moduleFactory)
-                moduleFactory["addPreloadedRSL"](event.loaderInfo, rsl);
+            else
+                moduleFactory.addPreloadedRSL(event.loaderInfo, rsl);
         }
     }


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

--- frameworks/projects/rpc/src/mx/rpc/soap/types/QueryBeanType.as
+++ frameworks/projects/rpc/src/mx/rpc/soap/types/QueryBeanType.as
@@ -0,0 +1,99 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2006-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.rpc.soap.types
+{
+
+import mx.rpc.soap.SOAPDecoder;
+import mx.rpc.soap.SOAPEncoder;
+import mx.rpc.xml.ContentProxy;
+import mx.rpc.xml.TypeIterator;
+import mx.rpc.xml.XMLDecoder;
+import mx.utils.object_proxy;
+import mx.utils.ObjectProxy;
+
+use namespace object_proxy;
+
+[ExcludeClass]
+
+/**
+ * Marshalls between the SOAP representation of a ColdFusion Query (aka a
+ * "Query Bean") and ActionScript.
+ * @private
+ */
+public class QueryBeanType implements ICustomSOAPType
+{
+    public function QueryBeanType()
+    {
+        super();
+    }
+
+    public function encode(encoder:SOAPEncoder, parent:XML, name:QName, value:*, restriction:XML = null):void
+    {
+        throw new Error("Unsupported operation - Query Beans cannot be sent to ColdFusion.");
+    }
+
+    public function decode(decoder:SOAPDecoder, parent:*, name:*, value:*, restriction:XML = null):void
+    {
+        var beanXML:XML = value as XML;
+
+        var returnVal:*;
+        if (decoder.makeObjectsBindable)
+            returnVal = new XMLDecoder.listClass();
+        else
+            returnVal = [];
+
+        // Query Column Names or "columnList" section
+        var colXML:XML = beanXML.columnList[0];
+        if (colXML == null)
+            return;
+
+        var columnsXMLList:XMLList = colXML.elements();
+        var columnNames:Array = [];
+        for each (var columnName:XML in columnsXMLList)
+        {
+            columnNames.push(columnName.toString());
+        }
+
+        // Query Rows or "data" section
+        var dataXML:XML = beanXML.data[0];
+        if (dataXML == null)
+            return;
+
+        var soapArrayType:SOAPArrayType = new SOAPArrayType();
+        var tempParent:Array = [];
+        soapArrayType.decode(decoder, tempParent, name, dataXML, restriction);
+
+        // Turn the Array of Arrays into an Array of Objects keyed by a
+        // column name to value...
+        var iterator:TypeIterator = new TypeIterator(tempParent);
+        while (iterator.hasNext())
+        {
+            var item:* = iterator.next();
+            var resultItem:*;
+            if (decoder.makeObjectsBindable)
+                resultItem = new ObjectProxy();
+            else
+                resultItem = {};
+
+            for (var i:uint = 0; i < columnNames.length; i++)
+            {
+                resultItem[columnNames[i]] = item[i];
+            }
+
+            TypeIterator.push(returnVal, resultItem);
+        }
+
+        decoder.setValue(parent, name, returnVal);
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7469
Author:   jacobg@adobe.com
Date:     2009-06-01T16:23:31.637699Z

Log Message:
-----------
Link DropDownList to ASDoc Example

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/DropDownList.as

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

--- frameworks/projects/spark/src/spark/components/DropDownList.as
+++ frameworks/projects/spark/src/spark/components/DropDownList.as
@@ -144,6 +144,8 @@
  *
  *  @see spark.skins.default.DropDownListSkin
  *  @see spark.components.supportClasses.DropDownController
+ *
+ *  @includeExample examples/DropDownListExample.mxml
  *
  *  @langversion 3.0
  *  @playerversion Flash 10