Transferred from the Adobe Open Source Subversion Repository

Revision: 8486
Author:   smgilson@adobe.com
Date:     2009-07-09T18:42:45.734868Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataRenderer.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/HGroup.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/RadioButtonGroup.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/supportClasses/Slider.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/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.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/VGroup.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/CheckBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.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/HScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Panel.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/ButtonBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/SkinnableDataContainer.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/SkinnableContainer.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/List.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Range.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>

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

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

  *
  *


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation/src/mx/automation/delegates/containers/AccordionAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/containers/AccordionAutomationImpl.as
@@ -0,0 +1,214 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.delegates.containers
+{
+
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.ui.Keyboard;
+	import flash.utils.getTimer;
+	import mx.automation.Automation;
+	import mx.automation.IAutomationObject;
+	import mx.automation.IAutomationObjectHelper;
+	import mx.automation.delegates.core.ContainerAutomationImpl;
+	import mx.containers.Accordion;
+	import mx.core.mx_internal;
+	import mx.core.EventPriority;
+	import mx.events.ChildExistenceChangedEvent;
+	import mx.events.IndexChangedEvent;
+	import mx.controls.Button;
+
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  Accordion class.
+	 *
+	 *  @see mx.containers.Accordion
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class AccordionAutomationImpl extends ContainerAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(Accordion, AccordionAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj Accordion object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function AccordionAutomationImpl(obj:Accordion)
+		{
+			super(obj);
+
+			obj.addEventListener(KeyboardEvent.KEY_DOWN, accordionKeyDownHandler, false, EventPriority.DEFAULT+1, true);
+
+			obj.addEventListener(IndexChangedEvent.CHANGE, indexChangeHandler, false, 0, true);
+		}
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get accr():Accordion
+		{
+			return uiComponent as Accordion;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 * Replays an IndexChangedEvent event by dispatching
+		 * a MouseEvent to the header that was clicked.
+		 *
+		 *  @param event The event to replay.
+		 *
+		 *  @return true if the replay was successful. Otherwise, returns false.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		override public function replayAutomatableEvent(event:Event):Boolean
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+			var completeTime:Number = getTimer() + accr.getStyle("openDuration");
+			if (event is IndexChangedEvent)
+			{
+				help.addSynchronization(function():Boolean
+				{
+					return getTimer() >= completeTime;
+				});
+				var ice:IndexChangedEvent = IndexChangedEvent(event);
+				var child:DisplayObject = ice.relatedObject;
+				var header:Button = accr.getHeaderAt(accr.getChildIndex(child));
+				var ao:IAutomationObject = header as IAutomationObject;
+				return ao.replayAutomatableEvent(new MouseEvent(MouseEvent.CLICK));
+			}
+			else if (event is KeyboardEvent)
+			{
+				var keyEvent:KeyboardEvent = KeyboardEvent(event);
+
+				if (keyEvent.keyCode == Keyboard.PAGE_UP ||
+					keyEvent.keyCode == Keyboard.PAGE_DOWN ||
+					keyEvent.keyCode == Keyboard.HOME ||
+					keyEvent.keyCode == Keyboard.END ||
+					keyEvent.keyCode == Keyboard.SPACE ||
+					keyEvent.keyCode == Keyboard.ENTER)
+				{
+					help.addSynchronization(function():Boolean
+					{
+						return getTimer() >= completeTime;
+					});
+				}
+				return help.replayKeyboardEvent(uiComponent, keyEvent);
+			}
+			else
+			{
+				return super.replayAutomatableEvent(event);
+			}
+		}
+
+
+		//--------------------------------------------------------------------------
+		//
+		//  Event handlers
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		private function accordionKeyDownHandler(event:KeyboardEvent):void
+		{
+			// Only listen for events that have come from the accordion itself.
+			if (event.target != accr)
+				return;
+
+			switch (event.keyCode)
+			{
+				case Keyboard.DOWN:
+				case Keyboard.RIGHT:
+				case Keyboard.UP:
+				case Keyboard.LEFT:
+					recordAutomatableEvent(event);
+					break;
+			}
+		}
+
+		/**
+		 *  @private
+		 */
+		private function indexChangeHandler(event:IndexChangedEvent):void
+		{
+			if (event.triggerEvent is MouseEvent)
+				recordAutomatableEvent(event, false);
+			else
+				recordAutomatableEvent(event.triggerEvent, false);
+		}
+
+		/**
+		 *  @private
+		 *  Prevent duplicate ENTER key recordings.
+		 */
+		override protected function keyDownHandler(event:KeyboardEvent):void
+		{
+			;
+		}
+
+	}
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 3606
Author:   hmuller@adobe.com
Date:     2008-10-13T23:26:54.103513Z

Log Message:
-----------
Patch for the problem ("not a bug") reported in issue SDK17078.

When the scrollbar thumb SkinPart is added, we clear vertical
constraints (FxVScrollBar) or horizontal constraints (FXHScrollBar).

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxVScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/components/FxHScrollBar.as</path>

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

--- frameworks/projects/spark/src/spark/components/HScrollBar.as
+++ frameworks/projects/spark/src/spark/components/HScrollBar.as
@@ -159,7 +159,22 @@
             super.step(increase);
         else
             updateViewportHSP((increase) ? Keyboard.RIGHT : Keyboard.LEFT);
-    }
+    }
+
+    /**
+     *  @private
+     */
+    override protected function partAdded(partName:String, instance:Object):void
+    {
+        if (instance == thumb)
+        {
+            thumb.setConstraintValue("left", undefined);
+            thumb.setConstraintValue("right", undefined);
+            thumb.setConstraintValue("horizontalCenter", undefined);
+        }
+
+        super.partAdded(partName, instance);
+    }

 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 20374
Author:   smgilson@adobe.com
Date:     2011-02-18T14:57:58.468559Z

Log Message:
-----------
ASdoc leanup - fix broken links, update for event name changes, remove FlashPlayer version tags.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableTextField.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/PersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/GapStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewReturnObject.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/IconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/TextInputOperation.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/managers/IPersistenceManager.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/StyleableTextFieldTextStyles.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -224,7 +224,7 @@
      *  method to change the type of persistence manager that is created.
      *
      *
The persistence manager automatically saves and restores
-     *  the main navigator's persistence stack if the
+     *  the current view navigator's view stack if the
      *  persistNavigatorState flag is set to true.
      *  Data stored in the persistence manager is automatically flushed to disk
      *  when the application is suspended or exited.

@@ -238,7 +238,7 @@
      *
      *
The default value is an instance of spark.core.managers.PersistenceManager.

      *
-     *  @see spark.core.managers.PersistenceManager
+     *  @see spark.managers.PersistenceManager
      *
      *  @langversion 3.0
      *  @playerversion AIR 2.5
