You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2020/10/24 13:34:04 UTC

[royale-asjs] branch develop updated (6647d85 -> e70f6b4)

This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a change to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git.


    from 6647d85  MXRoyale: Add Timer implementation with TimerEvent. Timer extends org.apache.royale.utils.Timer and dispatch TimerEvent.TIMER_COMPLETE
     new fb4260a  ExposE cUBIC function in emulation
     new b1bac79  Add some constants to DragManager
     new 9613c2a  First implementation of spark line
     new e70f6b4  More emulation stubs

The 4 revisions listed above as "new" are entirely new to this
repository and will be described in separate emails.  The revisions
listed as "add" were already present in the repository and have only
been added to this reference.


Summary of changes:
 .../MXRoyale/src/main/royale/MXRoyaleClasses.as    |   2 +-
 .../MXRoyale/src/main/royale/mx/effects/Effect.as  |   2 +
 .../src/main/royale/mx/effects/easing/Cubic.as     |   2 +-
 .../src/main/royale/mx/managers/DragManager.as     |  33 +-
 .../main/royale/mx/validators/RegExpValidator.as   |  24 +-
 .../src/main/royale/spark/components/List.as       | 493 +++++++++++----------
 .../spark/layouts/supportClasses/LayoutBase.as     |  26 +-
 .../src/main/royale/spark/primitives/Line.as       |  58 +--
 8 files changed, 339 insertions(+), 301 deletions(-)


[royale-asjs] 02/04: Add some constants to DragManager

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit b1bac79a81e9b3576f616e73dff487c423f34c61
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Sat Oct 24 14:31:14 2020 +0100

    Add some constants to DragManager
---
 .../src/main/royale/mx/managers/DragManager.as     | 33 ++++++++++++++++++++--
 1 file changed, 30 insertions(+), 3 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/DragManager.as b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/DragManager.as
index 49c8f3f..5a27173 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/managers/DragManager.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/managers/DragManager.as
@@ -79,6 +79,35 @@ public class DragManager
     //
     //--------------------------------------------------------------------------
 
+    /**
+     *  Constant that specifies that the type of drag action is "none".
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const NONE:String = "none";
+
+    /**
+     *  Constant that specifies that the type of drag action is "copy".
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const COPY:String = "copy";
+
+    /**
+     *  Constant that specifies that the type of drag action is "move".
+     *  
+     *  @langversion 3.0
+     *  @playerversion Flash 9
+     *  @playerversion AIR 1.1
+     *  @productversion Flex 3
+     */
+    public static const MOVE:String = "move";
 
     /**
      *  Constant that specifies that the type of drag action is "link".
@@ -86,11 +115,9 @@ public class DragManager
      *  @langversion 3.0
      *  @playerversion Flash 9
      *  @playerversion AIR 1.1
-     *  @productversion Royale 0.9.3
+     *  @productversion Flex 3
      */
     public static const LINK:String = "link";
-    // not implemented
-    public static const NONE:String = "none";
     
    
 


[royale-asjs] 01/04: ExposE cUBIC function in emulation

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit fb4260a1731c182b9e49ea42f1008889796d5064
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Sat Oct 24 14:29:34 2020 +0100

    ExposE cUBIC function in emulation
---
 frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as         | 2 +-
 frameworks/projects/MXRoyale/src/main/royale/mx/effects/easing/Cubic.as | 2 +-
 2 files changed, 2 insertions(+), 2 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
index 9aeed54..e406fb2 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/MXRoyaleClasses.as
@@ -32,7 +32,7 @@ internal class MXRoyaleClasses
 	import mx.core.DPIClassification; DPIClassification;
 	import mx.core.DesignLayer; DesignLayer;
 	import mx.effects.AnimateProperty; AnimateProperty;
