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

--- frameworks/projects/charts/src/mx/charts/GridLines.as
+++ frameworks/projects/charts/src/mx/charts/GridLines.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: 12859
Author:   jszeto@adobe.com
Date:     2009-12-11T19:57:39.056525Z

Log Message:
-----------
Masking bugs

SDK-24646 - Masking element on RIchText should inherit the target group's coordinate space
SDK-24559 - Using a mask with RichText doesn't work if you are using an MX Application

Fixed masking in RichText. The mask was not properly parented. Since we don't need to fake the parenting chain, we pass a null parent to MaskUtil.applyMask

Removed mask.parent check from MaskUtil.applyMask. It doesn't need this check.

Restored the mask initialization order in GraphicElement. Moved the addChild call back before the MaskUtil.applyMatirx call.

Updated GroupBase to call MaskUtil.applyMask.

QE notes: None
Doc notes: None
Bugs: SDK-24646, SDK-24559
Reviewer: Ryan
Tests run: checkintests, group, primitives
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/spark/src/spark/utils/MaskUtil.as</path>

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

--- frameworks/projects/spark/src/spark/utils/MaskUtil.as
+++ frameworks/projects/spark/src/spark/utils/MaskUtil.as
@@ -95,30 +95,26 @@
         if (!mask)
             return;

-        // If the mask is not parented, then we need to parent it.
-        if (!mask.parent)
+        var maskComp:UIComponent = mask as UIComponent;
+        if (maskComp)
         {
-            var maskComp:UIComponent = mask as UIComponent;
-            if (maskComp)
+            if (parent)
             {
-                if (parent)
-                {
-                    // Add the mask to the UIComponent document tree.
-                    // This is required to properly render the mask.
-                    UIComponent(parent).addingChild(maskComp);
-                    UIComponent(parent).childAdded(maskComp);
-                }
-
-                // Size the mask including its children so that it actually
-                // renders.
-                UIComponentGlobals.layoutManager.validateClient(maskComp, true);
-
-                // Call this to force the mask to complete initialization
-                maskComp.invalidateDisplayList();
-                maskComp.setActualSize(maskComp.getExplicitOrMeasuredWidth(),
-                    maskComp.getExplicitOrMeasuredHeight());
-            }
-        }
+                // Add the mask to the UIComponent document tree.
+                // This is required to properly render the mask.
+                UIComponent(parent).addingChild(maskComp);
+                UIComponent(parent).childAdded(maskComp);
+            }
+
+            // Size the mask including its children so that it actually
+            // renders.
+            UIComponentGlobals.layoutManager.validateClient(maskComp, true);
+
+            // Call this to force the mask to complete initialization
+            maskComp.invalidateDisplayList();
+            maskComp.setActualSize(maskComp.getExplicitOrMeasuredWidth(),
+                maskComp.getExplicitOrMeasuredHeight());
+        }
     }

     /**


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

--- frameworks/projects/spark/src/spark/utils/TextUtil.as
+++ frameworks/projects/spark/src/spark/utils/TextUtil.as
@@ -9,7 +9,7 @@
 //
 ////////////////////////////////////////////////////////////////////////////////

-package mx.utils
+package spark.utils
 {

 import flash.utils.describeType;
@@ -19,6 +19,7 @@
 import flashx.textLayout.elements.SpanElement;
 import flashx.textLayout.elements.TextFlow;
 import flashx.textLayout.formats.ITextLayoutFormat;
+import mx.utils.StringUtil;

 [ExcludeClass]


added "self load" mode

added "self load" mode

allow JS to delegate resource load back to AS3 and get notified on progress

--- src/org/hola/JSURLStream.as
+++ src/org/hola/JSURLStream.as
@@ -2,12 +2,12 @@
  * License, v. 2.0. If a copy of the MPL was not distributed with this
  * file, You can obtain one at http://mozilla.org/MPL/2.0/. */
 package org.hola {
-    import flash.events.Event;
-    import flash.events.IOErrorEvent;
-    import flash.events.ProgressEvent;
+    import flash.events.*;
     import flash.external.ExternalInterface;
     import flash.net.URLRequest;
     import flash.net.URLStream;
+    import flash.net.URLRequestHeader;
+    import flash.net.URLRequestMethod;
     import flash.utils.ByteArray;
     import flash.utils.getTimer;
     import flash.utils.Timer;
@@ -26,10 +26,13 @@
         private var _curr_data : Object;
         private var _hola_managed : Boolean = false;
         private var _req_id : String;
+        private var _self_load : Boolean = false;
+        private var _events : Object;
+        private var _size : Number;

         public function JSURLStream(){
             _hola_managed = HSettings.enabled && ExternalInterface.available;
-            addEventListener(Event.OPEN, onOpen);
+            addEventListener(Event.OPEN, onopen);
             super();
             if (!_hola_managed || js_api_inited)
                 return;
@@ -41,8 +44,8 @@
             js_api_inited = true;
         }

-        protected function _trigger(cb:String, data:Object) : void {
-            if (!_hola_managed)
+        protected function _trigger(cb : String, data : Object) : void {
+            if (!_hola_managed && !_self_load)
             {
                 // XXX arik: need ZErr.throw
                 ZErr.log('invalid trigger');
@@ -85,7 +88,7 @@
         }

         override public function close() : void {
-            if (_hola_managed)
+            if (_hola_managed || _self_load)
             {
                 if (reqs[_req_id])
                     _trigger('abortFragment', {req_id: _req_id});
@@ -110,7 +113,40 @@
             this.dispatchEvent(new Event(Event.OPEN));
         }

-        private function onOpen(event : Event) : void { _connected = true; }
+        private function onopen(e : Event) : void { _connected = true; }
+
+        private function onerror(e : ErrorEvent) : void {
+            _delete();
+            if (!_events.error)
+                return;
+            _trigger('onRequestEvent', {req_id: _req_id, event: 'error',
+                error: e.text, text: e.toString()});
+        }
+
+        private function onprogress(e : ProgressEvent) : void {
+            _size = e.bytesTotal;
+            if (!_events.progress)
+                return;
+            _trigger('onRequestEvent', {req_id: _req_id, event: 'progress',
+                loaded: e.bytesLoaded, total: e.bytesTotal,
+                text: e.toString()});
+        }
+
+        private function onstatus(e : HTTPStatusEvent) : void {
+            if (!_events.status)
+                return;
+            // XXX bahaa: get redirected/responseURL/responseHeaders
+            _trigger('onRequestEvent', {req_id: _req_id, event: 'status',
+                status: e.status, text: e.toString()});
+        }
+
+        private function oncomplete(e : Event) : void {
+            _delete();
+            if (!_events.complete)
+                return;
+            _trigger('onRequestEvent', {req_id: _req_id, event: 'complete',
+                size: _size, text: e.toString()});
+        }

         private function decode(str : String) : void {
             if (!str)
@@ -137,14 +173,14 @@
                 data.position = 0;
                 if (_resource)
                 {
-                    var prev:uint = _resource.position;
+                    var prev : uint = _resource.position;
                     data.readBytes(_resource, _resource.length);
                     _resource.position = prev;
                 }
                 else
                     _resource = data;
                 // XXX arik: get finalLength from js
-                var finalLength:uint = _resource.length;
+                var finalLength : uint = _resource.length;
                 dispatchEvent(new ProgressEvent( ProgressEvent.PROGRESS, false,
                     false, _resource.length, finalLength));
             }
@@ -153,20 +189,41 @@
                 resourceLoadingSuccess();
         }

+        private function self_load(o : Object) : void {
+            _self_load = true;
+            _hola_managed = false;
+            _events = o.events||{};
+            addEventListener(IOErrorEvent.IO_ERROR, onerror);
+            addEventListener(SecurityErrorEvent.SECURITY_ERROR, onerror);
+            addEventListener(ProgressEvent.PROGRESS, onprogress);
+            addEventListener(HTTPStatusEvent.HTTP_STATUS, onstatus);
+            addEventListener(Event.COMPLETE, oncomplete);
+            var req : URLRequest = new URLRequest(o.url);
+            req.method = o.method=="POST" ? URLRequestMethod.POST :
+                URLRequestMethod.GET;
+            // this doesn't seem to work. simply ignored
+            var headers : Object = o.headers||{};
+            for (var k : String in headers)
+                req.requestHeaders.push(new URLRequestHeader(k, headers[k]));
+            super.load(req);
+        }
+
         private function on_fragment_data(o : Object) : void {
             _curr_data = o;
+            if (o.self_load)
+                return self_load(o);
             if (o.error)
                 return resourceLoadingError();
             decode(o.data);
         }

-        protected static function hola_onFragmentData(o:Object):void{
-            var stream:JSURLStream;
+        protected static function hola_onFragmentData(o : Object) : void{
+            var stream : JSURLStream;
             try {
                 if (!(stream = reqs[o.req_id]))
                     throw new Error('req_id not found '+o.req_id);
                 stream.on_fragment_data(o);
-            } catch(err:Error){
+            } catch(err : Error){
                 ZErr.log('Error in hola_onFragmentData', ''+err,
                     ''+err.getStackTrace());
                 if (stream)
@@ -175,13 +232,17 @@
             }
         }

+        private function _delete() : void {
+            delete reqs[_req_id];
+        }
+
         protected function resourceLoadingError() : void {
-            delete reqs[_req_id];
+            _delete();
             dispatchEvent(new IOErrorEvent(IOErrorEvent.IO_ERROR));
         }

         protected function resourceLoadingSuccess() : void {
-            delete reqs[_req_id];
+            _delete();
             dispatchEvent(new Event(Event.COMPLETE));
         }
     }


TextFormat??bytes

TextFormat??bytes

--- as3/com/netease/protobuf/TextFormat.as
+++ as3/com/netease/protobuf/TextFormat.as
@@ -1,4 +1,4 @@
-// vim: tabstop=4 shiftwidth=4
+// vim: tabstop=4 shiftwidth=4

 // Copyright (c) 2011 , Yang Bo All rights reserved.
 //
@@ -291,6 +291,11 @@
 						if (enumRepeatedFieldDescriptor) {
 							printEnum(output, int(value),
 									enumRepeatedFieldDescriptor.enumType)
+						} else if (
+								fieldDescriptor is FieldDescriptor$TYPE_BYTES ||
+								fieldDescriptor is
+										RepeatedFieldDescriptor$TYPE_BYTES) {
+							printBytes(output, ByteArray(value))
 						} else {
 							output.writeUTFBytes(value.toString())
 						}
@@ -639,6 +644,9 @@
 				} else {
 					fieldDescriptor = Object(message).constructor[
 							name.toUpperCase()]
+					if (!fieldDescriptor) {
+						throw new IOError("Unknown field: " + name);
+					}
 				}
 			}
 			const repeatedFieldDescriptor:RepeatedFieldDescriptor =


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

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


Transferred from the Adobe Open Source Subversion Repository

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

--- frameworks/projects/mx/src/mx/skins/halo/ScrollTrackSkin.as
+++ frameworks/projects/mx/src/mx/skins/halo/ScrollTrackSkin.as
@@ -1,3 +1,13 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2004-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.skins.halo
 {


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

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 7532
Author:   hmuller@adobe.com
Date:     2009-06-03T19:26:24.727137Z

Log Message:
-----------

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

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

--- frameworks/projects/spark/src/spark/components/DataGroup.as
+++ frameworks/projects/spark/src/spark/components/DataGroup.as
@@ -677,7 +677,10 @@

         if(_layeringFlags & LAYERING_DIRTY)
         {
-            manageDisplayObjectLayers();
+            if (layout && layout.useVirtualLayout)
+                invalidateDisplayList();
+            else
+                manageDisplayObjectLayers();
         }

         if (typicalItemChanged)
@@ -981,6 +984,8 @@
         if (virtualLayoutUnderway)
         {
             finishVirtualLayout();
+            if(_layeringFlags & LAYERING_DIRTY)
+                manageDisplayObjectLayers();
             virtualLayoutUnderway = false;
         }
     }
@@ -1262,10 +1267,9 @@
                 insertIndex = index;

             // Quietly ignore invalid indices since they're typically caused
-            // by duplicate data items and Halo quietly ignore those
+            // by duplicate data items and Halo quietly ignored those
             if ((insertIndex >= 0) && (insertIndex < super.numChildren))
                 super.setChildIndex(child, insertIndex);
-
             return child;
         }
         else if (child.parent && child.parent is DataGroup)