@@ -263,8 +263,9 @@

     /**
      *  Toggles the application session caching feature for the application.
-     *  When enabled, the application automatically saves the main navigator's view
-     *  data and navigation history to the persistence manager.
+     *  When enabled, the application automatically saves the current
+     *  view navigator's view stack
+     *  and navigation history to the persistence manager.
      *  When the application is relaunched, this data is automatically read from
      *  the persistence store and applied to the application's navigator.
      *
@@ -275,14 +276,13 @@
      *  the applicationVersion or timestamp key.

      *
      *
When the persistence object is being created, the application dispatches
-     *  a cancelable FlexEvent.APPLICATION_PERSISTING event when the process
-     *  begins and a FlexEvent.APPLICATION_PERSIST event when it completes.
-     *  If the APPLICATION_PERSISTING event is canceled,
+     *  a cancelable FlexEvent.NAVIGATOR_STATE_SAVING event when the process
+     *  begins.
+     *  If you cancel the NAVIGATOR_STATE_SAVING event,
      *  the persistence object is not created.
      *  Similarly, when this information is being restored to the application, a cancelable
-     *  FlexEvent.APPLICATION_RESTORING event is dispatched followed by a
-     *  FlexEvent.APPLICATION_RESTORE event.
-     *  Canceling the APPLICATION_RESTORING event prevents the navigation
+     *  FlexEvent.NAVIGATOR_STATE_LOADING event is dispatched.
+     *  Canceling the NAVIGATOR_STATE_LOADING event prevents the navigation
      *  data from being restored.

      *
      *
The persistNavigatorState flag must be set to true before
@@ -322,6 +322,10 @@
      *  and closes it if set to false.
      *
      *  @default false
+     *
+     *  @langversion 3.0
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function get viewMenuOpen():Boolean
     {
@@ -372,7 +376,7 @@
      *  If persistNavigatorState is true,
      *  then the application begins the state saving process.
      *
-     *  @param event
+     *  @param event The event object for the NAVIGATOR_STATE_SAVING event.
      *
      *  @langversion 3.0
      *  @playerversion AIR 2.5
@@ -460,7 +464,7 @@
      *  and the time the persistence object was created to the timestamp and
      *  applicationVersion keys of the PersistenceManager object.
      *
-     *
This method is only called if the FlexEvent.APPLICATION_PERSISTING
+     *
This method is only called if the FlexEvent.NAVIGATOR_STATE_SAVING
      *  event is not canceled.

      *
      *  @langversion 3.0
@@ -481,7 +485,7 @@
      *  Responsible for restoring the application's state when the
      *  persistNavigatorState property is set to true.
      *
-     *
This method is only called if the FlexEvent.APPLICATION_RESTORING
+     *
This method is only called if the FlexEvent.NAVIGATOR_STATE_LOADING
      *  event is not canceled.

      *
      *  @langversion 3.0


Color change bits.

Color change bits.

git-svn-id: 41360ad359616a519dfba9f2f48af1afe653c9f7@55 be230a1c-449f-4488-b524-6273046f66f0

--- src/as/client/ClientApp.as
+++ src/as/client/ClientApp.as
@@ -10,6 +10,7 @@

 import flash.events.ContextMenuEvent;
 import flash.events.Event;
+import flash.events.EventDispatcher;
 import flash.events.FocusEvent;
 import flash.events.IOErrorEvent;
 import flash.events.KeyboardEvent;
@@ -183,7 +184,7 @@
         bevel.distance = 0.5;

         picker.graphics.beginFill(0x808080);
-        picker.graphics.drawRect(0, 0, 300, 100);
+        picker.graphics.drawRect(0, 0, 300, 270);
         picker.graphics.endFill();

         picker.filters = [ bevel ];
@@ -196,6 +197,14 @@
         var fmt :TextFormat = new TextFormat();
         fmt.font = "_typewriter";

+        var blockKeys :Function = function (obj :EventDispatcher) :void {
+            obj.addEventListener(KeyboardEvent.KEY_DOWN, function (event :KeyboardEvent) :void {
+                event.stopPropagation();
+            });
+            obj.addEventListener(KeyboardEvent.KEY_UP, function (event :KeyboardEvent) :void {
+                event.stopPropagation();
+            });
+        };
         var createState :Function = function (color :uint, down :Boolean) :Sprite {
             var state :Sprite = new Sprite();
             var tf :TextField = new TextField();
@@ -214,7 +223,9 @@
         var over :Sprite = createState(0xC0C0C0, false);
         var ok :SimpleButton = new SimpleButton(createState(0xB0B0B0, false), over,
             createState(0x707070, true), over);
+        blockKeys(ok);
         ok.addEventListener(MouseEvent.CLICK, function (event :MouseEvent) :void {
+            stage.focus = picker.parent;
             removeChild(picker);
             contextMenu.customItems[0].enabled = true;
         });
@@ -227,6 +238,7 @@
             label.autoSize = TextFieldAutoSize.LEFT;
             label.text = text;
             label.setTextFormat(fmt);
+            label.selectable = false;
             return label;
         };
         var fglabel :TextField = createLabel("Foreground:");
@@ -245,6 +257,7 @@
             field.background = true;
             field.type = TextFieldType.INPUT;
             field.defaultTextFormat = fmt;
+            blockKeys(field);

             var bevel :BevelFilter = new BevelFilter();
             bevel.distance = 0.5;
@@ -268,7 +281,7 @@
         background.addEventListener(Event.CHANGE, changer);

         fglabel.x = 10;
-        fglabel.y = ok.y - fglabel.height*3/2;
+        fglabel.y = 10;
         foreground.x = 10 + fglabel.width + 3;
         foreground.y = fglabel.y;

@@ -276,6 +289,64 @@
         background.y = foreground.y;
         bglabel.x = background.x - bglabel.width - 3;
         bglabel.y = fglabel.y;
+
+        stage.focus = foreground;
+
+        // create swatches to select web colors
+        var webColors :Array = [
+            0x000000, 0x000080, 0x008000, 0x008080,
+            0x800000, 0x800080, 0x808000, 0xC0C0C0,
+            0x808080, 0x0000FF, 0x00FF00, 0x00FFFF,
+            0xFF0000, 0xFF00FF, 0xFFFF00, 0xFFFFFF ];
+        var createSwatch :Function = function (color :uint, field :TextField) :Sprite {
+            var swatch :Sprite = new Sprite();
+            swatch.buttonMode = true;
+
+            var label :TextField = new TextField();
+            label.autoSize = TextFieldAutoSize.LEFT;
+            label.text = padColor(color.toString(16).toUpperCase());
+            label.setTextFormat(fmt);
+            label.background = true;
+            label.border = true;
+            label.selectable = false;
+            label.mouseEnabled = false;
+            swatch.addChild(label);
+            blockKeys(swatch);
+
+            var updater :Function = function (event :Event) :void {
+                if (field === foreground) {
+                    label.backgroundColor = parseInt(background.text, 16);
+                    label.textColor = color;
+                } else {
+                    label.backgroundColor = color;
+                    label.textColor = parseInt(foreground.text, 16);
+                }
+            };
+            updater(null);
+
+            swatch.addEventListener(MouseEvent.CLICK, function (event :MouseEvent) :void {
+                field.text = label.text;
+                field.dispatchEvent(new Event(Event.CHANGE));
+            });
+            (field == foreground ? background : foreground).addEventListener(
+                Event.CHANGE, updater);
+
+            return swatch;
+        };
+        var createSwatches :Function = function (ox :int, oy :int, field :TextField) :void {
+            for (var ii :int = 0; ii < 8; ii++) {
+                for (var jj :int = 0; jj < 2; jj++) {
+                    var swatch :Sprite = createSwatch(webColors[ii*2 + jj], field);
+                    picker.addChild(swatch);
+                    swatch.x = ox +
+                        (fglabel.width + foreground.width + 3 - 2*swatch.width - 10)/2 +
+                            jj*(swatch.width + 10);
+                    swatch.y = oy + ii*(swatch.height + 5);
+                }
+            }
+        };
+        createSwatches(fglabel.x, fglabel.y + fglabel.height + 10, foreground);
+        createSwatches(bglabel.x, bglabel.y + bglabel.height + 10, background);
     }

     /**
@@ -283,14 +354,8 @@
      */
     protected function setColors (foreground :String, background :String) :void
     {
-        var pad :Function = function (str :String) :String {
-            while (str.length < 6) {
-                str = "0" + str;
-            }
-            return str;
-        };
-        setCookie("foreground", foreground = pad(foreground));
-        setCookie("background", background = pad(background));
+        setCookie("foreground", foreground = padColor(foreground));
+        setCookie("background", background = padColor(background));

         var fg :uint = parseInt(foreground, 16);
         var bg :uint = parseInt(background, 16);
@@ -318,6 +383,17 @@
                 }
             }
         }
+    }
+
+    /**
+     * Pads a color out to the full six digits.
+     */
+    protected function padColor (str :String) :String
+    {
+        while (str.length < 6) {
+            str = "0" + str;
+        }
+        return str;
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 214
Author:   jszeto@adobe.com
Date:     2008-01-16T07:26:15.221246Z

Log Message:
-----------
SDK-14335 - RTE when using a custom titleBarFactory

When titleBarFactory was set declaratively, the titleBar was created in createChildren and also in commitProperties.

Bug: SDK-14335
QA: Yes
Doc: No

[ private comments below ]

Code Review: Gordon

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as

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

--- frameworks/projects/airframework/src/mx/core/WindowedApplication.as
+++ frameworks/projects/airframework/src/mx/core/WindowedApplication.as
@@ -1709,6 +1709,7 @@
 			_titleBar.styleName = new StyleProxy(this, titleBarStyleFilters);
         	rawChildren.addChild(DisplayObject(titleBar));
          	showTitleBarChanged = true;
+         	titleBarFactoryChanged = false;
         }

         if (!gripper)


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

--- frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as
+++ frameworks/projects/framework/src/mx/managers/HistoryManagerImpl.as
@@ -0,0 +1,739 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.managers
+{
+
+import flash.display.DisplayObject;
+import flash.display.LoaderInfo;
+import flash.events.StatusEvent;
+import flash.events.TimerEvent;
+import flash.net.navigateToURL;
+import flash.net.URLRequest;
+import flash.utils.Dictionary;
+import flash.utils.Timer;
+import mx.core.ApplicationGlobals;
+import mx.core.mx_internal;
+import mx.core.Singleton;
+import mx.events.BrowserChangeEvent;
+import mx.managers.BrowserManager;
+import mx.managers.IHistoryManagerClient;
+import mx.managers.HistoryManagerGlobals;
+
+use namespace mx_internal;
+
+[ExcludeClass]
+
+/**
+ *  @private
+ */
+public class HistoryManagerImpl implements IHistoryManager
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Implementation notes
+	//
+	//--------------------------------------------------------------------------
+
+	/*
+		HistoryManager works in conjunction with certain components
+		and with an invisible "history SWF".
+
+		The history SWF
+		---------------
+
+		The HTML wrapper for an MXML application contains an invisible iframe
+		named _history which contains history.swf.
+
+		This SWF's sole purpose is to encode state information for the
+		MXML application in the query parameters of its URL.
+
+		HistoryManager-aware components
+		-------------------------------
+
+		In order to support history management, a component must implement
+		the IHistoryManagerClient interface and must register with HistoryManager.
+
+		When the application state is considered to have changed, someone
+		must call HistoryManager.save(); in response, the HistoryManager calls
+		the saveState() method of all the registered components.
+
+		Each registered component returns an Object containing arbitrary
+		state information such as { selectedIndex: 1 }.
+
+		HistoryManager encodes the state information for all registered
+		components into the query parameters of a URL for the history SWF.
+		For example, the query parameters might be
+
+		    ?ce41-selectedIndex=1&10f7-selectedIndex=2
+
+		In order to keep the length of the URL within the browser's limits,
+		the identity of the component is specified by a short hash string
+		(such as "ce41" or "1047" above) computed from its toString() string.
+
+		The save() method reloads the _history iframe with the new URL
+		that contains the MXML apps' state info in its query parameters.
+
+		The browser stores these various URLs, representing various states
+		of the application, in its history cache.
+
+		When the user clicks the browser's Back button, the browser loads
+		a previous URL into the _history iframe. This causes the history.swf
+		to be reloaded.
+
+		When the history.swf is reloaded, it decodes its URL and calls
+		HistoryManager.load(). HistoryManager then calls the loadState()
+		methods of all registered components. It ensures that loadState()
+		is called on shallowly nested components before being called
+		on more deeply nested components, so that, for example, an Accordion
+		inside a ViewStack works properly.
+
+		Handshakes
+		----------
+
+		HistoryManager is initialized when the application starts.
+
+		When HistoryManager is initialized by the init() method,
+		it periodically attempts to contact the history.swf
+		using a LocalConnection to determine whether it has been loaded
+		and has completed its own initialization.
+
+		The "handshake" consists of the following sequence:
+			HistoryManager.initHandshake()
+			register() in history.swf
+			HistoryManager.registered()
+
+		A corresponding handshake is initiated by the initApp() method
+		of the history.swf.
+
+		It consists of the following sequence:
+			initHandshake() in history.swf
+			HistoryManager.registerHandshake()
+			registered() in history.swf
+			HistoryManager.load()
+
+	*/
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class constants
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 *  The interval between handshake attempts.
+	 */
+	private static const HANDSHAKE_INTERVAL:int = 500; // milliseconds
+
+	/**
+	 *  @private
+	 *  The maximum number of handshake attempts.
+	 */
+	private static const MAX_HANDSHAKE_TRIES:int = 100;
+
+	/*
+	 *  The following three constants are used to encode state information
+	 *  about multiple objects into the query parameters of an URL.
+	 *  The query parameters might look like this:
+	 *  ?8ce2-selectedIndex=1&47f0-selectedIndex=2
+	 */
+
+	/**
+	 *  @private
+	 *  The separator between the object identifier (the crc of its path)
+	 *  and the property name.
+	 */
+	private static const ID_NAME_SEPARATOR:String = "-";
+
+	/**
+	 *  @private
+	 *  The separator between the property name and the property value.
+	 */
+	private static const NAME_VALUE_SEPARATOR:String = "=";
+
+	/**
+	 *  @private
+	 *  The separator between consecutive object/property/value triples.
+	 */
+	private static const PROPERTY_SEPARATOR:String = "&";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+    private static var systemManager:ISystemManager;
+
+	/**
+	 *  @private
+	 */
+	private static var instance:IHistoryManager;
+
+	/**
+	 *  @private
+	 *  CRC for the app.
+	 */
+	private static var appID:String;
+
+	/**
+	 *  @private
+	 *  URL for history frame.
+	 *  This is passed to the SWF via the FlashStatic Vars in the HTML wrapper,
+	 *  and is currently "/dev/flex-internal?action=history_html".
+	 */
+	private static var historyURL:String;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Class methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	public static function getInstance():IHistoryManager
+	{
+		if (!instance)
+		{
+			systemManager = SystemManagerGlobals.topLevelSystemManagers[0];
+		    instance = new HistoryManagerImpl();
+		}
+
+		return instance;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	public function HistoryManagerImpl()
+	{
+		super();
+
+		if (instance)
+		    throw new Error("Instance already exists.");
+
+		if (appID)
+			return;
+
+		if (!ApplicationGlobals.application.historyManagementEnabled)
+			return;
+
+		var loaderInfo:LoaderInfo;
+
+		// Added to support Cross-versioning issue,
+		// so one needs to set the Singleton.loaderInfo object
+		// to the loaderInfo of the top-most object
+		if (HistoryManagerGlobals.loaderInfo)
+		{
+		    loaderInfo = HistoryManagerGlobals.loaderInfo;
+		}
+		else
+		{
+		    // Get values that were passed in via the FlashVars
+			// in the HTML wrapper.
+		    loaderInfo = DisplayObject(systemManager).loaderInfo;
+		}
+
+		var appURL:String;
+
+		// Use our URL as the unique CRC for this movie.
+		if (HistoryManagerGlobals.loaderInfo)
+		    appURL = HistoryManagerGlobals.loaderInfo.url;
+		else
+		    appURL = DisplayObject(systemManager).loaderInfo.url;
+
+
+		appID = calcCRC(appURL);
+
+		BrowserManager.getInstance().addEventListener(BrowserChangeEvent.BROWSER_URL_CHANGE, browserURLChangeHandler);
+		BrowserManager.getInstance().initForHistoryManager();
+
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @Private
+	 *  An Array of objects that will save and load state information.
+	 *  Each object must implement the IHistoryManagerClient interface.
+	 */
+	private var registeredObjects:Array = [];
+
+	/**
+	 *  @private
+	 *  A map from a registed object's path to its RegistrationInfo
+	 *  (path crc and path depth).
+	 */
+	private var registrationMap:Dictionary;
+
+	/**
+	 *  @private
+	 *  Pending states for deferred restoration.
+	 */
+	private var pendingStates:Object = {};
+
+	/**
+	 *  @private
+	 *  Pending query string to be sent to history.swf.
+	 */
+	private var pendingQueryString:String;
+
+	//--------------------------------------------------------------------------
+	//
+	//  Methods
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Registers an object with the HistoryManager.
+	 *  The object must implement the IHistoryManagerClient interface.
+	 *
+	 *  @param obj Object to register.
+	 *
+	 *  @see mx.managers.IHistoryManagerClient
+	 */
+	public function register(obj:IHistoryManagerClient):void
+	{
+		if (!ApplicationGlobals.application.historyManagementEnabled)
+			return;
+
+		// Ensure that this object isn't already registered.
+		unregister(obj);
+
+		// Add the object to the Array of all registered objects.
+		registeredObjects.push(obj);
+
+		// Get a "path" string such as "Application_1.VBox0.hb:HBox.main:
+		// Panel.bodyStack:ViewStack.checkoutView:VBox.accordion:Accordion"
+		// that uniquely represents this object in the visual hierarchy
+		// of the application.
+		var path:String = getPath(obj);
+
+		// Calculate a 4-character hex CRC of this path as a short
+		// identifier for the object to be encoded into the
+		// query parameters of the history URL.
+		var crc:String = calcCRC(path);
+
+		// Determine the depth of the object in the visual hierarchy.
+		// This is important because state must be restored
+		var depth:int = calcDepth(path);
+
+		// Store the crc and depth of the registered object in a
+		// RegistrationInfo instance kept in the HistoryManager's
+		// registrationMap. Given a registed object, we can look up
+		// its crc and depth using getRegistrationInfo().
+		if (!registrationMap)
+			registrationMap = new Dictionary(true);
+		registrationMap[obj] = new RegistrationInfo(crc, depth);
+
+		// Sort the Array of all registered objects according to their depth.
+		registeredObjects.sort(depthCompare);
+
+		// See if there is a pending state for this object.
+		if (pendingStates[crc])
+		{
+			obj.loadState(pendingStates[crc]);
+			delete pendingStates[crc];
+		}
+	}
+
+	/**
+	 *  @private
+	 */
+	private function getPath(obj:IHistoryManagerClient):String
+	{
+		return obj.toString();
+	}
+
+	/**
+	 *  @private
+	 *  Function to calculate a cyclic rendundancy checksum (CRC).
+	 *  This returns a 4-character hex string representing a 16-bit uint
+	 *  calculated from the specified string using the CRC-CCITT mask.
+	 *  In http://www.joegeluso.com/software/articles/ccitt.htm,
+	 *  the following sample input and output is given to check
+	 *  this implementation:
+	 *  "" -> "1D0F"
+	 *  "A" -> "9479"
+	 *  "123456789" -> "E5CC"
+	 *  "AA...A" (256 A's) ->"E938"
+	 */
+	private function calcCRC(s:String):String
+	{
+		var crc:uint = 0xFFFF;
+
+		// Process each character in the string.
+		var n:int = s.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var charCode:uint = s.charCodeAt(i);
+
+			// Unicode characters can be greater than 255.
+			// If so, we let both bytes contribute to the CRC.
+			// If not, we let only the low byte contribute.
+			var loByte:uint = charCode & 0x00FF;
+			var hiByte:uint = charCode >> 8;
+			if (hiByte != 0)
+				crc = updateCRC(crc, hiByte);
+			crc = updateCRC(crc, loByte);
+		}
+
+		// Process 2 additional zero bytes, as specified by the CCITT algorithm.
+		crc = updateCRC(crc, 0);
+		crc = updateCRC(crc, 0);
+
+		return crc.toString(16);
+	}
+
+	/**
+	 *  @private
+	 */
+	private function updateCRC(crc:uint, byte:uint):uint
+	{
+		const poly:uint = 0x1021; // CRC-CCITT mask
+
+		var bitMask:uint = 0x80;
+
+		// Process each bit in the byte.
+		for (var i:int = 0; i < 8; i++)
+		{
+			var xorFlag:Boolean = (crc & 0x8000) != 0;
+
+			crc <<= 1;
+			crc &= 0xFFFF;
+
+			if ((byte & bitMask) != 0)
+				crc++;
+
+			if (xorFlag)
+				crc ^= poly;
+
+			bitMask >>= 1;
+		}
+
+		return crc;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function calcDepth(path:String):int
+	{
+		return path.split(".").length;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function depthCompare(a:Object, b:Object):int
+	{
+		var regInfoA:RegistrationInfo = getRegistrationInfo(IHistoryManagerClient(a));
+		var regInfoB:RegistrationInfo = getRegistrationInfo(IHistoryManagerClient(b));
+
+		// Guard against the possibility of an object's
+		// registration info not being found.
+		if (!regInfoA || !regInfoB)
+			return 0;
+
+		if (regInfoA.depth > regInfoB.depth)
+			return 1;
+
+		if (regInfoA.depth < regInfoB.depth)
+			return -1;
+
+		return 0;
+	}
+
+	/**
+	 *  @private
+	 */
+	private function getRegistrationInfo(
+								obj:IHistoryManagerClient):RegistrationInfo
+	{
+		return registrationMap ? registrationMap[obj] : null;
+	}
+
+	/**
+	 *  Unregisters an object with the HistoryManager.
+	 *
+	 *  @param obj Object to unregister.
+	 */
+	public function unregister(obj:IHistoryManagerClient):void
+	{
+		if (!ApplicationGlobals.application.historyManagementEnabled)
+			return;
+
+		// Find the index of the object in the Array of all
+		// registered objects; -1 means not found.
+		var index:int = -1;
+		var n:int = registeredObjects.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			if (registeredObjects[i] == obj)
+			{
+				index = i;
+				break;
+			}
+		}
+
+		// If the object was found in the Array, remove it.
+		if (index >= 0)
+			registeredObjects.splice(index, 1);
+
+		// Remove it from the map as well.
+		if (obj && registrationMap)
+			delete registrationMap[obj];
+	}
+
+	/**
+	 *  Saves the application's current state so it can be restored later.
+	 *  This method is automatically called by navigator containers
+	 *  whenever their navigation state changes.
+	 *  If you registered an interface with the HistoryManager,
+	 *  you are responsible for calling the save() method
+	 *  when the application state changes.
+	 */
+	public function save():void
+	{
+		if (!ApplicationGlobals.application.historyManagementEnabled)
+			return;
+
+		var haveState:Boolean = false;
+
+		// Query string always starts with the application identifier.
+		var queryString:String = "app=" + appID;
+
+		// Call saveState() on every registered object
+		// to get an Object containing its state information.
+		var n:int = registeredObjects.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var registeredObject:IHistoryManagerClient = registeredObjects[i];
+			var stateInfo:Object = registeredObject.saveState();
+
+			// stateInfo might be something like { selectedIndex: 1 }
+
+			// Encode the stateInfo into the query string, building up
+			// a string like "ce41-selectedIndex=1&10f7-selectedIndex=2"
+			// that specifies objects (via the crcs of their paths),
+			// property names, and property values.
+			var crc:String = getRegistrationInfo(registeredObject).crc;
+			for (var name:String in stateInfo)
+			{
+				var value:Object = stateInfo[name];
+
+				if (queryString.length > 0)
+					queryString += PROPERTY_SEPARATOR;
+				queryString += crc;
+				queryString += ID_NAME_SEPARATOR;
+				queryString += escape(name);
+				queryString += NAME_VALUE_SEPARATOR;
+				queryString += escape(value.toString());
+				haveState = true;
+			}
+		}
+
+		// If any registered objects specified any state information to save,
+		// reload the history SWF with an URL that encodes all the state info.
+		if (haveState)
+		{
+			pendingQueryString = queryString;
+			ApplicationGlobals.application.callLater(this.submitQuery);
+		}
+	}
+
+	/**
+	 *  @private
+	 *  Reloads the _history iframe with the history SWF.
+	 */
+	private function submitQuery():void
+	{
+		if (pendingQueryString)
+		{
+			BrowserManager.getInstance().setFragment(pendingQueryString);
+			pendingQueryString = null;
+			ApplicationGlobals.application.resetHistory = true;
+		}
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Event handlers
+	//
+	//--------------------------------------------------------------------------
+
+
+	/**
+	 *  @private
+	 *  Loads state information.
+	 *  Called by the registered() method of history.swf
+	 *  after we have returned its handshake.
+	 *
+	 *  @param stateVars State information.
+	 */
+	public function browserURLChangeHandler(event:BrowserChangeEvent):void
+	{
+		var p:String;
+		var crc:String;
+
+		if (!ApplicationGlobals.application.historyManagementEnabled)
+			return;
+
+		var pieces:Array = event.url.split(PROPERTY_SEPARATOR);
+		var stateVars:Object = {};
+		var n:int = pieces.length;
+		for (var i:int = 0; i < n; i++)
+		{
+			var nameValuePair:Array = pieces[i].split(NAME_VALUE_SEPARATOR);
+			stateVars[nameValuePair[0]] = parseString(nameValuePair[1]);
+		}
+
+		var params:Object = {};
+
+
+		// Unpack the stateVars into parameter objects for each state interface.
+		// stateVars looks like
+		//   { ce41-selectedIndex: 1, 10f7-selectedIndex: 2 }
+		// params will look like
+		//   { ce41: { selectedIndex: 1 }, 10f7: { selectedIndex: 2 } }
+		for (p in stateVars)
+		{
+			var crclen:int = p.indexOf(ID_NAME_SEPARATOR)
+			if (crclen > -1)
+			{
+				crc = p.substr(0, crclen);
+				var name:String = p.substr(crclen + 1, p.length);
+				var value:Object = stateVars[p];
+
+				if (!params[crc])
+					params[crc] = {};
+
+				params[crc][name] = value;
+			}
+		}
+
+		// Call loadState() on all registered objects.
+		n = registeredObjects.length;
+		for (i = 0; i < n; i++)
+		{
+			var registeredObject:IHistoryManagerClient = registeredObjects[i];
+			crc = getRegistrationInfo(registeredObject).crc;
+
+			registeredObject.loadState(params[crc]);
+			delete params[crc];
+		}
+
+		// Save off any remaining state variables in the pendingStates object.
+		// This way the state can be restored if the interface
+		// is instantiated later.
+		for (p in params)
+		{
+			pendingStates[p] = params[p];
+		}
+
+	}
+
+	private function parseString(s:String):Object
+	{
+		if (s == "true")
+			return true;
+		if (s == "false")
+			return false;
+
+		var i:int = parseInt(s);
+		if (i.toString() == s)
+			return i;
+
+		var n:Number = parseFloat(s);
+		if (n.toString() == s)
+			return n;
+
+		return s;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Deprecated
+	//
+	//--------------------------------------------------------------------------
+	public function registered():void {}
+	public function registerHandshake():void {}
+	public function load(stateVars:Object):void {}
+	public function loadInitialState():void {}
+
+}
+
+}
+
+////////////////////////////////////////////////////////////////////////////////
+//
+//  Helper class: RegistrationInfo
+//
+////////////////////////////////////////////////////////////////////////////////
+
+/**
+ *  @private
+ */
+class RegistrationInfo
+{
+    include "../core/Version.as";
+
+	//--------------------------------------------------------------------------
+	//
+	//  Constructor
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 */
+	public function RegistrationInfo(crc:String, depth:int)
+	{
+		super();
+
+		this.crc = crc;
+		this.depth = depth;
+	}
+
+	//--------------------------------------------------------------------------
+	//
+	//  Variables
+	//
+	//--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	public var crc:String;
+
+	/**
+	 *  @private
+	 */
+	public var depth:int;
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 10606
Author:   egeorgie@adobe.com
Date:     2009-09-25T23:01:50.455888Z

Log Message:
-----------
White space cleanup.

Doc notes: None
Bugs: None
Reviewer: Evtim
Tests run: build
Is noteworthy for integration: Nope

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DropDownList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/TransformOffsets.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/AddItems.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/OnDemandEventDispatcher.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/VideoDisplay.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/PopUpAnchor.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/spark/src/spark/layouts/supportClasses/Block.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/containers/ViewStack.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ToggleButtonBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/EffectManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/CompoundTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Container.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/Effect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/LayoutElementUIComponentUtils.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/BitmapFill.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ArrayList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/graphics/GradientBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/DropDownController.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/BasicLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/collections/ListCollectionView.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/geom/Transform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/scrollClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LinearLayoutVector.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Path.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/utils/DescribeTypeCache.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/sparkTest/src/testWheel.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/TileLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/skins/SparkSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/AnimateTransformInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as
+++ frameworks/projects/spark/src/spark/layouts/supportClasses/Block.as
@@ -36,7 +36,7 @@
     public function Block()
     {
         super();
-        for(var i:int = 0; i < LinearLayoutVector.BLOCK_SIZE; i++)
+        for (var i:int = 0; i < LinearLayoutVector.BLOCK_SIZE; i++)
             sizes[i] = NaN;
     }
 }


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/AreaSeriesAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/AreaSeriesAutomationImpl.as
@@ -0,0 +1,138 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.automation.delegates.charts
+{
+	import flash.display.DisplayObject;
+	import flash.geom.Point;
+
+	import mx.automation.Automation;
+	import mx.charts.ChartItem;
+	import mx.charts.series.AreaSeries;
+	import mx.core.IFlexDisplayObject;
+	import mx.charts.series.items.AreaSeriesItem;
+
+
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines the methods and properties required to perform instrumentation for the
+	 *  AreaSeries class.
+	 *
+	 *  @see mx.charts.series.AreaSeries
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class AreaSeriesAutomationImpl extends SeriesAutomationImpl
+	{
+		include "../../../core/Version.as";
+
+		//--------------------------------------------------------------------------
+		//
+		//  Class methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Registers the delegate class for a component class with automation manager.
+		 *
+		 *  @param root The SystemManger of the application.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public static function init(root:DisplayObject):void
+		{
+			Automation.registerDelegateClass(AreaSeries, AreaSeriesAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj AreaSeries object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function AreaSeriesAutomationImpl(obj:AreaSeries)
+		{
+			super(obj);
+
+			areaSeries = obj;
+		}
+
+		/**
+		 * @private
+		 */
+		private var areaSeries:AreaSeries;
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden properties
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override public function get automationName():String
+		{
+			if(areaSeries.xField && areaSeries.yField)
+				return String(areaSeries.xField + ";" + areaSeries.yField);
+
+			return super.automationName;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		override protected function getChartItemLocation(item:ChartItem):Point
+		{
+			if (item is AreaSeriesItem)
+			{
+				var aItem:AreaSeriesItem = item as AreaSeriesItem;
+				var x:int = aItem.x;
+				var y:int = aItem.y;
+
+				var p:Point = new Point(x,y);
+
+				p = areaSeries.localToGlobal(p);
+				p = areaSeries.owner.globalToLocal(p);
+				return p;
+			}
+
+
+			return super.getChartItemLocation(item);
+		}
+
+	}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 12968
Author:   cframpto@adobe.com
Date:     2009-12-15T21:04:27.972261Z

Log Message:
-----------
When measuring in one dimension, the RET doesn’t scroll when it should since there was no scroll rect due to premature return in RichEditableTextContainerManager.drawBackgroundAndSetScrollRect.

QE notes:
Doc notes:
Bugs: SDK-24728
Reviewer:
Tests run: checkintests, TextArea, TextInput, NumericStepper, ComboBox
Is noteworthy for integration: no

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -128,11 +128,15 @@
         var width:Number = textDisplay.width;
         var height:Number = textDisplay.height;

-        // (FIXME) cframpto: is this still really needed?
-        if (!textDisplay.autoSize && (isNaN(width) || isNaN(height)))
-            return false;  // just measuring!
-
         var contentBounds:Rectangle = getContentBounds();
+
+        // If measuring width, use the content width.
+        if (isNaN(width))
+            width = contentBounds.right;
+
+        // If measuring height, use the content height.
+        if (isNaN(height))
+            height = contentBounds.bottom;

         // If autoSize, and lineBreak="toFit there should never be
         // a scroll rect but if lineBreak="explicit" the text may need


Transferred from the Adobe Open Source Subversion Repository

Revision: 14443
Author:   sameer@adobe.com
Date:     2010-02-26T06:59:48.156260Z

Log Message:
-----------
Merge AdvancedDataGrid mirroring changes from 4.x branch to trunk - revision 14442

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

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/AdvancedDataGridBaseEx.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/AdvancedDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/listClasses/AdvancedListBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/datavisualization/src/mx/controls/advancedDataGridClasses/AdvancedDataGridDragProxy.as</path>

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

--- frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
+++ frameworks/projects/advancedgrids/src/mx/controls/AdvancedDataGridBaseEx.as
@@ -5522,17 +5522,24 @@
             return;
         }

+		// Global coordinates.
         var deltaX:Number = event.stageX - startX;

+		// If the mouse pointer over the right (layoutDirection=”ltr”) or
+		// left (layoutDirection=”rtl”) half of the column, the drop indicator
+		// should be shown before the next column.
+		var deltaXInLocalCoordinates:Number =
+			(layoutDirection == "ltr" ? +deltaX : -deltaX);
+
         // Move header selection.
         s = Sprite(selectionLayer.getChildByName("headerSelection"));
         if (s)
-            s.x += deltaX;
+            s.x += deltaXInLocalCoordinates;

         // Move header proxy.
         item = IListItemRenderer(listContent.getChildByName("headerDragProxy"));
         if (item)
-            item.move(item.x + deltaX, item.y);
+            item.move(item.x + deltaXInLocalCoordinates, item.y);

         startX += deltaX;

@@ -5576,8 +5583,8 @@
                 dropIndexFound = true;
                 isHeaderDragOutside = false;

-                // If the mouse pointer over the right half of the column, the
-                // drop indicator should be shown before the next column.
+                // If the mouse pointer over the right (ltr) or left (rtl) half
+				// of the column, the drop indicator should be shown before the next column.
                 if (pt.x > (columnXPos + headerInfo.column.width/2) ||
                     //Column groups which are partially visible should
                     //show drag indicator at the right end only
@@ -8050,14 +8057,18 @@
         if (headerIndex == -1)
             return;

-        var newColumnIndex:int;
-
-        if (event.keyCode == Keyboard.DOWN)
+		// If rtl layout, need to swap LEFT and RIGHT so correct action
+		// is done.
+		var keyCode:uint = mapKeycodeForLayoutDirection(event);
+
+		var newColumnIndex:int;
+
+        if (keyCode == Keyboard.DOWN)
         {
             unselectColumnHeader(headerIndex, true);
             headerIndex = -1;
         }
-        else if (event.keyCode == Keyboard.LEFT)
+        else if (keyCode == Keyboard.LEFT)
         {
             newColumnIndex = viewDisplayableColumnAtOffset(headerIndex, -1);
             if (newColumnIndex != -1)
@@ -8069,7 +8080,7 @@
                 selectColumnHeader(headerIndex);
             }
         }
-        else if (event.keyCode == Keyboard.RIGHT)
+        else if (keyCode == Keyboard.RIGHT)
         {
             newColumnIndex = viewDisplayableColumnAtOffset(headerIndex, +1);
             if (newColumnIndex != -1)
@@ -8080,7 +8091,7 @@
                 selectColumnHeader(headerIndex);
             }
         }
-        else if (event.keyCode == Keyboard.SPACE)
+        else if (keyCode == Keyboard.SPACE)
         {
             if (sortableColumns && columns[headerIndex].sortable)
             {
@@ -8101,10 +8112,10 @@
         }
         // horizontal scrolling when focus is on header
         else if ( event.shiftKey
-                  && (event.keyCode == Keyboard.PAGE_UP
-                      || event.keyCode == Keyboard.PAGE_DOWN) )
-        {
-            moveSelectionHorizontally(event.keyCode, event.shiftKey, event.ctrlKey);
+                  && (keyCode == Keyboard.PAGE_UP
+                      || keyCode == Keyboard.PAGE_DOWN) )
+        {
+            moveSelectionHorizontally(keyCode, event.shiftKey, event.ctrlKey);
         }

         event.stopPropagation();


Transferred from the Adobe Open Source Subversion Repository

Revision: 10372
Author:   klin@adobe.com
Date:     2009-09-18T00:49:09.441663Z

Log Message:
-----------
https://bugs.adobe.com/jira/browse/SDK-23273 - Excluded borderAlpha and borderVisible from mx:TabBar.

https://bugs.adobe.com/jira/browse/SDK-23042 - Pushed Exclude of focusThickness style from SkinnableComponent into specific subclasses (GroupBase, ScrollBar, SkinnableContainerBase, VideoPlayer, TitleBar) so that other subclasses will inherit the focusThickness style.

https://bugs.adobe.com/jira/browse/SDK-23172 - Revert of 10349. Fixed bug where dataTipInstance was not inheriting Slider's styles by assigning Slider as its owner. Also excluded unsupported text styles.

QE Notes: None
Doc Notes: None
Bugs: SDK-23273, SDK-23042, SDK-23172
Reviewer: Jason
API Change: No
Is noteworthy for integration: FB
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TabBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableContainerBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/windowClasses/TitleBar.as</path>

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

--- frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
+++ frameworks/projects/airspark/src/spark/components/windowClasses/TitleBar.as
@@ -54,6 +54,12 @@
  *  @productversion Flex 4
  */
 [SkinState("disabledAndMaximized")]
+
+//--------------------------------------
+//  Excluded APIs
+//--------------------------------------
+
+[Exclude(name="focusThickness", kind="style")]

 /**
  *  The TitleBar class defines the default title bar for a


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

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

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

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

--- frameworks/projects/charts/src/mx/charts/chartClasses/CartesianTransform.as
+++ frameworks/projects/charts/src/mx/charts/chartClasses/CartesianTransform.as
@@ -0,0 +1,255 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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.charts.chartClasses
+{
+
+/**
+ *  The CartesianTransform object represents a set of axes
+ *  that maps data values to x/y Cartesian screen coordinates
+ *  and vice versa.
+ *
+ *
When using charts in your applications, you
+ *  typically will not need to interact with the CartesianTransform object.
+ *  Transforms are created automatically by the built-in chart types
+ *  and used by the series contained within
+ *  so that they can transform data into rendering coordinates.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class CartesianTransform extends DataTransform
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class constants
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  A String representing the horizontal axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const HORIZONTAL_AXIS:String = "h";
+
+    /**
+     *  A String representing the vertical axis.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const VERTICAL_AXIS:String = "v";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function CartesianTransform()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  pixelWidth
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _pixelWidth:Number = 0;
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The width of the data area that the CartesianTransform represents,
+     *  in pixels.
+     *  The containing chart sets this property explicitly during layout.
+     *  The CartesianTransform uses this property
+     *  to map data values to screen coordinates.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function set pixelWidth(value:Number):void
+    {
+        _pixelWidth = value;
+    }
+
+    //----------------------------------
+    //  pixelHeight
+    //----------------------------------
+
+    /**
+     *  @private
+     */
+    private var _pixelHeight:Number = 0;
+
+    [Inspectable(environment="none")]
+
+    /**
+     *  The height of the data area that the CartesianTransform represents,
+     *  in pixels.
+     *  The containing chart sets this property explicitly during layout.
+     *  The CartesianTransform uses this property
+     *  to map data values to screen coordinates.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public function set pixelHeight(value:Number):void
+    {
+        _pixelHeight = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: DataTransform
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Transforms x and y coordinates relative to the DataTransform
+     *  coordinate system into a 2-dimensional value in data space.
+     *
+     *  @param ...values The x and y positions (in that order).
+     *
+     *  @return An Array containing the transformed values.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function invertTransform(...values):Array /* of Object */
+    {
+        var xPos:Number = values[0] / _pixelWidth;
+        var yPos:Number = 1 - values[1] / _pixelHeight;
+
+        var xValue:Object = axes[HORIZONTAL_AXIS].invertTransform(xPos);
+        var yValue:Object = axes[VERTICAL_AXIS].invertTransform(yPos);
+
+        return [ xValue, yValue ];
+    }
+
+    /**
+     *  Maps a set of numeric values representing data to screen coordinates.
+     *  This method assumes the values are all numbers,
+     *  so any non-numeric values must have been previously converted
+     *  with the mapCache() method.
+     *
+     *  @param cache An array of objects containing the data values
+     *  in their fields.
+     *  This is also where this function stores the converted numeric values.
+     *
+     *  @param xField The field where the data values for the x axis are stored.
+     *
+     *  @param xConvertedField The field where the mapped x screen coordinate
+     *  is stored.
+     *
+     *  @param yField The field where the data values for the y axis are stored.
+     *
+     *  @param yConvertedField The field where the mapped y screen coordinate
+     *  is stored.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    override public function transformCache(cache:Array /* of Object */,
+                                            xField:String,
+                                            xConvertedField:String,
+                                            yField:String,
+                                            yConvertedField:String):void
+    {
+        var w:Number = _pixelWidth;
+        var h:Number = _pixelHeight;
+
+        var c:Object;
+
+        var len:uint = cache.length;
+        if (len == 0)
+            return;
+
+        if (xField && xField != "")
+            axes[HORIZONTAL_AXIS].transformCache(cache, xField, xConvertedField);
+
+        if (yField && yField != "")
+            axes[VERTICAL_AXIS].transformCache(cache, yField, yConvertedField);
+
+        var i:int = len - 1;
+
+        if (xConvertedField && xConvertedField.length &&
+            yConvertedField && yConvertedField.length)
+        {
+            do
+            {
+                c = cache[i];
+                c[xConvertedField] *= w;
+                c[yConvertedField] = (1 - c[yConvertedField]) * h;
+                i--;
+            }
+            while (i >= 0);
+        }
+        else if (xConvertedField && xConvertedField.length)
+        {
+            do
+            {
+                c = cache[i];
+                c[xConvertedField] *= w;
+                i--;
+            }
+            while (i >= 0);
+        }
+        else
+        {
+            do
+            {
+                c = cache[i];
+                c[yConvertedField] = (1 - c[yConvertedField]) * h;
+                i--;
+            }
+            while (i >= 0);
+        }
+    }
+}
+
+}


added utility method "getTab"

added utility method "getTab"

--- collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/UIConfiguration.as
+++ collect-flex/collect-flex-client/src/generated/flex/org/openforis/collect/model/UIConfiguration.as
@@ -1,14 +1,23 @@
-/**
- * Generated by Gas3 v2.2.0 (Granite Data Services).
- *
- * NOTE: this file is only generated if it does not exist. You may safely put
- * your custom code here.
- */
-
-package org.openforis.collect.model {
-
-    [Bindable]
-    [RemoteClass(alias="org.openforis.collect.model.UIConfiguration")]
-    public class UIConfiguration extends UIConfigurationBase {
-    }
+/**
+ * Generated by Gas3 v2.2.0 (Granite Data Services).
+ *
+ * NOTE: this file is only generated if it does not exist. You may safely put
+ * your custom code here.
+ */
+
+package org.openforis.collect.model {
+
+    [Bindable]
+    [RemoteClass(alias="org.openforis.collect.model.UIConfiguration")]
+    public class UIConfiguration extends UIConfigurationBase {
+
+		public function getTab(name:String):UITab {
+			for each(var tab:UITab in tabs) {
+				if(tab.name == name) {
+					return tab;
+				}
+			}
+			return null;
+		}
+    }
 }


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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/AxisRendererAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/AxisRendererAutomationImpl.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.automation.delegates.charts
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 23001
Author:   aaltman@adobe.com
Date:     2011-10-14T19:53:17.165166Z

Log Message:
-----------
When getting the bounds of a popup, use getVisibleRect instead of getBounds because the base class (DisplayObject) may not have the correct bounds yet.

QE notes: None
Doc notes: None
Bugs: SDK-31858
Reviewer: cframpto
Tests run: checkintests
Is noteworthy for integration: no

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

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/StyleableStageText.as
@@ -1964,7 +1964,8 @@
             if (otherFormDisplayObj &&
                 (!otherForm.hasOwnProperty("focusManager") || otherForm.focusManager != focusManager))
             {
-                var formGlobalRect:Rectangle = otherFormDisplayObj.getBounds(stage);
+                var formGlobalRect:Rectangle = otherFormDisplayObj is UIComponent ?
+                    UIComponent(otherFormDisplayObj).getVisibleRect() : otherFormDisplayObj.getBounds(stage);

                 if (formGlobalRect.intersects(globalRect))
                 {


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

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

 package mx.automation.codec
 {


Ajout de l'affichage, debut de la validation des lignes

--- tp3.as
+++ tp3.as
@@ -3,78 +3,253 @@
   IFT209, Devoir 3
 */

-
-.global Main 		!Point d\'entrée, début du programme
-.global Afficher	!Fonction qui affiche un entier.
+.global Main 		!Point d entrée, début du programme

 .section ".text"
-

 /* Début du programme */

 Main:
   set   vecteur, %l0
-  mov   0, %l1 ! Initialiser l1 à 0 pour s\'en servir dans Sudoku00
-
-  ba  Sudoku00
-  nop
+  mov   0, %l1 ! Initialiser l1 à 0 pour s en servir dans Sudoku00
+
+  !ba    Sudoku00
+  ba   AfficherSudoku
+  nop
+
+/*
+    Partie 1 : Lecture du Sudoku
+    ---------------------------------------------------
+*/

 /* Lecture des 81 chiffres formant le Sudoku */
 Sudoku00:
-
-  ! Afficher la demande du chifre
-  set   demandechif, %o0
-  mov   %l1, %o1
-  call  printf
-  nop
-
-  ! Recevoir le chiffre
-  set   lecture, %o0
+  set   lecturecons, %o0 ! Recevoir le chiffre
+  set   lecture, %o1
   call  scanf
   nop

-  ! Concerver le chiffre
-  mul   %l1, 4, %l2     ! Emplacement où converver le chiffre
-  st    %l1, [%l0+%l2]  ! Placer le chiffre dans le vecteur
-
-  ! Véfifier si nous avons tout nos chiffres ou on doit continuer
+  ldub    [%o1], %l2       ! Aller lire le chiffre donné
+
+  /* start DEBUG */
+  set   afficherchiffre, %o0
+  mov   %l2, %o1
+  call  printf
+  nop
+  /* end DEBUG */
+
+  stb   %l2, [%l0+%l1]   ! Placer le chiffre dans le vecteur
+
+  cmp   %l1, 80          ! Véfifier si nous avons tout nos chiffres ou on doit continuer
+  bl    Sudoku00         ! Continuer a recevoir des chiffres
   inc   %l1
-  bl    %l1, 81
-  Sudoku00           ! Continuer a recevoir des chiffres
-  nop
-
-  ba ValiderLignes   ! Valider le contenu du Sudoku
-  nop
-
+
+  ba AfficherSudoku      ! Afficher le Sudoku
+  nop
+
+
+ValiderDiagonnales:
+  nop
+
+/*
+    Partie 2 : Affichage du Sudoku
+    ---------------------------------------------------
+*/
+
+AfficherSudoku:
+  mov   3, %l1      ! Compteur de ligne qui se reset a chaque 3 lignes
+  mov   0, %l2      ! Compteur de ligne qui se reset pas a chaque 3 lignes
+
+  ba    AfficherSudoku00
+  nop

 /* Afficher le Sudoku */
-AfficherSudoku:
-  mov   %l1, 0    ! %l1 va servir pour savoir on est rendu sur quelle ligne (0-8)
-  mov   %l2, 0    ! %l2 va servir pour savoir on est rendu sur quelle colonne (0-8)
-
+AfficherSudoku00:
+  mov   3, %l3              ! Compteur de colonne qui se reset a chaque 3 chiffres
+  mov   0, %l4              ! Compteur de colonne qui se reset pas a chaque 3 chiffres
+
+  cmp   %l1, 3              ! Si 3, on afficher une ligne pleine
+  be    AfficherSudoku02
+  nop
+
+  inc   %l1                 ! Passer à la prochaine ligne
+  inc   %l2
+
+  cmp   %l2, 9
+  bg    ValiderLignes       ! Lancer la validation du Sudoku
+  nop
+
+  ba  AfficherSudoku04      ! Afficher une ligne du Sudoku avec des chiffres
+  nop
+
+/* Afficher une ligne pleine */
+AfficherSudoku02:
+  set   lignepleine, %o0        ! Afficher la ligne pleine
+  call  printf
+  mov   0, %l1                  ! Remettre le compteur de ligne à 0
+
+  ba AfficherSudoku00
+  nop
+
+/* Afficher une ligne */
+AfficherSudoku04:
+  cmp   %l3, 3                  ! Afficher la ligne horizontale
+  be    AfficherSudoku06
+  nop
+
+  cmp   %l4, 9                  ! Afficher le retour de ligne
+  bge   AfficherSudoku08
+  nop
+
+  cmp   %l3, 3
+  bl    AfficherSudoku10        ! Afficher le chiffre courant
+  nop
+
+  retl  ! Retour à l'affichage des autres lignes
+
+/* Afficher la barre horizontale */
+AfficherSudoku06:
+  set   barrehorizo, %o0
+  call  printf
+  nop
+
+  mov   0, %l3
+
+  ba    AfficherSudoku04
+  nop
+
+/* Afficher un retour de ligne */
+AfficherSudoku08:
+  set   sautligne, %o0
+  call  printf
+  nop
+
+  ba    AfficherSudoku00
+  nop
+
+/* Afficher un chiffre du Sudoku */
+AfficherSudoku10:
+  inc   %l3                     ! Passer au chiffre suivant
+  inc   %l4
+
+  set   afficherchiffre, %o0
+  ldub  [%l0], %o1
+  call  printf
+  nop
+
+  inc   1, %l0                  ! Passer au chiffre suivant pour le prochain affichage
+  ba    AfficherSudoku04
+  nop
+
+/*
+    Partie 3 : Validation du Sudoku ligne par ligne
+    ---------------------------------------------------
+*/
+
+/*
+    ALGO:
+        1) Lignes :
+            1.1) Verifier que le nombre est entre 1 et 9
+            1.2) Vérifier les autres chiffres pour voir s'il y en a un autre identique. Aller de la manière suivante : 1->2, 1->3... 2->3, 7->8, 7->9, 8->9
+*/

 /* Valider le sudoku sur les 9 lignes */
 ValiderLignes:
-  mov   %l1, 0    ! %l1 va servir pour savoir on est rendu sur quelle ligne
-
-
-ValiderColonnes:
-  mov   %l1, 0    ! %l1 va servir pour savoir on est rendu sur quelle colonne
-
-ValiderDiagonnales:
-
-
-/* Variables */
+  set   vecteur, %l0        ! Pointeur sur la ligne courante
+  mov   0, %l1              ! %l1 va servir pour savoir on est rendu sur quelle ligne
+
+  /* start Aff */
+  set   validligne1, %o0
+  call  printf
+  nop
+  /* end Aff */
+
+  ba    ValiderLignes00     ! Lancer la validation des lignes
+  nop
+
+
+/* Validation de la ligne courante */
+ValiderLignes00:
+  mov   0, %l2        ! %l2 va servir pour savoir on est rendu sur quel chiffre
+
+  /* start Aff */
+  set   validligne2, %o0
+  mov   %l1, %o1
+  call  printf
+  nop
+  /* end Aff */
+
+  ba    ValiderLignes02     ! Lancer la validation de la ligne
+  nop
+
+
+/* Lancer la validation pour le chiffre à la position de %l0 jusqu'a ce que le 9e chiffre de la ligne soit testé */
+ValiderLignes02:
+  add   %l1, 1, %l2     ! On se sert de l2 pour savoir le chiffre avec lequel on compare le chiffre
+
+  ldub  [%l0], %l3      ! Charger le nombre courant dans l3
+
+  cmp   %l3, 0          ! Si le nombre courant est <= 0, la ligne est invalide
+  ble   ValiderLigne06
+  nop
+
+  cmp   %l3, 10
+  bge   ValiderLigne06  ! Si le chiffre courant est >= 10, la ligne est invalide
+  nop
+
+  ! S'assurer que le nombre est plus grand de 0 et plus petit de 10
+
+
+/* Valider tout les nombres en partant de %l2 en allant jusqu'au 9e chiffre */
+ValiderLignes04:
+  nop
+
+
+/* Erreur dans la ligne */
+ValiderLignes06:
+  set   validligneinc, %o0      ! Afficher que la ligne est invalide comme résultat de la validation
+  call  printf
+  nop
+
+  call  exit                    ! Et on sort du programme !
+  nop
+
+ValiderLignes08:
+  set   validlignecor, %o0
+  call  printf
+  nop
+
+  ba    ValiderLignes00
+  nop
+
+/*
+    Variables
+    ---------------------------------------------------
+*/

 .section ".rodata"
-  demandechif:  .asciz  "Veuillez entrer le chiffre allant dans la case %d : "
-	lignepleine:  .asciz 	"|---------|---------|---------|\n"
-  lignenombre:  .asciz  "| %d  %d  %d | %d  %d  %d | %d  %d  %d |"
-
+
+  lignepleine:       .asciz  "|---------|---------|---------|\n"
+  afficherchiffre:   .asciz  " %d "
+  barrehorizo:       .asciz  "|"
+  sautligne:         .asciz  "\n"
+  lecturecons:       .asciz  "%d"
+  validligne1:       .asciz  "Validation des lignes du Sudoku\n"
+  validligne2:       .asciz  "Ligne #%d..."
+  validligne3:       .asciz  "Ligne #%d, validation entre %d[%d] et %d[%d]..."
+  validlignecor:     .asciz  "Valide !\n"
+  validligneinc:     .asciz  "Invalide !\n"

 /* Espace mémoire */

 .section ".bss"
-  .align 	4	          ! Mots
-  vecteur: 	.skip	324	! 81 espaces mémoire pour le vecteur du Sudoku
-  lecture:	.skip	 4  ! Espace pour la lecture du chiffre en entrée
+
+            .align 	1   ! Octet
+  !vecteur: 	.skip	81  ! 81 espaces mémoire pour le vecteur du Sudoku
+
+.section ".data"
+
+  lecture:  .byte   0   ! Espace pour la lecture du chiffre en entrée
+  vecteur:  .byte   8,3,2,5,9,1,6,7,4,4,9,6,3,8,7,2,5,1,5,7,1,2,6,4,9,8,3,1,8,5,7,4,6,3,9,2,2,6,7,9,5,3,4,1,8,9,4,3,8,1,2,7,6,5,7,1,4,6,3,8,5,2,9,3,2,9,1,7,5,8,4,6,6,5,8,4,2,9,1,3,7,7
+
+


Changed to 0.0f to avoid int conversion.


Fix AbstractScriptController not calling stop() when a target is removed.

--- src/aerys/minko/scene/controller/AbstractScriptController.as
+++ src/aerys/minko/scene/controller/AbstractScriptController.as
@@ -1,17 +1,17 @@
 package aerys.minko.scene.controller
 {
+	import flash.display.BitmapData;
+	import flash.utils.Dictionary;
+
 	import aerys.minko.ns.minko_scene;
 	import aerys.minko.render.Viewport;
 	import aerys.minko.scene.node.ISceneNode;
 	import aerys.minko.scene.node.Scene;
 	import aerys.minko.type.KeyboardManager;
 	import aerys.minko.type.MouseManager;
-
-	import flash.display.BitmapData;
-	import flash.utils.Dictionary;

     use namespace minko_scene;
-
+
 	public class AbstractScriptController extends EnterFrameController
 	{
         private var _scene              : Scene;
@@ -21,43 +21,43 @@
 		private var _deltaTime		    : Number;
 		private var _currentTarget	    : ISceneNode;
 		private var _viewport		    : Viewport;
-
+
         private var _targetsListLocked  : Boolean;
         private var _targetsToAdd       : Vector.<ISceneNode>;
         private var _targetsToRemove    : Vector.<ISceneNode>;
-
+
 		private var _updateRate			: Number;
-
+
         protected function get scene() : Scene
         {
             return _scene;
         }
-
+
 		protected function get time() : Number
 		{
 			return _time;
 		}
-
+
 		protected function get deltaTime() : Number
 		{
 			return _deltaTime;
 		}
-
+
 		protected function get keyboard() : KeyboardManager
 		{
 			return _viewport.keyboardManager;
 		}
-
+
 		protected function get mouse() : MouseManager
 		{
 			return _viewport.mouseManager;
 		}
-
+
 		protected function get viewport() : Viewport
 		{
 			return _viewport;
 		}
-
+
 		protected function get updateRate() : Number
 		{
 			return _updateRate;
@@ -66,42 +66,54 @@
 		{
 			_updateRate = value;
 		}
-
+
 		public function AbstractScriptController(targetType	: Class = null)
 		{
 			super(targetType);
-
+
             initialize();
 		}
-
+
         protected function initialize() : void
         {
             _started = new Dictionary(true);
         }
-
+
 		override protected function targetAddedToScene(target	: ISceneNode,
 													   scene	: Scene) : void
 		{
             super.targetAddedToScene(target, scene);
-
+
             if (_scene && scene != _scene)
                 throw new Error(
                     'The same ScriptController instance can not be used in more than one scene ' +
                     'at a time.'
                 );
-
-            _scene = scene;
-        }
-
+
+			if (!_started[target])
+			{
+				_started[target] = true;
+				start(target);
+			}
+
+			_scene = scene;
+        }
+
 		override protected function targetRemovedFromScene(target 	: ISceneNode,
 														   scene 	: Scene) : void
         {
-            super.targetAddedToScene(target, scene);
-
-            if (getNumTargetsInScene(scene))
-                _scene = null;
-        }
-
+            super.targetRemovedFromScene(target, scene);
+
+			if (getNumTargetsInScene(scene))
+				_scene = null;
+
+			if (_started[target])
+			{
+				_started[target] = false;
+				stop(target);
+			}
+        }
+
 		override protected function sceneEnterFrameHandler(scene		: Scene,
 														   viewport		: Viewport,
 														   destination	: BitmapData,
@@ -112,99 +124,86 @@

 			if (_updateRate != 0. && deltaTime < 1000. / _updateRate)
 				return;
-
+
 			_viewport = viewport;
-
+
             lockTargetsList();
             beforeUpdate();
-
+
 			var numTargets : uint = this.numTargets;
-
+
 			for (var i : uint = 0; i < numTargets; ++i)
             {
                 var target : ISceneNode = getTarget(i);
-
+
                 if (target.scene)
-                {
-                    if (!_started[target])
-                    {
-                        _started[target] = true;
-                        start(target);
-                    }
-
     				update(target);
-                }
-                else if (_started[target])
-                {
-                    _started[target] = false;
-                    stop(target);
-                }
-            }
-
+            }
+
             afterUpdate();
             unlockTargetsList();
-
+
 			_lastTime = time;
 		}
-
+
         /**
          * The 'start' method is called on a script target at the first frame occuring after it
-         * has been added to the scene.
-         *
+         * has been added to the scene.
+         *
          * @param target
-         *
+         *
          */
 		protected function start(target : ISceneNode) : void
 		{
 			// nothing
 		}
-
+
         /**
          * The 'beforeUpdate' method is called before each target is updated via the 'update'
          * method.
-         *
+         *
          */
         protected function beforeUpdate() : void
         {
             // nothing
         }
-
+
 		protected function update(target : ISceneNode) : void
 		{
 			// nothing
 		}
-
+
         /**
          * The 'afterUpdate' method is called after each target has been updated via the 'update'
          * method.
-         *
+         *
          */
         protected function afterUpdate() : void
         {
             // nothing
         }
-
+
         /**
          * The 'start' method is called on a script target at the first frame occuring after it
-         * has been removed from the scene.
-         *
+         * has been removed from the scene.
+         *
          * @param target
-         *
+         *
          */
 		protected function stop(target : ISceneNode) : void
 		{
 			// nothing
 		}
-
+
         private function lockTargetsList() : void
         {
             _targetsListLocked = true;
         }
-
+
         private function unlockTargetsList() : void
         {
             _targetsListLocked = false;
-
+
             if (_targetsToAdd)
             {
                 var numTargetsToAdd : uint = _targetsToAdd.length;
@@ -212,7 +211,7 @@
                     addTarget(_targetsToAdd[i]);
                 _targetsToAdd = null;
             }
-
+
             if (_targetsToRemove)
             {
                 var numTargetsToRemove : uint = _targetsToRemove.length;
@@ -221,7 +220,7 @@
                 _targetsToRemove = null;
             }
         }
-
+
         override minko_scene function addTarget(target : ISceneNode) : void
         {
             if (_targetsListLocked)
@@ -234,7 +233,7 @@
             else
                 super.addTarget(target);
         }
-
+
         override minko_scene function removeTarget(target : ISceneNode) : void
         {
             if (_targetsListLocked)


- bugfix: applyRasterize didn't reset the reference to stale rasterize bitmaps, causing later calls attempts to remove the bitmap from its' parent to throw

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 3217
Author:   dsubrama@adobe.com
Date:     2008-09-16T01:29:03.972652Z

Log Message:
-----------
SDK bugfixes: SDK-16557, SDK-16485

Incorrect event metadata made mxml event handlers not compile.

QA: Yes
Checkintests: Pass
Reviewer: Glenn

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/Spinner.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/component/TrackBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as
@@ -20,9 +20,9 @@
  *  Dispatched when the value of the control changes
  *  as a result of user interaction.
  *
- *  @eventType mx.events.Event
+ *  @eventType flash.events.Event
  */
-[Event(name="change", type="mx.events.Event")]
+[Event(name="change", type="flash.events.Event")]

 /**
  *  TrackBase is a base class for components with a track


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

--- frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemComboBoxRenderer.as
+++ frameworks/projects/airframework/src/mx/controls/fileSystemClasses/FileSystemComboBoxRenderer.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.
 //
 ////////////////////////////////////////////////////////////////////////////////