-	//import mx.effects.easing.Cubic; Cubic;
+	import mx.effects.easing.Cubic; Cubic;
 	//import mx.effects.easing.Quintic; Quintic;
 	import mx.events.StateChangeEvent; StateChangeEvent;
 	//import mx.graphics.BitmapFill; BitmapFill;
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/easing/Cubic.as b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/easing/Cubic.as
index f97411e..a5d3658 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/easing/Cubic.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/easing/Cubic.as
@@ -43,7 +43,7 @@ package mx.effects.easing
  */  
 public class Cubic
 {
-    include "../../core/Version.as";
+    //include "../../core/Version.as";
 
     //--------------------------------------------------------------------------
     //


[royale-asjs] 03/04: First implementation of spark line

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit 9613c2ab3493ddb0ea83c2100e54666854636832
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Sat Oct 24 14:32:21 2020 +0100

    First implementation of spark line
---
 .../src/main/royale/spark/primitives/Line.as       | 58 +++++++++++-----------
 1 file changed, 30 insertions(+), 28 deletions(-)

diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
index 568aa68..9431814 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/primitives/Line.as
@@ -28,9 +28,12 @@ import flash.geom.Rectangle;
 
 import spark.primitives.supportClasses.StrokedElement; */
 import org.apache.royale.events.EventDispatcher;
+import org.apache.royale.geom.Rectangle;
 import mx.core.mx_internal;
 import mx.graphics.IStroke;
 import mx.graphics.IFill;
+import mx.core.UIComponent;
+import mx.display.Graphics;
 import org.apache.royale.core.UIBase;
 
 use namespace mx_internal;
@@ -50,7 +53,7 @@ use namespace mx_internal;
  *  @playerversion AIR 1.5
  *  @productversion Royale 0.9.4
  */
-public class Line extends UIBase
+public class Line extends UIComponent
 { //extends StrokedElement
   //  include "../core/Version.as";
 
@@ -80,33 +83,6 @@ public class Line extends UIBase
     //
     //--------------------------------------------------------------------------
     
-
-	public function set left(value:Object):void
-	{
-		// not implemented
-	}
-
-	public function set right(value:Object):void
-	{
-		// not implemented
-	}
-
-    COMPILE::JS
-	public function set rotation(value:Number):void
-	{
-		// not implemented
-	}
-
-	public function set bottom(value:Object):void
-	{
-		// not implemented
-	}
-
-	public function set top(value:Object):void
-	{
-		// not implemented
-	}
-
     //----------------------------------
     //  xFrom
     //----------------------------------
@@ -402,6 +378,32 @@ public class Line extends UIBase
         invalidateParentSizeAndDisplayList(); */
     }
 
+    override public function addedToParent():void
+    {
+        super.addedToParent();
+        setActualSize(getExplicitOrMeasuredWidth(), getExplicitOrMeasuredHeight());
+    }
+    
+    override public function setActualSize(w:Number, h:Number):void
+    {
+        super.setActualSize(w, h);
+        updateDisplayList(w, h);
+    }
+    
+    override protected function updateDisplayList(unscaledWidth:Number,
+                                                  unscaledHeight:Number):void
+    {
+	    // TODO use lineTo instead of drawRect()
+        super.updateDisplayList(unscaledWidth,unscaledHeight);
+        var g:Graphics = graphics;
+        g.clear();
+        
+        if (stroke)
+            stroke.apply(g, new Rectangle(0, 0, unscaledWidth, 1), null);
+        
+        g.drawRect(0, 0, unscaledWidth, unscaledHeight);
+    }
+
 	
 }
 


[royale-asjs] 04/04: More emulation stubs

Posted by yi...@apache.org.
This is an automated email from the ASF dual-hosted git repository.

yishayw pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git

commit e70f6b47c4b3b9083f2cd75a35f87fe91575b555
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Sat Oct 24 14:33:40 2020 +0100

    More emulation stubs
---
 .../MXRoyale/src/main/royale/mx/effects/Effect.as  |   2 +
 .../main/royale/mx/validators/RegExpValidator.as   |  24 +-
 .../src/main/royale/spark/components/List.as       | 493 +++++++++++----------
 .../spark/layouts/supportClasses/LayoutBase.as     |  26 +-
 4 files changed, 277 insertions(+), 268 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/Effect.as b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/Effect.as
index 319af51..857cc4f 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/effects/Effect.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/effects/Effect.as
@@ -98,6 +98,8 @@ public class Effect extends org.apache.royale.effects.Effect
 	public function set targets(value:Array):void {}
 	// not implemented
 	public function set target(value:Object):void {}
+	//not implemented
+	public function get isPlaying():Boolean { return false; }
 
 
 
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as
index f0c3a15..d256966 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/validators/RegExpValidator.as
@@ -265,8 +265,8 @@ public class RegExpValidator extends Validator
 	 *  @private
 	 *  Storage for the noMatchError property.
 	 */
-	/* private var _noMatchError:String;
-	 */
+	 private var _noMatchError:String;
+	 
     /**
 	 *  @private
 	 */
