Transferred from the Adobe Open Source Subversion Repository

Revision: 18165
Author:   matamel@adobe.com
Date:     2010-10-15T08:55:11.945291Z

Log Message:
-----------
Bug: Watson 2738778 - DataService got disconnected from it first request after the channelSet had logged in
QA: Not yet
Doc: No
Checkintests: Pass

Details: This is rpc.swc part of the fix. This fixes the following problems:
- When client needs config, it disconnects the channel even though channel is connected.
- After disconnect, channel hunting kicks in, and fallback to the next channel happens, even though the first channel is fine.
- Trigger_Connect is acknowledged locally even though the client needs config.

Modified Paths:
--------------
/private/flex/sdk/branches/hero_private/frameworks/projects/rpc/src/mx/messaging/ChannelSet.as

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

--- frameworks/projects/rpc/src/mx/messaging/ChannelSet.as
+++ frameworks/projects/rpc/src/mx/messaging/ChannelSet.as
@@ -1390,16 +1390,18 @@
      */
     public function send(agent:MessageAgent, message:IMessage):void
     {
-        if (_currentChannel != null && _currentChannel.connected && !agent.needsConfig)
-        {
-            // Filter out any commands to trigger connection establishment, and ack them locally.
-            if ((message is CommandMessage) && (CommandMessage(message).operation == CommandMessage.TRIGGER_CONNECT_OPERATION))
+        if (_currentChannel != null && _currentChannel.connected)
+        {
+            // Filter out any commands to trigger connection establishment, and
+            // ack them locally unless the agent needs config.
+            if ((message is CommandMessage && CommandMessage(message).operation == CommandMessage.TRIGGER_CONNECT_OPERATION)
+                && !agent.needsConfig)
             {
                 var ack:AcknowledgeMessage = new AcknowledgeMessage();
                 ack.clientId = agent.clientId;
                 ack.correlationId = message.messageId;
                 new AsyncDispatcher(agent.acknowledge, [ack, message], 1);
-                return;
+                return;
             }

             // If this ChannelSet targets a clustered destination, request the


"Experimental" -> "Beta"

"Experimental" -> "Beta"

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -27,7 +27,7 @@
 		public static const HISTORY_SYNC_DELAY:int = 100;
 		public static const FRAME_INTERVAL:Number = 1000/30;

-		public static var experimental:Boolean = false;
+		public static var beta:Boolean = false;

 		public function Weave()
 		{


Make Roster.groups bindable

Make Roster.groups bindable


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

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


fixed bug where back_buffer wasn't alternating

--- WeaveUI/src/weave/ui/JavaScriptCanvas.as
+++ WeaveUI/src/weave/ui/JavaScriptCanvas.as
@@ -39,7 +39,7 @@
 				addChild(back_buffer).addEventListener(Event.COMPLETE, handleImageComplete);
 		}

-		public function handleEnterFrame():void
+		private function handleEnterFrame():void
 		{
 			var interval:int = getTimer() - last_update;
 			if (rendering || interval < MIN_FRAME_INTERVAL || !elementId.value)
@@ -50,7 +50,7 @@
 			WeaveAPI.StageUtils.callLater(this, updateImage);
 		}

-		public function updateImage():void
+		private function updateImage():void
 		{
 			if (!elementId.value)
 			{
@@ -86,7 +86,7 @@
 			{
 				for each (var buffer:Image in buffers)
 					buffer.visible = buffer === back_buffer;
-				back_buffer = buffers[buffers.indexOf(buffer) ^ 1];
+				back_buffer = buffers[buffers.indexOf(back_buffer) ^ 1];
 				rendering = false;
 			}
 		}


Change 20080812-bargull-A2m by bargull@dell--p4--2-53 on 2008-08-12 18:00:50
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: fix swf debugger warning

New Features:

Bugs Fixed: LPP-5573

Technical Reviewer: ptw
QA Reviewer: (pending)
Doc Reviewer: (pending)

Documentation:

Release Notes:

Details:
Some runtime objects haven't got a "__proto__" property, take care of this when constructing the debug-string.

Tests:

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@10665 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as
+++ WEB-INF/lps/lfc/debugger/platform/swf/LzDebug.as
@@ -337,11 +337,11 @@
       if (s == null) { s = ''; }
     }
   } else if ((t == 'object') || (thing instanceof Object)) {
-    var op = thing.__proto__;
+    var op = thing['__proto__'];
     // No pretty if object.__constructor__ is not
     // object.__proto__.constructor, as this indicates some sort of
     // bizarre object
-    if (this.constructorOf(thing) !== op.constructor) {
+    if (!op || this.constructorOf(thing) !== op.constructor) {
       pretty = (! unique);
     }
     // Catch wrappers (but not subtypes of wrappers)


Correctly retrieve Column from WeakReference in AttributeColumnCache; fixed WeaveAPI.AttributeColumnCache.restoreFromCachedDataSources() to grab a copy of the state before requesting the replacement data source.

--- WeaveData/src/weave/data/AttributeColumnCache.as
+++ WeaveData/src/weave/data/AttributeColumnCache.as
@@ -15,20 +15,20 @@

 package weave.data
 {
+	import avmplus.getQualifiedClassName;
+
 	import flash.utils.Dictionary;

-	import avmplus.getQualifiedClassName;
-
-	import weave.api.getLinkableDescendants;
-	import weave.api.getSessionState;
-	import weave.api.registerLinkableChild;
-	import weave.api.setSessionState;
 	import weave.api.data.ColumnMetadata;
 	import weave.api.data.DataType;
 	import weave.api.data.IAttributeColumn;
 	import weave.api.data.IAttributeColumnCache;
 	import weave.api.data.IDataSource;
 	import weave.api.data.IQualifiedKey;
+	import weave.api.getLinkableDescendants;
+	import weave.api.getSessionState;
+	import weave.api.registerLinkableChild;
+	import weave.api.setSessionState;
 	import weave.compiler.Compiler;
 	import weave.core.ClassUtils;
 	import weave.data.AttributeColumns.DateColumn;
@@ -113,7 +113,7 @@
 				var dataSourceName:String = WeaveAPI.globalHashMap.getName(dataSource);
 				for (var metadataHash:String in cache[dataSource])
 				{
-					var column:IAttributeColumn = cache[dataSource][metadataHash];
+					var column:IAttributeColumn = (cache[dataSource][metadataHash] as WeakReference).value as IAttributeColumn;
 					var metadata:Object = ColumnMetadata.getAllMetadata(column);
 					var dataType:String = column.getMetadata(ColumnMetadata.DATA_TYPE);
 					var keys:Array = [];
@@ -163,8 +163,9 @@
 				d2d_dataSource_metadataHash.removeAllPrimary(cds);
 				var name:String = WeaveAPI.globalHashMap.getName(cds);
 				var classDef:Class = ClassUtils.getClassDefinition(cds.type.value);
+				var state:Object = cds.state.state;
 				var dataSource:IDataSource = WeaveAPI.globalHashMap.requestObject(name, classDef, false);
-				setSessionState(dataSource, cds.state.state);
+				setSessionState(dataSource, state);
 			}
 		}


FLEX-34854 FLEX-34884 Now testing spark.collections.Sort(Field) instead of the mx versions because the findItem() function is the same (defined in the mx.collections.Sort(Field) classes), so if the spark versions work well, it's very likely that the mx versions also do. (This is to avoid having to copy-paste all the tests for the spark and mx versions of the sort classes, which would be unmaintainable.)

--- frameworks/projects/framework/tests/FLEX_34884_Tests.as
+++ frameworks/projects/framework/tests/FLEX_34884_Tests.as
@@ -23,8 +23,8 @@
     import mx.collections.ComplexSortField;
     import mx.collections.IList;
     import mx.collections.ListCollectionView;
-    import mx.collections.Sort;
-    import mx.collections.SortField;
+    import spark.collections.Sort;
+    import spark.collections.SortField;

     import org.flexunit.assertThat;

@@ -58,7 +58,7 @@
             _sut.addAll(from0To4); //values: Object0, Object1, Object2, Object3, Object4

             const sortByIndexAscending:Sort = new Sort();
-            sortByIndexAscending.fields = [new SortField("index", false, false, true)];
+            sortByIndexAscending.fields = [new SortField("index", false, true)];
             _sut.sort = sortByIndexAscending;
             _sut.refresh(); //values (unchanged): Object0, Object1, Object2, Object3, Object4

@@ -78,7 +78,7 @@
             _sut.addAll(from0To4); //values: Object0, Object1, Object2, Object3, Object4

             const sortByIndexDescending:Sort = new Sort();
-            sortByIndexDescending.fields = [new SortField("index", false, true, true)];
+            sortByIndexDescending.fields = [new SortField("index", true, true)];
             _sut.sort = sortByIndexDescending;
             _sut.refresh(); //values: Object4, Object3, Object2, Object1, Object0

@@ -98,7 +98,7 @@
             _sut.addAll(from0To4); //values: Object0, Object1, Object2, Object3, Object4

             const sortByIndexDescending:Sort = new Sort();
-            sortByIndexDescending.fields = [new SortField("index", false, true, true)];
+            sortByIndexDescending.fields = [new SortField("index", true, true)];
             _sut.sort = sortByIndexDescending;
             _sut.refresh(); //values: Object4, Object3, Object2, Object1, Object0

@@ -212,7 +212,7 @@
             _sut.addAll(from0To4); //values[address.street]: Street0, Street1, Street2, Street3, Street4

             const sortByIndexAscending:Sort = new Sort();
-            sortByIndexAscending.fields = [new ComplexSortField("address.street", false, false, false)];
+            sortByIndexAscending.fields = [new ComplexSortField("address.street", false, false)];
             _sut.sort = sortByIndexAscending;
             _sut.refresh(); //values[address.street] (unchanged): Street0, Street1, Street2, Street3, Street4


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

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


Change:	41897

Change:	41897

User:	jgrandy

Description:
	Summary:Fix problem with trait inheritance reported by Tucker. Also fix compile warning reported by Henry

	Technical Reviewer: ptw (pending)
	QA Reviewer:  (pending)
	Doc Reviewer:  (pending)

	Tests:tests/traits.lzx, smoketest

git-svn-id: d62bde4b5aa582fdf07c8d403e53e0399a7ed285@368 fa20e4f9-1d0a-0410-b5f3-dc9c16b8b17c

--- WEB-INF/lps/lfc/core/LzTrait.as
+++ WEB-INF/lps/lfc/core/LzTrait.as
@@ -20,7 +20,7 @@
     this["traitname"] = tname;

     var nta = new Object();
-    for (a in ta) {
+    for (var a in ta) {
         if (a != "name") nta[a] = ta[a];
     }
     this["attrs"] = nta;
@@ -37,8 +37,6 @@
 );

 LzTrait.traits = {};
-
-LzTrait.traitnum = 1;

 //------------------------------------------------------------------------------
 // @keywords private
@@ -79,8 +77,8 @@
     var interstitial = trait.interstitials[supername];

     if (interstitial == null) {
-        var interstitialname = "__LZtrait$" + trait.name + "$" + _root.LzTrait.traitnum++;
-
+        var interstitialname = trait.traitname + "$" + supername;
+
         var initattrs = new Object();
         initattrs.__proto__ = trait.attrs;
         initattrs["trait"] = trait;


Transferred from the Adobe Open Source Subversion Repository

Revision: 18532
Author:   chiedozi@adobe.com
Date:     2010-11-10T22:11:29.162852Z

Log Message:
-----------
Added a new menuKeyPressed event to FlexEvent that is dispatched on an active view when the menu key is pressed
A View can now cancel MobileApplication's default menu logic by canceling the menuKeyPressed event
MobileApplicationBase.backKeyHandler() now takes a KeyboardEvent as a parameter

QE notes:
Doc notes:
Bugs:
Reviewer: Ryan
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/View.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/MobileApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/TabbedMobileApplication.as</path>
<path kind="file" action="M">/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/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -13,6 +13,7 @@
 {
 import flash.events.Event;
 import flash.events.InvokeEvent;
+import flash.events.KeyboardEvent;
 import flash.events.StageOrientationEvent;
 import flash.net.registerClassAlias;

@@ -284,7 +285,7 @@
     /**
      *  @private
      */
-    override protected function backKeyHandler():void
+    override protected function backKeyHandler(event:KeyboardEvent):void
     {
         if (navigator)
             navigator.backKeyHandler();


Transferred from the Adobe Open Source Subversion Repository

Revision: 20503
Author:   chiedozi@adobe.com
Date:     2011-03-01T01:35:23.376092Z

Log Message:
-----------
Altering focus changes made in revision 20384.  View and ViewNavigatorBase can no longer gain focus.

QE notes:
Doc notes:
Bugs: SDK-29667
Reviewer: Ryan, Alex
Tests run:
Is noteworthy for integration: No

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/ViewNavigatorApplication.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/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/TabbedViewNavigatorApplication.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigator.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -222,15 +222,9 @@
         {
             if (tabbedNavigator.activeView)
                 systemManager.stage.addEventListener(Event.RESIZE, stage_resizeHandler);
-        }
-
-        // Set the stage focus to the navigator's active view
-        if (systemManager.stage.focus == null && tabbedNavigator)
-        {
-            if (tabbedNavigator.activeView)
-                systemManager.stage.focus = tabbedNavigator.activeView;
-            else
-                systemManager.stage.focus = tabbedNavigator;
+
+            // Set the stage focus to the navigator's active view
+            tabbedNavigator.updateFocus();
         }
     }


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

--- frameworks/projects/advancedgrids/src/mx/collections/IGroupingCollection2.as
+++ frameworks/projects/advancedgrids/src/mx/collections/IGroupingCollection2.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.collections
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17168
Author:   hmuller@adobe.com
Date:     2010-08-03T18:34:03.358152Z

Log Message:
-----------
Initialize the Grid columns property at commitProperties() time if necessary.

Added a note to the columns ASDoc about not supporting columns that appear more than once.

QE notes: DataGrid
Doc notes:
Bugs: SDK-26828
Reviewer: Carol
Tests run: DataGrid cyclone
Is noteworthy for integration: no

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridDimensions.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridDimensions.as
@@ -906,17 +906,20 @@
         if (!_columnWidths)
             return (nCols * (defaultColumnWidth + columnGap)) - columnGap;

-        var width:Number = 0;
+        var contentWidth:Number = 0;

         for (var i:int = 0; i < nCols; i++)
         {
             if ((i >= _columnWidths.length) || isNaN(_columnWidths[i]))
-                width += defaultColumnWidth + columnGap;
+                contentWidth += defaultColumnWidth;
             else
-                width += _columnWidths[i] + columnGap;
-        }
-
-        return width - columnGap;
+                contentWidth += _columnWidths[i];
+        }
+
+        if (nCols > 1)
+            contentWidth += (nCols - 1) * columnGap;
+
+        return contentWidth;
     }

     /**
@@ -952,6 +955,28 @@
         return contentHeight;
     }

+    /**
+     *  Returns the sum of the typical cell widths including gaps.  If
+	 *  columnCountOverride is specified, then the overall typicalCellWidth
+     *  of as many columns is returned.
+     */
+    public function getTypicalContentWidth(columnCountOverride:int = -1):Number
+    {
+        const nCols:int = (columnCountOverride == -1) ? columnCount : columnCountOverride;
+        var contentWidth:Number = 0;
+
+        for (var columnIndex:int = 0; columnIndex < nCols; columnIndex++)
+        {
+            var width:Number = typicalCellWidths[columnIndex];
+            contentWidth += isNaN(width) ? defaultColumnWidth : width;
+        }
+
+        if (nCols > 1)
+            contentWidth += (nCols - 1) * columnGap;
+
+        return contentWidth;
+    }
+
     /**
      *  Return the preferred bounds width of the grid's typicalItem when rendered with the item renderer
      *  for the specified column.  If no value has yet been specified, return NaN.
@@ -1209,7 +1234,7 @@
             case CollectionEventKind.REMOVE: return dataProviderCollectionRemove(event);
             case CollectionEventKind.REPLACE: return dataProviderCollectionReplace(event);
             case CollectionEventKind.MOVE: return dataProviderCollectionMove(event);
-            case CollectionEventKind.REFRESH: return dataProviderCollectionReset(event);
+            case CollectionEventKind.REFRESH: return dataProviderCollectionRefresh(event);
             case CollectionEventKind.RESET: return dataProviderCollectionReset(event);
             case CollectionEventKind.UPDATE: return dataProviderCollectionReplace(event); return true;
                 break;
@@ -1264,5 +1289,15 @@
         this.rowCount = IList(event.target).length;
         return true;
     }
+
+    /**
+     *  @private
+     */
+    private function dataProviderCollectionRefresh(event:CollectionEvent):Boolean
+    {
+        clear();
+        this.rowCount = IList(event.target).length;
+        return true;
+    }
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5545
Author:   jimurphy@adobe.com
Date:     2009-03-25T19:00:52.330680Z

Log Message:
-----------
1st pass of rename according to the spec http://opensource.adobe.com/wiki/display/flexsdk/Dropping+the+Fx+Prefix

Flex now requires CSS Style declarations to declare @namespace rules and disambiguate between halo and spark components using CSS 3 namespace prefixes on type selectors. At compile time, this namespace information will be used to map type names to qualified ActionScript class names. At runtime, type selectors are matched on qualified ActionScript class name (for example mx.controls.Button rather than just Button). Flex 3 applications must be compiled with -compatibility-version=3.0.0 to get unqualified CSS type selector behavior.

QE: Yes, this build may help in updating test cases to use the new namespaces and class names.
Dev: Not yet
Doc: Not yet

Modified Paths:
--------------
748 paths were modified

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

--- frameworks/projects/spark/src/spark/effects/interpolation/HSBInterpolator.as
+++ frameworks/projects/spark/src/spark/effects/interpolation/HSBInterpolator.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.effects.interpolation
+package spark.effects.interpolation
 {
 import mx.styles.StyleManager;
 import mx.utils.HSBColor;


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

--- frameworks/projects/automation/src/mx/automation/delegates/controls/DateFieldAutomationImpl.as
+++ frameworks/projects/automation/src/mx/automation/delegates/controls/DateFieldAutomationImpl.as
@@ -0,0 +1,291 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  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
+{
+	import flash.display.DisplayObject;
+	import flash.events.Event;
+	import flash.events.KeyboardEvent;
+	import flash.events.MouseEvent;
+	import flash.events.TextEvent;
+	import flash.ui.Keyboard;
+
+	import mx.automation.Automation;
+	import mx.automation.IAutomationObject;
+	import mx.automation.IAutomationObjectHelper;
+	import mx.automation.events.AutomationRecordEvent;
+	import mx.automation.events.TextSelectionEvent;
+	import mx.controls.DateField;
+	import mx.core.EventPriority;
+	import mx.core.UIComponent;
+	import mx.core.mx_internal;
+	import mx.events.CalendarLayoutChangeEvent;
+	import mx.events.DateChooserEvent;
+	import mx.events.DropdownEvent;
+	import mx.events.FlexEvent;
+
+
+	use namespace mx_internal;
+
+	[Mixin]
+	/**
+	 *
+	 *  Defines methods and properties required to perform instrumentation for the
+	 *  DateField control.
+	 *
+	 *  @see mx.controls.DateField
+	 *
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public class DateFieldAutomationImpl extends ComboBaseAutomationImpl
+	{
+		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(DateField, DateFieldAutomationImpl);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Constructor
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  Constructor.
+		 * @param obj DateField object to be automated.
+		 *
+		 *  @langversion 3.0
+		 *  @playerversion Flash 9
+		 *  @playerversion AIR 1.1
+		 *  @productversion Flex 3
+		 */
+		public function DateFieldAutomationImpl(obj:DateField)
+		{
+			super(obj);
+
+			obj.addEventListener(DropdownEvent.OPEN, openCloseHandler, false, 0, true);
+			obj.addEventListener(DropdownEvent.CLOSE, openCloseHandler, false, 0, true);
+		}
+
+		/**
+		 *  @private
+		 *  storage for the owner component
+		 */
+		protected function get dateField():DateField
+		{
+			return uiComponent as DateField;
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Overridden methods
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 *  Replays DateChooserEvents and CalendarLayoutChangeEvents by
+		 *  delegating to the drop-down list, which is a DateChooser control. Replays
+		 *  DropdownEvent.OPEN events when the user clicks the
+		 *  down-arrow button or presses the Spacebar, depending on the interaction.inputType.
+		 *  Replays DropdownEvent.CLOSE events when the user clicks the
+		 *  date display field or presses the Spacebar, depending on the event.inputType.
+		 */
+		override public function replayAutomatableEvent(event:Event):Boolean
+		{
+			var help:IAutomationObjectHelper = Automation.automationObjectHelper;
+
+			var textReplayer:IAutomationObject =
+				dateField.getTextInput() as IAutomationObject;
+
+			//the dropdown datechooser doesn't get the focus so keyboard events
+			//go through us (and ultimately get sent to our keyDownHandler which
+			//sends them to the datechooser)
+			if (event is KeyboardEvent)
+			{
+				dateField.setFocus();
+				var keyEvent:KeyboardEvent = event as KeyboardEvent;
+				if (dateField.getTextInput() && dateField.editable)
+				{
+					if (keyEvent.keyCode == Keyboard.UP ||
+						keyEvent.keyCode == Keyboard.DOWN ||
+						keyEvent.keyCode == Keyboard.RIGHT ||
+						keyEvent.keyCode == Keyboard.LEFT ||
+						keyEvent.keyCode == Keyboard.PAGE_UP ||
+						keyEvent.keyCode == Keyboard.PAGE_DOWN ||
+						keyEvent.keyCode == Keyboard.HOME ||
+						keyEvent.keyCode == Keyboard.END)
+						return help.replayKeyboardEvent(dateField, KeyboardEvent(event));
+					else
+						return textReplayer.replayAutomatableEvent(event);
+				}
+				else
+				{
+					//send the events to the focus, not to "this" because
+					//the text input may have the focus and only the item with
+					//focus has the keyDown handler
+					return help.replayKeyboardEvent(dateField.getFocus(), KeyboardEvent(event));
+				}
+			}
+			if (dateField.getTextInput() && (event is TextEvent || event is TextSelectionEvent) )
+			{
+				return textReplayer.replayAutomatableEvent(event);
+			}
+			if (event is DateChooserEvent ||
+				event is CalendarLayoutChangeEvent)
+			{
+				var replayer:IAutomationObject
+				= dateField.dropdown as IAutomationObject;
+				return replayer.replayAutomatableEvent(event);
+			}
+			else if (event is DropdownEvent)
+			{
+				var validOpen:Boolean =
+					!dateField.showingDropdown && event.type == DropdownEvent.OPEN;
+
+				var validClose:Boolean =
+					dateField.showingDropdown && event.type == DropdownEvent.CLOSE;
+
+				// if this is not a valid open or close, its bogus
+				if (!validOpen && !validClose)
+					return false;
+
+				if (DropdownEvent(event).triggerEvent is KeyboardEvent)
+				{
+					//send the events to the focus, not to "this" because
+					//the text input may have the focus and only the item with
+					//focus has the keyDown handler
+					dateField.setFocus();
+					if (validOpen)
+						return help.replayKeyDownKeyUp(dateField.getFocus(), Keyboard.DOWN, true);
+					else
+						return help.replayKeyDownKeyUp(dateField.getFocus(), Keyboard.ENTER);
+				}
+				else if (DropdownEvent(event).triggerEvent is MouseEvent)
+				{
+					if (validOpen)
+						return help.replayClick(dateField.ComboDownArrowButton);
+					else if (validClose)
+						return help.replayClickOffStage();
+				}
+				else
+					throw new Error();
+				return false;
+			}
+			return super.replayAutomatableEvent(event);
+		}
+
+		//--------------------------------------------------------------------------
+		//
+		//  Event handlers
+		//
+		//--------------------------------------------------------------------------
+
+		/**
+		 *  @private
+		 */
+		private function openCloseHandler(ev:DropdownEvent):void
+		{
+			// record only if we have associated trigger event
+			// trigger event is not specified in cases where open/close event
+			// should not be recorded. Ex: pressing ESCAPE key to close the dropdown.
+			if (ev.triggerEvent)
+			{
+				var textInput:DisplayObject = dateField.getTextInput() as DisplayObject;
+				if (ev.type == DropdownEvent.OPEN)
+				{
+					recordAutomatableEvent(ev);
+					dateField.dropdown.addEventListener(AutomationRecordEvent.RECORD,
+						dropdown_recordHandler, false, 0, true);
+				}
+				else
+				{
+					// if keyboard is being used to close the dropdown
+					// we need to do speical handling of the enter key.
+					if (ev.triggerEvent is KeyboardEvent)
+					{
+						var keyEvent:KeyboardEvent = ev.triggerEvent as KeyboardEvent;
+						if (keyEvent.ctrlKey)
+						{
+							recordAutomatableEvent(ev);
+						}
+						else
+						{
+							switch(keyEvent.keyCode)
+							{
+								case Keyboard.ENTER :
+								{
+									// for editable dateField UIComponent records the Enter.
+									if (dateField.editable)
+										recordAutomatableEvent(ev.triggerEvent);
+									break;
+								}
+								default :
+								{
+									recordAutomatableEvent(ev.triggerEvent);
+									break;
+								}
+							}
+						}
+					}
+					else
+						recordAutomatableEvent(ev);
+					dateField.dropdown.removeEventListener(AutomationRecordEvent.RECORD,
+						dropdown_recordHandler);
+				}
+			}
+		}
+
+		/**
+		 *  @private
+		 *  Records the events of dateChooser as DateFields events.
+		 */
+		private function dropdown_recordHandler(event:AutomationRecordEvent):void
+		{
+			// record the date change and calender navigation events
+			if (event.replayableEvent is CalendarLayoutChangeEvent ||
+				event.replayableEvent is DateChooserEvent)
+				recordAutomatableEvent(event.replayableEvent);
+
+			// record keyboard naviagation
+			if (event.replayableEvent is KeyboardEvent)
+			{
+				var keyEvent:KeyboardEvent = event.replayableEvent as KeyboardEvent;
+				if (keyEvent.keyCode != Keyboard.ENTER)
+					recordAutomatableEvent(keyEvent);
+			}
+		}
+
+	}
+
+}


ReactiveResource: added .put() method, fixed .to_xml() bug

--- src/ras3r/ReactiveResource.as
+++ src/ras3r/ReactiveResource.as
@@ -279,6 +279,22 @@
 			return prefix_options;
 		}

+		public function put (path:String, options:Object = null) :void
+		{
+			// clear errors
+			errors = new Array();
+
+			if (options && options.complete is Function)
+			{
+				// bubble complete event
+				addEventListener('complete', options.complete);
+			}
+
+			path = element_path().replace(/(\/[^\/\.]*)(\.xml)/, '$1/' + path + '$2');
+			Logger.info('put: ' + path);
+			send('PUT', path, to_xml(), after_update, after_update_failed);
+		}
+
 		public function reload (args:Object = null) :void
 		{
 			// clear errors
@@ -320,6 +336,8 @@
 			{
 				var node:XML = new XML('<' + i + ' />');
 				var value:String = String(this[i]);
+				// trap combobox serialization bug: value serializes as [object Object]
+				if (value == '[object Object]' && this[i].data) value = String(this[i].data);
 				xml.appendChild(node);
 				// every child node's value must be cast to String
 				xml[i] = value;


Transferred from the Adobe Open Source Subversion Repository

Revision: 15047
Author:   klin@adobe.com
Date:     2010-03-26T00:40:30.977115Z

Log Message:
-----------
Merge 15043 from 4.x to trunk.

Fix for http://bugs.adobe.com/jira/browse/SDK-25943. Embedded images were not mirroring even when the image component had an explicit layoutDirection set. The fix is to check if the contentHolder is an ILayoutDirectionElement when it is loaded and set the layoutDirection to null (inheriting).

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

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

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

--- frameworks/projects/framework/src/mx/controls/SWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/SWFLoader.as
@@ -40,8 +40,10 @@
 import mx.core.FlexVersion;
 import mx.core.IFlexDisplayObject;
 import mx.core.IFlexModuleFactory;
+import mx.core.ILayoutDirectionElement;
 import mx.core.ISWFLoader;
 import mx.core.IUIComponent;
+import mx.core.LayoutDirection;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
 import mx.events.FlexEvent;
@@ -1896,6 +1898,11 @@
             throw new Error(message);
         }

+        // contentHolder should inherit the layoutDirection
+        // (sometimes its an asset which defaults to LTR).
+        if (contentHolder && contentHolder is ILayoutDirectionElement)
+            ILayoutDirectionElement(contentHolder).layoutDirection = null;
+
         invalidateDisplayList();
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 3458
Author:   dloverin@adobe.com
Date:     2008-10-02T20:59:28.019344Z

Log Message:
-----------
Add ability to using FP10 unloadAndStop() method in SWFLoader.

QE: YES
Doc: YES
Checkintests: YES
Reviewer: Ely, Deepa
Bugs: SDK-16764

SWFLoader.as
    Added new public method unloadAndStop().

Modified Paths:
--------------
/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as

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

--- frameworks/projects/framework/src/mx/controls/SWFLoader.as
+++ frameworks/projects/framework/src/mx/controls/SWFLoader.as
@@ -393,6 +393,22 @@
      *  @private
      */
     private var mouseShield:Sprite;
+
+    /**
+     *  @private
+     *
+     *  When unloading a swf, check this flag to see if we
+     *  should use unload() or unloadAndStop().
+     */
+    private var useUnloadAndStop:Boolean;
+
+    /**
+     *  @private
+     *
+     *  When using unloadAndStop, pass this flag
+     *  as the gc parameter.
+     */
+    private var unloadAndStopGC:Boolean;

     //--------------------------------------------------------------------------
     //
@@ -1285,20 +1301,25 @@
                         // b/c we may cause a security violation trying to do it
                     }

-                                        if (_swfBridge)
-                                        {
-                                                var request:SWFBridgeEvent = new SWFBridgeEvent(
-                                                                                SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING,
-                                                                                false, false,
-                                                                                _swfBridge);
-                                                 _swfBridge.dispatchEvent(request);
-
-                                        }
-
-                    Loader(contentHolder).unload();
-
-                                        if (!explicitLoaderContext)
-                                                _loaderContext = null;
+                    if (_swfBridge)
+                    {
+                        var request:SWFBridgeEvent = new SWFBridgeEvent(
+                                                        SWFBridgeEvent.BRIDGE_APPLICATION_UNLOADING,
+                                                        false, false,
+                                                        _swfBridge);
+                         _swfBridge.dispatchEvent(request);
+                    }
+
+                    // Use the new unloadAndStop method in FP10 if this object's
+                    // unloadAndStop method was called. Otherwise call unload
+                    // as usual.
+                    if (useUnloadAndStop)
+                        Loader(contentHolder).unloadAndStop(unloadAndStopGC);
+                    else
+                        Loader(contentHolder).unload();
+
+                    if (!explicitLoaderContext)
+                        _loaderContext = null;
                 }
                 else
                 {
@@ -1325,26 +1346,26 @@
                 }
             }

-                        // when SWFLoader/Image is used with renderer
-                        // recycling and the content is a DisplayObject instance
-                        // the instance can be stolen from us while
-                        // we're on the free list
-                        try
-                        {
-                                if (contentHolder.parent == this)
-                                        removeChild(contentHolder);
-                        }
+            // when SWFLoader/Image is used with renderer
+            // recycling and the content is a DisplayObject instance
+            // the instance can be stolen from us while
+            // we're on the free list
+            try
+            {
+                if (contentHolder.parent == this)
+                    removeChild(contentHolder);
+            }
             catch(error:Error)
             {
-                                try
-                                {
-                                        // just try to remove it anyway
-                                        removeChild(contentHolder);
-                                }
-                                catch(error1:Error)
-                                {
-                                        // Ignore any errors thrown by removeChild()
-                                }
+                try
+                {
+                    // just try to remove it anyway
+                    removeChild(contentHolder);
+                }
+                catch(error1:Error)
+                {
+                    // Ignore any errors thrown by removeChild()
+                }
             }

             contentHolder = null;
@@ -1352,6 +1373,7 @@

         isContentLoaded = false;
         brokenImage = false;
+        useUnloadAndStop = false;

         if (!_source || _source == "")
             return;
@@ -1359,6 +1381,44 @@
         contentHolder = loadContent(_source);
     }

+    /**
+     *  Unloads an image or SWF file. After this method returns the
+     *  source property will be null. This is only supported
+     *  if the host Flash Player is version 10 or greater. If the host Flash
+     *  Player is less than version 10, then this method will unload the
+     *  content the same way as if source was set to null.
+     *
+     *  This method attempts to unload SWF files by removing references to
+     *  EventDispatcher, NetConnection, Timer, Sound, or Video objects of the
+     *  child SWF file. As a result, the following occurs for the child SWF file
+     *  and the child SWF file's display list:
+     *

+     *
Sounds are stopped.

+     *
Stage event listeners are removed.

+     *
Event listeners for enterFrame,
+     *  frameConstructed, exitFrame,
+     *  activate and deactivate are removed.

+     *
Timers are stopped.

+     *
Camera and Microphone instances are detached

+     *
Movie clips are stopped.

+     *

+     *
+     *  @param invokeGarbageCollector (default = true)
+     *   — Provides a hint to the garbage collector to run
+     *  on the child SWF objects (true) or not (false).
+     *  If you are unloading many objects asynchronously, setting the
+     *  gc parameter to false might improve application
+     *  performance. However, if the parameter is set to false, media
+     *  and display objects of the child SWF file might persist in memory after
+     *  the child SWF has been unloaded.
+     */
+    public function unloadAndStop(invokeGarbageCollector:Boolean = true):void
+    {
+        useUnloadAndStop = true;
+        unloadAndStopGC = invokeGarbageCollector;
+        source = null;        // this will cause an unload
+    }
+
     //--------------------------------------------------------------------------
     //
     //  ISWFLoader


Transferred from the Adobe Open Source Subversion Repository

Revision: 5101
Author:   gauravj@adobe.com
Date:     2009-02-27T05:22:45.887116Z

Log Message:
-----------
Update action script files with asdoc version tags.

QE Notes: None.
Doc Notes: Please review and update as necessary.
tests: checkintests

Modified Paths:
--------------
663 paths were modified

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

--- frameworks/projects/mx/src/mx/accessibility/TreeAccImpl.as
+++ frameworks/projects/mx/src/mx/accessibility/TreeAccImpl.as
@@ -30,6 +30,11 @@
 /**
  *  TreeAccImpl is a subclass of AccessibilityImplementation
  *  which implements accessibility for the Tree class.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class TreeAccImpl extends AccImpl
 {
@@ -106,6 +111,11 @@
 	 *  Afterwards, when instances of Tree are initialized,
 	 *  their accessibilityImplementation property
 	 *  will be set to an instance of this class.

+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public static function enableAccessibility():void
 	{
@@ -137,6 +147,11 @@
 	 *
 	 *  @param master The UIComponent instance that this AccImpl instance
 	 *  is making accessible.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
 	 */
 	public function TreeAccImpl(master:UIComponent)
 	{


Transferred from the Adobe Open Source Subversion Repository

Revision: 8436
Author:   gosmith@adobe.com
Date:     2009-07-07T22:42:39.058014Z

Log Message:
-----------
Integrated TLF build 463.

This integration required trivial framework changes due to one renamed API (TextFilter -> TextConverter) that was missed in the earlier implementation of the PARB changes.

Note: Build 461, which was integrated yesterday, had the Marshall Plan changes for TLF.

Build 463
---------

* Fix 2361762 SelectionManager and EditManager keyDownHandlers should check if isDefaultPrevented and if yes, do nothing

* Fix 2365787 Selecting text with shift-down breaks on last line when its an empty paragraph

Build 462
---------

* Fix 2366203 HTML import/export uses <image> tag instead of <img> (inconsistent with TextField)

* Fix 2363394 [SDK-21904] Spark TextArea exports different TextFlow depending on whether it received focus or not.

* Fix 2342917 [SDK-21362] Erratic scrollbar sizing in TextFlow when using uneven lines and dragging the scroll thumb

* PARB - Renamed TextFilter to TextConverter

* PARB - IEditManager.as/EditManager.as - replaced float:String parameter with option:Object.  Updated comments.

* Fix 2366728 EditManager.applyFormatToElement ignores targetElement and always applies changes to the TextFlow

Build 461
---------

* Marshall plan and security sandbox bug fixes were added in Build 461 - TLF now works in a security sandbox and can support flex's marshall plan

QE Notes: None
Doc Notes: None
Bugs: None
Reviewer: None

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swz</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/libs/textLayout.swc</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/textLayout.swf</path>
<path kind="file" action="M">/flex/sdk/trunk/in/tlf/tlf.properties</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/TextFlowUtil.as</path>

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

--- frameworks/projects/spark/src/spark/components/RichText.as
+++ frameworks/projects/spark/src/spark/components/RichText.as
@@ -21,7 +21,7 @@
 import flashx.textLayout.conversion.ConversionType;
 import flashx.textLayout.conversion.ITextExporter;
 import flashx.textLayout.conversion.ITextImporter;
-import flashx.textLayout.conversion.TextFilter;
+import flashx.textLayout.conversion.TextConverter;
 import flashx.textLayout.elements.Configuration;
 import flashx.textLayout.elements.TextFlow;
 import flashx.textLayout.events.DamageEvent;
@@ -239,10 +239,10 @@
 		staticTextFormat = new TextFormat();

 		staticPlainTextImporter =
-			TextFilter.getImporter(TextFilter.PLAIN_TEXT_FORMAT);
+			TextConverter.getImporter(TextConverter.PLAIN_TEXT_FORMAT);

 		staticPlainTextExporter =
-			TextFilter.getExporter(TextFilter.PLAIN_TEXT_FORMAT);
+			TextConverter.getExporter(TextConverter.PLAIN_TEXT_FORMAT);

 		classInitialized = true;
 	}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7472
Author:   chaase@adobe.com
Date:     2009-06-01T17:57:10.489577Z

Log Message:
-----------
Changing a handful of behavior-related properties to styles instead, for usability and consistency:
Scroller.horizontalScrollPolicy
Scroller.verticalScrollPolicy
TextArea.horizontalScrollPolicy
TextArea.verticalScrollPolicy
Slider.liveDragging

Also made previous properties-as-styles changes (smoothScrolling and fixedThumbSize) not inheritable and not exposed in SkinnableContainer/GroupBase.

QE Notes: Requires Mustella updates to handle changes from properties to styles
Doc Notes:
Bugs: sdk-21032
Reviewer: Glenn
Tests: checkintests, Mustella gumbo/components/Scroller, gumbo/components/ScrollBar, gumbo/components/TextArea/, and gumbo/components/Slider

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/Slider.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/TextArea.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/defaults.css</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/GroupBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/TextArea.as
+++ frameworks/projects/spark/src/spark/components/TextArea.as
@@ -32,6 +32,26 @@
  *  @productversion Flex 4
  */
 [Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark")]
+
+/**
+ *  @copy spark.components.Scroller#style.horizontalScrollPolicy
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="horizontalScrollPolicy", type="String", inherit="no", enumeration="off,on,auto")]
+
+/**
+ *  @copy spark.components.Scroller#style.verticalScrollPolicy
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
+ */
+[Style(name="verticalScrollPolicy", type="String", inherit="no", enumeration="off,on,auto")]

 [DefaultProperty("content")]

@@ -109,6 +129,16 @@
     //
     //--------------------------------------------------------------------------

+    /**
+     *  @private
+     */
+    private var horizontalScrollPolicyChanged:Boolean = false;
+
+    /**
+     *  @private
+     */
+    private var verticalScrollPolicyChanged:Boolean = false;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden properties
@@ -234,47 +264,6 @@
     }

     //----------------------------------
-    //  horizontalScrollPolicy
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _horizontalScrollPolicy:String = ScrollPolicy.AUTO;
-
-    /**
-     *  @private
-     */
-    private var horizontalScrollPolicyChanged:Boolean = false;
-
-    /**
-     *  Documentation is not currently available.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get horizontalScrollPolicy():String
-    {
-        return _horizontalScrollPolicy;
-    }
-
-    /**
-     *  @private
-     */
-    public function set horizontalScrollPolicy(value:String):void
-    {
-        if (value == _horizontalScrollPolicy)
-            return;
-
-        _horizontalScrollPolicy = value;
-        horizontalScrollPolicyChanged = true;
-
-        invalidateProperties();
-    }
-
-    //----------------------------------
     //  scroller
     //----------------------------------

@@ -290,53 +279,32 @@
      */
     public var scroller:Scroller;

-    //----------------------------------
-    //  verticalScrollPolicy
-    //----------------------------------
-
-    /**
-     *  @private
-     */
-    private var _verticalScrollPolicy:String = ScrollPolicy.AUTO;
-
-    /**
-     *  @private
-     */
-    private var verticalScrollPolicyChanged:Boolean = false;
-
-    /**
-     *  Documentation is not currently available.
-     *
-     *  @langversion 3.0
-     *  @playerversion Flash 10
-     *  @playerversion AIR 1.5
-     *  @productversion Flex 4
-     */
-    public function get verticalScrollPolicy():String
-    {
-        return _verticalScrollPolicy;
-    }
-
-    /**
-     *  @private
-     */
-    public function set verticalScrollPolicy(value:String):void
-    {
-        if (value == _verticalScrollPolicy)
-            return;
-
-        _verticalScrollPolicy = value;
-        verticalScrollPolicyChanged = true;
-
-        invalidateProperties();
-    }
-
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
     //
     //--------------------------------------------------------------------------
-
+
+    /**
+     *  @private
+     */
+    override public function styleChanged(styleProp:String):void
+    {
+        var allStyles:Boolean = (styleProp == null || styleProp == "styleName");
+        super.styleChanged(styleProp);
+
+        if (allStyles || styleProp == "horizontalScrollPolicy")
+        {
+            horizontalScrollPolicyChanged = true;
+            invalidateProperties();
+        }
+        if (allStyles || styleProp == "verticalScrollPolicy")
+        {
+            verticalScrollPolicyChanged = true;
+            invalidateProperties();
+        }
+    }
+
     /**
      *  @private
      *  Pushes various TextInput properties down into the RichEditableText.
@@ -348,14 +316,14 @@
         if (horizontalScrollPolicyChanged)
         {
             if (scroller)
-                scroller.horizontalScrollPolicy = _horizontalScrollPolicy;
+                scroller.setStyle("horizontalScrollPolicy", getStyle("horizontalScrollPolicy"));
             horizontalScrollPolicyChanged = false;
         }

         if (verticalScrollPolicyChanged)
         {
             if (scroller)
-                scroller.verticalScrollPolicy = _verticalScrollPolicy;
+                scroller.setStyle("verticalScrollPolicy", getStyle("verticalScrollPolicy"));
             verticalScrollPolicyChanged = false;
         }
     }


Transferred from the Adobe Open Source Subversion Repository

Revision: 8483
Author:   smgilson@adobe.com
Date:     2009-07-09T17:52:48.367800Z

Log Message:
-----------
Second 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/effects/easing/EaseInOutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/MotionPath.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ColorMatrixFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BlurFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DisplacementMapFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/ShaderFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/DropShadowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/CallAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientBevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateColor.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransitionShader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AddAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Scale.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/VerticalLayout.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/Graphic.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Rotate.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/spark/src/spark/effects/Resize.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/AnimateTransform3D.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Wipe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Sine.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Move.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/HorizontalLayout.as</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/filters/ConvolutionFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/easing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Keyframe.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/layouts/supportClasses/LayoutBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientGlowFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/SetAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/RemoveAction.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/BevelFilter.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/filters/GradientFilter.as</path>

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

--- frameworks/projects/spark/src/spark/layouts/BasicLayout.as
+++ frameworks/projects/spark/src/spark/layouts/BasicLayout.as
@@ -110,7 +110,7 @@
  *  attributes of its superclass and adds no additional tag attributes:

  *
  *

- *  <BasicLayout/>
+ *  <s:BasicLayout/>
  *

  *
  *  @langversion 3.0


Add new field "property2" to class PropertyLevelCopyableCloneableClass.

--- dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableCloneableClass.as
+++ dolly-framework/src/test/resources/dolly/data/PropertyLevelCopyableCloneableClass.as
@@ -11,7 +11,9 @@
 	private var _writableField1:String = "Value of first-level writable field.";

 	[Cloneable]
-	public var property1:String = "Value of first-level public property.";
+	public var property1:String = "Value of first-level public property 1.";
+
+	public var property2:String = "Value of first-level public property 2.";

 	public function PropertyLevelCopyableCloneableClass() {
 	}


fix typo

fix typo

--- src/aerys/minko/scene/controller/TransformController.as
+++ src/aerys/minko/scene/controller/TransformController.as
@@ -102,7 +102,7 @@
 			}
 		}

-		private function updateLocalToWorldAncestorsAndSelf(nodeId : int) : void
+		private function updateAncestorsAndSelfLocalToWorld(nodeId : int) : void
 		{
 			var dirtyRoot : int = nodeId;

@@ -256,7 +256,7 @@
 			var nodeId : uint = _nodeToId[node];

 			if (forceUpdate)
-				updateLocalToWorldAncestorsAndSelf(nodeId);
+				updateAncestorsAndSelfLocalToWorld(nodeId);

 			return _localToWorldTransforms[nodeId];
 		}


This file delete instead use DAGPath.mxml file

SVN-Revision: 8877

--- flexclient/dag/Components/IDAGPath.as
+++ flexclient/dag/Components/IDAGPath.as
@@ -1,36 +0,0 @@
-	package Components
-{
-	import flash.utils.IExternalizable;
-	import flash.utils.IDataInput;
-	import flash.utils.IDataOutput;
-	import mx.controls.Alert;
-
-   [Bindable]
-   [RemoteClass(alias="edu.wustl.catissuecore.flex.dag.DAGPath")]
-	public class IDAGPath implements IExternalizable
-	{
-
-		public var name:String;
-		public var id:String;
-		public var isSelected:Boolean=false;
-		public var sourceExpId:int = 0;
-		public var destinationExpId:int=0;
-		public var operatorIndex:int=0;
-
-		public function readExternal(input:IDataInput):void {
-			name = input.readUTF();
-			id = input.readUTF();
-			isSelected = input.readBoolean();
-			sourceExpId=input.readInt();
-			destinationExpId= input.readInt();
-		}
-
-		public function writeExternal(out:IDataOutput):void {
-			out.writeUTF(name);
-			out.writeUTF(id);
-			out.writeBoolean(isSelected);
-			out.writeInt(sourceExpId);
-			out.writeInt(destinationExpId);
-		}
-	}
-}


Transferred from the Adobe Open Source Subversion Repository

Revision: 11078
Author:   smgilson@adobe.com
Date:     2009-10-22T11:34:05.568738Z

Log Message:
-----------
Fix invalid HTML in ASDoc comment

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

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as
@@ -160,11 +160,12 @@
      *  selection/highlight background.
      *
      *
If set to true, the background for
-     *  the item renderer will automatically be drawn, and it
-     *  will depend on the styles that are set (contentBackgroundColor,
-     *  alternatingItemColor, rollOverColor, selectionColor) as
-     *  well as what state the item renderer is in (normal,
-     *  selected, or hovered).

+     *  the item renderer is automatically drawn, and it
+     *  depends on the styles that are set (contentBackgroundColor,
+     *  alternatingItemColor, rollOverColor,
+     *  selectionColor)
+     *  and the state that the item renderer is in (normal,
+     *  selected, or hovered).

      *
      *  @default false
      */
@@ -312,41 +313,41 @@
         }
     }