Transferred from the Adobe Open Source Subversion Repository

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

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

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

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

--- frameworks/projects/spark/src/spark/components/TextInput.as
+++ frameworks/projects/spark/src/spark/components/TextInput.as
@@ -89,8 +89,8 @@
  *  TextInput is a text-entry control that lets users enter and edit
  *  a single line of uniformly-formatted text.
  *
- *
This Spark version of TextInput, which is new with Flex 4,
- *  makes use of the new Text Layout Framework (TLF) library,
+ *
This Spark version of TextInput
+ *  makes use of the Text Layout Framework (TLF) library,
  *  which in turn builds on the new Flash Text Engine (FTE) in Flash Player 10.
  *  In combination, they provide text editing with
  *  high-quality international typography.
@@ -131,18 +131,18 @@
  *  This RichEditableText can be accessed as the textDisplay
  *  object.

  *
- *
As a result of its RichEditableText using TLF, the Spark TextInput
- *  supports displaying left-to-right (LTR) text such as French,
- *  right-to-left (RTL) text such as Arabic, and bidirectional text
+ *
As a result of its RichEditableText using TLF, the Spark TextInput control
+ *  supports displaying left-to-right (LTR) text, such as French,
+ *  right-to-left (RTL) text, such as Arabic, and bidirectional text
  *  such as a French phrase inside of an Arabic one.
  *  If the predominant text direction is right-to-left,
- *  set the direction style to "rtl".
- *  The textAlign style defaults to "start",
+ *  set the direction style to rtl.
+ *  The textAlign style defaults to start,
  *  which makes the text left-aligned when direction
- *  is "ltr" and right-aligned when direction
- *  is "rtl".
+ *  is ltr and right-aligned when direction
+ *  is rtl.
  *  To get the opposite alignment,
- *  set textAlign to "end".

+ *  set textAlign to end.

  *
  *
Also as a result of using TLF, the Spark TextInput supports
  *  unlimited undo/redo within one editing session.
@@ -179,7 +179,7 @@
  *

  *  <s:TextInput
  *    Properties
- *    widthInChars=""
+ *    widthInChars="Calculated default"
  *
  *    Events
  *    enter="No default"


Transferred from the Adobe Open Source Subversion Repository

Revision: 16596
Author:   cframpto@adobe.com
Date:     2010-06-18T15:50:44.761276Z

Log Message:
-----------
The following changes apply to Spark DataGrid only.   Code reviews have been deferred until the implementation is closer to completion.

More work on ColumnHeaderBar.  It is no longer commented out in the DataGridSkin but if you have problems you can comment it out again.

checkintests pass

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ColumnHeaderBar.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/DefaultColumnHeaderRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/ColumnHeaderBarSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/GridContainerBase.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ColumnHeaderBarLayout.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/utils/MouseEventUtil.as</path>

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

--- frameworks/projects/spark/src/spark/utils/MouseEventUtil.as
+++ frameworks/projects/spark/src/spark/utils/MouseEventUtil.as
@@ -0,0 +1,163 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2008 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package spark.utils
+{
+
+    import flash.events.Event;
+    import flash.events.IEventDispatcher;
+    import flash.events.MouseEvent;
+
+    import mx.core.UIComponent;
+    import mx.events.SandboxMouseEvent;
+
+    [ExcludeClass]
+
+    /**
+     *  @private
+     *
+     *  Utilities to help with mouse event dispatching or event handling.
+     */
+    public class MouseEventUtil
+    {
+        include "../core/Version.as";
+
+        //--------------------------------------------------------------------------
+        //
+        //  Static Methods
+        //
+        //--------------------------------------------------------------------------
+
+        /**
+         *  Set up event listeners for a complete down-drag-up mouse gesture.
+         *
+         *  Add MOUSE_DOWN, MOUSE_MOVE, and MOUSE_UP listeners to the target component
+         *  which call the handleDown(), handleDrag(), and handleUp() functions respectively.
+         *
+         *  The handleDrag() method will be called for as long as the mouse button is down,
+         *  whenever the mouse is dragged within the stage.   The handleUp() method will be
+         *  called no matter where the mouse button is released, however a MouseEvent type argument
+         *  will only be provided if the button is released over the stage.
+         *
+         *  The handleDown() and handleDrag() functions are passed a single MouseEvent
+         *  argument, and the handleUp() is passed an Event which may be a MouseEvent
+         *  or a SandboxMouseEvent.  Typically handleUp() functions ignore their event
+         *  argument.
+         *
+         *  Any of the functions arguments can be null.
+         *
+         *  The implementation only adds MOUSE_MOVE and MOUSE_UP listeners in response
+         *  to a MOUSE_DOWN event.   Similarly, the implementation removes its MOUSE_MOVE
+         *  and MOUSE_UP listeners when it receives a MOUSE_UP event.
+         *
+         *  @param target A MOUSE_DOWN event on this component begins the down-drag-up gesture
+         *  @param handleDown A function with a MouseEvent parameter; called when the MOUSE_DOWN event occurs.
+         *  @param handleDrag A function with a MouseEvent parameter; called when the mouse moves with the button down.
+         *  @param handleUp A function with an Event parameter; called when the button is relesed.
+         *
+         *  @see #removeDownDragUpListeners
+         */
+        public static function addDownDragUpListeners(
+            target:UIComponent,
+            handleDown:Function,
+            handleDrag:Function,
+            handleUp:Function):void
+        {
+            var f:Function = function(e:Event):void
+            {
+                var sbr:IEventDispatcher;
+                switch(e.type)
+                {
+                    case MouseEvent.MOUSE_DOWN:
+                        if (e.isDefaultPrevented())
+                            break;
+                        handleDown(e);
+                        sbr = target.systemManager.getSandboxRoot();
+                        sbr.addEventListener(MouseEvent.MOUSE_MOVE, f, true);
+                        sbr.addEventListener(MouseEvent.MOUSE_UP, f, true );
+                        sbr.addEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
+                        // Add the mouse shield so we can drag over untrusted applications.
+                        target.systemManager.deployMouseShields(true);
+                        break;
+                    case MouseEvent.MOUSE_MOVE:
+                        handleDrag(e);
+                        break;
+                    case MouseEvent.MOUSE_UP:
+                        handleUp(e);
+                        sbr = target.systemManager.getSandboxRoot();
+                        sbr.removeEventListener(MouseEvent.MOUSE_MOVE, f, true);
+                        sbr.removeEventListener(MouseEvent.MOUSE_UP, f, true);
+                        sbr.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
+                        target.systemManager.deployMouseShields(false);
+                        break;
+                    case "removeHandler":
+                        target.removeEventListener("removeHandler", f);
+                        target.removeEventListener(MouseEvent.MOUSE_DOWN, f);
+                        sbr = target.systemManager.getSandboxRoot();
+                        sbr.removeEventListener(MouseEvent.MOUSE_MOVE, f, true);
+                        sbr.removeEventListener(MouseEvent.MOUSE_UP, f, true);
+                        sbr.removeEventListener(SandboxMouseEvent.MOUSE_UP_SOMEWHERE, f, true);
+                        target.systemManager.deployMouseShields(false);
+                        break;
+                }
+            }
+            target.addEventListener(MouseEvent.MOUSE_DOWN, f);
+            target.addEventListener("removeHandler", f);
+        }
+
+        /**
+         *  Removes the listeners added by a matching addDownDragUpListeners call.
+         *
+         *  @param target A MOUSE_DOWN event on this component begins the down-drag-up gesture
+         *  @param handleDown The listener for MOUSE_DOWN events
+         *  @param handleDrag The listener for MOUSE_MOVE events when the button is down.
+         *  @param handleUp The listener for MOUSE_UP events
+         *
+         *  @see #addDownDragUpListeners
+         */
+        public static function removeDownDragUpListeners(
+            target:UIComponent,
+            handleDown:Function,
+            handleDrag:Function,
+            handleUp:Function):void
+        {
+            target.dispatchEvent(
+                new RemoveHandlerEvent(handleDown, handleDrag, handleUp));
+        }
+
+        //--------------------------------------------------------------------------
+        //
+        //  Class properties
+        //
+        //--------------------------------------------------------------------------
+
+    }
+}
+
+/**
+ * Event used to remove the handlers associated with the press-drag-release
+ * gesture handlers.
+ */
+class RemoveHandlerEvent extends flash.events.Event
+{
+    public var handleDown:Function;
+    public var handleDrag:Function;
+    public var handleUp:Function;
+    public function RemoveHandlerEvent(handleDown:Function,
+                                       handleDrag:Function = null,
+                                       handleUp:Function = null)
+    {
+        this.handleDown = handleDown;
+        this.handleDown = handleDrag;
+        this.handleUp = handleUp;
+        super("removeHandler");
+    }
+}


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