@@ -283,23 +283,23 @@ public class RegExpValidator extends Validator
      *  @playerversion AIR 1.1
      *  @productversion Flex 3
      */
-	/* public function get noMatchError():String
+	public function get noMatchError():String // not implemented
 	{
 		return _noMatchError;
-	} */
+	}
 
 	/**
 	 *  @private
 	 */
-	/* public function set noMatchError(value:String):void
+	public function set noMatchError(value:String):void // not implemented
 	{
-		noMatchErrorOverride = value;
-
-		_noMatchError = value != null ?
-						value :
-						resourceManager.getString(
-							"validators", "noMatchError");
-	} */
+		//noMatchErrorOverride = value;
+//
+		//_noMatchError = value != null ?
+						//value :
+						//resourceManager.getString(
+							//"validators", "noMatchError");
+	}
     
     //--------------------------------------------------------------------------
     //
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/List.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/List.as
index 9e1d995..54f38b2 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/components/List.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/components/List.as
@@ -62,6 +62,7 @@ import org.apache.royale.html.beads.SingleSelectionDropIndicatorBead;
 import mx.managers.IFocusManagerComponent;
 import spark.components.supportClasses.ListBase;
 import mx.core.mx_internal;
+import mx.core.UIComponent;
 use namespace mx_internal;
 [Event(name="dragComplete", type="mx.events.DragEvent")]
 //--------------------------------------
@@ -925,7 +926,7 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @private
      *  Internal storage for the selectedIndices property.
      */
-//	private var _selectedIndices:Vector.<int> = new Vector.<int>();
+	private var _selectedIndices:Vector.<int> = new Vector.<int>();
     
     /**
      *  @private
@@ -960,18 +961,18 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-   /*  public function get selectedIndices():Vector.<int>
+    public function get selectedIndices():Vector.<int> // not implemented
     {
         return _selectedIndices;
-    } */
+    }
     
     /**
      *  @private
      */
-    /* public function set selectedIndices(value:Vector.<int>):void
+    public function set selectedIndices(value:Vector.<int>):void // not implemented
     {
         setSelectedIndices(value, false);
-    } */
+    }
     
     /**
      *  @private
@@ -985,34 +986,34 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @param changeCaret if true, the caret will be set to the selectedIndex as a side-effect of calling 
      *  this method.  If false, caretIndex won't change.
      */
-    /* mx_internal function setSelectedIndices(value:Vector.<int>, dispatchChangeEvent:Boolean = false, changeCaret:Boolean = true):void
+    mx_internal function setSelectedIndices(value:Vector.<int>, dispatchChangeEvent:Boolean = false, changeCaret:Boolean = true):void // not implemented
     {
-        // TODO (jszeto) Do a deep compare of the vectors
-        if (_proposedSelectedIndices == value || 
-            (value && value.length == 1 && 
-             selectedIndices && selectedIndices.length == 1 &&    
-             value[0] == selectedIndices[0]))
-        {
-            // this should short-circuit, but we should check to make sure 
-            // that caret doesn't need to be changed either, as that's a side
-            // effect of setting selectedIndex
-            if (changeCaret)
-                setCurrentCaretIndex(selectedIndex);
-            
-            return;
-        }
-        
-        if (dispatchChangeEvent)
-            dispatchChangeAfterSelection = (dispatchChangeAfterSelection || dispatchChangeEvent);
-        
-        if (value)
-            _proposedSelectedIndices = value;
-        else
-            _proposedSelectedIndices = new Vector.<int>();
-        multipleSelectionChanged = true;
-        changeCaretOnSelection = changeCaret;
-        invalidateProperties();
-    } */
+        //// TODO (jszeto) Do a deep compare of the vectors
+        //if (_proposedSelectedIndices == value || 
+            //(value && value.length == 1 && 
+             //selectedIndices && selectedIndices.length == 1 &&    
+             //value[0] == selectedIndices[0]))
+        //{
+            //// this should short-circuit, but we should check to make sure 
+            //// that caret doesn't need to be changed either, as that's a side
+            //// effect of setting selectedIndex
+            //if (changeCaret)
+                //setCurrentCaretIndex(selectedIndex);
+            //
+            //return;
+        //}
+        //
+        //if (dispatchChangeEvent)
+            //dispatchChangeAfterSelection = (dispatchChangeAfterSelection || dispatchChangeEvent);
+        //
+        //if (value)
+            //_proposedSelectedIndices = value;
+        //else
+            //_proposedSelectedIndices = new Vector.<int>();
+        //multipleSelectionChanged = true;
+        //changeCaretOnSelection = changeCaret;
+        //invalidateProperties();
+    }
     
     //----------------------------------
     //  selectedItems