-	//----------------------------------
-	//  dragging
-	//----------------------------------
-
-	/**
-	 *  @private
-	 *  Storage for the dragging property.
-	 */
-	private var _dragging:Boolean = false;
-
-	/**
-	 *  @inheritDoc
-	 */
-	public function get dragging():Boolean
-	{
-		return _dragging;
-	}
-
-	/**
-	 *  @private
-	 */
-	public function set dragging(value:Boolean):void
-	{
-		if (value != _dragging)
-		{
-			_dragging = value;
-			setCurrentState(getCurrentRendererState(), playTransitions);
-		}
-	}
-
-	//----------------------------------
+    //----------------------------------
+    //  dragging
+    //----------------------------------
+
+    /**
+     *  @private
+     *  Storage for the dragging property.
+     */
+    private var _dragging:Boolean = false;
+
+    /**
+     *  @inheritDoc
+     */
+    public function get dragging():Boolean
+    {
+        return _dragging;
+    }
+
+    /**
+     *  @private
+     */
+    public function set dragging(value:Boolean):void
+    {
+        if (value != _dragging)
+        {
+            _dragging = value;
+            setCurrentState(getCurrentRendererState(), playTransitions);
+        }
+    }
+
+    //----------------------------------
     //  label
     //----------------------------------

-	[Bindable("textChanged")]
+    [Bindable("textChanged")]

     /**
      *  @private
@@ -426,11 +427,11 @@
      */
     protected function getCurrentRendererState():String
     {
-		if (dragging && hasState("dragging"))
-			return "dragging";
+        if (dragging && hasState("dragging"))
+            return "dragging";

         if (selected && showsCaret && hasState("selectedAndShowsCaret"))
-			return "selectedAndShowsCaret";
+            return "selectedAndShowsCaret";

         if (hovered && showsCaret && hasState("hoveredAndShowsCaret"))
             return "hoveredAndShowsCaret";


Don't continue firing labels if updateFrame is interrupted

Also some API & variable-naming cleanup in Movie

--- runtime/src/main/as/flump/display/Movie.as
+++ runtime/src/main/as/flump/display/Movie.as
@@ -47,16 +47,16 @@
         if (src.flipbook) {
             _layers = new Vector.<Layer>(1, true);
             _layers[0] = new Layer(this, src.layers[0], library, /*flipbook=*/true);
-            _frames = src.layers[0].frames;
+            _numFrames = src.layers[0].frames;
         } else {
             _layers = new Vector.<Layer>(src.layers.length, true);
             for (var ii :int = 0; ii < _layers.length; ii++) {
                 _layers[ii] = new Layer(this, src.layers[ii], library, /*flipbook=*/false);
-                _frames = Math.max(src.layers[ii].frames, _frames);
-            }
-        }
-        _duration = _frames / _frameRate;
-        updateFrame(0, /*fromSkip=*/true, /*overDuration=*/false);
+                _numFrames = Math.max(src.layers[ii].frames, _numFrames);
+            }
+        }
+        _duration = _numFrames / _frameRate;
+        updateFrame(0, 0);

         // When we're removed from the stage, remove ourselves from any juggler animating us.
         addEventListener(Event.REMOVED_FROM_STAGE, function (..._) :void {
@@ -68,7 +68,7 @@
     public function get frame () :int { return _frame; }

     /** @return the number of frames in the movie. */
-    public function get frames () :int { return _frames; }
+    public function get frames () :int { return _numFrames; }

     /** @return true if the movie is currently playing. */
     public function get isPlaying () :Boolean { return _playing; }
@@ -98,7 +98,7 @@
      */
     public function goTo (position :Object) :Movie {
         const frame :int = extractFrame(position);
-        updateFrame(frame, /*fromSkip=*/true, /*overDuration=*/false);
+        updateFrame(frame, 0);
         return this;
     }

@@ -135,16 +135,14 @@

         // If _playTime is very close to _duration, rounding error can cause us to
         // land on lastFrame + 1. Protect against that.
-        var newFrame :int = Math.min(int(_playTime * _frameRate), _frames - 1);
-
-        const overDuration :Boolean = dt >= _duration;
-
-        // If the update crosses or goes to the stopFrame, go to the stop frame, stop the movie and
-        // clear it
+        var newFrame :int = Math.min(int(_playTime * _frameRate), _numFrames - 1);
+
+        // If the update crosses or goes to the stopFrame:
+        // go to the stopFrame, stop the movie, clear the stopFrame
         if (_stopFrame != NO_FRAME) {
             // how many frames remain to the stopframe?
             var framesRemaining :int =
-                (_frame <= _stopFrame ? _stopFrame - _frame : _frames - _frame + _stopFrame);
+                (_frame <= _stopFrame ? _stopFrame - _frame : _numFrames - _frame + _stopFrame);
             var framesElapsed :int = int(actualPlaytime * _frameRate) - _frame;
             if (framesElapsed >= framesRemaining) {
                 _playing = false;
@@ -152,7 +150,7 @@
                 _stopFrame = NO_FRAME;
             }
         }
-        updateFrame(newFrame, false, overDuration);
+        updateFrame(newFrame, dt);

         for (var ii :int = 0; ii < this.numChildren; ++ii) {
             var child :DisplayObject = getChildAt(ii);
@@ -173,20 +171,30 @@
         throw new Error("No such label '" + label + "'");
     }

-    /** @private */
-    protected function updateFrame (newFrame :int, fromSkip :Boolean, overDuration :Boolean) :void {
-        if (newFrame >= _frames) {
+    /**
+     * @private
+     *
+     * @param dt the timeline's elapsed time since the last update. This should be 0
+     * for updates that are the result of a "goTo" call.
+     */
+    protected function updateFrame (newFrame :int, dt :Number) :void {
+        if (newFrame >= _numFrames) {
             throw new Error("Asked to go to frame " + newFrame + " past the last frame, " +
-                (_frames - 1));
-        }
-        if (_goingToFrame) {
+                (_numFrames - 1));
+        }
+
+        if (_isUpdatingFrame) {
             _pendingFrame = newFrame;
             return;
-        }
-        _goingToFrame = true;
-        const differentFrame :Boolean = newFrame != _frame;
-        const wrapped :Boolean = newFrame < _frame;
-        if (differentFrame) {
+        } else {
+            _pendingFrame = NO_FRAME;
+            _isUpdatingFrame = true;
+        }
+
+        const isGoTo :Boolean = (dt <= 0);
+        const wrapped :Boolean = (dt >= _duration) || (newFrame < _frame);
+
+        if (newFrame != _frame) {
             if (wrapped) {
                 for each (var layer :Layer in _layers) {
                     layer.changedKeyframe = true;
@@ -196,40 +204,54 @@
             for each (layer in _layers) layer.drawFrame(newFrame);
         }

-        // Update the frame before firing, so if firing changes the frame, it sticks.
+        if (isGoTo) _playTime = newFrame / _frameRate;
+
+        // Update the frame before firing frame label signals, so if firing changes the frame,
+        // it sticks.
         const oldFrame :int = _frame;
         _frame = newFrame;
-        if (fromSkip) {
-            fireLabels(newFrame, newFrame);
-            _playTime = newFrame/_frameRate;
-        } else if (overDuration) {
-            fireLabels(oldFrame + 1, _frames - 1);
-            fireLabels(0, _frame);
-        } else if (differentFrame) {
-            if (wrapped) {
-                fireLabels(oldFrame + 1, _frames - 1);
-                fireLabels(0, _frame);
-            } else fireLabels(oldFrame + 1, _frame);
-        }
-        _goingToFrame = false;
+
+        // determine which labels to fire signals for
+        var startFrame :int;
+        var frameCount :int;
+        if (isGoTo) {
+            startFrame = newFrame;
+            frameCount = 1;
+        } else {
+            startFrame = (oldFrame + 1 < _numFrames ? oldFrame + 1 : 0);
+            frameCount = (_frame - oldFrame);
+            if (wrapped) frameCount += _numFrames;
+        }
+
+        // Fire signals. Stop if pendingFrame is updated, which indicates that the client
+        // has called goTo()
+        var frameIdx :int = startFrame;
+        for (var ii :int = 0; ii < frameCount; ++ii) {
+            if (_pendingFrame != NO_FRAME) break;
+
+            if (_labels[frameIdx] != null) {
+                for each (var label :String in _labels[frameIdx]) {
+                    labelPassed.dispatch(label);
+                    if (_pendingFrame != NO_FRAME) break;
+                }
+            }
+
+            // avoid modulo division by updating frameIdx each time through the loop
+            if (++frameIdx == _numFrames) {
+                frameIdx = 0;
+            }
+        }
+
+        _isUpdatingFrame = false;
+        // If we were interrupted by a goTo(), update to that frame now.
         if (_pendingFrame != NO_FRAME) {
             newFrame = _pendingFrame;
-            _pendingFrame = NO_FRAME;
-            updateFrame(newFrame, true, false);
-        }
-
-    }
-
-    /** @private */
-    protected function fireLabels (startFrame :int, endFrame :int) :void {
-        for (var ii :int = startFrame; ii <= endFrame; ii++) {
-            if (_labels[ii] == null) continue;
-            for each (var label :String in _labels[ii]) labelPassed.dispatch(label);
-        }
-    }
-
-    /** @private */
-    protected var _goingToFrame :Boolean;
+            updateFrame(newFrame, 0);
+        }
+    }
+
+    /** @private */
+    protected var _isUpdatingFrame :Boolean;
     /** @private */
     protected var _pendingFrame :int = NO_FRAME;
     /** @private */
@@ -241,7 +263,7 @@
     /** @private */
     protected var _layers :Vector.<Layer>;
     /** @private */
-    protected var _frames :int;
+    protected var _numFrames :int;
     /** @private */
     protected var _frameRate :Number;
     /** @private */


changed altitude of spawned drone

changed altitude of spawned drone

--- DroneAnarchy/Resources/Scripts/Drone.as
+++ DroneAnarchy/Resources/Scripts/Drone.as
@@ -19,8 +19,8 @@
 		}
 	}

-	void Start(){}
-
+	void Start(){}
+
 	void DelayedStart()
 	{
 		SubscribeToEvent(node, "NodeCollision", "HandleNodeCollision");
@@ -93,7 +93,7 @@
 		float nodeYaw = Random(360);
 		Quaternion rot = Quaternion(0,nodeYaw, 0);

-		node.SetTransform(rot * Vector3(0,3,40), rot);
+		node.SetTransform(rot * Vector3(0,4,40), rot);
 		//node.rotation = Quaternion(0,nodeYaw, 0);
 		//node.Translate(Vector3(0,7,40));
 	}
@@ -110,7 +110,7 @@
 		ValueAnimation@ valAnim = ValueAnimation();

 		valAnim.SetKeyFrame(0.0f, Variant(node.position));
-		valAnim.SetKeyFrame(90.0f, Variant(node.rotation * Vector3(0,5,-35)));
+		valAnim.SetKeyFrame(20.0f, Variant(node.rotation * Vector3(0,4,-35)));
 		node.SetAttributeAnimation("Position", valAnim);
 	}