--- frameworks/projects/charts/src/mx/charts/renderers/TriangleItemRenderer.as
+++ frameworks/projects/charts/src/mx/charts/renderers/TriangleItemRenderer.as
@@ -0,0 +1,205 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2009 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.charts.renderers
+{
+
+import flash.display.Graphics;
+import flash.geom.Rectangle;
+import mx.charts.chartClasses.GraphicsUtilities;
+import mx.graphics.IFill;
+import mx.graphics.IStroke;
+import mx.skins.ProgrammaticSkin;
+import mx.core.IDataRenderer;
+import mx.graphics.SolidColor;
+import mx.utils.ColorUtil;
+import mx.charts.ChartItem;
+
+/**
+ *  A simple chart itemRenderer implementation
+ *  that fills an upright triangle in its assigned area.
+ *  This class can be used as an itemRenderer for ColumnSeries, BarSeries, AreaSeries, LineSeries,
+ *  PlotSeries, and BubbleSeries objects.
+ *  It renders its area on screen using the fill and stroke styles
+ *  of its associated series.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
+ */
+public class TriangleItemRenderer extends ProgrammaticSkin implements IDataRenderer
+{
+    include "../../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Class variables
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	private static var rcFill:Rectangle = new Rectangle();
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  Constructor.
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function TriangleItemRenderer()
+	{
+		super();
+	}
+
+//--------------------------------------------------------------------------
+    //
+    //  Properties
+    //
+    //--------------------------------------------------------------------------
+
+    //----------------------------------
+	//  data
+    //----------------------------------
+
+	/**
+	 *  @private
+	 *  Storage for the data property.
+	 */
+	private var _data:Object;
+
+	[Inspectable(environment="none")]
+
+	/**
+	 *  The chartItem that this itemRenderer is displaying.
+	 *  This value is assigned by the owning series
+	 *
+	 *  @langversion 3.0
+	 *  @playerversion Flash 9
+	 *  @playerversion AIR 1.1
+	 *  @productversion Flex 3
+	 */
+	public function get data():Object
+	{
+		return _data;
+	}
+
+	/**
+	 *  @private
+	 */
+	public function set data(value:Object):void
+	{
+		if (_data == value)
+			return;
+		_data = value;
+
+	}
+
+
+    //--------------------------------------------------------------------------
+    //
+    //  Overridden methods
+    //
+    //--------------------------------------------------------------------------
+
+	/**
+	 *  @private
+	 */
+	override protected function updateDisplayList(unscaledWidth:Number,
+												  unscaledHeight:Number):void
+	{
+		super.updateDisplayList(unscaledWidth, unscaledHeight);
+
+		var fill:IFill;
+		var state:String = "";
+
+		if (_data is ChartItem && _data.hasOwnProperty('fill'))
+		{
+			fill = _data.fill;
+			state = _data.currentState;
+		}
+		else
+		 	fill = GraphicsUtilities.fillFromStyle(getStyle('fill'));
+
+   		var color:uint;
+		var adjustedRadius:Number = 0;
+
+		switch (state)
+		{
+			case ChartItem.FOCUSED:
+			case ChartItem.ROLLOVER:
+				if (styleManager.isValidStyleValue(getStyle('itemRollOverColor')))
+					color = getStyle('itemRollOverColor');
+				else
+					color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-20);
+				fill = new SolidColor(color);
+				adjustedRadius = getStyle('adjustedRadius');
+				if (!adjustedRadius)
+					adjustedRadius = 0;
+				break;
+			case ChartItem.DISABLED:
+				if (styleManager.isValidStyleValue(getStyle('itemDisabledColor')))
+					color = getStyle('itemDisabledColor');
+				else
+					color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),20);
+				fill = new SolidColor(GraphicsUtilities.colorFromFill(color));
+				break;
+			case ChartItem.FOCUSEDSELECTED:
+			case ChartItem.SELECTED:
+				if (styleManager.isValidStyleValue(getStyle('itemSelectionColor')))
+					color = getStyle('itemSelectionColor');
+				else
+					color = ColorUtil.adjustBrightness2(GraphicsUtilities.colorFromFill(fill),-30);
+				fill = new SolidColor(color);
+				adjustedRadius = getStyle('adjustedRadius');
+				if (!adjustedRadius)
+					adjustedRadius = 0;
+				break;
+		}
+
+		var stroke:IStroke = getStyle("stroke");
+
+		var w:Number = stroke ? stroke.weight / 2 : 0;
+
+		var cx:Number = unscaledWidth / 2;
+
+		rcFill.left = rcFill.left - adjustedRadius;
+		rcFill.top = rcFill.top - adjustedRadius
+		rcFill.right = unscaledWidth + adjustedRadius;
+		rcFill.bottom = unscaledHeight + adjustedRadius;
+
+		var g:Graphics = graphics;
+		g.clear();
+		g.moveTo(w, w);
+		if (stroke)
+			stroke.apply(g,null,null);
+		g.moveTo(w - adjustedRadius, unscaledHeight - w + adjustedRadius);
+		if (fill)
+			fill.begin(g, rcFill,null);
+		g.lineTo(cx, w - adjustedRadius);
+		g.lineTo(unscaledWidth - w + adjustedRadius, unscaledHeight - w + adjustedRadius);
+		g.lineTo(w - adjustedRadius, unscaledHeight - w + adjustedRadius);
+		if (fill)
+			fill.end(g);
+	}
+}
+
+}


Ye olde drive-by logging varargification.
Noticed that we aren't using a LRU Map for scene model storage,
which could explain client flakiness after visiting lots of scenes...

git-svn-id: a3e1eb16dde062992de22c830ed8045c8013209a@866 c613c5cb-e716-0410-b11b-feb51c14d237

