Transferred from the Adobe Open Source Subversion Repository

Revision: 18280
Author:   klin@adobe.com
Date:     2010-10-21T22:34:29.253037Z

Log Message:
-----------
DataGrid Tier 2 PARB Change. Add support for rowIndex==-1 in ensureCellIsVisible() and isCellVisible(). Specifying only a columnIndex will scroll only horizontally now. If both columnIndex and rowIndex are -1, nothing will happen.

QE notes: No
Doc notes: No
Bugs: No
Reviewer: Hans
Tests run: 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/gridClasses/GridLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -2821,7 +2821,7 @@
      *  approximate when variableRowHeight=true, so calling this method once will
      *  not necessarily scroll far enough to expose the specified element.
      */
-    private function scrollToIndex(elementIndex:int, scrollHorizontally:Boolean):void
+    private function scrollToIndex(elementIndex:int, scrollHorizontally:Boolean, scrollVertically:Boolean):void
     {
         var spDelta:Point = gridLayout.getScrollPositionDeltaToElement(elementIndex);
         if (!spDelta)
@@ -2829,16 +2829,19 @@

         if (scrollHorizontally)
             horizontalScrollPosition += spDelta.x;
-        verticalScrollPosition += spDelta.y;
+        if (scrollVertically)
+            verticalScrollPosition += spDelta.y;
     }

     /**
      *  If necessary, set the verticalScrollPosition and horizontalScrollPosition
-     *  properties so that the specified cell is completely visible.  If columnIndex
-     *  is -1, then just adjust the verticalScrollPosition so that the specified
+     *  properties so that the specified cell is completely visible. If rowIndex
+     *  is -1 and columnIndex is specified, then just adjust the horizontalScrollPosition
+     *  so that the specified column is visible. If columnIndex is -1 and rowIndex
+     *  is specified, then just adjust the verticalScrollPosition so that the specified
      *  row is visible.
      *
-     *  @param rowIndex The 0-based row index of the item renderer's cell.
+     *  @param rowIndex The 0-based row index of the item renderer's cell, or -1 to specify a column.
      *  @param columnIndex The 0-based column index of the item renderer's cell, or -1 to specify a row.
      *
      *  @langversion 3.0
@@ -2846,34 +2849,45 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function ensureCellIsVisible(rowIndex:int, columnIndex:int = -1):void
+    public function ensureCellIsVisible(rowIndex:int = -1, columnIndex:int = -1):void
     {
         const columns:IList = this.columns;

+        // Check that each index is within range.
         if (!columns || columnIndex < -1 || columnIndex >= columns.length ||
-            !dataProvider || rowIndex < 0 || rowIndex >= dataProvider.length)
+            !dataProvider || rowIndex < -1 || rowIndex >= dataProvider.length ||
+            (columnIndex == -1 && rowIndex == -1))
             return;

+        // Check to see if any columns are visible or specified column is visible.
+        if ((columnIndex == -1 && getNextVisibleColumnIndex(-1) == -1) ||
+            (columnIndex != -1 && !(GridColumn(columns.getItemAt(columnIndex)).visible)))
+            return;
+
         const columnsLength:int = columns.length;
-
-        // Make sure either all columns or the specified column is visible.
-        if (columnIndex == -1)
-            columnIndex = getNextVisibleColumnIndex(-1);
-
-        var columnIsVisible:Boolean = (columnIndex != -1) && (GridColumn(columns.getItemAt(columnIndex)).visible);
-        if (!columnIsVisible)
-            return;
+        const scrollHorizontally:Boolean = columnIndex != -1;
+        const scrollVertically:Boolean = rowIndex != -1;
+
+        // When not scrolling horizontally, columnIndex can just be 0.
+        if (!scrollHorizontally)
+            columnIndex = 0;
+
+        // If the row index isn't specified, use the first one that's visible.
+        if (!scrollVertically)
+        {
+            const visibleRowIndices:Vector.<int> = this.getVisibleRowIndices();
+            rowIndex = (visibleRowIndices.length > 0) ?  visibleRowIndices[0] : 0;
+        }

         // A cell's index as defined by LayoutBase it's just its position
         // in the row-major linear ordering of the grid's cells.
         const elementIndex:int = (rowIndex * columnsLength) + columnIndex;
-        const scrollHorizontally:Boolean = columnIndex != -1;

         // Iterate until we've scrolled elementIndex at least partially into view.
         do
         {
-            scrollToIndex(elementIndex, scrollHorizontally);
-            if (variableRowHeight || scrollHorizontally)
+            scrollToIndex(elementIndex, scrollHorizontally, scrollVertically);
+            if (variableRowHeight || scrollHorizontally || scrollVertically)
                 validateNow();
             else
                 break;  // fixed row heights, and we're only scrolling vertically
@@ -2883,7 +2897,7 @@
         // At this point we've only ensured that the requested cell is at least
         // partially visible.  Ensure that it's completely visible.

-        scrollToIndex(elementIndex, scrollHorizontally);
+        scrollToIndex(elementIndex, scrollHorizontally, scrollVertically);
     }

     /**
@@ -3091,7 +3105,7 @@
      *  @playerversion AIR 2.0
      *  @productversion Flex 4.5
      */
-    public function isCellVisible(rowIndex:int, columnIndex:int = -1):Boolean
+    public function isCellVisible(rowIndex:int = -1, columnIndex:int = -1):Boolean
     {
         return gridLayout.isCellVisible(rowIndex, columnIndex);
     }
@@ -3680,6 +3694,14 @@
      */
     private function dataProvider_collectionChangeHandler(event:CollectionEvent):void
     {
+        // If no columns exist, we should try to generate them.
+        if (!columns && dataProvider.length > 0)
+        {
+            columns = generateColumns();
+            generatedColumns = (columns != null);
+            gridDimensions.columnCount = generatedColumns ? columns.length : 0;
+        }
+
         if (gridDimensions)
             gridDimensions.dataProviderCollectionChanged(event);


Transferred from the Adobe Open Source Subversion Repository

Revision: 17366
Author:   rfrishbe@adobe.com
Date:     2010-08-18T20:55:44.548390Z

Log Message:
-----------
Adding touchDelay and minimumDownState styles to Button.

In addition, there are some other PARB changes (touchScroll is renamed to more generic gestureCapture).  This means TouchScrollEvent has been renamed to GestureCaptureEvent as well.

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

Modified Paths:
--------------
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchScrollEvent.as" copyfrom-rev="17335" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/styles/metadata/MobileTextFieldTextStyles.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GroupBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileIconItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchScrollEvent.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -37,7 +37,7 @@
 import mx.events.DragEvent;
 import mx.events.FlexEvent;
 import mx.events.SandboxMouseEvent;
-import mx.events.TouchScrollEvent;
+import mx.events.GestureCaptureEvent;
 import mx.managers.DragManager;
 import mx.managers.IFocusManagerComponent;
 import mx.utils.ObjectUtil;
@@ -199,6 +199,26 @@
  *  @productversion Flex 4
  */
 [Style(name="symbolColor", type="uint", format="Color", inherit="yes", theme="spark")]
+
+/**
+ *  When in touch interaction mode, the number of milliseconds to wait before showing the
+ *  component in a visually down state.
+ *
+ *
The reason for this delay is because when a user initiates a scroll gesture, we don't want
+ *  components to flicker as they touch the screen.  By having a reasonable delay, we make
+ *  sure that the user still gets feedback when they press down on a component, but that the
+ *  feedback doesn't come too quickly that it gets displayed during a scroll gesture
+ *  operation.

+ *
+ *
If the mobile theme is applied, the default value for this style is 100 ms for
+ *  components inside of a Scroller and 0 ms for components outside of a Scroller.

+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 10
+ *  @playerversion AIR 2.5
+ *  @productversion Flex 4.5
+ */
+[Style(name="touchDelay", type="Number", format="Time", inherit="yes", minValue="0.0")]

 //--------------------------------------
 //  Other metadata
@@ -294,9 +314,6 @@
      *  Placeholder for mixin by ListAccImpl.
      */
     mx_internal static var createAccessibilityImplementation:Function;
-
-    // FIXME (rfrishbe): should be style
-    private static const DELAY_TO_SHOW_SELECTION_IN_TOUCH_MODE:int = 150;

     //--------------------------------------------------------------------------
     //
@@ -328,7 +345,7 @@
                     "spark.components.RichEditableText"));
         }

-        addEventListener(TouchScrollEvent.TOUCH_SCROLL_STARTING, touchScrollStartHandler);
+        addEventListener(GestureCaptureEvent.GESTURE_CAPTURE_START, gestureCaptureStartHandler);
     }

     //--------------------------------------------------------------------------
