Transferred from the Adobe Open Source Subversion Repository

Revision: 17330
Author:   chiedozi@adobe.com
Date:     2010-08-16T17:36:59.538425Z

Log Message:
-----------
Removed the sections functionality from ViewNavigator and refactored that logic into TabbedViewNavigator.  Updated dependent performance tests and components.
Introduced MobileApplicationBase and TabbedMobileApplication do support the tabbed use case for mobile.
Deleted SliderSkin from the framework.  All mobile skins now extend MobileSkin.

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/View.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/ViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/PersistenceManager.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as" copyfrom-rev="17260" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/NavigationStack.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/MobileApplicationBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/FlipViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/SlideViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ActionBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/src/ComponentCatalog.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorSection.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedMobileApplicationSkin.as</path>
<path kind="file" action="A">/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/ViewHistoryData.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/MobileThemeClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/core/managers/IPersistenceManager.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/effects/IViewTransition.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarTrackSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/SliderSkin.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/MobileApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
+++ frameworks/projects/mobilecomponents/src/spark/components/supportClasses/ViewNavigatorApplicationBase.as
@@ -0,0 +1,341 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2010 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.components.supportClasses
+{
+import flash.desktop.NativeApplication;
+import flash.display.StageOrientation;
+import flash.events.Event;
+import flash.events.KeyboardEvent;
+import flash.events.StageOrientationEvent;
+import flash.system.Capabilities;
+import flash.ui.Keyboard;
+
+import mx.events.FlexEvent;
+
+import spark.components.Application;
+import spark.core.managers.IPersistenceManager;
+import spark.core.managers.PersistenceManager;
+
+[Exclude(name="controlBarContent", kind="property")]
+[Exclude(name="controlBarGroup", kind="property")]
+[Exclude(name="controlBarLayout", kind="property")]
+[Exclude(name="controlBarVisible", kind="property")]
+[Exclude(name="layout", kind="property")]
+[Exclude(name="preloaderChromeColor", kind="property")] // TODO (chiedozi): Check this
+[Exclude(name="rollOverColor", kind="style")]   // TODO (chiedozi): Check this
+[Exclude(name="backgroundAlpha", kind="style")] // TODO (chiedozi): Check this
+
+//--------------------------------------
+//  Events
+//--------------------------------------
+
+/**
+ *  @inheritDoc
+ */
+[Event(name="applicationPersist", type="mx.events.FlexEvent")]
+
+/**
+ *  @inheritDoc
+ */
+[Event(name="applicationPersisting", type="mx.events.FlexEvent")]
+
+/**
+ *  @inheritDoc
+ */
+[Event(name="applicationRestore", type="mx.events.FlexEvent")]
+
+/**
+ *  @inheritDoc
+ */
+[Event(name="applicationRestoring", type="mx.events.FlexEvent")]
+
+/**
+ *
+ */
+public class MobileApplicationBase extends Application
+{
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+    /**
+     *
+     */
+    public function MobileApplicationBase()
+    {
+        super();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+    //  persistenceManager
+    //----------------------------------
+    private var _persistenceManager:IPersistenceManager;
+
+    /**
+     *
+     */
+    public function get persistenceManager():IPersistenceManager
+    {
+        return _persistenceManager;
+    }
+    /**
+     *  @private
+     */
+    public function set persistenceManager(value:IPersistenceManager):void
+    {
+        if (value == _persistenceManager)
+            return;
+
+        if (_persistenceManager && _persistenceManager.enabled)
+        {
+            _persistenceManager.flush();
+            _persistenceManager.enabled = false;
+        }
+
+        _persistenceManager = value;
+    }
+
+    //----------------------------------
+    //  sessionCachingEnabled
+    //----------------------------------
+
+    private var _sessionCachingEnabled:Boolean = false;
+
+    /**
+     *
+     */
+    public function get sessionCachingEnabled():Boolean
+    {
+        return _sessionCachingEnabled;
+    }
+    /**
+     * @private
+     */
+    public function set sessionCachingEnabled(value:Boolean):void
+    {
+        _sessionCachingEnabled = value;
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Methods
+    //
+    //--------------------------------------------------------------------------
+    /**
+     *
+     */
+    protected function addApplicationListeners():void
+    {
+        // Add device event listeners
+        systemManager.stage.addEventListener(KeyboardEvent.KEY_DOWN, deviceKeyDownHandler);
+        systemManager.stage.addEventListener(KeyboardEvent.KEY_UP, deviceKeyUpHandler);
+        systemManager.stage.addEventListener(StageOrientationEvent.ORIENTATION_CHANGE,
+                                             orientationChangeHandler);
+
+        // Add application deactivate and activate listeners
+        NativeApplication.nativeApplication.
+            addEventListener(Event.ACTIVATE, applicationActivateHandler);
+
+        // We need to listen to different events on desktop and mobile because
+        // on desktop, the deactivate event is dispatched whenever the window loses
+        // focus.  This could cause persistence to run when the developer doesn't
+        // expect it to on desktop.
+        var os:String = Capabilities.os;
+
+        if (os.indexOf("Windows") != -1 || os.indexOf("Mac OS") != -1)
+            NativeApplication.nativeApplication.
+                addEventListener(Event.EXITING, applicationDeactivateHandler);
+        else
+            NativeApplication.nativeApplication.
+                addEventListener(Event.DEACTIVATE, applicationDeactivateHandler);
+    }
+
+    /**
+     *
+     */
+    protected function applicationActivateHandler(event:Event):void
+    {
+    }
+
+    /**
+     *
+     */
+    protected function applicationDeactivateHandler(event:Event):void
+    {
+        if (sessionCachingEnabled)
+        {
+            // Dispatch event for saving persistence data
+            var eventDispatched:Boolean = true;
+            if (hasEventListener(FlexEvent.APPLICATION_PERSISTING))
+                eventDispatched = dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_PERSISTING,
+                                                                false, true));
+
+            // TODO (chiedozi): Rename eventDispatched
+            if (eventDispatched)
+            {
+                persistApplicationState();
+                persistenceManager.flush();
+
+                if (hasEventListener(FlexEvent.APPLICATION_PERSIST))
+                    dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_PERSIST));
+            }
+        }
+    }
+
+    /**
+     *
+     */
+    protected function backKeyHandler():void
+    {
+
+    }
+
+    /**
+     *
+     */
+    public function canCancelDefaultBackKeyBehavior():Boolean
+    {
+        return false;
+    }
+
+    /**
+     *  @private
+     */
+    // FIXME (chiedozi): Maybe use a singleton for persistence, PARB (GLENN)
+    protected function createPersistenceManager():IPersistenceManager
+    {
+        return new PersistenceManager();
+    }
+
+    /**
+     *
+     */
+    protected function orientationChangeHandler(event:StageOrientationEvent):void
+    {
+    }
+
+    /**
+     *
+     */
+    protected function persistApplicationState():void
+    {
+        // Save version number of application
+        var appDescriptor:XML = NativeApplication.nativeApplication.applicationDescriptor;
+        var ns:Namespace = appDescriptor.namespace();
+
+        // TODO (chiedozi): See if reserving these keys is bad
+        persistenceManager.setProperty("timestamp", new Date().getMilliseconds());
+        persistenceManager.setProperty("applicationVersion",
+                                        appDescriptor.ns::versionNumber.toString());
+    }
+
+    /**
+     *
+     */
+    protected function registerPeristenceClassAliases():void
+    {
+    }
+
+    /**
+     *
+     */
+    protected function restoreApplicationState():void
+    {
+    }
+
+    /**
+     *
+     */
+    // TODO (chiedozi): Do we need to support unknown orientation?
+    public function get landscapeOrientation():Boolean
+    {
+        return systemManager.stage.deviceOrientation == StageOrientation.ROTATED_LEFT ||
+            systemManager.stage.deviceOrientation == StageOrientation.ROTATED_RIGHT;
+    }
+
+    /**
+     *
+     */
+    protected function deviceKeyDownHandler(event:KeyboardEvent):void
+    {
+        var key:uint = event.keyCode;
+
+        // We want to prevent the default down behavior for back key if
+        // the navigator has a view to pop back to
+        if (key == Keyboard.BACK && canCancelDefaultBackKeyBehavior())
+            event.preventDefault();
+    }
+
+    /**
+     *
+     */
+    protected function deviceKeyUpHandler(event:KeyboardEvent):void
+    {
+        var key:uint = event.keyCode;
+
+        if (key == Keyboard.BACK && canCancelDefaultBackKeyBehavior())
+            backKeyHandler();
+    }
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods: UIComponent
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  @private
+     */
+    override public function initialize():void
+    {
+        super.initialize();
+
+        addApplicationListeners();
+
+        if (sessionCachingEnabled)
+        {
+            registerPeristenceClassAliases();
+
+            persistenceManager = createPersistenceManager();
+            persistenceManager.initialize();
+
+            // Dispatch event for loading persistence data
+            var eventDispatched:Boolean = true;
+            if (hasEventListener(FlexEvent.APPLICATION_RESTORING))
+                eventDispatched = dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_RESTORING,
+                                                false, true));
+
+            if (eventDispatched)
+            {
+                restoreApplicationState();
+
+                if (hasEventListener(FlexEvent.APPLICATION_RESTORE))
+                    eventDispatched = dispatchEvent(new FlexEvent(FlexEvent.APPLICATION_RESTORE));
+            }
+        }
+    }
+}
+}
+
+
+
+
+
+
+


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 19890
Author:   chiedozi@adobe.com
Date:     2011-01-22T00:54:17.832168Z