- Planted the TextField constants here. You know: thee ones that Adobe
  thought it would be fun for everyone to guess.
- Added a static method to track TextFields and ensure that only
  one of those tracked ever has a selection.
- On linux, automatically put selected text (in one of these tracked
  TextFields) into the clipboard. Untested: it at least doesn't work with
  the standalone player.

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

--- src/as/com/threerings/flash/TextFieldUtil.as
+++ src/as/com/threerings/flash/TextFieldUtil.as
@@ -1,6 +1,12 @@
 package com.threerings.flash {

+import flash.events.Event;
+import flash.events.MouseEvent;
+
 import flash.filters.GlowFilter;
+
+import flash.system.Capabilities;
+import flash.system.System;

 import flash.text.TextField;
 import flash.text.TextFieldAutoSize;
@@ -10,14 +16,21 @@

 public class TextFieldUtil
 {
+    /** A fudge factor that must be added to a TextField's textWidth when setting the width. */
+    public static const WIDTH_PAD :int = 5;
+
+    /** A fudge factor that must be added to a TextField's textHeight when setting the height. */
+    public static const HEIGHT_PAD :int = 4;
+
     /**
      * Create a TextField.
      *
      * args: contains properties with which to initialize the TextField
      */
-    public static function createField (text :String, args :Object = null) :TextField
+    public static function createField (
+        text :String, args :Object = null, clazz :Class = null) :TextField
     {
-        var tf :TextField = new TextField();
+        var tf :TextField = (clazz == null) ? new TextField() : TextField(new clazz());
         tf.background = getArg(args, "background", false);
         tf.border = getArg(args, "border", false);
         tf.multiline = getArg(args, "multiline", false);
@@ -61,6 +74,65 @@
         return f;
     }

+    /**
+     * Include the specified TextField in a set of TextFields in which only
+     * one may have a selection at a time.
+     */
+    public static function trackSingleSelectable (textField :TextField) :void
+    {
+        textField.addEventListener(MouseEvent.MOUSE_MOVE, handleTrackedSelection);
+
+        // immediately put the kibosh on any selection
+        textField.setSelection(0, 0);
+    }
+
+    /**
+     * Internal method related to tracking a single selectable TextField.
+     */
+    protected static function handleTrackedSelection (event :MouseEvent) :void
+    {
+        if (event.buttonDown) {
+            var field :TextField = event.target as TextField;
+            if (field == _lastSelected) {
+                updateSelection(field);
+
+            } else if (field.selectionBeginIndex != field.selectionEndIndex) {
+                // clear the last one..
+                if (_lastSelected != null) {
+                    handleLastSelectedRemoved();
+                }
+                _lastSelected = field;
+                _lastSelected.addEventListener(Event.REMOVED_FROM_STAGE, handleLastSelectedRemoved);
+                updateSelection(field);
+            }
+        }
+    }
+
+    /**
+     * Process the selection.
+     */
+    protected static function updateSelection (field :TextField) :void
+    {
+        if (-1 != Capabilities.os.indexOf("Linux")) {
+            var str :String = field.text.substring(
+                field.selectionBeginIndex, field.selectionEndIndex);
+            System.setClipboard(str);
+        }
+    }
+
+    /**
+     * Internal method related to tracking a single selectable TextField.
+     */
+    protected static function handleLastSelectedRemoved (... ignored) :void
+    {
+        _lastSelected.setSelection(0, 0);
+        _lastSelected.removeEventListener(Event.REMOVED_FROM_STAGE, handleLastSelectedRemoved);
+        _lastSelected = null;
+    }
+
+    /**
+     * Utility function for createTextField() and createFormat().
+     */
     protected static function getArg (args :Object, name :String, defVal :* = undefined) :*
     {
         if (args != null && (name in args)) {
@@ -68,5 +140,8 @@
         }
         return defVal;
     }
+
+    /** The last tracked TextField to be selected. */
+    protected static var _lastSelected :TextField;
 }
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 19742
Author:   chiedozi@adobe.com
Date:     2011-01-13T19:33:44.958417Z

Log Message:
-----------
ViewNavigatorApplications now properly update the orientation of a View after a suspended application is relaunched in a different orientaiton.
Fixed a bug where Views weren't being reactivated after an application was relaunched after being suspended.

QE notes:
Doc notes:
Bugs: SDK-29099, SDK-29095
Reviewer: Evtim
Tests run:
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/ViewNavigatorApplication.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/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
+++ frameworks/projects/mobilecomponents/src/spark/components/TabbedViewNavigatorApplication.as
@@ -21,9 +21,9 @@
 import mx.core.mx_internal;
 import mx.utils.BitFlagUtil;

-import spark.components.supportClasses.ViewNavigatorApplicationBase;
 import spark.components.supportClasses.NavigationStack;
 import spark.components.supportClasses.ViewDescriptor;
+import spark.components.supportClasses.ViewNavigatorApplicationBase;
 import spark.components.supportClasses.ViewNavigatorBase;

 use namespace mx_internal;
@@ -306,6 +306,18 @@
     {
         super.invokeHandler(event);

+        // If the navigator and view are created, this means that the application
+        // is restoring its state after being suspended by the operating system.
+        // In this case, the activeView is currently deactivated and it orientation
+        // state could potentially be wrong.  Wait for the next stage resize event
+        // so that the runtime has a chance to discover its orientation and then
+        // properly update and activate the view
+        if (navigator)
+        {
+            if (navigator.activeView)
+                systemManager.stage.addEventListener(Event.RESIZE, stage_resizeHandler);
+        }
+
         // Set the stage focus to the navigator's active view
         if (systemManager.stage.focus == null && navigator)
         {
@@ -314,6 +326,22 @@
             else
                 systemManager.stage.focus = navigator;
         }
+    }
+
+    /**
+     *  @private
+     *  This method is called on the first resize event after an application
+     *  has been invoked after being suspended in the background.
+     */
+    private function stage_resizeHandler(event:Event):void
+    {
+        systemManager.stage.removeEventListener(Event.RESIZE, stage_resizeHandler);
+
+        // The active view was deactivated when the application was suspended.  We
+        // need to reactivate it here.
+        var view:View = navigator.activeView;;
+        if (!view.isActive)
+            view.setActive(true);
     }

     /**


Toggle lights out buttons by clicking the controller button when hovering the button.


Transferred from the Adobe Open Source Subversion Repository

Revision: 16064
Author:   chaase@adobe.com
Date:     2010-05-12T15:37:49.345162Z

Log Message:
-----------
Initial checkin of "true autoReverse" feature. This feature adds no new API, but does add new behavior to the existing autoReverse property on Transition. Now, if autoReverse="true", any transition declared from/to the opposite states of the currently-requested state change can be used as a transition for this state change, played in reverse. This essentially means that you can author a single reverse for a forward direction and have the system play that transition in reverse for the opposite direction. Previously, you needed to author both directions, and take care to make them symmetric, in order to get them to play correctly when reversing in the middle. Note that if you author a *-to-* Transition (any to any), the new reversing behavior does nothing for you, because there is no way for the system to detect the forward (and thus the reverse) direction, so that transition will always play in the declared direction.
The main functionality needed to get this working was bolstering the currentSupport for playReversedFromEnd that already existed in Effect (along with the playReversed functionality in effect instances). There was also some timing engine details in Animation to make it work correctly, especially with startDelay.
Some work was done to make Fade work correctly when playing in reverse, though there is still a problem with some of the auto-fade functionality (fading items because of visible/parent changes between states) when the Fade effect has a startDelay.

QE notes: Tested on existing effects tests to make sure new behavior didn't break anything. But need new tests specifically around this new behavior.
Doc notes: Added new docs to Transition.autoReverse to describe the new behavior
Bugs: None
Reviewer: Corey
Tests run: checkintests, Mustella spark/effects, mx/effects
Is noteworthy for integration: No

Modified Paths:
--------------
<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/spark/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/Animate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/states/Transition.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/SequenceInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/effectClasses/ParallelInstance.as</path>

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

--- frameworks/projects/framework/src/mx/states/Transition.as
+++ frameworks/projects/framework/src/mx/states/Transition.as
@@ -172,8 +172,18 @@

     /**
      *  Whether the transition should automatically reverse itself
-     *  when the opposite state transition begins playing.
-     *
+     *  when the opposite state transition begins playing. Also, this flag
+     *  specifies whether a transition for the opposite state change can
+     *  be used, playing in reverse, if a transition for the reverse state change
+     *  does not exist. Transitions in the forward direction are of higher priority
+     *  and will be used if they exist, but if this flag is set, transitions
+     *  for the opposite direction will be used as a fallback. Note that
+     *  a transition will only be played in reverse if it is clearly a
+     *  reverse of the state change transition requested. For example, a
+     *  transition from * to * (any to any state) will always play in the
+     *  forward direction when used, because it qualifies as a valid transition
+     *  for any state change, so it will not trigger the reverse-playing logic.
+     *
      *
Flex does not currently play multiple transitions simultaneously.
      *  This means that when a new state transition occurs, if there
      *  is already one playing it is stopped by calling end()


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

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

 package mx.utils
 {