@@ -1059,36 +1060,37 @@ public class List extends ListBase implements IFocusManagerComponent
     /**
      *  @private
      */
-    /* public function set selectedItems(value:Vector.<Object>):void
+    // not implemented
+    public function set selectedItems(value:Vector.<Object>):void
     {
-        var indices:Vector.<int> = new Vector.<int>();
-        
-        if (value)
-        {
-            var count:int = value.length;
-            
-            for (var i:int = 0; i < count; i++)
-            {
-                var index:int = dataProvider.getItemIndex(value[i]);
-                if (index != -1)
-                { 
-                    indices.splice(0, 0, index);   
-                }
-                // If an invalid item is in the selectedItems vector,
-                // we set selectedItems to an empty vector, which 
-                // essentially clears selection. 
-                if (index == -1)
-                {
-                    indices = new Vector.<int>();
-                    break;  
-                }
-            }
-        }
-        
-        _proposedSelectedIndices = indices;
-        multipleSelectionChanged = true;
-        invalidateProperties(); 
-    } */
+        //var indices:Vector.<int> = new Vector.<int>();
+        //
+        //if (value)
+        //{
+            //var count:int = value.length;
+            //
+            //for (var i:int = 0; i < count; i++)
+            //{
+                //var index:int = dataProvider.getItemIndex(value[i]);
+                //if (index != -1)
+                //{ 
+                    //indices.splice(0, 0, index);   
+                //}
+                //// If an invalid item is in the selectedItems vector,
+                //// we set selectedItems to an empty vector, which 
+                //// essentially clears selection. 
+                //if (index == -1)
+                //{
+                    //indices = new Vector.<int>();
+                    //break;  
+                //}
+            //}
+        //}
+        //
+        //_proposedSelectedIndices = indices;
+        //multipleSelectionChanged = true;
+        //invalidateProperties(); 
+    }
 
     //----------------------------------
     //  pageScrollingEnabled