Log Message:
-----------
PARB Changes for TabbedViewNavigator.

TabbedViewNavigator
The activeNavigator property has been renamed to selectedNavigator
The following properties and methods have been made mx_internal, thus don't need to be tested:
maintainNaigationStack
tabBarRenderer_clickHandler

TabbedViewNavigatorApplication
The navigator skinpart has been renamed to tabbedNavigator
The creationPolicy and destructionPolicy properties on ViewNavigatorBase have been removed.
The maintainNavigationStack and creationPolicy properties have been removed

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigator.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/tests/performance/mobile/ComponentCatalog/src/ScriptRunner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/.flexProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/tests/performance/mobile/ComponentCatalog/.actionScriptProperties</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as
@@ -402,8 +402,7 @@
         {
             if (activeView)
             {
-                var canDestroy:Boolean = (activeView.destructionPolicy != ContainerDestructionPolicy.NEVER) &&
-                                         (destructionPolicy != ContainerDestructionPolicy.NEVER);
+                var canDestroy:Boolean = (activeView.destructionPolicy != ContainerDestructionPolicy.NEVER);

                 // If the instance of the view is being destroyed but our navigationStack is
                 // maintained, the active view needs to serialize its data is application


Transferred from the Adobe Open Source Subversion Repository

Revision: 3257
Author:   jimurphy@adobe.com
Date:     2008-09-18T18:16:26.838722Z

Log Message:
-----------
-Merged 3.0.X revisions 3232,3236,3238,3244 -> trunk
-integrated:
 Player build d604
 flex-messaging-common.jar 4.0.0.3256

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/lib/flex-messaging-common.jar</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 Plugin.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Install Flash Player 10 UB.dmg</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/Install Flash Player 10 ActiveX.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextInput.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/player/10/playerglobal.swc</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/framework/defaults-2.0.0.css</path>
<path kind="dir" action="M">/flex/sdk/trunk</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults-2.0.1.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/flashplayer.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/install_flash_player_10_linux.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/FlexModuleFactory.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/lnx/libflashplayer.so.tar.gz</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/win/FlashPlayer.exe</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/modules/ModuleManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/player/10/mac/Flash Player.app.zip</path>

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

--- frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as
+++ frameworks/projects/mx/src/mx/controls/listClasses/TileListItemRenderer.as
@@ -28,7 +28,9 @@
 import mx.core.UITextField;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
+import mx.events.InterManagerRequest;
 import mx.events.ToolTipEvent;
+import mx.managers.ISystemManager;

 use namespace mx_internal;

@@ -535,16 +537,32 @@
         var toolTip:IToolTip = event.toolTip;

         // Calculate global position of label.
+        var sm:ISystemManager = systemManager.topLevelSystemManager;
+        var sbRoot:DisplayObject = sm.getSandboxRoot();
+        var screen:Rectangle;
         var pt:Point = new Point(0, 0);
         pt = label.localToGlobal(pt);
-        pt = toolTip.parent.globalToLocal(pt);
+        pt = sbRoot.globalToLocal(pt);

         toolTip.move(pt.x, pt.y + (height - toolTip.height) / 2);

-        var screen:Rectangle = systemManager.screen;
+        if (sm != sbRoot)
+        {
+            var request:InterManagerRequest = new InterManagerRequest(InterManagerRequest.SYSTEM_MANAGER_REQUEST,
+                                    false, false,
+                                    "getVisibleApplicationRect");
+            sbRoot.dispatchEvent(request);
+            screen = Rectangle(request.value);
+        }
+        else
+            screen = sm.getVisibleApplicationRect();
+
         var screenRight:Number = screen.x + screen.width;
-        if (toolTip.x + toolTip.width > screenRight)
-            toolTip.move(screenRight - toolTip.width, toolTip.y);
+        pt.x = toolTip.x;
+        pt.y = toolTip.y;
+        pt = sbRoot.localToGlobal(pt);
+        if (pt.x + toolTip.width > screenRight)
+            toolTip.move(toolTip.x - (pt.x + toolTip.width - screenRight), toolTip.y);
     }

     /**


222 Removing dependence on Set

222 Removing dependence on Set

--- raw/src/org/yellcorp/format/printf/parser/Parser.as
+++ raw/src/org/yellcorp/format/printf/parser/Parser.as
@@ -16,7 +16,6 @@
 import org.yellcorp.format.printf.options.IntegerFormatOptions;
 import org.yellcorp.locale.Locale;
 import org.yellcorp.locale.Locale_en;
-import org.yellcorp.sequence.Set;
 import org.yellcorp.string.StringBuilder;

@@ -132,7 +131,7 @@
     private function parseFlags():void
     {
         var token:Token = lexer.nextToken();
-        var setFlags:Set = new Set();
+        var setFlags:Object = { };
         var char:String;

         if (token.text)
@@ -140,13 +139,16 @@
             for (var i:int = 0; i < token.text.length; i++)
             {
                 char = token.text.charAt(i);
-                if (setFlags.contains(char))
+                if (setFlags[char])
                 {
                     throw new FormatTokenError(
-                        char + " flag already set for this field",
+                        "Flag '" + char + "' already set for this field",
                         token.substr(i, 1));
                 }
-                setFlags.add(char);
+                else
+                {
+                    setFlags[char] = true;
+                }

                 switch (char)
                 {
@@ -154,7 +156,7 @@
                     if (field.argValue.isSet)
                     {
                         throw new FormatTokenError(
-                            "< flag cannot be used with position specifier",
+                            "Flag '<' cannot be used with position specifier",
                             token.substr(i, 1));
                     }
                     else
@@ -193,7 +195,7 @@
                     break;

                 default :
-                    AssertError.assert(false, "Unhandled flag char " + char);
+                    AssertError.assert(false, "Unhandled flag char '" + char + "'");
                     break;
                 }
             }
@@ -291,7 +293,7 @@
             catch (re:RangeError)
             {
                 throw new PrecisionRangeError(
-                    "Number following . must be in the range 0,20 for exponential formatting");
+                    "Number following '.' must be in the range 0,20 for exponential formatting");
             }
             break;

@@ -302,7 +304,7 @@
             catch (re:RangeError)
             {
                 throw new PrecisionRangeError(
-                    "Number following . must be in the range 0,20 for fixed formatting");
+                    "Number following '.' must be in the range 0,20 for fixed formatting");
             }
             break;

@@ -314,7 +316,7 @@
             catch (re:RangeError)
             {
                 throw new PrecisionRangeError(
-                    "Number following . must be in the range 0,21 for precision formatting");
+                    "Number following '.' must be in the range 0,21 for precision formatting");
             }
             break;


Fix NPE when the user clicks an untraversable square.

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

--- src/as/com/threerings/miso/client/MisoScenePanel.as
+++ src/as/com/threerings/miso/client/MisoScenePanel.as
@@ -411,7 +411,9 @@
             int(Math.round(sprite.y)), x, y, loose);

         // Replace the starting point with the Number values rather than the rounded version...
-        points[0] = new Point(sprite.x, sprite.y);
+        if (points != null) {
+            points[0] = new Point(sprite.x, sprite.y);
+        }

         var duration :int = getTimer() - start;


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

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


admin console default save-to-server filename now comes from a file you
load locally if not already set.

Change-Id: I5580dc2dfce64094a70c7192b60dbd543e0c9f45

--- WeaveUI/src/weave/application/VisApplication.as
+++ WeaveUI/src/weave/application/VisApplication.as
@@ -549,8 +549,7 @@
 		}

 		private var _useWeaveExtensionWhenSavingToServer:Boolean;
-		private var _firstTimeSaveToServer:Boolean=true;
-		private var _previousFileNameStore:String;
+		private var _previousSavedFileName:String;
 		private function saveSessionStateToServer(useWeaveExtension:Boolean):void
 		{
 			if (adminService == null)
@@ -561,10 +560,8 @@

 			_useWeaveExtensionWhenSavingToServer = useWeaveExtension;

-			var fileName:String = getFlashVarFile().split("/").pop();
+			var fileName:String = _previousSavedFileName || getFlashVarFile().split("/").pop();
 			fileName = Weave.fixWeaveFileName(fileName, _useWeaveExtensionWhenSavingToServer);
-			if (!_firstTimeSaveToServer)
-				fileName=_previousFileNameStore;

 			var fileSaveDialogBox:AlertTextBox;
 			fileSaveDialogBox = PopUpManager.createPopUp(this,AlertTextBox) as AlertTextBox;
@@ -579,10 +576,9 @@
 		{
 			if (event.confirm)
 			{
-				_firstTimeSaveToServer=false;
 				var fileName:String = event.textInput;
 				fileName = Weave.fixWeaveFileName(fileName, _useWeaveExtensionWhenSavingToServer);
-				_previousFileNameStore = fileName;
+				_previousSavedFileName = fileName;

 				var content:ByteArray;
 				if (_useWeaveExtensionWhenSavingToServer)
@@ -976,6 +972,7 @@
 					if (_usingDeprecatedFlashVar)
 						reportError(DEPRECATED_FLASH_VAR_MESSAGE);
 				}
+				_previousSavedFileName = fileName;
 			}
 			catch (error:Error)
 			{
@@ -1045,6 +1042,7 @@
 					}

 					Weave.loadWeaveFileContent(xml);
+					_previousSavedFileName = fileName;

 //					// An empty subset is not of much use.  If the subset is empty, reset it to include all records.
 //					var subset:KeyFilter = Weave.root.getObject(Weave.DEFAULT_SUBSET_KEYFILTER) as KeyFilter;


Fixed camera reacquiring in TestSceneOld.

--- Bin/Data/Scripts/TestSceneOld.as
+++ Bin/Data/Scripts/TestSceneOld.as
@@ -11,7 +11,6 @@
 Node@ cameraNode;
 Camera@ camera;
 Node@ cameraLightNode;
-Light@ cameraLight;
 float yaw = 0.0;
 float pitch = 0.0;
 float objectangle = 0.0;
@@ -303,7 +302,7 @@
     cameraNode.position = Vector3(-50, 2, -50);

     cameraLightNode = cameraNode.CreateChild("CameraLight");
-    cameraLight = cameraLightNode.CreateComponent("Light");
+    Light@ cameraLight = cameraLightNode.CreateComponent("Light");
     cameraLight.lightType = LIGHT_SPOT;
     cameraLight.range = 50;
     cameraLight.color = Color(2, 2, 2);
@@ -437,7 +436,9 @@
                 testScene.LoadXML(xmlFile);
                 // Reacquire camera, as it is part of the scene
                 cameraNode = testScene.GetChild("Camera", true);
+                camera = cameraNode.GetComponent("Camera");
                 cameraLightNode = cameraNode.GetChild("CameraLight");
+                renderer.viewports[0] = Viewport(testScene, camera);
             }
         }
     }


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

--- frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridRendererProvider.as
+++ frameworks/projects/advancedgrids/src/mx/controls/advancedDataGridClasses/AdvancedDataGridRendererProvider.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.controls.advancedDataGridClasses
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 19328
Author:   mhorn@adobe.com
Date:     2010-12-13T20:45:00.405533Z

Log Message:
-----------
ASDoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/MobileSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextInputSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationAngledButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ActionButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/VScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/TextSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/ButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorApplicationSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderDataTip.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TextAreaSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderTrackSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ActionBarButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/SelectableButtonSkinBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/CheckBoxSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/TabbedViewNavigatorSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HSliderThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/RadioButtonSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/HScrollBarThumbSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/src/spark/skins/mobile/NavigationButtonSkin.as</path>

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

--- frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
+++ frameworks/projects/mobiletheme/src/spark/skins/mobile/supportClasses/ButtonSkinBase.as
@@ -51,6 +51,15 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  Constructor.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
+     *
+     */
     public function ButtonSkinBase()
     {
         super();


Removed some goddamn tabs.

Removed some goddamn tabs.

--- flash/org/windmill/astest/WMLoader.as
+++ flash/org/windmill/astest/WMLoader.as
@@ -18,13 +18,13 @@
   import org.windmill.WMLogger;
   import flash.display.Loader;
   import flash.display.LoaderInfo;
-	import flash.net.URLRequest;
-	import flash.events.Event;
-	import flash.events.ProgressEvent;
+  import flash.net.URLRequest;
+  import flash.events.Event;
+  import flash.events.ProgressEvent;
   import flash.events.IOErrorEvent;
-	import flash.system.ApplicationDomain;
-	import flash.system.SecurityDomain;
-	import flash.system.LoaderContext;
+  import flash.system.ApplicationDomain;
+  import flash.system.SecurityDomain;
+  import flash.system.LoaderContext;
   import flash.external.ExternalInterface;
   import flash.utils.getQualifiedClassName;

@@ -46,7 +46,7 @@
         // for wherever it's grabbing tests from
         // Need to spoon-feed it the ApplicationDomain and SecurityDomain
         // so it knows to load the test SWFs in the the current app context
-        var con:LoaderContext = new LoaderContext(true,
+        var ctxt:LoaderContext = new LoaderContext(true,
             ApplicationDomain.currentDomain,
             SecurityDomain.currentDomain);
         // Catch any error that occurs during async load
@@ -69,7 +69,7 @@
           loader.unload();
           WMLoader.loadNext();
         });
-        loader.load(req, con);
+        loader.load(req, ctxt);
       }
     }
   }