--- src/as/com/threerings/whirled/client/SceneDirector.as
+++ src/as/com/threerings/whirled/client/SceneDirector.as
@@ -135,13 +135,13 @@
     {
         // make sure the sceneId is valid
         if (sceneId < 0) {
-            log.warning("Refusing moveTo(): invalid sceneId " + sceneId + ".");
+            log.warning("Refusing moveTo(): invalid sceneId", "sceneId", sceneId);
             return false;
         }

         // sanity-check the destination scene id
         if (sceneId == _sceneId) {
-            log.warning("Refusing request to move to the same scene [sceneId=" + sceneId + "].");
+            log.warning("Refusing request to move to the same scene", "sceneId", sceneId);
             return false;
         }

@@ -174,13 +174,13 @@
         // complain if we're over-writing a pending request
         if (_pendingData != null) {
             if (refuse) {
-                log.warning("Refusing moveTo; We have a request outstanding " +
-                            "[psid=" + _pendingData.sceneId + ", nsid=" + sceneId + "].");
+                log.warning("Refusing moveTo; We have a request outstanding",
+                    "psid", _pendingData.sceneId, "nsid", sceneId);
                 return false;

             } else {
-                log.warning("Overriding stale moveTo request [psid=" + _pendingData.sceneId +
-                            ", nsid=" + sceneId + "].");
+                log.warning("Overriding stale moveTo request",
+                    "psid", _pendingData.sceneId, "nsid", sceneId);
             }
         }

@@ -221,8 +221,8 @@

         // make the pending scene the active scene
         if (_pendingData == null) {
-            log.warning("Aiya! Scene move succeeded but we have no pending data! " +
-                        "[prevId=" + _previousSceneId + "].");
+            log.warning("Aiya! Scene move succeeded but we have no pending data!",
+                "prevId", _previousSceneId);
             return;
         }
         _sceneId = _pendingData.sceneId;
@@ -235,7 +235,7 @@

         // complain if we didn't find a scene
         if (_model == null) {
-            log.warning("Aiya! Unable to load scene [sid=" + _sceneId + ", plid=" + placeId + "].");
+            log.warning("Aiya! Unable to load scene", "sid", _sceneId, "plid", placeId);
             return;
         }

@@ -247,8 +247,7 @@
     public function moveSucceededWithUpdates (
         placeId :int, config :PlaceConfig, updates :TypedArray) :void
     {
-        log.info("Got updates [placeId=" + placeId + ", config=" + config +
-                 ", updates=" + updates + "].");
+        log.info("Got updates", "placeId", placeId, "config", config, "updates", updates);

         // apply the updates to our cached scene
         var model :SceneModel = loadSceneModel(_pendingData.sceneId);
@@ -257,8 +256,8 @@
             try {
                 update.validate(model);
             } catch (ise :IllegalOperationError) {
-                log.warning("Scene update failed validation [model=" + model +
-                            ", update=" + update + ", error=" + ise.message + "].");
+                log.warning("Scene update failed validation",
+                    "model", model, "update", update, "error", ise.message);
                 failure = true;
                 break;
             }
@@ -266,9 +265,7 @@
             try {
                 update.apply(model);
             } catch (e :Error) {
-                log.warning("Failure applying scene update [model=" + model +
-                            ", update=" + update + "].");
-                log.logStackTrace(e);
+                log.warning("Failure applying scene update", "model", model, "update", update, e);
                 failure = true;
                 break;
             }
@@ -279,9 +276,8 @@
             try {
                 _screp.deleteSceneModel(_pendingData.sceneId);
             } catch (ioe :IOError) {
-                log.warning("Failure removing booched scene model " +
-                            "[sceneId=" + _pendingData.sceneId + "].");
-                log.logStackTrace(ioe);
+                log.warning("Failure removing booched scene model",
+                    "sceneId", _pendingData.sceneId, ioe);
             }

             // act as if the scene move failed, though we'll be in a funny state because the server
@@ -302,8 +298,9 @@
     public function moveSucceededWithScene (
         placeId :int, config :PlaceConfig, model :SceneModel) :void
     {
-        log.info("Got updated scene model [placeId=" + placeId + ", config=" + config +
-                 ", scene=" + model.sceneId + "/" + model.name + "/" + model.version + "].");
+        log.info("Got updated scene model",
+            "placeId", placeId, "config", config,
+            "scene", model.sceneId + "/" + model.name + "/" + model.version);

         // update the model in the repository
         persistSceneModel(model);
@@ -318,8 +315,7 @@
     // from interface SceneService_SceneMoveListener
     public function moveRequiresServerSwitch (hostname :String, ports :TypedArray) :void
     {
-        log.info("Scene switch requires server switch [host=" + hostname +
-                 ", ports=" + ports + "].");
+        log.info("Scene switch requires server switch", "host", hostname, "ports", ports);
         // keep track of our current pending data because it will be cleared when we log off of
         // this server and onto the next one
         var pendingData :PendingData = _pendingData;
@@ -389,7 +385,7 @@
     // documentation inherited from interface
     public function forcedMove (sceneId :int) :void
     {
-        log.info("Moving at request of server [sceneId=" + sceneId + "].");
+        log.info("Moving at request of server", "sceneId", sceneId);

         // clear out our old scene and place data
         didLeaveScene();
@@ -405,9 +401,8 @@
     {
         if (_moveHandler != null) {
             log.warning("Requested to set move handler, but we've already got one. The " +
-                        "conflicting entities will likely need to perform more sophisticated " +
-                        "coordination to deal with failures. [old=" + _moveHandler +
-                        ", new=" + handler + "].");
+                "conflicting entities will likely need to perform more sophisticated " +
+                "coordination to deal with failures.", "old", _moveHandler, "new", handler);

         } else {
             _moveHandler = handler;
@@ -514,7 +509,7 @@

             } catch (ioe :IOError) {
                 // complain first, then return null
-                log.warning("Error loading scene [scid=" + sceneId + ", error=" + ioe + "].");
+                log.warning("Error loading scene", "scid", sceneId, "error", ioe);
             }
         }

@@ -529,9 +524,8 @@
         try {
             _screp.storeSceneModel(model);
         } catch (ioe :IOError) {
-            log.warning("Failed to update repository with updated scene [sceneId=" + model.sceneId +
-                        ", nvers=" + model.version + "].");
-            log.logStackTrace(ioe);
+            log.warning("Failed to update repository with updated scene",
+                "sceneId", model.sceneId, "nvers", model.version, ioe);
         }
     }


renamed any remainging references to propertyFilterFunction as mappingFunction is more accurate to function performed

--- src/org/osflash/signals/natives/NativeMappedSignal.as
+++ src/org/osflash/signals/natives/NativeMappedSignal.as
@@ -179,12 +179,12 @@
 			return _valueClasses.length == 1 && _valueClasses[0] == Array;
 		}

-		protected function get propertyFilterFunctionWantsEvent():Boolean
+		protected function get mappingFunctionWantsEvent():Boolean
 		{
 			return _mappingFunction.length == 1;
 		}

-		protected function get propertyFilterFunctionExists():Boolean
+		protected function get mappingFunctionExists():Boolean
 		{
 			return _mappingFunction != null
 		}
@@ -207,9 +207,9 @@
 		 */
 		protected function mapEvent (eventFromTarget:Event):Object
 		{
-			if (propertyFilterFunctionExists)
-			{
-				if (propertyFilterFunctionWantsEvent)
+			if (mappingFunctionExists)
+			{
+				if (mappingFunctionWantsEvent)
 				{
 					return _mappingFunction(eventFromTarget);
 				}
@@ -224,7 +224,7 @@
 			}

 			throw new ArgumentError("There are valueClasses set to be dispatched <" + valueClasses
-				+ "> but propertyFilterFunction is null.");
+				+ "> but mappingFunction is null.");
 		}
 	}
 }


Transferred from the Adobe Open Source Subversion Repository

Revision: 21377
Author:   smgilson@adobe.com
Date:     2011-06-13T16:36:00.843017Z

Log Message:
-----------
Fix three ASDoc bugs: SDK-30543, and Watson bugs 2770122 and 2876705

QE notes:
Doc notes:
Bugs: SDK-30543, 2770122, and 2876705
Reviewer:
Tests run: checkintests
Is noteworthy for integration:

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mx/src/mx/core/Application.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/rpc/src/mx/messaging/messages/MessagePerformanceUtils.as</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridColumn.as
@@ -1439,10 +1439,8 @@
      *  Returns a SortField that can be used to sort a collection by this
      *  column's dataField.
      *
-     *
If the sortCompareFunction property is defined,
-     *  the SortField's compare function is assigned to a closure around
-     *  the sortCompareFunction that uses the right signature
-     *  for the SortField and captures this column.

+     *
If the sortCompareFunction property is defined,
+     *  then the SortField's compareFunction is automatically set.

      *
      *
If the sortCompareFunction property is not defined
      *  and the dataField is complex, then the SortField's
@@ -1454,6 +1452,8 @@
      *  labelFunction property is defined, then it assigns the
      *  compareFunction to a closure that does a basic string compare
      *  on the labelFunction applied to the data objects.

+     *
+     *  @see spark.collections.SortField
      *
      *  @langversion 3.0
      *  @playerversion Flash 10


Transferred from the Adobe Open Source Subversion Repository

Revision: 18192
Author:   hmuller@adobe.com
Date:     2010-10-18T16:02:55.786560Z

Log Message:
-----------
Support for explicit GridLayers in Grid, DataGridSkin.

QE notes:
Doc notes:
Bugs:
Reviewer: Kevin
Tests run: checkin, mustella 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/Grid.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultGridHeaderRenderer.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/spark-manifest.xml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DataGridSkin.mxml</path>

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridLayout.as
@@ -157,7 +157,7 @@
         }

         return _embeddedFontRegistryExists;
-    }
+    }

     //--------------------------------------------------------------------------
     //
@@ -445,10 +445,18 @@
         visibleGridBounds.width = unscaledWidth;
         visibleGridBounds.height = unscaledHeight;