@@ -2195,28 +2197,29 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    /* public function destroyDropIndicator():DisplayObject
+    public function destroyDropIndicator():UIComponent // not implemented
     {
-        var dropIndicatorInstance:DisplayObject = layout.dropIndicator;
-        if (!dropIndicatorInstance)
-            return null;
-        
-        // Release the reference from the layout
-        layout.dropIndicator = null;
-        
-        // Release it if it's a dynamic skin part
-        var count:int = numDynamicParts("dropIndicator");
-        for (var i:int = 0; i < count; i++)
-        {
-            if (dropIndicatorInstance == getDynamicPartAt("dropIndicator", i))
-            {
-                // This was a dynamic part, remove it now:
-                removeDynamicPartInstance("dropIndicator", dropIndicatorInstance);
-                break;
-            }
-        }
-        return dropIndicatorInstance;
-    } */
+        //var dropIndicatorInstance:DisplayObject = layout.dropIndicator;
+        //if (!dropIndicatorInstance)
+            //return null;
+        //
+        //// Release the reference from the layout
+        //layout.dropIndicator = null;
+        //
+        //// Release it if it's a dynamic skin part
+        //var count:int = numDynamicParts("dropIndicator");
+        //for (var i:int = 0; i < count; i++)
+        //{
+            //if (dropIndicatorInstance == getDynamicPartAt("dropIndicator", i))
+            //{
+                //// This was a dynamic part, remove it now:
+                //removeDynamicPartInstance("dropIndicator", dropIndicatorInstance);
+                //break;
+            //}
+        //}
+        //return dropIndicatorInstance;
+	    return null;
+    }
     
     /**
      *  @private
@@ -2236,35 +2239,35 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    /* protected function dragEnterHandler(event:DragEvent):void
+    protected function dragEnterHandler(event:DragEvent):void // not implemented
     {
-        if (event.isDefaultPrevented())
-            return;
-        
-        var dropLocation:DropLocation = calculateDropLocation(event); 
-        if (dropLocation)
-        {
-            DragManager.acceptDragDrop(this);
-            
-            // Create the dropIndicator instance. The layout will take care of
-            // parenting, sizing, positioning and validating the dropIndicator.
-            createDropIndicator();
-            
-            // Show focus
-            drawFocusAnyway = true;
-            drawFocus(true);
-            
-            // Notify manager we can drop
-            DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
-
-            // Show drop indicator
-            layout.showDropIndicator(dropLocation);
-        }
-        else
-        {
-            DragManager.showFeedback(DragManager.NONE);
-        }
-    } */
+        //if (event.isDefaultPrevented())
+            //return;
+        //
+        //var dropLocation:DropLocation = calculateDropLocation(event); 
+        //if (dropLocation)
+        //{
+            //DragManager.acceptDragDrop(this);
+            //
+            //// Create the dropIndicator instance. The layout will take care of
+            //// parenting, sizing, positioning and validating the dropIndicator.
+            //createDropIndicator();
+            //
+            //// Show focus
+            //drawFocusAnyway = true;
+            //drawFocus(true);
+            //
+            //// Notify manager we can drop
+            //DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+//
+            //// Show drop indicator
+            //layout.showDropIndicator(dropLocation);
+        //}
+        //else
+        //{
+            //DragManager.showFeedback(DragManager.NONE);
+        //}
+    }
     
     /**
      *  @private
@@ -2284,37 +2287,37 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    /* protected function dragOverHandler(event:DragEvent):void
+    protected function dragOverHandler(event:DragEvent):void // not implemented
     {
-        if (event.isDefaultPrevented())
-            return;
-        
-        var dropLocation:DropLocation = calculateDropLocation(event);
-        if (dropLocation)
-        {
-            // Show focus
-            drawFocusAnyway = true;
-            drawFocus(true);
-            
-            // Notify manager we can drop
-            DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
-
-            // Show drop indicator
-            layout.showDropIndicator(dropLocation);
-        }
-        else
-        {
-            // Hide if previously showing
-            layout.hideDropIndicator();
-
-            // Hide focus
-            drawFocus(false);
-            drawFocusAnyway = false;
-            
-            // Notify manager we can't drop
-            DragManager.showFeedback(DragManager.NONE);
-        }
-    } */
+        //if (event.isDefaultPrevented())
+            //return;
+        //
+        //var dropLocation:DropLocation = calculateDropLocation(event);
+        //if (dropLocation)
+        //{
+            //// Show focus
+            //drawFocusAnyway = true;
+            //drawFocus(true);
+            //
+            //// Notify manager we can drop
+            //DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+//
+            //// Show drop indicator
+            //layout.showDropIndicator(dropLocation);
+        //}
+        //else
+        //{
+            //// Hide if previously showing
+            //layout.hideDropIndicator();
+//
+            //// Hide focus
+            //drawFocus(false);
+            //drawFocusAnyway = false;
+            //
+            //// Notify manager we can't drop
+            //DragManager.showFeedback(DragManager.NONE);
+        //}
+    }
     
     /**
      *  @private
@@ -2387,113 +2390,113 @@ public class List extends ListBase implements IFocusManagerComponent
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
      */