@@ -1645,9 +1662,18 @@
      */
     private function startSelectButtonAfterDelayTimer():void
     {
-        mouseDownSelectTimer = new Timer(DELAY_TO_SHOW_SELECTION_IN_TOUCH_MODE, 1);
-        mouseDownSelectTimer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseDownSelectTimer_timerCompleteHandler);
-        mouseDownSelectTimer.start();
+        var touchDelay:int = getStyle("touchDelay");
+
+        if (touchDelay > 0)
+        {
+            mouseDownSelectTimer = new Timer(touchDelay, 1);
+            mouseDownSelectTimer.addEventListener(TimerEvent.TIMER_COMPLETE, mouseDownSelectTimer_timerCompleteHandler);
+            mouseDownSelectTimer.start();
+        }
+        else
+        {
+            mouseDownSelectTimer_timerCompleteHandler();
+        }
     }

     /**
@@ -2000,9 +2026,9 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    private function touchScrollStartHandler(event:TouchScrollEvent):void
-    {
-        if (event.scrollingObject == this.scroller)
+    private function gestureCaptureStartHandler(event:GestureCaptureEvent):void
+    {
+        if (event.relatedObject == this.scroller)
         {
             // cancel actual selection
             mouseDownCancelledFromScroll = true;
@@ -2657,7 +2683,7 @@
     /**
      *  @private
      */
-    private function mouseDownSelectTimer_timerCompleteHandler(event:TimerEvent):void
+    private function mouseDownSelectTimer_timerCompleteHandler(event:TimerEvent = null):void
     {
         if (mouseDownIndex != -1)
         {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17425
Author:   rfrishbe@adobe.com
Date:     2010-08-20T17:29:56.448841Z

Log Message:
-----------
Pretty basic refactoring for PARB (though it is a lot of files).  Renamed GestureCaptureEvent/GestureCaptureReason (these were previously TouchScrollEvent) to TouchInteractionEvent/TouchInteractionReason.  inputMode has been renamed to interactionMode and has a new enumeration class, mx.core.InteractionMode.

There's on non-PARB change that was made was in List and mobiletheme/defaults.css. I found a bug in that the item renderer wasn't highlighting on mousedown anymore. There were two issues at play. Firstly the touchDelay was set to 100 ms in the Scroller only, so I added it to List and added a FIXME comment to myself figuring out if the code in List should use scroller.getStyle("touchDelay") or itemRenderer.getStyle("touchDelay") instead of getStyle("touchDelay"). Also, I found out that the code doesn't deal with touchDelay=0 very well. Since we're planning on working on this code anyways (and possibly moving it in to ItemRenderer itself with a new downstate), I just put in a hack with a FIXME to handle this case for now.

QE notes: None
Doc notes: None
Bugs: -
Reviewer: Jason SJ, Chiedo
Tests run: checkintests
Is noteworthy for integration: No

Modified Paths:
--------------
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as</path>
<path kind="file" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/InteractionMode.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureReason.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobilecomponents/src/spark/components/MobileItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/mobiletheme/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/List.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/skins/spark/DefaultItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/defaults.css</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ScrollerLayout.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ItemRenderer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureEvent.as" copyfrom-rev="17393" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchInteractionEvent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Scroller.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/TrackBase.as</path>
<path kind="file" copyfrom-path="/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/GestureCaptureReason.as" copyfrom-rev="17393" action="A">/private/flex/sdk/branches/hero_private/frameworks/projects/framework/src/mx/events/TouchInteractionReason.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/SkinnableTextBase.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/ButtonBase.as</path>

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

--- frameworks/projects/spark/src/spark/components/List.as
+++ frameworks/projects/spark/src/spark/components/List.as
@@ -31,13 +31,14 @@
 import mx.core.IFlexDisplayObject;
 import mx.core.IUID;
 import mx.core.IVisualElement;
+import mx.core.InteractionMode;
 import mx.core.mx_internal;
 import mx.events.CollectionEvent;
 import mx.events.CollectionEventKind;
 import mx.events.DragEvent;
 import mx.events.FlexEvent;
 import mx.events.SandboxMouseEvent;
-import mx.events.GestureCaptureEvent;
+import mx.events.TouchInteractionEvent;
 import mx.managers.DragManager;
 import mx.managers.IFocusManagerComponent;
 import mx.utils.ObjectUtil;
@@ -345,7 +346,7 @@
                     "spark.components.RichEditableText"));
         }

-        addEventListener(GestureCaptureEvent.GESTURE_CAPTURE_START, gestureCaptureStartHandler);
+        addEventListener(TouchInteractionEvent.TOUCH_INTERACTION_START, touchInteractionStartHandler);
     }

     //--------------------------------------------------------------------------
@@ -581,7 +582,7 @@
      *  When switched at run time, the current selection
      *  is cleared.
      *
-     *  This should not be turned on when inputMode
+     *  This should not be turned on when interactionMode
      *  is touch.
      *
      *  @default false