+        // Layers
+
+        const backgroundLayer:GridLayer = grid.getLayer("backgroundLayer");
+        const selectionLayer:GridLayer = grid.getLayer("selectionLayer");
+        const editorIndicatorLayer:GridLayer = grid.getLayer("editorIndicatorLayer");
+        const rendererLayer:GridLayer = grid.getLayer("rendererLayer");
+        const overlayLayer:GridLayer = grid.getLayer("overlayLayer");
+
         // Layout the columns and item renderers

 		layoutColumns(scrollX, scrollY, unscaledWidth);
-        layoutItemRenderers(grid.rendererLayer, scrollX, scrollY, unscaledWidth, unscaledHeight);
+        layoutItemRenderers(rendererLayer, scrollX, scrollY, unscaledWidth, unscaledHeight);

         // Update the content size.  Make sure that if the content spans partially
         // over a pixel to the right/bottom, the content size includes the whole pixel.
@@ -472,17 +480,17 @@

         // Layout the row backgrounds

-        visibleRowBackgrounds = layoutLinearElements(grid.rowBackground, grid.backgroundLayer,
+        visibleRowBackgrounds = layoutLinearElements(grid.rowBackground, backgroundLayer,
             visibleRowBackgrounds, oldVisibleRowIndices, visibleRowIndices, layoutRowBackground);

         // Layout the row and column separators.

         const lastRowIndex:int = paddedRowCount - 1;

-        visibleRowSeparators = layoutLinearElements(grid.rowSeparator, grid.overlayLayer,
+        visibleRowSeparators = layoutLinearElements(grid.rowSeparator, overlayLayer,
             visibleRowSeparators, oldVisibleRowIndices, visibleRowIndices, layoutRowSeparator, lastRowIndex);

-        visibleColumnSeparators = layoutLinearElements(grid.columnSeparator, grid.overlayLayer,
+        visibleColumnSeparators = layoutLinearElements(grid.columnSeparator, overlayLayer,
             visibleColumnSeparators, oldVisibleColumnIndices, visibleColumnIndices, layoutColumnSeparator, lastVisibleColumnIndex);

         // HACK
@@ -492,16 +500,16 @@

         // Layout the hoverIndicator, caretIndicator, and selectionIndicators

-        layoutHoverIndicator(grid.backgroundLayer);
-        layoutSelectionIndicators(grid.selectionLayer);
-        layoutCaretIndicator(grid.overlayLayer);
-        layoutEditorIndicator(grid.editorIndicatorLayer);
+        layoutHoverIndicator(backgroundLayer);
+        layoutSelectionIndicators(selectionLayer);
+        layoutCaretIndicator(overlayLayer);
+        layoutEditorIndicator(editorIndicatorLayer);

         // To avoid flashing, force all of the layers to render now

-        grid.backgroundLayer.root.validateNow();
-        grid.selectionLayer.root.validateNow();
-        grid.overlayLayer.root.validateNow();
+        backgroundLayer.validateNow();
+        selectionLayer.validateNow();
+        overlayLayer.validateNow();

         // The old visible row,column indices are no longer needed

@@ -571,6 +579,10 @@
 	 */
 	private function createTypicalItemRenderer(columnIndex:int):IGridItemRenderer
 	{
+        const rendererLayer:GridLayer = grid.getLayer("rendererLayer");
+        if (!rendererLayer)
+            return null;
+
 		var typicalItem:Object = grid.typicalItem;
 		if (typicalItem == null)
 			typicalItem = getDataProviderItem(0);
@@ -579,7 +591,7 @@
 		const factory:IFactory = itemToRenderer(column, typicalItem);
 		const renderer:IGridItemRenderer = allocateGridElement(factory) as IGridItemRenderer;

-		grid.rendererLayer.addGridElement(renderer);
+		rendererLayer.addElement(renderer);

 		initializeItemRenderer(renderer, 0 /* rowIndex */, columnIndex, grid.typicalItem, false);

@@ -606,7 +618,7 @@

         layoutItemRenderer(renderer, 0, 0, columnWidth, NaN);

-		grid.rendererLayer.removeGridElement(renderer);
+		rendererLayer.removeElement(renderer);

 		return renderer;
 	}
@@ -853,6 +865,9 @@

     private function layoutItemRenderers(rendererLayer:GridLayer, scrollX:Number, scrollY:Number, width:Number, height:Number):void
     {
+        if (!rendererLayer)
+            return;
+
         var rowIndex:int;
         var colIndex:int;

@@ -915,7 +930,7 @@

                     // Track which item renderers were created (uncommon) or recycled
                     // for the sake of the IGridItemRenderer prepare() method.
-
+
                     if (createdGridElement)
                     {
                         if (!createdItemRenderers)
@@ -926,10 +941,10 @@
                         allocatedItemRenderers.push(renderer);
                 }

-                rendererLayer.addGridElement(renderer);
-
+                rendererLayer.addElement(renderer);
                 newVisibleItemRenderers.push(renderer);
                 initializeItemRenderer(renderer, rowIndex, colIndex);
+
                 var colWidth:Number = gridDimensions.getColumnWidth(colIndex);
                 layoutItemRenderer(renderer, cellX, cellY, colWidth, rowHeight);

@@ -973,7 +988,7 @@
         }

         // Run the prepare() method for renderers created or recycled for this pass
-
+
         if (createdItemRenderers)
         {
             for each (var createdRenderer:IGridItemRenderer in createdItemRenderers)
@@ -1083,6 +1098,7 @@
             gridRenderer.column = gridColumn;
             if (dataItem == null)
                 dataItem = getDataProviderItem(rowIndex);
+
             gridRenderer.label = gridColumn.itemToLabel(dataItem);

             if (isRowSelectionMode())
@@ -1152,7 +1168,9 @@
         layoutFunction:Function,
         lastIndex:int = -1):Vector.<IVisualElement>
     {
-
+        if (!layer)
+            return new Vector.<IVisualElement>(0);
+
         // TBD(hmuller): if the factory for any of the oldVisible elements isn't
         // the specified factory (e.g. because factory is null) then
         // removeGridElement all of them.  Maybe add removeGridElements(factory).
@@ -1161,7 +1179,7 @@
         if (factory == null)
         {
             for each (var oldElt:IVisualElement in oldVisibleElements)
-                layer.removeGridElement(oldElt);
+                layer.removeElement(oldElt);

             return new Vector.<IVisualElement>(0);
         }
@@ -1195,7 +1213,7 @@

             newVisibleElements[index] = elt;

-            layer.addGridElement(elt);
+            layer.addElement(elt);

             elt.visible = true;

@@ -1218,7 +1236,7 @@
         if (factory == null)
         {
             for each (var oldElt:IVisualElement in oldVisibleElements)
-                layer.removeGridElement(oldElt);
+                layer.removeElement(oldElt);

             return new Vector.<IVisualElement>(0);
         }
@@ -1251,7 +1269,7 @@
                 newVisibleElements[index] = elt;
             }

-            layer.addGridElement(elt);
+            layer.addElement(elt);

             elt.visible = true;

@@ -1564,6 +1582,9 @@
         rowIndex:int,
         columnIndex:int):IVisualElement
     {
+        if (!layer)
+            return null;
+
         // If the indicatorFactory has changed for the specified non-null indicator,
         // then free the old indicator.

@@ -1593,7 +1614,7 @@
                 gridDimensions.getCellBounds(rowIndex, columnIndex);

             layoutGridElementR(indicator, bounds);
-            layer.addGridElement(indicator);
+            layer.addElement(indicator);
             indicator.visible = true;
         }

@@ -1655,7 +1676,7 @@
             const bounds:Rectangle = gridDimensions.getCellBounds(rowIndex, columnIndex);

             layoutGridElementR(editorIndicator, bounds);
-            layer.addGridElement(editorIndicator);
+            layer.addElement(editorIndicator);
             editorIndicator.visible = true;
         }

@@ -2302,6 +2323,10 @@
         if (visibleItemRenderer)
             return visibleItemRenderer;

+        const rendererLayer:GridLayer = grid.getLayer("rendererLayer");
+        if (!rendererLayer)
+            return null;
+
         // Create an item renderer.
         var dataItem:Object = getDataProviderItem(rowIndex);
         var column:GridColumn = getGridColumn(columnIndex);
@@ -2316,8 +2341,8 @@

         const factory:IFactory = itemToRenderer(column, dataItem);
         const renderer:IGridItemRenderer = factory.newInstance() as IGridItemRenderer;
-
-        grid.rendererLayer.addGridElement(renderer);
+
+        rendererLayer.addElement(renderer);

         initializeItemRenderer(renderer, rowIndex, columnIndex, dataItem, false);

@@ -2327,7 +2352,7 @@
             return null;
         layoutItemRenderer(renderer, bounds.x, bounds.y, bounds.width, bounds.height);

-        grid.rendererLayer.removeGridElement(renderer);
+        rendererLayer.removeElement(renderer);
         renderer.visible = false;

         return renderer;


fixed rotate/scale/move class

fixed rotate/scale/move class

--- AS3/int/app/core/action/RotatableScalable.as
+++ AS3/int/app/core/action/RotatableScalable.as
@@ -9,7 +9,7 @@
 	import flash.utils.getTimer;

-	public dynamic class RotatableScalable extends MovieClip
+	public dynamic class RotatableScalableRev extends MovieClip
 	{
 		public var blobs:Array;		// blobs we are currently interacting with
 		private var GRAD_PI:Number = 180.0 / 3.14159;
@@ -44,7 +44,9 @@
 		public var clickRadius:Number = 50;
 		public var lastClick:Number = 0;

-		public function RotatableScalable()
+		private var _rp:Point = new Point(0,0);
+
+		public function RotatableScalableRev()
 		{
 			state = "none";

@@ -72,8 +74,49 @@
 			dAng = 0;
 		}

+		public function setRegistration(x:Number=0, y:Number=0):void{
+			_rp = new Point(x, y);
+		}
+
+		public function setProperty2(prop:String, n:Number):void{
+			var a:Point = new Point();
+			var b:Point = new Point();
+			if(this.parent != null){
+				a = this.parent.globalToLocal(this.localToGlobal(_rp));
+				this[prop] = n;
+				b = this.parent.globalToLocal(this.localToGlobal(_rp));
+			}else{
+				a = this.localToGlobal(_rp);
+				this[prop] = n;
+				b = this.localToGlobal(_rp);
+			}
+			this.x -= b.x - a.x;
+			this.y -= b.y - a.y;
+		}
+
+		public function get x2():Number{
+			var p:Point = this.parent.globalToLocal(this.localToGlobal(_rp));
+			return p.x;
+		}
+
+		public function set x2(value:Number):void{
+			var p:Point = this.parent.globalToLocal(this.localToGlobal(_rp));
+			this.x += value - p.x;
+		}
+
+		public function get y2():Number{
+			var p:Point = this.parent.globalToLocal(this.localToGlobal(_rp));
+			return p.y;
+		}
+
+		public function set y2(value:Number):void{
+			var p:Point = this.parent.globalToLocal(this.localToGlobal(_rp));
+			this.y += value - p.y;
+		}
+
 		function addBlob(id:Number, origX:Number, origY:Number):void
 		{
+			trace(blobs.length);
 			for(var i=0; i<blobs.length; i++)
 			{
 				if(blobs[i].id == id)
@@ -112,6 +155,11 @@
 				blob2 = blobs[1];

 				var tuioobj1 = TUIO.getObjectById(blob1.id);
+				var tuioobj2 = TUIO.getObjectById(blob2.id);
+
+				var midPoint:Point = Point.interpolate(this.globalToLocal(new Point(tuioobj1.x, tuioobj1.y)),this.globalToLocal(new Point(tuioobj2.x, tuioobj2.y)),0.5);
+
+				setRegistration(midPoint.x,midPoint.y);

 				// if not found, then it must have died..
 				if(tuioobj1)
@@ -162,7 +210,6 @@
 					if(blobs.length >= 2) {
 						state = "rotatescale";

-						//trace(state);
 						curScale = this.scaleX;
 						curAngle = this.rotation;
 						curPosition.x = x;
@@ -176,7 +223,7 @@
 						// if not found, then it must have died..
 						if(tuioobj1)
 						{
-							var curPt1:Point = parent.globalToLocal(new Point(tuioobj1.x, tuioobj1.y));
+							curPt1 = parent.globalToLocal(new Point(tuioobj1.x, tuioobj1.y));
 							blob1.origX = curPt1.x;
 							blob1.origY = curPt1.y;
 						}
@@ -486,8 +533,8 @@
 					//var tmp = (curScale-newscale);
 					//trace(tmp);
 					//if(tmp >= 0.1 || tmp <= -0.1){
-					scaleX = newscale;
-					scaleY = newscale;
+					setProperty2('scaleX', newscale);
+					setProperty2('scaleY', newscale);
 					//}
 				}

@@ -508,22 +555,24 @@
 					//trace(this.rotation+'-----------------------o');
 					//trace(curAngle-oldAngle+'-----------------------a');
 					//if((curAngle-oldAngle)>=0.05 || (curAngle-oldAngle)<=-0.05){
-					rotation = curAngle + (ang2 - ang1);
+					setProperty2("rotation", curAngle + (ang2 - ang1));
 					//}
 				}

 //				x = curPt1.x - ((curLine.x / len2) * len3 * newscale);
 //				y = curPt1.y - ((curLine.y / len2) * len3 * newscale);

-				var oldX:Number, oldY:Number;
+				//var oldX:Number, oldY:Number;
 				oldX = x;
 				oldY = y;

 				if(!noMove)
 				{
 					//FIX THE WIGGLE
-					x = curPosition.x + (curCenter.x - centerOrig.x);
-					y = curPosition.y + (curCenter.y - centerOrig.y);
+					//x = curPosition.x + (curCenter.x - centerOrig.x);
+					//y = curPosition.y + (curCenter.y - centerOrig.y);
+					x2 = curCenter.x;
+					y2 = curCenter.y;
 				}


Change 20080206-bargull-8 by bargull@dell--p4--2-53 on 2008-02-06 22:35:31
    in /home/Admin/src/svn/openlaszlo/trunk
    for http://svn.openlaszlo.org/openlaszlo/trunk

Summary: improve swf cursor-handling

New Features: LPP-5411 - "SWF: make cursor work as in DHTML"

Bugs Fixed:

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

Documentation:

Release Notes:

Details:
make cursor more like in dhtml

Tests:

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

--- WEB-INF/lps/lfc/kernel/swf/LzSprite.as
+++ WEB-INF/lps/lfc/kernel/swf/LzSprite.as
@@ -1328,6 +1328,10 @@
   * it
   */
 LzSprite.prototype.setShowHandCursor = function ( s ){
+    if (!this.__LZbuttonRef) {
+        this.setClickable( true );
+    }
+
     if (this.__LZbuttonRef.but){
         this.__LZbuttonRef.but.useHandCursor = s;
     }
@@ -1337,21 +1341,33 @@
 /**
   * Sets the cursor to the given resource when the mouse is over this view
   * @param String cursor: The name of the resource to use as a cursor when it is over
-  * this view.
+  * this view. Or '' for default cursor.
   */
 LzSprite.prototype.setCursor = function( cursor ){
     if (cursor == null) return;

-    this._cures = cursor;
-    if (! this._moDel) {
-        this._moDel = new LzDelegate( this , '_cursorGotMouseover',
-                                            this.owner , 'onmouseover');
-        this._muDel = new LzDelegate( LzMouseKernel , 'unlock',
-                                            this.owner , 'onmouseout');
-    }
-
-    if (!this.__LZbuttonRef) {
-        this.setClickable( true );
+    if (cursor != '') {
+        this._cures = cursor;
+        if (! this._moDel) {
+            this._moDel = new LzDelegate( this , '_cursorGotMouseover',
+                                                this.owner , 'onmouseover');
+            this._muDel = new LzDelegate( LzMouseKernel , 'restoreCursor',
+                                                this.owner , 'onmouseout');
+        }
+
+        if (!this.__LZbuttonRef) {
+            this.setClickable( true );
+        }
+    } else {
+        LzMouseKernel.restoreCursor();
+
+        delete this._cures;
+        if (this._moDel) {
+            this._moDel.unregisterAll();
+            delete this._moDel;
+            this._muDel.unregisterAll();
+            delete this._muDel;
+        }
     }
 }


Abcdump: Print exception handler table after bytecode

--- utils/abcdump.as
+++ utils/abcdump.as
@@ -312,6 +312,15 @@
             return this[target] = "L" + (++count)
         }
     }
+
+    class ExceptionInfo
+    {
+        var from:int
+        var to:int
+        var target:int
+        var type
+        var name
+    }

     class MethodInfo extends MemberInfo
     {
@@ -328,6 +337,7 @@
         var code_offset:uint
         var code_length:uint
         var code:ByteArray
+        var exceptions // ExceptionInfo[]
         var activation:Traits

         public function toString():String
@@ -531,6 +541,11 @@
                     opSizes[opcode] = int(opSizes[opcode]) + size
                     dumpPrint(s)
                 }
+                if (exceptions) {
+                    for each (var ex in exceptions)
+                        dumpPrint(indent + "// handler [" + ex.from + ", " + ex.to + "] -> " + ex.target +
+                            (ex.name ? (" " + ex.name + ":" + ex.type) : (" :" + ex.type)));
+                }
                 dumpPrint(oldindent+"}\n")
             }

@@ -1132,16 +1147,21 @@
                     data.readBytes(m.code, 0, code_length)
                 }
                 var ex_count = readU32()
-                for (var j:int = 0; j < ex_count; j++)
-                {
-                    var from = readU32()
-                    var to = readU32()
-                    var target = readU32()
-                    var type = names[readU32()]
-                    //print("magic " + magic.toString(16))
-                    //if (magic >= (46<<16|16))
-                        var name = names[readU32()];
-                    infoPrint("exception method_id=" + i + " [" + from + ", " + to + "] " + type + " -> " + target)
+                if (ex_count > 0) {
+                    m.exceptions = []
+                    for (var j:int = 0; j < ex_count; j++)
+                    {
+                        var ex = new ExceptionInfo()
+                        m.exceptions.push(ex)
+                        ex.from = readU32()
+                        ex.to = readU32()
+                        ex.target = readU32()
+                        ex.type = names[readU32()]
+                        //print("magic " + magic.toString(16))
+                        //if (magic >= (46<<16|16))
+                            ex.name = names[readU32()];
+                        //infoPrint("exception method_id=" + i + " [" + ex.from + ", " + ex.to + "] " + ex.type + " -> " + ex.target)
+                    }
                 }
                 parseTraits(m.activation = new Traits)
             }


Transferred from the Adobe Open Source Subversion Repository

Revision: 5098
Author:   gauravj@adobe.com
Date:     2009-02-27T02:21:27.489350Z

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:
--------------
151 paths were modified

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

--- frameworks/projects/spark/src/spark/core/MaskType.as
+++ frameworks/projects/spark/src/spark/core/MaskType.as
@@ -14,6 +14,11 @@

 /**
  *  Defines the mask types available for a GraphicElement.
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 1.5
+ *  @productversion Flex 4
  */
 public final class MaskType
 {
@@ -21,11 +26,21 @@

     /**
      *  The mask either displays the pixel or doesn't. Strokes and bitmap filters are not used.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public static const CLIP:String = "clip";

     /**
      *  The mask respects opacity and uses the strokes and bitmap filters of the mask.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
      */
     public static const ALPHA:String = "alpha";
 }


step regexp correction

step regexp correction

git-svn-id: 4969af7a11582c80b682e8a73ed7b35a57fe0a9c@133742 3e83ccf1-c6ce-0310-9054-8fdb33cf0640

--- zucchini.lib/src/pl/ydp/automation/scripts/steps/impl/PressButtonStep.as
+++ zucchini.lib/src/pl/ydp/automation/scripts/steps/impl/PressButtonStep.as
@@ -18,7 +18,7 @@
 	{

 		public static const NAME:String = 'pressButton';
-		public static const PATTERN:RegExp = /I press {identifier}/;
+		public static const PATTERN:RegExp = /I press "{identifier}"/;

 		private var _buttonId:String;


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

--- frameworks/projects/automation_airspark/src/spark/automation/delegates/components/SparkWindowedApplicationAutomationImpl.as
+++ frameworks/projects/automation_airspark/src/spark/automation/delegates/components/SparkWindowedApplicationAutomationImpl.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 spark.automation.delegates.components
 {


removed unnecessary setStyle()

removed unnecessary setStyle()

--- WeaveUI/src/weave/visualization/tools/SimpleVisTool.as
+++ WeaveUI/src/weave/visualization/tools/SimpleVisTool.as
@@ -117,7 +117,6 @@

 			visTitle = new Paragraph();
 			visTitle.setStyle('textAlign', 'center');
-			visTitle.setStyle('fontWeight', 'bold');
 			updateTitleLabel();

 			visCanvas = new Canvas();


Changed the url from localhost to cidar1

--- VectorEditorStandalone/src/org/jbei/registry/mediators/MageBarMediator.as
+++ VectorEditorStandalone/src/org/jbei/registry/mediators/MageBarMediator.as
@@ -182,7 +182,7 @@
 			updateStatus(">> Processing ... Could Take Several Minutes");

 			// Create a new Post Request and add Variables to it
-			var merlinRequest:URLRequest = new URLRequest("http://localhost:8080/magelet/merlin");
+			var merlinRequest:URLRequest = new URLRequest("http://cidar1.bu.edu:8080/magelet/merlin");
 			var merlinVariables:URLVariables = new URLVariables();
 			merlinRequest.method = URLRequestMethod.POST;
 			merlinRequest.data = collectPostVariables(merlinVariables);
@@ -205,7 +205,7 @@
 			updateStatus(">> Processing ... Could Take Several Minutes");

 			// Create a new Post Request and add Variables to it
-			var mageRequest:URLRequest = new URLRequest("http://localhost:8080/magelet/optMAGE_1");//+servlet);
+			var mageRequest:URLRequest = new URLRequest("http://cidar1.bu.edu:8080/magelet/optMAGE_1");//+servlet);
 			var mageVariables:URLVariables = new URLVariables();
 			mageRequest.method = URLRequestMethod.POST;
 			mageRequest.data = collectPostVariables(mageVariables);
@@ -227,7 +227,7 @@

 			updateStatus(">> Connecting...");
 			//mageBar.mageStatus.text =  MageServerRequest.mageGET("/Mage_Test");
-			var mageRequest:URLRequest = new URLRequest("http://localhost:8080/magelet/optMAGE_1");//+servlet);
+			var mageRequest:URLRequest = new URLRequest("http://cidar1.bu.edu:8080/magelet/optMAGE_1");//+servlet);
 			var mageLoader:URLLoader = new URLLoader();
 			var mageVariables:URLVariables = new URLVariables();
 			var GETResponse : String =  ">> No Connection";


fixed bug where task wasn't being removed on dispose

--- WeaveCore/src/weave/core/LinkablePromise.as
+++ WeaveCore/src/weave/core/LinkablePromise.as
@@ -248,6 +248,7 @@

 		public function dispose():void
 		{
+			WeaveAPI.ProgressIndicator.removeTask(_groupedCallback);
 			_lazy = true;
 			_invalidated = true;
 			_asyncToken = null;


Transferred from the Adobe Open Source Subversion Repository

Revision: 153
Author:   proberts@adobe.com
Date:     2008-01-10T20:22:23.867658Z

Log Message:
-----------
Severity: ignore
Description: docs update -- added @productVersion tag to Flex AIR classes' class descriptions.

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeMenuEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/FlexHTMLLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMinimizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemHistoryButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowRestoreButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowMaximizeButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/StatusBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemTree.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/HTML.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/IWindow.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumeration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/WindowedSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemSizeDisplayMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FlexNativeWindowBoundsEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/AIREvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowBackground.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemList.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/events/FileEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FileSystemDataGrid.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/WindowCloseButtonSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/skins/halo/ApplicationTitleBarBackgroundSkin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/core/WindowedApplication.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/controls/FlexNativeMenu.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/mx/managers/NativeDragManagerImpl.as</path>

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

--- frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as
+++ frameworks/projects/airframework/src/mx/utils/DirectoryEnumerationMode.as
@@ -21,7 +21,9 @@
  *  for the enumerationMode property
  *  of the DirectoryEnumeration class.
  *
- *  @see mx.utils.DirectorEnumeration#enumerationMode
+ *  @see mx.utils.DirectoryEnumeration#enumerationMode
+ *
+ *  @productversion Apollo 1.0
  */
 public final class DirectoryEnumerationMode
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 22764
Author:   smgilson@adobe.com
Date:     2011-09-28T14:59:26.216966Z

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

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

Modified Paths:
--------------
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/spark/src/spark/components/SkinnablePopUpContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/SplitViewNavigator.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/4.y/frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as</path>

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

--- frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
+++ frameworks/projects/mobilecomponents/src/spark/components/ToggleSwitch.as
@@ -161,7 +161,6 @@
  *  <s:ToggleSwitch
  *   Properties
  *    selected="null"
- *    thumbPosition="null"
  *
  *   Common Styles
  *    accentColor="0x3F7FBA"


Transferred from the Adobe Open Source Subversion Repository

Revision: 6077
Author:   hmuller@adobe.com
Date:     2009-04-09T15:43:34.506603Z

Log Message:
-----------
Removed mirroring support.

QE Notes:
Doc Notes:
Bugs:
Reviewer: Chet

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText2.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/GraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Button.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IVisualElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/supportClasses/TextGraphicElement.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Label.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flash-integration/src/mx/flash/UIMovieClip.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/supportClasses/SkinnableComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/AdvancedLayoutFeatures.as</path>

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

--- frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/TextBase.as
@@ -81,9 +81,6 @@
     {
         super();

-        // This is for mirroring, not the text direction.
-        dir = "ltr";
-
 		var resourceManager:IResourceManager = ResourceManager.getInstance();

 		if (!mx_internal::truncationIndicatorResource)


Transferred from the Adobe Open Source Subversion Repository

Revision: 7274
Author:   chaase@adobe.com
Date:     2009-05-26T17:35:32.210331Z

Log Message:
-----------
Fixed several feature-complete effects bugs, plus one ScrollBar bug.

QE Notes: None
Doc Notes: None
Bugs: sdk-21093, sdk-21130, sdk-21243, sdk-21128, sdk-20698, sdk-20125, sdk-21138
Reviewer: Jason
tests: checkintests mustella effects cyclone

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/flex4/src/spark/effects/supportClasses/AnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/animation/IAnimationTarget.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/supportClasses/FadeInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/effects/CompositeEffect.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Fade.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/effects/Resize.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/AnimationTarget.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/flex4/src/spark/effects/AnimateTransform.as</path>

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

--- frameworks/projects/spark/src/spark/effects/animation/IAnimationTarget.as
+++ frameworks/projects/spark/src/spark/effects/animation/IAnimationTarget.as
@@ -39,6 +39,23 @@
      *  @productversion Flex 4
      */
     function animationStart(animation:Animation):void;
+
+    /**
+     *  Called when an Animation instance stops. This is different
+     *  than animationEnd, which is called when the animation ends,
+     *  automatically setting the end values of the targets. Stop
+     *  is called when an animation is stopped where it's at.
+     *  Handling this event allows necessary cleanup when the animation
+     *  is interrupted.
+     *
+     *  @param animation The Animation object.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 1.5
+     *  @productversion Flex 4
+     */
+    function animationStop(animation:Animation):void;

     /**
      *  Called when an Animation instance ends.


Check if xyz are available before add the picking pass

--- src/aerys/minko/scene/controller/PickingController.as
+++ src/aerys/minko/scene/controller/PickingController.as
@@ -1,11 +1,20 @@
 package aerys.minko.scene.controller
 {
+	import flash.display.BitmapData;
+	import flash.events.IEventDispatcher;
+	import flash.events.MouseEvent;
+	import flash.ui.Mouse;
+	import flash.ui.MouseCursor;
+	import flash.utils.Dictionary;
+	import flash.utils.getQualifiedClassName;
+
 	import aerys.minko.render.Effect;
 	import aerys.minko.render.RenderTarget;
 	import aerys.minko.render.Viewport;
-	import aerys.minko.render.shader.picking.PickingShader;
+	import aerys.minko.render.geometry.stream.format.VertexComponent;
 	import aerys.minko.render.resource.Context3DResource;
 	import aerys.minko.render.shader.Shader;
+	import aerys.minko.render.shader.picking.PickingShader;
 	import aerys.minko.scene.SceneIterator;
 	import aerys.minko.scene.node.Group;
 	import aerys.minko.scene.node.ISceneNode;
@@ -20,14 +29,6 @@
 	import aerys.minko.type.enum.PickingTechnique;
 	import aerys.minko.type.math.Matrix4x4;
 	import aerys.minko.type.math.Ray;
-
-	import flash.display.BitmapData;
-	import flash.events.IEventDispatcher;
-	import flash.events.MouseEvent;
-	import flash.ui.Mouse;
-	import flash.ui.MouseCursor;
-	import flash.utils.Dictionary;
-	import flash.utils.getQualifiedClassName;

 	public class PickingController extends EnterFrameController
 	{
@@ -588,7 +589,7 @@
 			mesh.bindings.addProvider(meshData);
 			mesh.bindings.addCallback('effect', effectChangedHandler);

-			if (mesh.material && mesh.material.effect)
+			if (mesh.material && mesh.material.effect && mesh.geometry.getVertexStream(0).format.hasComponent(VertexComponent.XYZ))
 				addPickingToEffect(mesh.material.effect);
 		}


Рефакторинг DestroyableBitmap

Рефакторинг DestroyableBitmap

--- src/main/org/shypl/common/util/DestroyableBitmap.as
+++ src/main/org/shypl/common/util/DestroyableBitmap.as
@@ -45,14 +45,14 @@
 				return;
 			}
 			super.removeEventListener(type, listener, useCapture);
-
+
 			const listeners:Dictionary = _eventListeners[type];
 			if (listeners !== null) {
 				delete listeners[listener];
 			}
 		}

-		public final function disposeBitmapData():Boolean {
+		public final function destroyBitmapData():void {
 			if (bitmapData !== null) {
 				bitmapData.dispose();
 				bitmapData = null;
@@ -94,7 +94,7 @@
 			}
 			_eventListeners = null;

-			disposeBitmapData();
+			destroyBitmapData();
 		}
 	}
 }


updated typings

updated typings

--- WeaveJS/src/Weave.as
+++ WeaveJS/src/Weave.as
@@ -15,7 +15,6 @@
 	import weavejs.api.core.ISessionManager;
 	import weavejs.api.data.IAttributeColumn;
 	import weavejs.core.LinkableFunction;
-	import weavejs.core.LinkablePlaceholder;
 	import weavejs.core.SessionStateLog;
 	import weavejs.path.WeavePath;
 	import weavejs.path.WeavePathUI;
@@ -107,12 +106,11 @@

 		/**
 		 * Requests that an object be created if it doesn't already exist at the given path.
-		 * This function can also be used to assert that the object at the current path is of the type you expect it to be.
 		 * @param path The path
 		 * @param type The type
-		 * @return Either an instance of the requested type, a LinkablePlaceholder, or null if the object could not be created.
-		 */
-		public function requestObject(path:Array/*/<string|number>/*/, type:Class):ILinkableObject
+		 * @return Either an instance of the requested type, or null if the object could not be created or a LinkablePlaceholder was created.
+		 */
+		public function requestObject/*/<T>/*/(path:Array/*/<string|number>/*/, type:/*/(new(..._:any[])=>T) | string/*/Class):/*/T/*/ILinkableObject
 		{
 			// Get parent object first in case there is some backwards compatibility code that gets
 			// executed when it is accessed (registering deprecated class definitions, for example).
@@ -123,7 +121,7 @@
 			// request the child object
 			var hashMap:ILinkableHashMap = parent as ILinkableHashMap;
 			var dynamicObject:ILinkableDynamicObject = parent as ILinkableDynamicObject;
-			var child:Object = null;
+			var child:* = null;
 			if (hashMap)
 			{
 				if (childName is Number)
@@ -136,8 +134,8 @@
 				child = Weave.followPath(root, path);

 			// check for exact match only
-			if (LinkablePlaceholder.getClass(child) == type)
-				return child as ILinkableObject;
+			if (child && child.constructor == type)
+				return child;

 			return null;
 		}
@@ -277,7 +275,7 @@
 		 * @return The closest ancestor of the given type.
 		 * @see weave.api.core.ISessionManager#getLinkableOwner()
 		 */
-		public static function getAncestor/*/<T>/*/(descendant:ILinkableObject, ancestorType:/*/new(..._:any[])=>T | string/*/Class):/*/T & ILinkableObject/*/ILinkableObject
+		public static function getAncestor/*/<T>/*/(descendant:ILinkableObject, ancestorType:/*/(new(..._:any[])=>T) | string/*/Class):/*/T & ILinkableObject/*/ILinkableObject
 		{
 			if (ancestorType is String)
 				ancestorType = Weave.getDefinition(String(ancestorType), true);
@@ -303,7 +301,7 @@
 		 * Shortcut for WeaveAPI.SessionManager.getLinkableDescendants()
 		 * @copy weave.api.core.ISessionManager#getLinkableDescendants()
 		 */
-		public static function getDescendants/*/<T>/*/(object:ILinkableObject, filter:/*/new(..._:any[])=>T | string/*/Class = null):Array/*/<T & ILinkableObject>/*/
+		public static function getDescendants/*/<T>/*/(object:ILinkableObject, filter:/*/(new(..._:any[])=>T) | string/*/Class = null):Array/*/<T & ILinkableObject>/*/
 		{
 			if (filter is String)
 				filter = Weave.getDefinition(String(filter), true);


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

--- frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as
+++ frameworks/projects/framework/src/mx/core/DeferredInstanceFromFunction.as
@@ -1,11 +1,19 @@
 ////////////////////////////////////////////////////////////////////////////////
 //
-//  ADOBE SYSTEMS INCORPORATED
-//  Copyright 2005-2006 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: 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@1277973 13f79535-47bb-0310-9956-ffa450edef68

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


Transferred from the Adobe Open Source Subversion Repository

Revision: 17753
Author:   klin@adobe.com
Date:     2010-09-17T22:01:57.619431Z

Log Message:
-----------
Fix for handling columns (IList) changes in GridDimensions. I implemented the columnsCollectionChanged handler in GridDimensions to handle all the collection events.

GridDimensions.as - When someone sets the columnCount, we should clear everything. Implemented columnsCollectionChanged(). Changed typicalCellWidths and typicalCellHeights to Vectors to make them easier to handle. Added a few helper functions to insert multiple values into vectors and to clear a vector. Also, fixed a small bug in getColumnIndexAt for the case where the column width is 0. Fixed up the rowCount setter to remove the excess rows.

Grid.as - Move setting columnCount from clearGridLayoutCache to commitProperties because it should only be set when the columns actually change. Add call to columnsCollectionChanged.

GridRowList.as, GridRowNode.as - Add support for column changes.

QE notes: No
Doc notes: No
Bugs: SDK-27569, SDK-27678
Reviewer: Hans
Tests run: checkintests, cyclone server
Is noteworthy for integration: No

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

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

--- frameworks/projects/spark/src/spark/components/gridClasses/GridRowList.as
+++ frameworks/projects/spark/src/spark/components/gridClasses/GridRowList.as
@@ -514,6 +514,58 @@
     }

     /**
+     *  Inserts count number of columns into each node and
+     *  increases numColumns by count.
+     */
+    public function insertColumns(startColumn:int, count:int):void
+    {
+        _numColumns += count;
+
+        var node:GridRowNode = first;
+        while (node)
+        {
+            node.insertColumns(startColumn, count);
+            node = node.next;
+        }
+    }
+
+    /**
+     *  Inserts count number of columns into each node and
+     *  increases numColumns by count.
+     */
+    public function removeColumns(startColumn:int, count:int):void
+    {
+        _numColumns -= count;
+
+        var node:GridRowNode = first;
+        while (node)
+        {
+            node.removeColumns(startColumn, count);
+            node = node.next;
+        }
+    }
+
+    public function moveColumns(fromCol:int, toCol:int, count:int):void
+    {
+        var node:GridRowNode = first;
+        while (node)
+        {
+            node.moveColumns(fromCol, toCol, count);
+            node = node.next;
+        }
+    }
+
+    public function clearColumns(startColumn:int, count:int):void
+    {
+        var node:GridRowNode = first;
+        while (node)
+        {
+            node.clearColumns(startColumn, count);
+            node = node.next;
+        }
+    }
+
+    /**
      *  for testing;
      */
     public function toString():String