* 优化了 advanceTime 中对已实现 IAnimatable 接口的 AbstractObjectState 的处理

--- age/src/age/data/ObjectInfo.as
+++ age/src/age/data/ObjectInfo.as
@@ -34,6 +34,11 @@
 			state = createState(IdleState);
 		}

+		/**
+		 * 如果 _state 实现了 IAnimatable，该值为 _state，否则为 null
+		 */
+		private var stateAnimatable:IAnimatable;
+
 		private var _state:AbstractObjectState;

 		/**
@@ -59,6 +64,7 @@
 					_state.cancel();
 				}
 				_state = value;
+				stateAnimatable = _state as IAnimatable;

 				if (_state)
 				{
@@ -393,9 +399,10 @@
 		[Inline]
 		final public function advanceTime(time:Number):void
 		{
-			if (_state is IAnimatable)
-			{
-				IAnimatable(_state).advanceTime(time);
+			// 检查状态是否也需要 advanceTime
+			if (stateAnimatable)
+			{
+				stateAnimatable.advanceTime(time);
 			}
 			// 计算速度和位置
 			velocity.x += acceleration.x * time;
@@ -409,7 +416,7 @@
 		}

 		/**
-		 * 从 JSON 反序列化
+		 * 从 JSON 导入数据
 		 * @param raw
 		 *
 		 */