@@ -1224,7 +1225,7 @@
      */
     override mx_internal function shouldItemAppearSelected(index:int):Boolean
     {
-        if (getStyle("inputMode") == "touch")
+        if (getStyle("interactionMode") == InteractionMode.TOUCH)
         {
             // if we could be selecting, only show selection for that one item...don't even show
             // it for the actual selectedIndex
@@ -1570,6 +1571,8 @@

         mouseDownCancelledFromScroll = false;

+        var oldMouseDownIndex:int;
+
         if (!allowMultipleSelection)
         {
             // Single selection case, set the selectedIndex
@@ -1583,19 +1586,28 @@

             // Check to see if we're deselecting the currently selected item because if we're
             // possibly dragging we don't want to de-select this immediately.  Similarly, if we
-            // are in touch inputMode, we need to delay the item renderer highlight for a bit
-            if ((event.ctrlKey && selectedIndex == newIndex) || getStyle("inputMode") == "touch")
+            // are in touch interactionMode, we need to delay the item renderer highlight for a bit
+            if ((event.ctrlKey && selectedIndex == newIndex) || getStyle("interactionMode") == InteractionMode.TOUCH)
             {
                 pendingSelectionOnMouseUp = true;
                 pendingSelectionCtrlKey = event.ctrlKey;
                 pendingSelectionShiftKey = event.shiftKey;

-                if (getStyle("inputMode") == "touch")
+                if (getStyle("interactionMode") == InteractionMode.TOUCH)
                 {
                     if (selectedIndex != newIndex)
                     {
+                        // FIXME (rfrishbe): hack for now.  will fix this later when we revisit the
+                        // "down state" issue for an item renderer.  We need this to fix the case
+                        // where touchDelay == 0 and calling startSelectButtonAfterDelay() assumes
+                        // that mouseDownIndex is already set
+                        oldMouseDownIndex = mouseDownIndex;
+                        mouseDownIndex = newIndex;
+
                         // visually select the item here
                         startSelectButtonAfterDelayTimer();
+
+                        mouseDownIndex = oldMouseDownIndex;
                     }
                 }
             }
@@ -1606,18 +1618,27 @@
         {
             // Don't commit the selection immediately, but wait to see if the user
             // is actually dragging. If they don't drag, then commit the selection
-            if (isItemIndexSelected(newIndex) || getStyle("inputMode") == "touch")
+            if (isItemIndexSelected(newIndex) || getStyle("interactionMode") == InteractionMode.TOUCH)
             {
                 pendingSelectionOnMouseUp = true;
                 pendingSelectionShiftKey = event.shiftKey;
                 pendingSelectionCtrlKey = event.ctrlKey;

-                if (getStyle("inputMode") == "touch")
+                if (getStyle("interactionMode") == InteractionMode.TOUCH)
                 {
                     if (!isItemIndexSelected(newIndex))
                     {
+                        // FIXME (rfrishbe): hack for now.  will fix this later when we revisit the
+                        // "down state" issue for an item renderer.  We need this to fix the case
+                        // where touchDelay == 0 and calling startSelectButtonAfterDelay() assumes
+                        // that mouseDownIndex is already set
+                        oldMouseDownIndex = mouseDownIndex;
+                        mouseDownIndex = newIndex;
+
                         // visually select the item here
                         startSelectButtonAfterDelayTimer();
+
+                        mouseDownIndex = oldMouseDownIndex;
                     }
                 }
             }
@@ -1638,7 +1659,7 @@
         mouseDownPoint = event.target.localToGlobal(new Point(event.localX, event.localY));
         mouseDownIndex = newIndex;

-        var listenForDrag:Boolean = (dragEnabled && getStyle("inputMode") == "mouse" && selectedIndices && this.selectedIndices.indexOf(newIndex) != -1);
+        var listenForDrag:Boolean = (dragEnabled && getStyle("interactionMode") == InteractionMode.MOUSE && selectedIndices && this.selectedIndices.indexOf(newIndex) != -1);
         // Handle any drag gestures that may have been started
         if (listenForDrag)
         {
@@ -1662,6 +1683,7 @@
      */
     private function startSelectButtonAfterDelayTimer():void
     {
+        // FIXME (rfrishbe): Should we use mouseDownedItemRenderer.getStyle("touchDelay") instead?
         var touchDelay:int = getStyle("touchDelay");

         if (touchDelay > 0)
@@ -1747,7 +1769,7 @@
             {
                 setSelectedIndices(calculateSelectedIndices(mouseDownIndex, pendingSelectionShiftKey, pendingSelectionCtrlKey), true);
             }
-            else if (getStyle("inputMode") == "touch")
+            else if (getStyle("interactionMode") == InteractionMode.TOUCH)
             {
                 setSelectedIndex(mouseDownIndex, true);
             }
@@ -2026,7 +2048,7 @@
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    private function gestureCaptureStartHandler(event:GestureCaptureEvent):void
+    private function touchInteractionStartHandler(event:TouchInteractionEvent):void
     {
         if (event.relatedObject == this.scroller)
         {
@@ -2554,7 +2576,7 @@
         }

         // FIXME (rfrishbe): hack for 5-way
-        if (getStyle("inputMode") == "touch" && event.keyCode == Keyboard.ENTER)
+        if (getStyle("interactionMode") == InteractionMode.TOUCH && event.keyCode == Keyboard.ENTER)
         {
             setSelectedIndex(caretIndex, true);
             event.preventDefault();
@@ -2646,10 +2668,10 @@
             ensureIndexIsVisible(proposedNewIndex);
         }
         // Entering the caret state with the Ctrl key down
-        // FIXME (rfrishbe): shouldn't just check inputMode but should depend on
+        // FIXME (rfrishbe): shouldn't just check interactionMode but should depend on
         // either the platform or whether it was a 5-way button or whether
         // soem other keyboardSelection style.
-        else if (event.ctrlKey || getStyle("inputMode") == "touch")
+        else if (event.ctrlKey || getStyle("interactionMode") == InteractionMode.TOUCH)
         {
             var oldCaretIndex:Number = caretIndex;
             setCurrentCaretIndex(proposedNewIndex);


Transferred from the Adobe Open Source Subversion Repository

Revision: 3342
Author:   chaase@adobe.com
Date:     2008-09-24T23:47:01.007481Z

Log Message:
-----------
Added new Rotate effect. Also, minor API additions to Animation class and minor refactoring of AnimateFilterInstance.

Reviewed by Glenn
tests: checkintests

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateInstance.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/RotateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animate.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Rotate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/development/eclipse/flex/flex4test/src/NewEffects.mxml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/flex/effects/effectClasses/AnimateFilterInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>

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

--- frameworks/projects/spark/src/spark/effects/Animate.as
+++ frameworks/projects/spark/src/spark/effects/Animate.as
@@ -52,7 +52,7 @@
  * any effect that is repeated more than once.
  * This event corresponds to a call to
  * the AnimateInstance.repeatHandler() method.
- * Flex also dispatches the first animationUpdate event
+ * Flex also dispatches an animationUpdate event
  * for the effect at the same time.
  *
  * @eventType flex.events.AnimationEvent.ANIMATION_END
@@ -63,7 +63,7 @@
  * Dispatched when the effect ends.
  * This event corresponds to a call to
  * the AnimateInstance.endHandler() method.
- * Flex also dispatches the first animationUpdate event
+ * Flex also dispatches an animationUpdate event
  * for the effect at the same time.
  *
  *
This event occurs just before an effectEnd event.


Rewrite work in progress...

Rewrite work in progress...

--- src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
+++ src/org/igniterealtime/xiff/core/XMPPBOSHConnection.as
@@ -3,7 +3,8 @@
  */
 package org.igniterealtime.xiff.core
 {
-	import flash.events.TimerEvent;
+	import flash.events.*;
+	import flash.net.*;
 	import flash.utils.ByteArray;
 	import flash.utils.Timer;
 	import flash.xml.XMLDocument;
@@ -30,6 +31,9 @@

 		private static const HTTP_PORT:int = 7070;

+		/**
+		 * Keys should match URLRequestMethod constants.
+		 */
 		private static const headers:Object = {
 			"post": [],
 			"get": [ 'Cache-Control',
@@ -75,7 +79,7 @@

 		private var responseQueue:Array = [];

-		private const responseTimer:Timer = new Timer( 0.0, 1 );
+		private var responseTimer:Timer;

 		private var rid:Number;

@@ -91,6 +95,7 @@
 		{
 			super();
 			this.secure = secure;
+			responseTimer = new Timer( 0.0, 1 );
 		}

 		override public function connect( streamType:String = null ):Boolean
@@ -420,6 +425,19 @@
 					data = createRequest( temp );
 				}
 			}
+			/*
+			var req:URLRequest = new URLRequest(httpServer);
+			req.method = URLRequestMethod.POST;
+			req.contentType = "text/xml";
+			req.requestHeaders = headers[ req.method ];
+			req.data = data;
+			var loader:URLLoader = new URLLoader();
+			loader.dataFormat = URLLoaderDataFormat.TEXT;
+			loader.addEventListener(Event.COMPLETE, onRequestComplete);
+			loader.addEventListener(SecurityErrorEvent.SECURITY_ERROR, socketSecurityError);
+			loader.addEventListener(IOErrorEvent.IO_ERROR, socketIOError);
+			loader.load(req);
+			*/

 			// TODO: Could this be replaced with URLLoader ?
 			//build the http request


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

--- frameworks/projects/airframework/src/mx/core/Window.as
+++ frameworks/projects/airframework/src/mx/core/Window.as
@@ -441,7 +441,10 @@
  *    windowResize="<i>No default</i>"
  *  />
  *  </pre>
- *
+ *
+ *  @see mx.core.WindowedApplication
+ *
+ *  @productversion Apollo 1.0
  */
 public class Window extends LayoutContainer implements IWindow
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 17821
Author:   klin@adobe.com
Date:     2010-09-23T19:01:28.405845Z

Log Message:
-----------
Fix variableRowHeight support in GridDimensions and other various bugs. These changes also fix Grid to follow the correct measure rules such as rowHeight having a real effect on the typical row height.

Grid.as - The rowHeight is now backed by GridDimensions.defaultRowHeight now. Moved some clearing code down to commitProperties.

GridDimensions.as - Removed fixedRowHeight. Instead, we use a variableRowHeight Boolean that reflects the Grid’s value. The defaultRowHeight returns Grid’s rowHeight if rowHeight is explicitly set. If rowHeight isn’t set, defaultRowHeight returns the maximum typical cell height. defaultRowHeight also defaults to NaN now instead of 26.

GridLayout.as - Fixed an RTE from getItemRendererAt() in the case that bounds is null. Removed some excess code.

GridColumn.as - Fixed an edge case which was causing an RTE where someone sets the dataField to null.

QE notes: No
Doc notes: No
Bugs: No
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/GridColumn.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/supportClasses/GridLayout.as</path>

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

--- frameworks/projects/spark/src/spark/components/Grid.as
+++ frameworks/projects/spark/src/spark/components/Grid.as
@@ -940,6 +940,8 @@

     private var _itemRenderer:IFactory = null;

+    private var itemRendererChanged:Boolean = false;
+
     /**
      *  The item renderer that's used for columns that do not specify one.
      *
@@ -965,11 +967,9 @@

         _itemRenderer = value;

+        itemRendererChanged = true;
         invalidateSize();
         invalidateDisplayList();
-        gridLayout.clearVirtualLayoutCache();
-        if (gridLayout.gridDimensions)
-            gridLayout.gridDimensions.clearTypicalCellWidthsAndHeights();

         dispatchChangeEvent("itemRendererChanged");
     }
@@ -1395,7 +1395,11 @@
      *  this property specifies the actual height of each row, in pixels.
      *
      *
If variableRowHeight is true,
-     *  the default, then this property has no effect.

+     *  the default, the value of this property is used as the estimated
+     *  height for rows that haven’t been scrolled into view yet, rather
+     *  than the preferred height of renderers configured with the typicalItem.
+     *  Similarly, when the Grid pads its display with empty rows, this property
+     *  specifies the empty rows’ height.

      *
      *
If variableRowHeight is false,
      *  the default value of this property is the maximum preferred height
@@ -1408,7 +1412,7 @@
      */
     public function get rowHeight():Number
     {
-        return (variableRowHeight) ? gridDimensions.defaultRowHeight : gridDimensions.fixedRowHeight;
+        return _rowHeight;
     }

     /**
@@ -2055,7 +2059,6 @@
             return;

         _typicalItem = value;
-        gridDimensions.clearTypicalCellWidthsAndHeights();

         typicalItemChanged = true;
         invalidateProperties();
@@ -2967,7 +2970,7 @@
         {
             if (rowHeightChanged)
                 gridDimensions.defaultRowHeight = _rowHeight;
-            gridDimensions.fixedRowHeight = variableRowHeight ? NaN : _rowHeight;
+            gridDimensions.variableRowHeight = variableRowHeight;

             if ((!variableRowHeight && rowHeightChanged) || variableRowHeightChanged)
             {
@@ -2980,6 +2983,13 @@
             variableRowHeightChanged = false;
         }

+        // item renderer changed or typical item changed
+        if (itemRendererChanged || typicalItemChanged)
+        {
+            clearGridLayoutCache(true);
+            itemRendererChanged = false;
+        }
+
         // Try to generate columns if there aren't any or there are generated
         // ones which need to be regenerated because the typicalItem or
         // dataProvider changed.
@@ -3047,7 +3057,7 @@
                 caretColumnIndex =  _columns.length - 1;
             dispatchCaretChangeEvent();
             caretChanged = false;
-        }
+        }
     }

     /**


Transferred from the Adobe Open Source Subversion Repository

Revision: 3512
Author:   jimurphy@adobe.com
Date:     2008-10-07T20:28:56.871176Z

Log Message:
-----------
rename flex4 mx.effects.easing to mx.effects.fxEasing to avoid a name conflict in the framework

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Constant.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/EaseInOut.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Power.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/mxml-2009-manifest.xml</path>
<path kind="dir" copyfrom-path="/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/easing" copyfrom-rev="3509" action="A">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Sine.as</path>
<path kind="dir" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/easing</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/gumbo-manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/manifest.xml</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/FxAnimateInstance.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimate.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/IEaser.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/fxEasing/Linear.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/Animation.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/FxAnimateFilter.as</path>
<path kind="file" action="D">/flex/sdk/trunk/frameworks/projects/flex4/src/mx/effects/effectClasses/CallAction.as</path>

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

--- frameworks/projects/spark/src/spark/effects/Animate.as
+++ frameworks/projects/spark/src/spark/effects/Animate.as
@@ -11,8 +11,8 @@
 package mx.effects
 {

-import mx.effects.easing.IEaser;
-import mx.effects.easing.Sine;
+import mx.effects.fxEasing.IEaser;
+import mx.effects.fxEasing.Sine;
 import mx.effects.effectClasses.FxAnimateInstance;
 import mx.events.AnimationEvent;

@@ -148,8 +148,8 @@
      * the animation into an eased fraction, which will then be used to
      * calculate the value at that eased elapsed fraction.
      *
-     * @default mx.effects.easing.Sine(.5)
-     * @see mx.effects.easing.Sine
+     * @default mx.effects.fxEasing.Sine(.5)
+     * @see mx.effects.fxEasing.Sine
      */
     public var easer:IEaser = defaultEaser;


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

--- frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/BarSeriesAutomationImpl.as
+++ frameworks/projects/automation_dmv/src/mx/automation/delegates/charts/BarSeriesAutomationImpl.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: 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@1251877 13f79535-47bb-0310-9956-ffa450edef68

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

 package mx.automation.delegates.charts
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 12709
Author:   cframpto@adobe.com
Date:     2009-12-09T13:54:43.569815Z

Log Message:
-----------
Add support for custom context menus for RichEditableText. There are limitations to this support since it needs additional API for TextArea, TextInput, and RichEditableText to do it correctly and we need better support from TLF as well.  We should plan to do this in the next release.

For this release you can add a custom context menu to RichEditableText if it is done before the first mouse over, mouse hover or focusIn event on the RichEditableText field.  TLF will enable/disable the clipboard properties based on the editing mode and the selection.  These will show in the menu if the clipboardMenu is enabled.

You can only remove the context menu once the component is using a flowComposer rather than a factory, which means it has had focus.

The contextMenu must be set on RichEditableText, not on TextArea or TextInput.  So for TextArea this is ta.textDisplay.contextMenu or for TextInput this is ti.textDisplay.contextMenu.  If it is set on TextArea or TextInput you won't see it since the RichEditableText menu will be displayed instead.

QE notes:
Doc notes: see above
Bugs: partial fix for SDK-23926
Reviewer:
Tests run: checkintests
Is noteworthy for integration:  yes - perhaps?  custom menu support for RichEditableText with severe limitations

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

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

--- frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
+++ frameworks/projects/spark/src/spark/components/supportClasses/RichEditableTextContainerManager.as
@@ -19,6 +19,7 @@
 import flash.events.KeyboardEvent;
 import flash.events.MouseEvent;
 import flash.geom.Rectangle;
+import flash.ui.ContextMenu;
 import flash.ui.Keyboard;

 import flashx.textLayout.container.ContainerController;
@@ -101,6 +102,14 @@
      */
     private var textDisplay:RichEditableText;

+
+    /**
+     *  @private
+     *  TLF doesn't guarantee it won't touch the context menu.  It removes it
+     *  when it switches from the factory to the composer so we need to save it.
+     */
+    private var userContextMenu:ContextMenu;
+
     //--------------------------------------------------------------------------
     //
     //  Overridden methods
@@ -178,6 +187,34 @@

     /**
      *  @private
+     *
+     * If the user specified a custom context menu then save it and use
+     * it rather than the default context menu. It must be set before the
+     * first mouse over/mouse hover or foucsIn event to be used.
+     *
+     * TLF will remove the context menu when it switches from the factory
+     * to the composer and the controller will then request it again.
+     */
+    override tlf_internal function getContextMenu():ContextMenu
+    {
+        // ToDo(cframpto): can't differentiate between the user removing the
+        // context menu because they don't want it and TLF removing it and
+        // it is requesting it again.  Need additional API to support
+        // contextMenus correctly.  Ideally could specify the context
+        // menu on the TextArea or the TextInput and it wouldn't be obscured
+        // by TLF's context menu.
+
+        if (textDisplay.contextMenu)
+            userContextMenu = textDisplay.contextMenu;
+
+        if (!userContextMenu)
+            userContextMenu = super.getContextMenu();
+
+        return userContextMenu;
+    }
+
+    /**
+     *  @private
      */
     override protected function getUndoManager():IUndoManager
     {


fixed null pointer error

fixed null pointer error

Change-Id: Ia8ece4504a55d95c0dc069b4de4b2cdad7e439d0

--- WeaveAPI/src/JavaScript.as
+++ WeaveAPI/src/JavaScript.as
@@ -234,10 +234,11 @@

 			var params:Array = json.parse(paramsJson, _jsonReviver);

-			ExternalInterface.marshallExceptions = true; // let the external code handle errors
+			ExternalInterface.marshallExceptions = true; // let the external code handle errors from the method
 			var result:* = method.apply(null, params);
-
-			var resultJson:String = json.stringify(result, _jsonReplacer);
+			ExternalInterface.marshallExceptions = false; // any other errors should be handled by flash
+
+			var resultJson:String = json.stringify(result, _jsonReplacer) || 'null';

 			// work around unescaped backslash bug
 			if (backslashNeedsEscaping && resultJson.indexOf('\\') >= 0)


remove unused variable

remove unused variable

--- exporter/src/main/as/flump/xfl/XflLibrary.as
+++ exporter/src/main/as/flump/xfl/XflLibrary.as
@@ -93,7 +93,6 @@
     protected function prepareForPublishing (movie :MovieMold) :void {
         if (!_toPublish.add(movie)) return;

-        const numMovieFrames :int = movie.frames;
         for each (var layer :LayerMold in movie.layers) {
             for each (var kf :KeyframeMold in layer.keyframes) {
                 var swfTexture :SwfTexture = null;


Removing vestigial code that had been previously moved into its own class.

--- AS3WebSocket/src/com/worlize/websocket/WebSocket.as
+++ AS3WebSocket/src/com/worlize/websocket/WebSocket.as
@@ -27,11 +27,6 @@
 		private static const MODE_UTF8:int = 0;
 		private static const MODE_BINARY:int = 0;

-		private static const PARSE_NEW_FRAME:int = 0;
-		private static const PARSE_WAITING_FOR_16_BIT_LENGTH:int = 1;
-		private static const PARSE_WAITING_FOR_64_BIT_LENGTH:int = 2;
-		private static const PARSE_WAITING_FOR_PAYLOAD:int = 3;
-
 		private var _bufferedAmount:int = 0;

 		private var _readyState:int;
@@ -46,7 +41,6 @@
 		private var socket:Socket;
 		private var timeout:uint;

-		private var parseState:int = 0;
 		private var nonce:ByteArray;
 		private var base64nonce:String;
 		private var serverHandshakeResponse:String;
@@ -550,7 +544,6 @@

 							serverHandshakeResponse = null;
 							_readyState = WebSocketState.OPEN;
-							parseState = PARSE_NEW_FRAME;

 							if (serverExtensions.indexOf('deflate-stream') !== -1) {
 								initDeflateStream();


Allow XMPPSocketConnection to handle the stream:features packet.

git-svn-id: c197267f952b24206666de142881703007ca05d5@10749 b35dd754-fafc-0310-a699-88a17e54d16e

--- src/org/jivesoftware/xiff/core/XMPPSocketConnection.as
+++ src/org/jivesoftware/xiff/core/XMPPSocketConnection.as
@@ -208,6 +208,18 @@
 						case "presence":
 							handlePresence( currentNode );
 							break;
+
+						case "stream:features":
+							handleStreamFeatures( currentNode );
+							break;
+
+						case "success":
+							handleAuthentication( currentNode );
+							break;
+
+						case "failure":
+							handleAuthentication( currentNode );
+							break;

 						default:
 							dispatchError( "undefined-condition", "Unknown Error", "modify", 500 );


Bug 666215: Fix for getminutes failure in odd multiple of 30min UTC offset time zone (r=dschaffe,r=lhansen).

--- test/acceptance/shell.as
+++ test/acceptance/shell.as
@@ -367,6 +367,7 @@
     t = ResultArray[TIME]  +  TZ_DIFF*msPerHour;

     // Use our date arithmetic functions to determine the local hour, day, etc.
+    ResultArray[MINUTES] = MinFromTime(t);
     ResultArray[HOURS] = HourFromTime(t);
     ResultArray[DAY] = WeekDay(t);
     ResultArray[DATE] = DateFromTime(t);
@@ -381,6 +382,7 @@

     // Use our date arithmetic functions to determine the UTC hour, day, etc.
     ResultArray[TIME] = t;
+    ResultArray[UTC_MINUTES] = MinFromTime(t);
     ResultArray[UTC_HOURS] = HourFromTime(t);
     ResultArray[UTC_DAY] = WeekDay(t);
     ResultArray[UTC_DATE] = DateFromTime(t);


Remove useless code

Remove useless code

--- src/aerys/minko/type/math/Matrix3D.as
+++ src/aerys/minko/type/math/Matrix3D.as
@@ -343,8 +343,6 @@
 			var nx		: Number;
 			var ny		: Number;
 			var nz		: Number;
-
-			var plop 	: Number = 0;

 			if (mTrace > 0)
 			{


now handling nested hashmaps of columns

now handling nested hashmaps of columns

--- WeaveData/src/weave/data/DataSources/RDataSource.as
+++ WeaveData/src/weave/data/DataSources/RDataSource.as
@@ -15,11 +15,10 @@

 package weave.data.DataSources
 {
-	import flash.events.ErrorEvent;
-
 	import mx.rpc.events.FaultEvent;
 	import mx.rpc.events.ResultEvent;

+	import weave.api.core.ILinkableHashMap;
 	import weave.api.core.ILinkableObject;
 	import weave.api.data.ColumnMetadata;
 	import weave.api.data.IAttributeColumn;
@@ -27,7 +26,6 @@
 	import weave.api.data.IDataSource;
 	import weave.api.data.IDataSource_Service;
 	import weave.api.data.IWeaveTreeNode;
-	import weave.api.detectLinkableObjectChange;
 	import weave.api.disposeObject;
 	import weave.api.getCallbackCollection;
 	import weave.api.getLinkableDescendants;
@@ -43,11 +41,9 @@
 	import weave.data.AttributeColumns.ReferencedColumn;
 	import weave.data.hierarchy.ColumnTreeNode;
 	import weave.services.AMF3Servlet;
-	import weave.services.JsonCache;
-	import weave.services.WeaveRServlet;
 	import weave.services.addAsyncResponder;
 	import weave.utils.ColumnUtils;
-	import weave.utils.VectorUtils;
+	import weave.utils.VectorUtils;

 	public class RDataSource extends AbstractDataSource implements IDataSource_Service
 	{
@@ -98,17 +94,28 @@
 				return;

 			var keyType:String;
+			var columnArray:Array;
 			var simpleInputs:Object = {};
 			var columnsByKeyType:Object = {}; // Object(keyType -> Array of IAttributeColumn)
 			for each (var obj:ILinkableObject in inputs.getObjects())
 			{
 				var name:String = inputs.getName(obj);
 				var column:IAttributeColumn = obj as IAttributeColumn;
-				if (column)
+				var hashMap:ILinkableHashMap = obj as ILinkableHashMap;
+				if (column || hashMap)
 				{
-					keyType = column.getMetadata(ColumnMetadata.KEY_TYPE);
-					var columnArray:Array = columnsByKeyType[keyType] || (columnsByKeyType[keyType] = [])
-					columnArray.push(column);
+					var columnDescendants:Array = null;
+					if (column)
+						columnDescendants = [column];
+					else if (hashMap)
+						columnDescendants = getLinkableDescendants(hashMap, IAttributeColumn);
+
+					for each (column in columnDescendants)
+					{
+						keyType = column.getMetadata(ColumnMetadata.KEY_TYPE);
+						columnArray = columnsByKeyType[keyType] || (columnsByKeyType[keyType] = [])
+						columnArray.push(column);
+					}
 				}
 				else
 				{
@@ -124,7 +131,7 @@
 				var keys:Array = VectorUtils.pluck(joined.shift() as Array, 'localName');
 				var colMap:Object = {};
 				for (var i:int = 0; i <  joined.length; i++)
-					colMap[ inputs.getName(cols[i]) ] = joined[i];
+					setChain(colMap, WeaveAPI.SessionManager.getPath(inputs, cols[i]), joined[i]);
 				columnData[keyType] = {keys: keys, columns: colMap};
 			}

@@ -138,6 +145,20 @@
 				getSessionState(this)
 			);
 		}
+
+		private function setChain(root:Object, property_chain:Array, value:Object):*
+		{
+			property_chain = [].concat(property_chain); // makes a copy and converts a single string into an array
+			var last_property:String = property_chain.pop();
+			for each (var prop:String in property_chain)
+				root = root[prop] || (root[prop] = {});
+			// if value not given, return current value
+			if (arguments.length == 2)
+				return root[last_property];
+			// set the value and return it
+			return root[last_property] = value;
+		};
+

 		private function handleScriptResult(event:ResultEvent, sessionState:Object):void
 		{


- bugfix: Label wasn't properly invalidated on hover

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

--- src/reprise/controls/Label.as
+++ src/reprise/controls/Label.as
@@ -312,27 +312,26 @@

 		protected function applyLabel(labelXML : XML) : void
 		{
-			var oldWidth : int = m_labelDisplay.textWidth;
-			var oldHeight : int = m_labelDisplay.textHeight;
-
-			if (m_currentStyles.width)
-			{
-				m_labelDisplay.width = m_currentStyles.width + 6;
-			}
-			else
-			{
-				m_labelDisplay.autoSize = 'left';
-			}
-
 			XML.prettyPrinting = false;
 			var text : String = labelXML.toXMLString();
+			text = text.substr(0, text.length - 3);
 			XML.prettyPrinting = true;
-			if (text.substr(0, text.length - 3) != m_labelDisplay.htmlText)
-			{
-				m_labelDisplay.htmlText = text.substr(0, text.length - 3);
-				m_usedLabelXML = labelXML;
-				m_cacheInvalid = true;
-			}
+			if (text == m_labelDisplay.htmlText)
+			{
+				return;
+			}
+
+			if (m_currentStyles.width)
+			{
+				m_labelDisplay.width = m_currentStyles.width + 6;
+			}
+			else
+			{
+				m_labelDisplay.autoSize = 'left';
+			}
+			m_labelDisplay.htmlText = text;
+			m_usedLabelXML = labelXML;
+			m_cacheInvalid = true;

 			if (m_labelDisplay.wordWrap)
 			{
@@ -365,8 +364,7 @@
 				}
 			}

-			m_overflowIsInvalid =
-				m_labelDisplay.textWidth != oldWidth || m_labelDisplay.textHeight != oldHeight;
+			m_overflowIsInvalid = true;
 		}

 		protected override function applyInFlowChildPositions() : void
@@ -664,7 +662,13 @@
 			}
 			return text;
 		}
-
+
+		override protected function validateAfterChildren() : void
+		{
+			m_stylesInvalidated ||= m_overflowIsInvalid;
+			super.validateAfterChildren();
+		}
+
 		protected override function applyOverflowProperty() : void
 		{
 			if (!m_overflowIsInvalid)
@@ -805,7 +809,7 @@
 			scrollbar.addEventListener(Event.CHANGE, scrollbar_change);
 			return scrollbar;
 		}
-
+
 		protected override function draw() : void
 		{
 			if (!m_cacheInvalid && !m_dimensionsChanged)


asdocs added to Proxy

asdocs added to Proxy

--- src/ru/whitered/kote/Proxy.as
+++ src/ru/whitered/kote/Proxy.as
@@ -2,7 +2,7 @@
 {

 	/**
-	 * @author whitered
+	 * Proxy classes are used to manage parts of the application's data model.
 	 */
 	public class Proxy extends Notifier
 	{


Fixed bug using null values

Fixed bug using null values

--- collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/RangeInputFieldPresenter.as
+++ collect-flex/collect-flex-client/src/main/flex/org/openforis/collect/presenter/RangeInputFieldPresenter.as
@@ -28,8 +28,8 @@
 					if(end != null && !isNaN(Number(end)) && start != end) {
 						result += SEPARATOR + end.toString();
 					}
+					return result;
 				}
-				return result;
 			}
 			return "";
 		}


Transferred from the Adobe Open Source Subversion Repository

Revision: 5099
Author:   gauravj@adobe.com
Date:     2009-02-27T03:43:02.639229Z

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

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

--- frameworks/projects/rpc/src/mx/rpc/CallResponder.as
+++ frameworks/projects/rpc/src/mx/rpc/CallResponder.as
@@ -43,6 +43,11 @@
  *  call to the same service is in progress while the former will be reset as soon
  *  as a new service invocation is started.
  *  </p>
+ *
+ *  @langversion 3.0
+ *  @playerversion Flash 9
+ *  @playerversion AIR 1.1
+ *  @productversion Flex 3
  */
 public class CallResponder extends EventDispatcher implements IResponder
 {
@@ -53,6 +58,11 @@
      * Each CallResponder monitors dispatches result and fault events received
      * from a single token.  This property value specifies that token.  You typically
      * set this to the
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function set token(t:AsyncToken):void
     {
@@ -79,6 +89,11 @@
      *  this method directly.
      *
      *  @param  data the ResultEvent delivered by the AsyncToken
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function result(data:Object):void
     {
@@ -94,6 +109,11 @@
      *  this method directly.
      *
      *  @param  data the FaultEvent delivered by the AsyncToken
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public function fault(data:Object):void
     {
@@ -112,6 +132,11 @@
      *  value cleared out on the second and subsequent call to a particular service
      *  method.  Additionally, if a fault occurs this value will still be set to
      *  the last successful result returned by a token monitored by this CallResponder.
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
      */
     public var lastResult:*;


Transferred from the Adobe Open Source Subversion Repository

Revision: 8
Author:   open-source-svn-admin@adobe.com
Date:     2007-12-15T01:49:31.087529Z

Log Message:
-----------
The beginning of the open-source Flex SDK.

Populated the flex/sdk/trunk directory with an open-source subset of files from //depot/flex/sdk/...@191097 in the Faramir Perforce server. This changelist is a bit past the 3.0rc0 build.

The Ant scripts will not successfully build yet. They need to be adapted to the open-source subset.

Modified Paths:
--------------
2532 paths were modified

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

--- frameworks/projects/mx/src/mx/controls/FormItemLabel.as
+++ frameworks/projects/mx/src/mx/controls/FormItemLabel.as
@@ -0,0 +1,52 @@
+////////////////////////////////////////////////////////////////////////////////
+//
+//  ADOBE SYSTEMS INCORPORATED
+//  Copyright 2003-2007 Adobe Systems Incorporated
+//  All Rights Reserved.
+//
+//  NOTICE: Adobe permits you to use, modify, and distribute this file
+//  in accordance with the terms of the license agreement accompanying it.
+//
+////////////////////////////////////////////////////////////////////////////////
+
+package mx.controls
+{
+
+//--------------------------------------
+//  Other metadata
+//--------------------------------------
+
+/**
+ *  The FormItem container uses a FormItemLabel object to display the
+ *  label portion of the FormItem container.
+ *
+ *
The FormItemLabel class does not add any functionality to its superclass, Label.
+ *  Instead, its purpose is to let you set styles in a FormItemLabel type selector and
+ *  set styles that affect the labels in all FormItem containers.

+ *
+ *
Note: This class has been deprecated.
+ *  The recommended way to style a FormItem label is to use the
+ *  labelStyleName style property of the FormItem class.

+ *
+ *  @see mx.containers.FormItem
+ */
+public class FormItemLabel extends Label
+{
+    include "../core/Version.as";
+
+    //--------------------------------------------------------------------------
+    //
+    //  Constructor
+    //
+    //--------------------------------------------------------------------------
+
+    /**
+     *  Constructor.
+     */
+    public function FormItemLabel()
+    {
+        super();
+    }
+}
+
+}


Transferred from the Adobe Open Source Subversion Repository

Revision: 7163
Author:   aharui@adobe.com
Date:     2009-05-21T02:19:55.813792Z

Log Message:
-----------
Initial checkin of frame 1 cleanup.  In an RSL linkage, more classes will now come from the RSL because they are no longer needed in frame 1, and the size of the application SWF will be smaller.

QE Notes: None
Doc Notes: Maybe.  All new classes should be undocumented, but it might be worth checking that and any changes to interfaces
Bugs:
Reviewer: darrell
tests: checkintests mustella/MarshallPlan

Modified Paths:
--------------
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/TileListItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ActiveWindowManager.as</path>
<path kind="dir" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/LayoutManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/RSLEvent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Menu.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/MarshalPopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/IEmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ColorPicker.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/compiler/mxml/lang/StandardDefs.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/EventProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextFormat.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/DateField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/flex/tools/dependencychecker/FrameworkSwcDependencyRules.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/DragManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridColumn.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/StyleManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFontRegistry.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ToolTipManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/EmbeddedFont.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/ComboBox.as</path>
<path kind="file" action="M">/flex/sdk/trunk/modules/compiler/src/java/flex2/tools/PreLink.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/Preloader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/resources/ResourceManagerImpl.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ResourceModuleRSLItem.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/FrameworkClasses.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeProvider.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/FocusManagerMarshalMixin.as</path>
<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/framework/src/mx/resources/ResourceManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IMarshalSystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/EventListenerRequest.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/ToolTipManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/tools/dependencychecker/frameworkSwcExceptionsList.txt</path>
<path kind="file" action="M">/flex/sdk/trunk/mustella/MustellaResultsParser.java</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/Alert.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/ChildManager.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/systemClasses/MarshallPlan.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UITextField.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerGlobals.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/SWFBridgeGroup.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/alertClasses/AlertForm.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/airframework/src/spark/components/Window.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/treeClasses/TreeItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework_textLayout/src/mx/core/UITLFTextField.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/DragManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/UIComponent.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/SWFLoader.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/MenuBar.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/Request.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/RichEditableText.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/styles/CSSStyleDeclaration.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/PopUpButton.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/events/FlexEvent.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IActiveWindowManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/FocusManager.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/flex4/src/spark/components/Application.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/flex4/src/spark/primitives/SimpleText.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/PopUpManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/listClasses/ListItemRenderer.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/SystemManagerProxy.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/messaging/config/LoaderConfig.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/IFocusManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/preloaders/DownloadProgressBar.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ScrollControlBase.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/ISystemManagerChildManager.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/controls/dataGridClasses/DataGridItemRenderer.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/marshalClasses/CursorManagerMarshalMixin.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/CursorManagerImpl.as</path>
<path kind="file" action="A">/flex/sdk/trunk/frameworks/projects/framework/src/mx/managers/PopUpData.as</path>
<path kind="file" action="M">/flex/sdk/trunk/frameworks/projects/framework/src/mx/core/ISWFBridgeGroup.as</path>

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

--- frameworks/projects/mx/src/mx/core/ScrollControlBase.as
+++ frameworks/projects/mx/src/mx/core/ScrollControlBase.as
@@ -20,7 +20,7 @@
 import flash.geom.Point;

 import mx.controls.HScrollBar;
-import mx.controls.ToolTip;
+import mx.core.IToolTip;
 import mx.controls.VScrollBar;
 import mx.controls.scrollClasses.ScrollBar;
 import mx.events.ScrollEvent;
@@ -338,7 +338,7 @@
      *  @private
      *  Instance of the scrollTip. (There can be only one.)
      */
-    private var scrollTip:ToolTip;
+    private var scrollTip:IToolTip;

     /**
      *  @private
@@ -1375,7 +1375,7 @@
             {
                 if (scrollTip)
                 {
-			       	systemManager.topLevelSystemManager.removeChildFromSandboxRoot("toolTipChildren", scrollTip as DisplayObject);
+			       	ToolTipManager.destroyToolTip(scrollTip);
                     scrollTip = null;
                     ToolTipManager.enabled = oldTTMEnabled;
                 }
@@ -1389,8 +1389,7 @@

                 if (!scrollTip)
                 {
-                    scrollTip = new ToolTip();
-			       	systemManager.topLevelSystemManager.addChildToSandboxRoot("toolTipChildren", scrollTip as DisplayObject);
+                    scrollTip = ToolTipManager.createToolTip("", 0, 0, null, this);
                     scrollThumbMidPoint = scrollBar.scrollThumb.height / 2;
                     oldTTMEnabled = ToolTipManager.enabled;
                     ToolTipManager.enabled = false;


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

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

 package mx.rpc.xml
 {


Transferred from the Adobe Open Source Subversion Repository

Revision: 20642
Author:   smgilson@adobe.com
Date:     2011-03-07T17:53:01.854031Z

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/hero_private/frameworks/projects/spark/src/spark/components/HGroup.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichEditableText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/primitives/BitmapImage.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/DataGroup.as</path>
<path kind="file" action="D">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/asdoc/en_US/spark/components/examples/TraceSelectionRanges.mxml</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/SkinnableContainer.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/RichText.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/ButtonBarButton.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Group.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/Image.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/FormHeading.as</path>
<path kind="file" action="M">/private/flex/sdk/branches/hero_private/frameworks/projects/spark/src/spark/components/VideoPlayer.as</path>

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

--- frameworks/projects/spark/src/spark/components/Group.as
+++ frameworks/projects/spark/src/spark/components/Group.as
@@ -1432,6 +1432,11 @@

     /**
      *  @inheritDoc
+     *
+     *  @langversion 3.0
+     *  @playerversion Flash 10
+     *  @playerversion AIR 2.5
+     *  @productversion Flex 4.5
      */
     public function removeAllElements():void
     {


minor changes

minor changes

--- src/picmagick/display/DraggableCanvas.as
+++ src/picmagick/display/DraggableCanvas.as
@@ -27,7 +27,7 @@
 			draggable = true;
 			spaceDown = false;
 			_canvas =  new LayeredCanvas();
-			_canvas.filters = [new DropShadowFilter(4, 45, 0, 0.5, 8, 8, 1, 5)];
+			_canvas.filters = [new DropShadowFilter(4, 45, 0, 0.5, 8, 8, 1, 1)];
 			mask = _mask = new Shape();
 			_centerX = _centerY = 0;
 			addChild(_canvas);


improved test function

improved test function

Change-Id: I100ff3d3e22cabec7deccdff5407afac5cce9469

--- WeaveData/src/weave/utils/AsyncSort.as
+++ WeaveData/src/weave/utils/AsyncSort.as
@@ -151,27 +151,38 @@
 			getCallbackCollection(this).triggerCallbacks();
 		}

-		//WeaveAPI.StageUtils.callLater(null, test);
-		private static function test():void
+		private static var testSorter:AsyncSort;
+		//test(); // Class('weave.utils.AsyncSort').test()
+		public static function test(n:uint = 100000):void
 		{
-			var sorter:AsyncSort = new AsyncSort();
+			var start:int;
+			testSorter = new AsyncSort();
 			function handleSort():void
 			{
+				trace(getTimer() - start, 'ms async');
 				trace('VERIFYING ASYNC SORT');
-				var list:Array = sorter.result;
-				for (var i:int = 0; i < array.length - 1; i++)
+				var result:Array = testSorter.result;
+				for (var i:int = 0; i < result.length - 1; i++)
 				{
-					if (list[i] > list[i+1])
-						throw new Error("ASSERTION FAIL "+list[i]+','+list[i+1]);
+					if (result[i] > result[i+1])
+						throw new Error("ASSERTION FAIL "+result[i]+','+result[i+1]);
 				}
+				trace('SUCCESS');
 			}
-			getCallbackCollection(sorter).addImmediateCallback(null, handleSort);
+			getCallbackCollection(testSorter).addImmediateCallback(null, handleSort);

 			var array:Array = [];
-			for (var i:int = 0; i < 500000; i++)
+			for (var i:int = 0; i < n; i++)
 				array.push(uint(Math.random()*100));
+			var array2:Array = ObjectUtil.copy(array) as Array;

-			sorter.beginSort(array);
+			trace('sorting',n,'numbers...');
+			start = getTimer();
+			array.sort();
+			trace(getTimer() - start, 'ms immediate');
+
+			start = getTimer();
+			testSorter.beginSort(array2);
 		}
 	}
 }


improved error handling in WeaveFileFormat

Change-Id: Idfeb567bfd85aeb42db1ae0e92fbb1f962c8ae6c

--- WeaveAPI/src/weave/api/WeaveFileFormat.as
+++ WeaveAPI/src/weave/api/WeaveFileFormat.as
@@ -53,7 +53,7 @@

 		/**
 		 * This function will create a ByteArray that contains the specified content in the Weave file format.
-		 * @param content The content of the file.
+		 * @param content The content to be encoded.
 		 * @return A ByteArray that contains the specified content encoded in the Weave file format.
 		 */
 		public static function createFile(content:Object):ByteArray
@@ -75,22 +75,27 @@
 		 */
 		public static function readFile(data:ByteArray):Object
 		{
+			var err_msg:String = "Unknown file format";
 			try
 			{
 				var header:Object = data.readObject();
-				if (header != WEAVE_FILE_HEADER)
-					throw new Error("Unsupported file format");
-
-				var body:ByteArray = new ByteArray();
-				data.readBytes(body);
-				body.uncompress();
-
-				var content:Object = body.readObject();
-				return content;
+				if (header == WEAVE_FILE_HEADER)
+				{
+					var body:ByteArray = new ByteArray();
+					data.readBytes(body);
+					body.uncompress();
+
+					var content:Object = body.readObject();
+					return content;
+				}
+				else
+				{
+					err_msg = "Unsupported file format";
+				}
 			}
 			catch (e:Error) { }

-			throw new Error("Unknown file format");
+			throw new Error(err_msg);
 		}
 	}
 }


Add a RateUnlimit implementation of RateLimit.

--- swfcat.as
+++ swfcat.as
@@ -31,7 +31,7 @@
         // Milliseconds.
         private const FACILITATOR_POLL_INTERVAL:int = 10000;

-        // Bytes per second.
+        // Bytes per second. Set to undefined to disable limit.
         public const RATE_LIMIT:Number = 10 * 1024;
         // Seconds.
         private const RATE_LIMIT_HISTORY:Number = 5.0;
@@ -103,7 +103,10 @@
             /* Update the client counter on badge. */
             update_client_count();

-            rate_limit = new RateLimit(RATE_LIMIT * RATE_LIMIT_HISTORY, RATE_LIMIT_HISTORY);
+            if (RATE_LIMIT)
+                rate_limit = new BucketRateLimit(RATE_LIMIT * RATE_LIMIT_HISTORY, RATE_LIMIT_HISTORY);
+            else
+                rate_limit = new RateUnlimit();

             puts("Starting.");
             // Wait until the query string parameters are loaded.
@@ -236,12 +239,56 @@

 class RateLimit
 {
+    public function RateLimit()
+    {
+    }
+
+    public function update(n:Number):Boolean
+    {
+        return true;
+    }
+
+    public function when():Number
+    {
+        return 0.0;
+    }
+
+    public function is_limited():Boolean
+    {
+        return false;
+    }
+}
+
+class RateUnlimit extends RateLimit
+{
+    public function RateUnlimit()
+    {
+    }
+
+    public override function update(n:Number):Boolean
+    {
+        return true;
+    }
+
+    public override function when():Number
+    {
+        return 0.0;
+    }
+
+    public override function is_limited():Boolean
+    {
+        return false;
+    }
+}
+
+class BucketRateLimit extends RateLimit
+{
     private var amount:Number;
     private var capacity:Number;
     private var time:Number;
     private var last_update:uint;

-    public function RateLimit(capacity:Number, time:Number)
+    public function BucketRateLimit(capacity:Number, time:Number)
     {
         this.amount = 0.0;
         /* capacity / time is the rate we are aiming for. */
@@ -264,7 +311,7 @@
             amount = 0.0;
     }

-    public function update(n:Number):Boolean
+    public override function update(n:Number):Boolean
     {
         age();
         amount += n;
@@ -272,13 +319,13 @@
         return amount <= capacity;
     }

-    public function when():Number
+    public override function when():Number
     {
         age();
         return (amount - capacity) / (capacity / time);
     }

-    public function is_limited():Boolean
+    public override function is_limited():Boolean
     {
         age();
         return amount > capacity;


added ColumnUtils.hack_findHierarchyNode()

--- WeaveJS/src/weavejs/data/ColumnUtils.as
+++ WeaveJS/src/weavejs/data/ColumnUtils.as
@@ -26,6 +26,7 @@
 	import weavejs.api.data.IKeySet;
 	import weavejs.api.data.IPrimitiveColumn;
 	import weavejs.api.data.IQualifiedKey;
+	import weavejs.api.data.IWeaveTreeNode;
 	import weavejs.data.column.DynamicColumn;
 	import weavejs.data.column.ExtendedDynamicColumn;
 	import weavejs.data.column.ReferencedColumn;
@@ -37,7 +38,7 @@
 	import weavejs.geom.Point;
 	import weavejs.util.ArrayUtils;
 	import weavejs.util.JS;
-	import weavejs.util.StandardLib;
+	import weavejs.util.StandardLib;

 	/**
 	 * This class contains static functions that access values from IAttributeColumn objects.
@@ -188,6 +189,15 @@
 			}
 			return columnWrapper as DynamicColumn;
 		}
+
+		public static function hack_findHierarchyNode(columnWrapper:IColumnWrapper):IWeaveTreeNode
+		{
+			var dc:DynamicColumn = hack_findInternalDynamicColumn(columnWrapper);
+			if (!dc)
+				return null;
+			var rc:ReferencedColumn = dc.target as ReferencedColumn;
+			return rc ? rc.getHierarchyNode() : null;
+		}

 		/**
 		 * Gets an array of QKey objects from column which meet the criteria


SpatialIndex code cleanup and preventing callbacks from being triggered prematurely.

--- WeaveUI/src/weave/utils/SpatialIndex.as
+++ WeaveUI/src/weave/utils/SpatialIndex.as
@@ -48,18 +48,40 @@
 	 */
 	public class SpatialIndex extends CallbackCollection implements ISpatialIndex
 	{
-		// TODO: Refactor to use image/color hits instead. The image hits should use some sort of trapezoidal or triangular grid.
-
-		public function SpatialIndex(callback:Function = null, callbackParameters:Array = null)
-		{
+		public function SpatialIndex(callback:Function = null, callbackParameters:Array = null)
+		{
 			addImmediateCallback(this, callback, callbackParameters);
-		}
+		}

 		private var _kdTree:KDTree = new KDTree(5);
-		private var _keyToBoundsMap:Dictionary = new Dictionary();
-
+		private const _keysArray:Array = []; // of IQualifiedKey
+		private var _keyToBoundsMap:Dictionary = new Dictionary(); // IQualifiedKey -> Array of IBounds2D
+		private var _keyToGeometriesMap:Dictionary = new Dictionary(); // IQualifiedKey -> Array of GeneralizedGeometry or ISimpleGeometry
+
+		private var _queryMissingBounds:Boolean; // used by _insertNext
+		private var _keysArrayIndex:int; // used by _insertNext
+		private var _boundsArrayIndex:int; // used by _insertNext
+		private var _boundsArray:Array; // used by _insertNext
+
+		/**
+		 * These constants define indices in a KDKey corresponding to xmin,ymin,xmax,ymax,importance values.
+		 */
+		private const XMIN_INDEX:int = 0, YMIN_INDEX:int = 1;
+		private const XMAX_INDEX:int = 2, YMAX_INDEX:int = 3;
+		private const IMPORTANCE_INDEX:int = 4;
+
+		/**
+		 * These KDKey arrays are created once and reused to avoid unnecessary creation of objects.
+		 * The only values that change are the ones that are undefined here.
+		 */
+		private const minKDKey:Array = [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, NaN, NaN, 0];
+		private const maxKDKey:Array = [NaN, NaN, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY];
+
+		// reusable temporary objects
+		private const _tempBounds:IBounds2D = new Bounds2D();
+		private const _tempBoundsPolygon:Array = [new Point(), new Point(), new Point(), new Point(), new Point()]; // used by setTempBounds and getKeysGeometryOverlap
+
 		/**
-		 * collectiveBounds
 		 * This bounds represents the full extent of the shape index.
 		 */
 		public const collectiveBounds:IBounds2D = new Bounds2D();
@@ -86,7 +108,6 @@
 		{
 			return _keysArray;
 		}
-		private const _keysArray:Array = new Array();

 		/**
 		 * The number of records in the index
@@ -95,11 +116,6 @@
 		{
 			return _kdTree.nodeCount;
 		}
-
-		private var _keyToGeometriesMap:Dictionary = new Dictionary();
-		private var _plotter:IPlotter;
-		private var _queryMissingBounds:Boolean;
-		private var _spatialCallbacksTriggerCounter:uint = 0;

 		/**
 		 * This function fills the spatial index with the data bounds of each record in a plotter.
@@ -108,18 +124,15 @@
 		 */
 		public function createIndex(plotter:IPlotter, queryMissingBounds:Boolean = false):void
 		{
-			_plotter = plotter;
 			_queryMissingBounds = queryMissingBounds;
-
-			delayCallbacks();

 			var key:IQualifiedKey;
 			var bounds:IBounds2D;
 			var i:int;

-			if (_plotter is DynamicPlotter)
-			{
-				if ((_plotter as DynamicPlotter).internalObject is IPlotterWithGeometries)
+			if (plotter is DynamicPlotter)
+			{
+				if ((plotter as DynamicPlotter).internalObject is IPlotterWithGeometries)
 					_keyToGeometriesMap = new Dictionary();
 				else
 					_keyToGeometriesMap = null;
@@ -135,49 +148,47 @@
 			}
 			clear();

-			if (_plotter != null)
+			if (plotter != null)
 			{
-				collectiveBounds.copyFrom(_plotter.getBackgroundDataBounds());
+				collectiveBounds.copyFrom(plotter.getBackgroundDataBounds());

 				// make a copy of the keys vector
-				VectorUtils.copy(_plotter.keySet.keys, _keysArray);
+				VectorUtils.copy(plotter.keySet.keys, _keysArray);

 				// save dataBounds for each key
 				i = _keysArray.length;
 				while (--i > -1)
 				{
 					key = _keysArray[i] as IQualifiedKey;
-					_keyToBoundsMap[key] = _plotter.getDataBoundsFromRecordKey(key);
+					_keyToBoundsMap[key] = plotter.getDataBoundsFromRecordKey(key);

 					if (_keyToGeometriesMap != null)
 					{
-						var geoms:Array = ((_plotter as DynamicPlotter).internalObject as IPlotterWithGeometries).getGeometriesFromRecordKey(key);
+						var geoms:Array = ((plotter as DynamicPlotter).internalObject as IPlotterWithGeometries).getGeometriesFromRecordKey(key);
 						_keyToGeometriesMap[key] = geoms;
 					}
 				}
 			}

-			if (_keysArray.length > 0)
-			{
-				// if auto-balance is disabled, randomize insertion order
-				if (!_kdTree.autoBalance)
-				{
-					// randomize the order of the shapes to avoid a possibly poorly-performing
-					// KDTree structure due to the given ordering of the records
-					VectorUtils.randomSort(_keysArray);
-				}
-				// insert bounds-to-key mappings in the kdtree
-				StageUtils.startTask(this, _insertNext);
+			// if auto-balance is disabled, randomize insertion order
+			if (!_kdTree.autoBalance)
+			{
+				// randomize the order of the shapes to avoid a possibly poorly-performing
+				// KDTree structure due to the given ordering of the records
+				VectorUtils.randomSort(_keysArray);
 			}
-			else if (!_tempBounds.equals(collectiveBounds) || shouldTrigger)
-				triggerCallbacks();
-
-			resumeCallbacks();
-		}
+
+			// insert bounds-to-key mappings in the kdtree
+			StageUtils.startTask(this, _insertNext);
+		}
+
 		private function _insertNext():Number
 		{
 			if (_keysArrayIndex >= _keysArray.length) // in case length is zero
+			{
+				triggerCallbacks();
 				return 1; // done
+			}

 			var key:IQualifiedKey = _keysArray[_keysArrayIndex] as IQualifiedKey;
 			if (!_boundsArray) // is there an existing nested array?
@@ -214,11 +225,6 @@
 				triggerCallbacks();
 			return progress;
 		}
-
-		private var _keysArrayIndex:int;
-		private var _boundsArrayIndex:int;
-		private var _boundsArray:Array;
-

 		/**
 		 * This function empties the spatial index.
@@ -302,6 +308,23 @@
 			maxKDKey[YMIN_INDEX] = bounds.getYNumericMax(); // enforce result.YMIN <= query.yNumericMax

 			return _kdTree.queryRange(minKDKey, maxKDKey);
+		}
+
+		/**
+		 * used by getKeysGeometryOverlap.
+		 */
+		private function setTempBounds(bounds:IBounds2D):void
+		{
+			var b:Bounds2D = bounds as Bounds2D;
+			var xMin:Number = b.xMin;
+			var yMin:Number = b.yMin;
+			var xMax:Number = b.xMax;
+			var yMax:Number = b.yMax;
+			_tempBoundsPolygon[0].x = xMin; _tempBoundsPolygon[0].y = yMin;
+			_tempBoundsPolygon[1].x = xMin; _tempBoundsPolygon[1].y = yMax;
+			_tempBoundsPolygon[2].x = xMax; _tempBoundsPolygon[2].y = yMax;
+			_tempBoundsPolygon[3].x = xMax; _tempBoundsPolygon[3].y = yMin;
+			_tempBoundsPolygon[4].x = xMin; _tempBoundsPolygon[4].y = yMin;
 		}

 		/**
@@ -436,21 +459,6 @@
 			return result;
 		} // end function

-		private var _keyToDistance:Dictionary = null;
-		private function setTempBounds(bounds:IBounds2D):void
-		{
-			var b:Bounds2D = bounds as Bounds2D;
-			var xMin:Number = b.xMin;
-			var yMin:Number = b.yMin;
-			var xMax:Number = b.xMax;
-			var yMax:Number = b.yMax;
-			_tempBoundsPolygon[0].x = xMin; _tempBoundsPolygon[0].y = yMin;
-			_tempBoundsPolygon[1].x = xMin; _tempBoundsPolygon[1].y = yMax;
-			_tempBoundsPolygon[2].x = xMax; _tempBoundsPolygon[2].y = yMax;
-			_tempBoundsPolygon[3].x = xMax; _tempBoundsPolygon[3].y = yMin;
-			_tempBoundsPolygon[4].x = xMin; _tempBoundsPolygon[4].y = yMin;
-		}
-
 		/**
 		 * This function will get the keys closest the center of the bounds object. Generally this function will
 		 * return an array of at most one key. Sometimes, it may return more than one key if there are multiple keys
@@ -691,7 +699,7 @@
 		 * @param geometry An ISimpleGeometry object used to query the spatial index.
 		 * @param minImportance The minimum importance value to use when determining geometry overlap.
 		 * @param filterBoundingBoxesByImportance If true, bounding boxes will be pre-filtered by importance before checking geometry overlap.
-		 * @return An array of keys.
+		 * @return An array of IQualifiedKey objects.
 		 */
 		public function getKeysGeometryOverlapGeometry(geometry:ISimpleGeometry, minImportance:Number = 0, filterBoundingBoxesByImportance:Boolean = false):Array
 		{
@@ -728,7 +736,7 @@
 						var genGeomIsPoly:Boolean = genGeom.isPolygon();
 						var genGeomIsLine:Boolean = genGeom.isLine();
 						var genGeomIsPoint:Boolean = genGeom.isPoint();
-						var simplifiedGeom:Vector.<Vector.<BLGNode>> = genGeom.getSimplifiedGeometry(minImportance, _tempSimpleGeomBounds);
+						var simplifiedGeom:Vector.<Vector.<BLGNode>> = genGeom.getSimplifiedGeometry(minImportance/*, dataBounds*/);

 						if (simplifiedGeom.length == 0)
 						{
@@ -811,28 +819,5 @@

 			return result;
 		}
-
-		/**
-		 * These constants define indices in a KDKey corresponding to xmin,ymin,xmax,ymax,importance values.
-		 */
-		private const XMIN_INDEX:int = 0, YMIN_INDEX:int = 1;
-		private const XMAX_INDEX:int = 2, YMAX_INDEX:int = 3;
-		private const IMPORTANCE_INDEX:int = 4;
-
-		/**
-		 * These KDKey arrays are created once and reused to avoid unnecessary creation of objects.
-		 * The only values that change are the ones that are undefined here.
-		 */
-		private var minKDKey:Array = [Number.NEGATIVE_INFINITY, Number.NEGATIVE_INFINITY, NaN, NaN, 0];
-		private var maxKDKey:Array = [NaN, NaN, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY, Number.POSITIVE_INFINITY];
-
-
-		// reusable temporary objects
-		private const _tempBounds:IBounds2D = new Bounds2D();
-		private const _tempSimpleGeomBounds:IBounds2D = new Bounds2D();
-		private const _tempArray:Array = [];
-		private const _tempBoundsPolygon:Array = [new Point(), new Point(), new Point(), new Point(), new Point()];
-		private const _tempGeometryPolygon:Array = [];
-		private const _tempVertices:Array = [];
 	}
 }