-    /* protected function dragDropHandler(event:DragEvent):void
+    protected function dragDropHandler(event:DragEvent):void // not implemented
     {
-        if (event.isDefaultPrevented())
-            return;
-        
-        // Hide the drop indicator
-        layout.hideDropIndicator();
-        destroyDropIndicator();
-        
-        // Hide focus
-        drawFocus(false);
-        drawFocusAnyway = false;
-        
-        // Get the dropLocation
-        var dropLocation:DropLocation = calculateDropLocation(event);
-        if (!dropLocation)
-            return;
-        
-        // Find the dropIndex
-        var dropIndex:int = dropLocation.dropIndex;
-        
-        // Make sure the manager has the appropriate action
-        DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
-        
-        var dragSource:DragSource = event.dragSource;
-        var items:Vector.<Object> = dragSource.dataForFormat("itemsByIndex") as Vector.<Object>;
-
-        var caretIndex:int = -1;
-        if (dragSource.hasFormat("caretIndex"))
-            caretIndex = event.dragSource.dataForFormat("caretIndex") as int;
-        
-        // Clear the selection first to avoid extra work while adding and removing items.
-        // We will set a new selection further below in the method.
-        var indices:Vector.<int> = selectedIndices; 
-        setSelectedIndices(new Vector.<int>(), false);
-        validateProperties(); // To commit the selection
-        
-        // If we are reordering the list, remove the items now,
-        // adjusting the dropIndex in the mean time.
-        // If the items are drag moved to this list from a different list,
-        // the drag initiator will remove the items when it receives the
-        // DragEvent.DRAG_COMPLETE event.
-        if (dragMoveEnabled &&
-            event.action == DragManager.MOVE &&
-            event.dragInitiator == this)
-        {
-            // Remove the previously selected items
-            indices.sort(compareValues);
-            for (var i:int = indices.length - 1; i >= 0; i--)
-            {
-                if (indices[i] < dropIndex)
-                    dropIndex--;
-                dataProvider.removeItemAt(indices[i]);
-            }
-        }
-        
-        // Drop the items at the dropIndex
-        var newSelection:Vector.<int> = new Vector.<int>();
-
-        // Update the selection with the index of the caret item
-        if (caretIndex != -1)
-            newSelection.push(dropIndex + caretIndex);
-
-        // Create dataProvider if needed
-        if (!dataProvider)
-            dataProvider = new ArrayCollection();
-        
-        var copyItems:Boolean = (event.action == DragManager.COPY);
-        for (i = 0; i < items.length; i++)
-        {
-            // Get the item, clone if needed
-            var item:Object = items[i];
-            if (copyItems)
-                item = copyItemWithUID(item);
-
-            // Copy the data
-            dataProvider.addItemAt(item, dropIndex + i);
-
-            // Update the selection
-            if (i != caretIndex)
-                newSelection.push(dropIndex + i);
-        }
-
-        // Set the selection
-        setSelectedIndices(newSelection, false);
-
-        // Scroll the caret index in view
-        if (caretIndex != -1)
-        {
-            // Sometimes we may need to scroll several times as for virtual layouts
-            // this is not guaranteed to bring in the element in view the first try
-            // as some items in between may not be loaded yet and their size is only
-            // estimated.
-            var delta:Point;
-            var loopCount:int = 0;
-            while (loopCount++ < 10)
-            {
-                validateNow();
-                delta = layout.getScrollPositionDeltaToElement(dropIndex + caretIndex);
-                if (!delta || (delta.x == 0 && delta.y == 0))
-                    break;
-                layout.horizontalScrollPosition += delta.x;
-                layout.verticalScrollPosition += delta.y;
-            }
-        }
+        //if (event.isDefaultPrevented())
+            //return;
+        //
+        //// Hide the drop indicator
+        //layout.hideDropIndicator();
+        //destroyDropIndicator();
+        //
+        //// Hide focus
+        //drawFocus(false);
+        //drawFocusAnyway = false;
+        //
+        //// Get the dropLocation
+        //var dropLocation:DropLocation = calculateDropLocation(event);
+        //if (!dropLocation)
+            //return;
+        //
+        //// Find the dropIndex
+        //var dropIndex:int = dropLocation.dropIndex;
+        //
+        //// Make sure the manager has the appropriate action
+        //DragManager.showFeedback(event.ctrlKey ? DragManager.COPY : DragManager.MOVE);
+        //
+        //var dragSource:DragSource = event.dragSource;
+        //var items:Vector.<Object> = dragSource.dataForFormat("itemsByIndex") as Vector.<Object>;
+//
+        //var caretIndex:int = -1;
+        //if (dragSource.hasFormat("caretIndex"))
+            //caretIndex = event.dragSource.dataForFormat("caretIndex") as int;
+        //
+        //// Clear the selection first to avoid extra work while adding and removing items.
+        //// We will set a new selection further below in the method.
+        //var indices:Vector.<int> = selectedIndices; 
+        //setSelectedIndices(new Vector.<int>(), false);
+        //validateProperties(); // To commit the selection
+        //
+        //// If we are reordering the list, remove the items now,
+        //// adjusting the dropIndex in the mean time.
+        //// If the items are drag moved to this list from a different list,
+        //// the drag initiator will remove the items when it receives the
+        //// DragEvent.DRAG_COMPLETE event.
+        //if (dragMoveEnabled &&
+            //event.action == DragManager.MOVE &&
+            //event.dragInitiator == this)
+        //{
+            //// Remove the previously selected items
+            //indices.sort(compareValues);
+            //for (var i:int = indices.length - 1; i >= 0; i--)
+            //{
+                //if (indices[i] < dropIndex)
+                    //dropIndex--;
+                //dataProvider.removeItemAt(indices[i]);
+            //}
+        //}
+        //
+        //// Drop the items at the dropIndex
+        //var newSelection:Vector.<int> = new Vector.<int>();
+//
+        //// Update the selection with the index of the caret item
+        //if (caretIndex != -1)
+            //newSelection.push(dropIndex + caretIndex);
+//
+        //// Create dataProvider if needed
+        //if (!dataProvider)
+            //dataProvider = new ArrayCollection();
+        //
+        //var copyItems:Boolean = (event.action == DragManager.COPY);
+        //for (i = 0; i < items.length; i++)
+        //{
+            //// Get the item, clone if needed
+            //var item:Object = items[i];
+            //if (copyItems)
+                //item = copyItemWithUID(item);
+//
+            //// Copy the data
+            //dataProvider.addItemAt(item, dropIndex + i);
+//
+            //// Update the selection
+            //if (i != caretIndex)
+                //newSelection.push(dropIndex + i);
+        //}
+//
+        //// Set the selection
+        //setSelectedIndices(newSelection, false);
+//
+        //// Scroll the caret index in view
+        //if (caretIndex != -1)
+        //{
+            //// Sometimes we may need to scroll several times as for virtual layouts
+            //// this is not guaranteed to bring in the element in view the first try
+            //// as some items in between may not be loaded yet and their size is only
+            //// estimated.
+            //var delta:Point;
+            //var loopCount:int = 0;
+            //while (loopCount++ < 10)
+            //{
+                //validateNow();
+                //delta = layout.getScrollPositionDeltaToElement(dropIndex + caretIndex);
+                //if (!delta || (delta.x == 0 && delta.y == 0))
+                    //break;
+                //layout.horizontalScrollPosition += delta.x;
+                //layout.verticalScrollPosition += delta.y;
+            //}
+        //}
     }
-	*/
+
     /**
      *  Makes a deep copy of the object by calling the 
      *  <code>ObjectUtil.copy()</code> method, and replaces 
diff --git a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/LayoutBase.as b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/LayoutBase.as
index 863e91d..33b92f5 100644
--- a/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/LayoutBase.as
+++ b/frameworks/projects/SparkRoyale/src/main/royale/spark/layouts/supportClasses/LayoutBase.as
@@ -29,9 +29,11 @@ import mx.core.ILayoutElement;
 import mx.core.IVisualElement;
 import mx.core.UIComponent;
 import mx.core.mx_internal;
+import mx.events.DragEvent;
 
 import spark.components.Group;
 import spark.components.supportClasses.GroupBase;
+import spark.layouts.supportClasses.DropLocation;
 import spark.core.NavigationUnit;
 import spark.layouts.HorizontalAlign;
 import spark.layouts.VerticalLayout;
@@ -1731,22 +1733,24 @@ public class LayoutBase extends org.apache.royale.core.LayoutBase implements IEv
      *  @playerversion Flash 10
      *  @playerversion AIR 1.5
      *  @productversion Flex 4
-    public function calculateDropLocation(dragEvent:DragEvent):DropLocation
+     *
+     */
+    public function calculateDropLocation(dragEvent:DragEvent):DropLocation // not implemented
     {
         // Find the drop index
-        var dropPoint:Point = globalToLocal(dragEvent.stageX, dragEvent.stageY);
-        var dropIndex:int = calculateDropIndex(dropPoint.x, dropPoint.y);
-        if (dropIndex == -1)
-            return null;
-        
-        // Create and fill the drop location info
         var dropLocation:DropLocation = new DropLocation();
-        dropLocation.dragEvent = dragEvent;
-        dropLocation.dropPoint = dropPoint;
-        dropLocation.dropIndex = dropIndex;
+        //var dropPoint:Point = globalToLocal(dragEvent.stageX, dragEvent.stageY);
+        //var dropIndex:int = calculateDropIndex(dropPoint.x, dropPoint.y);
+        //if (dropIndex == -1)
+            //return null;
+        //
+        //// Create and fill the drop location info
+        //dropLocation.dragEvent = dragEvent;
+        //dropLocation.dropPoint = dropPoint;
+        //dropLocation.dropIndex = dropIndex;
         return dropLocation;
     }
-     */
+     
     
     /**
      *  Sizes, positions and parents the drop indicator based on the specified