@@ -1218,5 +1225,9 @@
 		 * 下一次切换动作时，是否显示鬼影
 		 */
 		public var isShowGhost:Boolean;
+
+		public var hitBox:Box = new Box();
+
+		public var attackBox:Box = new Box();
 	}
 }


ADD internals

ADD internals

--- src/Modules/And.as
+++ src/Modules/And.as
@@ -1,7 +1,11 @@
 package Modules {
 	import Components.Port;
+	import Layouts.PortLayout;
+	import Layouts.InternalLayout;
+	import Layouts.Nodes.TallNode;
 	import Values.Value;
 	import Values.BooleanValue;
+	import flash.geom.Point;
 	/**
 	 * ...
 	 * @author Nicholas "PleasingFungus" Feinberg
@@ -15,6 +19,17 @@
 			configuration = new Configuration(new Range(2, 8, Width));
 			configurableInPlace = false;
 			delay = Math.ceil(Math.log(Width) / Math.log(2));
+		}
+
+		override protected function generateInternalLayout():InternalLayout {
+			var ports:Array = [];
+			for each (var portLayout:PortLayout in layout.ports)
+				ports.push(portLayout);
+
+			var outport:PortLayout = layout.ports[layout.ports.length - 1];
+
+			return new InternalLayout([new TallNode(this, new Point(outport.offset.x - layout.dim.x / 2 - 1 / 2, outport.offset.y),
+														ports, [], function getValue():Value { return drive(outputs[0]); }, "All" )]);
 		}

 		protected function resetPorts():void {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22584
Author:   mhorn@adobe.com
Date:     2011-09-15T20:31:21.235617Z

Log Message:
-----------
asdoc updates

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobiletheme/src/spark/skins/mobile/DateSpinnerSkin.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/calendarClasses/DateSpinnerItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerList.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/DateSpinner.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SpinnerListContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as</path>

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

--- frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as
+++ frameworks/projects/spark/src/spark/components/calendarClasses/DateSelectorDisplayMode.as
@@ -12,23 +12,23 @@
 {
 /**
  *  The DateSelectorMode class defines the valid constant values for the
- *  mode property of the Spark DateChooser and DateSpinner controls.
+ *  displayMode property of the Spark DateSpinner control.
  *
  *
Use the constants in ActionsScript, as the following example shows:

  *

- *    myDateChooser.mode = DateSelectorMode.DATE_AND_TIME;
+ *    myDateSpinner.mode = DateSelectorMode.DATE_AND_TIME;
  *

  *
  *
In MXML, use the String value of the constants,
  *  as the following example shows:

  *

- *    <s:DataChooser id="myChooser"
- *        mode="dateAndTime">
+ *    <s:DateSpinner id="mySpinner"
+ *        displayMode="dateAndTime">
  *        ...
- *    </s:DataChooser>
+ *    </s:DateSpinner>
  *

  *
- *  @see spark.components.DateChooser#mode
+ *  @see spark.components.DateSpinner
  *
  *  @langversion 3.0
  *  @playerversion AIR 3.0


adaptive function arguments

adaptive function arguments

--- source/com/kemsky/Stream.as
+++ source/com/kemsky/Stream.as
@@ -182,12 +182,15 @@
                 callback = _;
             }

+            callback = transform(callback);
+
             var max:* = first;
-            var maxValue:Number = callback(first);
-
-            for each (var current:* in source)
-            {
-                var result:Number = callback(current);
+            var maxValue:Number = callback(first, 0, source);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var current:* = source[i];
+                var result:Number = callback(current, i, source);
                 if(maxValue < result)
                 {
                     maxValue = result;
@@ -231,12 +234,15 @@
                 callback = _;
             }

+            callback = transform(callback);
+
             var min:* = first;
-            var minValue:Number = callback(first);
-
-            for each (var current:* in source)
-            {
-                var result:Number = callback(current);
+            var minValue:Number = callback(first, 0, source);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var current:* = source[i];
+                var result:Number = callback(current, i, source);
                 if(minValue > result)
                 {
                     minValue = result;
@@ -297,9 +303,13 @@
             var first:Stream = new Stream();
             var second:Stream = new Stream();

-            for each (var item:* in source)
-            {
-                if(callback(item))
+            callback = transform(callback);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+
+                if(callback(item, i, source))
                 {
                     first.push(item);
                 }
@@ -404,11 +414,13 @@
          */
         public function findIndex(callback:Function, reverse:Boolean = false):int
         {
+            callback = transform(callback);
+
             if(reverse)
             {
                 for(var k:int = source.length - 1; k > 0; k--)
                 {
-                    if(callback(source[k]))
+                    if(callback(source[k], k, source))
                     {
                         return k;
                     }
@@ -418,7 +430,7 @@
             {
                 for(var i:int = 0; i < source.length; i++)
                 {
-                    if(callback(source[i]))
+                    if(callback(source[i], i, source))
                     {
                         return i;
                     }
@@ -448,11 +460,13 @@
          */
         public function find(callback:Function, reverse:Boolean = false):*
         {
+            callback = transform(callback);
+
             if(reverse)
             {
                 for(var k:int = source.length - 1; k > 0; k--)
                 {
-                    if(callback(source[k]))
+                    if(callback(source[k], k, source))
                     {
                         return source[k];
                     }
@@ -462,7 +476,7 @@
             {
                 for(var i:int = 0; i < source.length; i++)
                 {
-                    if(callback(source[i]))
+                    if(callback(source[i], i, source))
                     {
                         return source[i];
                     }
@@ -621,13 +635,18 @@
         public function count(callback:Function):uint
         {
             var result:uint = 0;
-            for each (var item:* in source)
-            {
-                if(callback(item))
+
+            callback = transform(callback);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+                if(callback(item, i, source))
                 {
                     result++;
                 }
             }
+
             return result;
         }

@@ -1370,15 +1389,21 @@
         {
             var dict:Dictionary = new Dictionary(weak);

+            key = transform(key);
+
             if(value == null)
             {
                value = _;
             }

-            for each (var item:* in source)
-            {
-                dict[key(item)] = value(item);
-            }
+            value = transform(value);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+                dict[key(item, i, source)] = value(item, i, source);
+            }
+
             return dict;
         }

@@ -1405,15 +1430,20 @@
         {
             var dict:Object = {};

+            property = transform(property);
+
             if(value == null)
             {
                 value = _;
             }

-            for each (var item:* in source)
-            {
-                var key:* = property(item);
-                dict[key] = value(item);
+            value = transform(value);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+                var key:* = property(item, i, source);
+                dict[key] = value(item, i, source);
             }

             return dict;
@@ -1447,9 +1477,13 @@
         public function group(key:Function, factory:Class = null):*
         {
             var dict:* = factory == null ? new Dictionary() : new factory();
-            for each (var item:* in source)
-            {
-                var name:* = key(item);
+
+            key = transform(key);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+                var name:* = key(item, i, source);
                 var s:Stream = dict[name];
                 if(s == null)
                 {
@@ -1458,6 +1492,7 @@
                 }
                 s.push(item);
             }
+
             return dict;
         }

@@ -1483,9 +1518,13 @@
         {
             var result:Stream = new Stream();
             var dict:Dictionary = new Dictionary();
-            for each (var item:* in source)
-            {
-                var name:* = key(item);
+
+            key = transform(key);
+
+            for(var i:int = 0; i < source.length; i++)
+            {
+                var item:* = source[i];
+                var name:* = key(item, i, source);
                 var s:Stream = dict[name];
                 if(s == null)
                 {
@@ -1907,10 +1946,7 @@
          */
         public function every(callback:Function):Boolean
         {
-            return source.every(function (item:*, index:int, array:Array):Boolean
-            {
-                return callback(item);
-            });
+            return source.every(transform(callback));
         }

         /**
@@ -1934,10 +1970,7 @@
          */
         public function filter(callback:Function):Stream
         {
-            return new Stream(source.filter(function (item:*, index:int, array:Array):Boolean
-            {
-                return callback(item);
-            }));
+            return new Stream(source.filter(transform(callback)));
         }

         /**
@@ -2017,6 +2050,472 @@
          */
         public function map(callback:Function):Stream
         {
+            return new Stream(source.map(transform(callback)));
+        }
+
+        /**
+         * Executes a test function on each item in the list until an item is reached
+         * that returns true. Use this method to determine whether any items in a
+         * list meet a criterion, such as having a value less than a particular number.
+         * @param callback The function to run on each item in the list.
+         *
function(item:*):Boolean

+         * @return  A Boolean value of true if any items in the list return true for
+         * the specified function; otherwise false.
+         * @example
+         *

+         *     var s:Stream = $(1, 2, 3);
+         *     var c:Boolean = s.some(function(item:Number):Boolean
+         *     {
+         *        return item > 2;
+         *     });
+         *     trace(c);
+         *     //true
+         *

+         * @internal immutable
+         */
+        public function some(callback:Function):Boolean
+        {
+            return source.some(transform(callback));
+        }
+
+        /**
+         * Adds one or more items to the end of a list and returns the new length of the list.
+         * @param rest One or more values to append to the list.
+         * @return An integer representing the new length of the list.
+         * @example
+         *

+         *     var s:Stream = $(1, 2, 3);
+         *     s.push(4);
+         *     trace(s);
+         *     //Stream{1, 2, 3, 4}
+         *

+         * @internal mutable
+         */
+        public function push(...rest):uint
+        {
+            return source.push.apply(null, rest);
+        }
+
+        /**
+         * Removes the last item from a list and returns the value of that item.
+         * @return The value of the last item (of any data type) in the specified list.
+         * @example
+         *

+         *     var s:Stream = $(1, 2, 3);
+         *     trace(s.pop());
+         *     //3
+         *

+         * @internal mutable
+         */
+        public function pop():*
+        {
+            return source.pop();
+        }
+
+        /**
+         * A non-negative integer specifying the number of items in the list.
+         * This property is automatically updated when new items are added to the list.
+         * When you assign a value to a list item (for example, my_list[index] = value),
+         * if index is a number, and index+1 is greater than the length property,
+         * the length property is updated to index+1.

+         *
+         * Note: If you assign a value to the length property that is shorter
+         * than the existing length, the list will be truncated.
+         * @example
+         *

+         *     var s:Stream = $(1, 2, 3);
+         *     trace(s.length);
+         *     //3
+         *

+         * @internal immutable
+         */
+        public function get length():int
+        {
+            return source.length;
+        }
+
+        /**
+         * @private
+         * @internal mutable
+         */
+        public function set length(value:int):void
+        {
+            source.length = value;
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function getDescendants(name:*):*
+        {
+            var result:Array = [];
+
+            for each (var item:* in source)
+            {
+                if(item != null && item.hasOwnProperty(name))
+                {
+                    result.push(item[name]);
+                }
+            }
+            return new Stream(result);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function getProperty(name:*):*
+        {
+            var index:Number = NaN;
+            try
+            {
+                // If caller passed in a number such as 5.5, it will be floored.
+                index = parseInt(String(name));
+            }
+            catch(e:Error) // localName was not a number
+            {
+            }
+
+            if(index != index)
+            {
+                throw new StreamError("Incorrect index: " + String(name));
+            }
+            else
+            {
+                return index < 0 ? source[source.length + index] : source[index];
+            }
+        }
+
+        /**
+         * @private
+         * @internal mutable
+         */
+        override flash_proxy function setProperty(name:*, value:*):void
+        {
+            var index:Number = NaN;
+            try
+            {
+                // If caller passed in a number such as 5.5, it will be floored.
+                index = parseInt(String(name));
+            }
+            catch(e:Error) // localName was not a number
+            {
+            }
+
+            if(index != index)
+            {
+                throw new StreamError("Incorrect index: " + String(name));
+            }
+            else
+            {
+                setItem(value, index);
+            }
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function hasProperty(name:*):Boolean
+        {
+            var index:Number = NaN;
+            try
+            {
+                // If caller passed in a number such as 5.5, it will be floored.
+                index = parseInt(String(name));
+            }
+            catch(e:Error) // localName was not a number
+            {
+            }
+
+            if(index != index)
+            {
+                return false;
+            }
+
+            return (index >= 0 && index < source.length) || (index < 0 && index >= -source.length);
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function nextNameIndex(index:int):int
+        {
+            return index < length ? index + 1 : 0;
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function nextName(index:int):String
+        {
+            return (index - 1).toString();
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function nextValue(index:int):*
+        {
+            return source[index - 1];
+        }
+
+        /**
+         * @private
+         * @internal immutable
+         */
+        override flash_proxy function callProperty(name:*, ...rest):*
+        {
+            if(rest.length != 1 || !(rest[0] is Function))
+            {
+                throw new StreamError("Shortcut filter must have exactly one parameter (Function)");
+            }
+
+            var criteria:Function = rest[0] as Function;
+
+            return this.filter(function (item:*):Boolean
+            {
+                return item != null && item.hasOwnProperty(name) && criteria(item[name]);
+            });
+        }
+
+        /**
+         * @private
+         * @internal mutable
+         */
+        override flash_proxy function deleteProperty(name:*):Boolean
+        {
+            var index:Number = NaN;
+            try
+            {
+                // If caller passed in a number such as 5.5, it will be floored.
+                index = parseInt(String(name));
+            }
+            catch(e:Error) // localName was not a number
+            {
+            }
+
+            if(index != index)
+            {
+                return false;
+            }
+
+            return removeItem(index);
+        }
+
+        /**
+         * @private
+         * A class implements this method to decode itself from a data list by calling
+         * the methods of the IDataInput interface. This method must read the values in
+         * the same sequence and with the same types as were written by the writeExternal() method.
+         * @param input The name of the class that implements the IDataInput interface.
+         * @see flash.utils.IExternalizable#readExternal
+         * @internal immutable
+         */
+        public function readExternal(input:IDataInput):void
+        {
+            source = input.readObject() as Array;
+        }
+
+        /**
+         * @private
+         * A class implements this method to encode itself for a data list by calling
+         * the methods of the IDataOutput interface.
+         * @param output The name of the class that implements the IDataOutput interface.
+         * @see flash.utils.IExternalizable#readExternal
+         * @internal immutable
+         */
+        public function writeExternal(output:IDataOutput):void
+        {
+            output.writeObject(source);
+        }
+
+        /**
+         * Returns the string representation of list object.
+         * @return a String
+         * @example
+         *

+         *     var s:Stream = $(1, 2, 3);
+         *     trace(s.toString());
+         *     //Stream{1, 2, 3}
+         *

+         * @internal immutable
+         */
+        public function toString():String
+        {
+            return "Stream{" + source.join(",") + "}";
+        }
+
+        /**
+         * Creates Stream object from items
+         * @param rest objects used as source for Stream
+         * @return created Stream object
+         * @example
+         *

+         *     var s:Stream = Stream.of(1, 2, 3);
+         *
+         *     //All expressions are equivalent to:
+         *     var s:Stream = new Stream([1, 2, 3])
+         *

+         * @internal immutable
+         */
+        public static function of(...rest):Stream
+        {
+            if (rest.length == 0)
+            {
+                //empty $
+                return new Stream();
+            }
+
+            //$ from argument list
+            return new Stream(rest.concat());
+        }
+
+        /**
+         * Creates Stream object from iterable object
+         * @param object object used as source for a stream
+         * @param callback callback used to map result Stream
+         * @return created Stream object
+         * @example
+         *

+         *     var s:Stream = Stream.from([1, 2, 3]);
+         *
+         *     //Expression is equivalent to:
+         *     var s:Stream = new Stream([1, 2, 3])
+         *
+         *     var obj:Object = {name1: "first", name2: "second"};
+         *     var s:Stream = Stream.from(obj, function(entry:Stream):Stream
+         *     {
+         *         return entry.first;
+         *     });
+         *     trace(s);
+         *     //prints ["name1", "name2"]
+         *

+         * @internal immutable
+         */
+        public static function from(object:*, callback:Function = null):Stream
+        {
+            var result:Stream;
+            if (object == null || object === undefined)
+            {
+                //empty $
+                result = new Stream();
+            }
+            else if (object is Array)
+            {
+                //$ from array
+                result = new Stream((object as Array).concat());
+            }
+            else if (object is Vector.<*> || object is Vector.<Number> || object is Vector.<int> || object is Vector.<uint>)
+            {
+                var a:Array = [];
+                for (var i:int = 0; i < object.length; i++)
+                {
+                    a[i] = object[i];
+                }
+                result = new Stream(a);
+            }
+            else if (object is IList)
+            {
+                //$ from list
+                result = new Stream(object.toArray());
+            }
+            else if (object is Stream)
+            {
+                //$ from list
+                result = Stream(object).concat();
+            }
+            else if(object is XML)
+            {
+                var xm:Array = [];
+                for each(var xml:XML in (object as XML).children())
+                {
+                    xm.push(xml);
+                }
+                result = new Stream(xm);
+            }
+            else if(object is XMLList)
+            {
+                var x:Array = [];
+                for each(var xmlItem:XML in object)
+                {
+                    x.push(xmlItem);
+                }
+                result = new Stream(x);
+            }
+            else
+            {
+                result = new Stream();
+                for (var prop:String in object)
+                {
+                    if(object.hasOwnProperty(prop))
+                    {
+                        result.push(new Stream([prop, object[prop]]));
+                    }
+                }
+            }
+
+            return callback == null ? result : result.map(callback);
+        }
+
+        /**
+         * Create stream from object(dictionary) property names.
+         * @param object object used as source for a stream
+         * @return created Stream object
+         * @example
+         *

+         *     var obj:Object = {name1: "first", name2: "second"};
+         *     var s:Stream = Stream.fromKeys(obj);
+         *     trace(s);
+         *     //prints ["name1", "name2"]
+         *

+         * @internal immutable
+         */
+        public static function fromKeys(object:Object):Stream
+        {
+            var result:Stream = new Stream();
+            for (var prop:String in object)
+            {
+                if(object.hasOwnProperty(prop))
+                {
+                    result.push(prop);
+                }
+            }
+            return result;
+        }
+
+        /**
+         * Create stream from object(dictionary) property values.
+         * @param object object used as source for a stream
+         * @return created Stream object
+         * @example
+         *

+         *     var obj:Object = {name1: "first", name2: "second"};
+         *     var s:Stream = Stream.fromValues(obj);
+         *     trace(s);
+         *     //prints ["first", "second"]
+         *

+         * @internal immutable
+         */
+        public static function fromValues(object:Object):Stream
+        {
+            var result:Stream = new Stream();
+            for (var prop:String in object)
+            {
+                if(object.hasOwnProperty(prop))
+                {
+                    result.push(object[prop]);
+                }
+            }
+            return result;
+        }
+
+        private function transform(callback:Function):Function
+        {
             var count:uint = callback.length;
             var f:Function;
             switch(count)
@@ -2049,471 +2548,7 @@
                 default:
                     throw new StreamError("Unexpected arguments count: " + count);
             }
-            return new Stream(source.map(f));
-        }
-
-        /**
-         * Executes a test function on each item in the list until an item is reached
-         * that returns true. Use this method to determine whether any items in a
-         * list meet a criterion, such as having a value less than a particular number.
-         * @param callback The function to run on each item in the list.
-         *
function(item:*):Boolean

-         * @return  A Boolean value of true if any items in the list return true for
-         * the specified function; otherwise false.
-         * @example
-         *

-         *     var s:Stream = $(1, 2, 3);
-         *     var c:Boolean = s.some(function(item:Number):Boolean
-         *     {
-         *        return item > 2;
-         *     });
-         *     trace(c);
-         *     //true
-         *

-         * @internal immutable
-         */
-        public function some(callback:Function):Boolean
-        {
-            return source.some(function (item:*, index:int, array:Array):Boolean
-            {
-                return callback(item);
-            });
-        }
-
-        /**
-         * Adds one or more items to the end of a list and returns the new length of the list.
-         * @param rest One or more values to append to the list.
-         * @return An integer representing the new length of the list.
-         * @example
-         *

-         *     var s:Stream = $(1, 2, 3);
-         *     s.push(4);
-         *     trace(s);
-         *     //Stream{1, 2, 3, 4}
-         *

-         * @internal mutable
-         */
-        public function push(...rest):uint
-        {
-            return source.push.apply(null, rest);
-        }
-
-        /**
-         * Removes the last item from a list and returns the value of that item.
-         * @return The value of the last item (of any data type) in the specified list.
-         * @example
-         *

-         *     var s:Stream = $(1, 2, 3);
-         *     trace(s.pop());
-         *     //3
-         *

-         * @internal mutable
-         */
-        public function pop():*
-        {
-            return source.pop();
-        }
-
-        /**
-         * A non-negative integer specifying the number of items in the list.
-         * This property is automatically updated when new items are added to the list.
-         * When you assign a value to a list item (for example, my_list[index] = value),
-         * if index is a number, and index+1 is greater than the length property,
-         * the length property is updated to index+1.

-         *
-         * Note: If you assign a value to the length property that is shorter
-         * than the existing length, the list will be truncated.
-         * @example
-         *

-         *     var s:Stream = $(1, 2, 3);
-         *     trace(s.length);
-         *     //3
-         *

-         * @internal immutable
-         */
-        public function get length():int
-        {
-            return source.length;
-        }
-
-        /**
-         * @private
-         * @internal mutable
-         */
-        public function set length(value:int):void
-        {
-            source.length = value;
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function getDescendants(name:*):*
-        {
-            var result:Array = [];
-
-            for each (var item:* in source)
-            {
-                if(item != null && item.hasOwnProperty(name))
-                {
-                    result.push(item[name]);
-                }
-            }
-            return new Stream(result);
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function getProperty(name:*):*
-        {
-            var index:Number = NaN;
-            try
-            {
-                // If caller passed in a number such as 5.5, it will be floored.
-                index = parseInt(String(name));
-            }
-            catch(e:Error) // localName was not a number
-            {
-            }
-
-            if(index != index)
-            {
-                throw new StreamError("Incorrect index: " + String(name));
-            }
-            else
-            {
-                return index < 0 ? source[source.length + index] : source[index];
-            }
-        }
-
-        /**
-         * @private
-         * @internal mutable
-         */
-        override flash_proxy function setProperty(name:*, value:*):void
-        {
-            var index:Number = NaN;
-            try
-            {
-                // If caller passed in a number such as 5.5, it will be floored.
-                index = parseInt(String(name));
-            }
-            catch(e:Error) // localName was not a number
-            {
-            }
-
-            if(index != index)
-            {
-                throw new StreamError("Incorrect index: " + String(name));
-            }
-            else
-            {
-                setItem(value, index);
-            }
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function hasProperty(name:*):Boolean
-        {
-            var index:Number = NaN;
-            try
-            {
-                // If caller passed in a number such as 5.5, it will be floored.
-                index = parseInt(String(name));
-            }
-            catch(e:Error) // localName was not a number
-            {
-            }
-
-            if(index != index)
-            {
-                return false;
-            }
-
-            return (index >= 0 && index < source.length) || (index < 0 && index >= -source.length);
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function nextNameIndex(index:int):int
-        {
-            return index < length ? index + 1 : 0;
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function nextName(index:int):String
-        {
-            return (index - 1).toString();
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function nextValue(index:int):*
-        {
-            return source[index - 1];
-        }
-
-        /**
-         * @private
-         * @internal immutable
-         */
-        override flash_proxy function callProperty(name:*, ...rest):*
-        {
-            if(rest.length != 1 || !(rest[0] is Function))
-            {
-                throw new StreamError("Shortcut filter must have exactly one parameter (Function)");
-            }
-
-            var criteria:Function = rest[0] as Function;
-
-            return this.filter(function (item:*):Boolean
-            {
-                return item != null && item.hasOwnProperty(name) && criteria(item[name]);
-            });
-        }
-
-        /**
-         * @private
-         * @internal mutable
-         */
-        override flash_proxy function deleteProperty(name:*):Boolean
-        {
-            var index:Number = NaN;
-            try
-            {
-                // If caller passed in a number such as 5.5, it will be floored.
-                index = parseInt(String(name));
-            }
-            catch(e:Error) // localName was not a number
-            {
-            }
-
-            if(index != index)
-            {
-                return false;
-            }
-
-            return removeItem(index);
-        }
-
-        /**
-         * @private
-         * A class implements this method to decode itself from a data list by calling
-         * the methods of the IDataInput interface. This method must read the values in
-         * the same sequence and with the same types as were written by the writeExternal() method.
-         * @param input The name of the class that implements the IDataInput interface.
-         * @see flash.utils.IExternalizable#readExternal
-         * @internal immutable
-         */
-        public function readExternal(input:IDataInput):void
-        {
-            source = input.readObject() as Array;
-        }
-
-        /**
-         * @private
-         * A class implements this method to encode itself for a data list by calling
-         * the methods of the IDataOutput interface.
-         * @param output The name of the class that implements the IDataOutput interface.
-         * @see flash.utils.IExternalizable#readExternal
-         * @internal immutable
-         */
-        public function writeExternal(output:IDataOutput):void
-        {
-            output.writeObject(source);
-        }
-
-        /**
-         * Returns the string representation of list object.
-         * @return a String
-         * @example
-         *

-         *     var s:Stream = $(1, 2, 3);
-         *     trace(s.toString());
-         *     //Stream{1, 2, 3}
-         *

-         * @internal immutable
-         */
-        public function toString():String
-        {
-            return "Stream{" + source.join(",") + "}";
-        }
-
-        /**
-         * Creates Stream object from items
-         * @param rest objects used as source for Stream
-         * @return created Stream object
-         * @example
-         *

-         *     var s:Stream = Stream.of(1, 2, 3);
-         *
-         *     //All expressions are equivalent to:
-         *     var s:Stream = new Stream([1, 2, 3])
-         *

-         * @internal immutable
-         */
-        public static function of(...rest):Stream
-        {
-            if (rest.length == 0)
-            {
-                //empty $
-                return new Stream();
-            }
-
-            //$ from argument list
-            return new Stream(rest.concat());
-        }
-
-        /**
-         * Creates Stream object from iterable object
-         * @param object object used as source for a stream
-         * @param callback callback used to map result Stream
-         * @return created Stream object
-         * @example
-         *

-         *     var s:Stream = Stream.from([1, 2, 3]);
-         *
-         *     //Expression is equivalent to:
-         *     var s:Stream = new Stream([1, 2, 3])
-         *
-         *     var obj:Object = {name1: "first", name2: "second"};
-         *     var s:Stream = Stream.from(obj, function(entry:Stream):Stream
-         *     {
-         *         return entry.first;
-         *     });
-         *     trace(s);
-         *     //prints ["name1", "name2"]
-         *

-         * @internal immutable
-         */
-        public static function from(object:*, callback:Function = null):Stream
-        {
-            var result:Stream;
-            if (object == null || object === undefined)
-            {
-                //empty $
-                result = new Stream();
-            }
-            else if (object is Array)
-            {
-                //$ from array
-                result = new Stream((object as Array).concat());
-            }
-            else if (object is Vector.<*> || object is Vector.<Number> || object is Vector.<int> || object is Vector.<uint>)
-            {
-                var a:Array = [];
-                for (var i:int = 0; i < object.length; i++)
-                {
-                    a[i] = object[i];
-                }
-                result = new Stream(a);
-            }
-            else if (object is IList)
-            {
-                //$ from list
-                result = new Stream(object.toArray());
-            }
-            else if (object is Stream)
-            {
-                //$ from list
-                result = Stream(object).concat();
-            }
-            else if(object is XML)
-            {
-                var xm:Array = [];
-                for each(var xml:XML in (object as XML).children())
-                {
-                    xm.push(xml);
-                }
-                result = new Stream(xm);
-            }
-            else if(object is XMLList)
-            {
-                var x:Array = [];
-                for each(var xmlItem:XML in object)
-                {
-                    x.push(xmlItem);
-                }
-                result = new Stream(x);
-            }
-            else
-            {
-                result = new Stream();
-                for (var prop:String in object)
-                {
-                    if(object.hasOwnProperty(prop))
-                    {
-                        result.push(new Stream([prop, object[prop]]));
-                    }
-                }
-            }
-
-            return callback == null ? result : result.map(callback);
-        }
-
-        /**
-         * Create stream from object(dictionary) property names.
-         * @param object object used as source for a stream
-         * @return created Stream object
-         * @example
-         *

-         *     var obj:Object = {name1: "first", name2: "second"};
-         *     var s:Stream = Stream.fromKeys(obj);
-         *     trace(s);
-         *     //prints ["name1", "name2"]
-         *

-         * @internal immutable
-         */
-        public static function fromKeys(object:Object):Stream
-        {
-            var result:Stream = new Stream();
-            for (var prop:String in object)
-            {
-                if(object.hasOwnProperty(prop))
-                {
-                    result.push(prop);
-                }
-            }
-            return result;
-        }
-
-        /**
-         * Create stream from object(dictionary) property values.
-         * @param object object used as source for a stream
-         * @return created Stream object
-         * @example
-         *

-         *     var obj:Object = {name1: "first", name2: "second"};
-         *     var s:Stream = Stream.fromValues(obj);
-         *     trace(s);
-         *     //prints ["first", "second"]
-         *

-         * @internal immutable
-         */
-        public static function fromValues(object:Object):Stream
-        {
-            var result:Stream = new Stream();
-            for (var prop:String in object)
-            {
-                if(object.hasOwnProperty(prop))
-                {
-                    result.push(object[prop]);
-                }
-            }
-            return result;
+            return f;
         }
     }
 }


Refactored structure to facilitate future modularization of the tool

--- BroadleafCommerceAdmin/src-flex/org/broadleafcommerce/admin/model/AppModelLocator.as
+++ BroadleafCommerceAdmin/src-flex/org/broadleafcommerce/admin/model/AppModelLocator.as
@@ -1,53 +0,0 @@
-package org.broadleafcommerce.admin.model
-{
-	import com.adobe.cairngorm.CairngormError;
-	import com.adobe.cairngorm.CairngormMessageCodes;
-	import com.adobe.cairngorm.model.IModelLocator;
-
-	import mx.collections.ArrayCollection;
-
-	import org.broadleafcommerce.admin.model.view.CatalogModel;
-	import org.broadleafcommerce.admin.model.view.CategoryModel;
-	import org.broadleafcommerce.admin.model.view.OfferModel;
-	import org.broadleafcommerce.admin.model.view.ProductModel;
-	import org.broadleafcommerce.admin.model.view.SkuModel;
-
-	public class AppModelLocator implements IModelLocator
-	{
-		private static var modelLocator:AppModelLocator;
-
-
-		public static function getInstance():AppModelLocator
-		{
-			if(modelLocator == null)
-				modelLocator = new AppModelLocator();
-
-			return modelLocator;
-		}
-
-		public function AppModelLocator()
-		{
-			if(modelLocator != null)
-				throw new CairngormError(CairngormMessageCodes.SINGLETON_EXCEPTION, "BlcAdminModelLocator");
-		}
-
-
-		[Bindable]
-		public var offerModel:OfferModel = new OfferModel();
-
-		[Bindable]
-		public var catalogTree:ArrayCollection = new ArrayCollection();
-
-		[Bindable]
-		public var catalogModel:CatalogModel = new CatalogModel();
-
-		[Bindable]
-		public var categoryModel:CategoryModel = new CategoryModel();
-
-		[Bindable]
-		public var productModel:ProductModel = new ProductModel();
-
-		[Bindable]
-		public var skuModel:SkuModel = new SkuModel();
-	}
-}


Removed some warnings to test if developer access works for me

git-svn-id: 27326a786375daad9d33dc990c6f272e4c8f567c@842 fda5f131-174c-0410-8613-e0905860106b

--- org.openwms/trunk/source/org.openwms.common.domain.as/src/main/flex/org/openwms/common/domain/system/usermanagement/Role.as
+++ org.openwms/trunk/source/org.openwms.common.domain.as/src/main/flex/org/openwms/common/domain/system/usermanagement/Role.as
@@ -23,5 +23,10 @@
     [Bindable]
     [RemoteClass(alias="org.openwms.common.domain.system.usermanagement.Role")]
     public class Role extends RoleBase {
+
+    	public function Role(name:String = null, description:String = null) {
+    		this._name = name;
+    		this._description = description;
+    	}
     }
 }


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/SliderAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/SliderAutomationImpl.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.delegates.controls
 {


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

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

 package mx.effects.effectClasses
 {


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

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

 package spark.validators.supportClasses
 {