Repository: flex-asjs
Updated Branches:
  refs/heads/develop 9d92d948b -> d56e155d9


Changed org.apache.flex.events.MouseEvent to inherit from 
flash.events.MouseEvent for AS3 only. Updated affected files.


Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo
Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/d56e155d
Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/d56e155d
Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/d56e155d

Branch: refs/heads/develop
Commit: d56e155d9dd34e89671d86b85cdc7954a07702c6
Parents: 9d92d94
Author: Peter Ent <[email protected]>
Authored: Wed Jan 20 14:33:41 2016 -0500
Committer: Peter Ent <[email protected]>
Committed: Wed Jan 20 14:33:41 2016 -0500

----------------------------------------------------------------------
 .../as/src/org/apache/flex/events/MouseEvent.as | 434 +++++++++++--------
 .../org/apache/flex/events/utils/MouseUtils.as  |   2 +-
 .../HTML/as/src/org/apache/flex/html/Button.as  |   2 +-
 .../as/src/org/apache/flex/html/CheckBox.as     |   5 +-
 .../as/src/org/apache/flex/html/RadioButton.as  |   5 +-
 .../org/apache/flex/html/ToggleTextButton.as    |  42 +-
 .../beads/controllers/DropDownListController.as |  15 +-
 .../controllers/ItemRendererMouseController.as  |   5 +-
 8 files changed, 296 insertions(+), 214 deletions(-)
----------------------------------------------------------------------


http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/Core/as/src/org/apache/flex/events/MouseEvent.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/as/src/org/apache/flex/events/MouseEvent.as 
b/frameworks/projects/Core/as/src/org/apache/flex/events/MouseEvent.as
index 756438f..63bad5c 100644
--- a/frameworks/projects/Core/as/src/org/apache/flex/events/MouseEvent.as
+++ b/frameworks/projects/Core/as/src/org/apache/flex/events/MouseEvent.as
@@ -17,43 +17,38 @@
 //
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.flex.events
-{      
+{
     COMPILE::AS3
     {
         import flash.events.MouseEvent;
+               import flash.display.InteractiveObject;
     }
     COMPILE::JS
     {
         import window.MouseEvent;
     }
-    
+
     import org.apache.flex.core.IUIBase;
     import org.apache.flex.geom.Point;
     import org.apache.flex.utils.PointUtils;
-    
-    
+
+
        /**
         *  Mouse events
-     *  
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
         */
-       public class MouseEvent extends Event
+       COMPILE::AS3
+       public class MouseEvent extends flash.events.MouseEvent
        {
         private static function platformConstant(s:String):String
         {
-            COMPILE::AS3
-            {
-                return s;
-            }
-            COMPILE::JS
-            {
-                return s.toLowerCase();
-            }
+            return s;
         }
-        
+
                public static const MOUSE_DOWN:String = 
platformConstant("mouseDown");
         public static const MOUSE_MOVE:String = platformConstant("mouseMove");
                public static const MOUSE_UP:String = 
platformConstant("mouseUp");
@@ -62,80 +57,39 @@ package org.apache.flex.events
                public static const ROLL_OVER:String = 
platformConstant("rollOver");
                public static const ROLL_OUT:String = 
platformConstant("rollOut");
         public static const CLICK:String = "click";
-        
+
          /**
          *  Constructor.
-         *  
+         *
          *  @param type The name of the event.
          *  @param bubbles Whether the event bubbles.
          *  @param cancelable Whether the event can be canceled.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion FlexJS 0.0
          */
                public function MouseEvent(type:String, bubbles:Boolean=false, 
cancelable:Boolean=false,
-                                   localX:Number = NaN, localY:Number = NaN, 
-                                   relatedObject:Object = null, 
-                                   ctrlKey:Boolean = false, altKey:Boolean = 
false, shiftKey:Boolean = false, 
-                                   buttonDown:Boolean = false, delta:int = 0, 
-                                   commandKey:Boolean = false, 
controlKey:Boolean = false, 
+                                   localX:Number = NaN, localY:Number = NaN,
+                                   relatedObject:Object = null,
+                                   ctrlKey:Boolean = false, altKey:Boolean = 
false, shiftKey:Boolean = false,
+                                   buttonDown:Boolean = false, delta:int = 0,
+                                   commandKey:Boolean = false, 
controlKey:Boolean = false,
                                    clickCount:int = 0)
                {
-            COMPILE::AS3
-            {
-                super(type, bubbles, cancelable);                    
-            }
-            COMPILE::JS
-            {
-                super(type);
-            }
+                       super(type, bubbles, cancelable);
+
             this.localX = localX;
             this.localY = localY;
-            this.relatedObject = relatedObject;
+            this.relatedObject = relatedObject as InteractiveObject;
             this.ctrlKey = ctrlKey;
             this.altKey = altKey;
             this.shiftKey = shiftKey;
             this.buttonDown = buttonDown;
             this.delta = delta;
-            this.commandKey = commandKey;
-            this.controlKey = controlKey;
-            this.clickCount = clickCount;
                }
-        
-        private var _localX:Number;
-        public function get localX():Number
-        {
-            return _localX;
-        }
-        public function set localX(value:Number):void
-        {
-            _localX = value;
-            _stagePoint = null;
-        }
-        
-        private var _localY:Number;
-        public function get localY():Number
-        {
-            return _localY;
-        }
-        public function set localY(value:Number):void
-        {
-            _localY = value;
-            _stagePoint = null;
-        }
-        
-        public var relatedObject:Object;
-        public var ctrlKey:Boolean;
-        public var altKey:Boolean;
-        public var shiftKey:Boolean;
-        public var buttonDown:Boolean;
-        public var delta:int;
-        public var commandKey:Boolean;
-        public var controlKey:Boolean;
-        public var clickCount:int;
-        
+
         // these map directly to JS MouseEvent fields.
         public function get clientX():Number
         {
@@ -153,9 +107,9 @@ package org.apache.flex.events
         {
             localY = value;
         }
-        
+
         private var _stagePoint:Point;
-        
+
         public function get screenX():Number
         {
             if (!target) return localX;
@@ -166,7 +120,7 @@ package org.apache.flex.events
             }
             return _stagePoint.x;
         }
-        
+
         public function get screenY():Number
         {
             if (!target) return localY;
@@ -175,116 +129,238 @@ package org.apache.flex.events
                 var localPoint:Point = new Point(localX, localY);
                 _stagePoint = PointUtils.localToGlobal(localPoint, target);
             }
-            return _stagePoint.y;            
-        }
-        
-        /**
-         * @private
-         */
-        COMPILE::JS
-        private static function installRollOverMixin():Boolean
-        {
-            window.addEventListener(MOUSE_OVER,
-                mouseOverHandler, false);
-            return true;
-        }
-        
-        
-        /**
-         * @param e The event.
-         * RollOver/RollOut is entirely implemented in mouseOver because
-         * when a parent and child share an edge, you only get a mouseout
-         * for the child and not the parent and you need to send rollout
-         * to both.  A similar issue exists for rollover.
-         */
-        COMPILE::JS
-        private static function mouseOverHandler(e:MouseEvent):void
-        {
-            var j:int;
-            var m:int;
-            var outs:Array;
-            var me:window.MouseEvent;
-            var parent:Object;
-            var target:Object = e.target.flexjs_wrapper;
-            if (target == null)
-                return; // probably over the html tag
-            var targets:Array = MouseEvent.targets;
-            var index:int = targets.indexOf(target);
-            if (index != -1) {
-                // get all children
-                outs = targets.slice(index + 1);
-                m = outs.length;
-                for (j = 0; j < m; j++) {
-                    me = makeMouseEvent(
-                        ROLL_OUT, e);
-                    outs[j].element.dispatchEvent(me);
-                }
-                MouseEvent.targets = targets.slice(0, index + 1);
-            }
-            else {
-                var newTargets:Array = [target];
-                if (!('parent' in target))
-                    parent = null;
-                else
-                    parent = target.parent;
-                while (parent) {
-                    index = targets.indexOf(parent);
-                    if (index == -1) {
-                        newTargets.unshift(parent);
-                        if (!('parent' in parent))
-                            break;
-                        parent = parent.parent;
-                    }
-                    else {
-                        outs = targets.slice(index + 1);
-                        m = outs.length;
-                        for (j = 0; j < m; j++) {
-                            me = makeMouseEvent(
-                                ROLL_OUT, e);
-                            outs[j].element.dispatchEvent(me);
-                        }
-                        targets = targets.slice(0, index + 1);
-                        break;
-                    }
-                }
-                var n:int = newTargets.length;
-                for (var i:int = 0; i < n; i++) {
-                    me = makeMouseEvent(
-                        ROLL_OVER, e);
-                    newTargets[i].element.dispatchEvent(me);
-                }
-                MouseEvent.targets = targets.concat(newTargets);
-            }
+            return _stagePoint.y;
         }
-        
-        
-        /**
-         */
-        COMPILE::JS
-        private static var rollOverMixin:Boolean =
-            installRollOverMixin();
-        
-        
-        /**
-         */
-        COMPILE::JS
-        private static var targets:Array = [];
+       }
 
-        /**
-         * @param {string} type The event type.
-         * @param {Event} e The mouse event.
-         * @return {MouseEvent} The new event.
-         */
-        COMPILE::JS
-        private static function makeMouseEvent(type:String, 
e:window.MouseEvent):window.MouseEvent
-        {
-            var out:window.MouseEvent = new window.MouseEvent(type);
-            out.initMouseEvent(type, false, false,
-                e.view, e.detail, e.screenX, e.screenY,
-                e.clientX, e.clientY, e.ctrlKey, e.altKey,
-                e.shiftKey, e.metaKey, e.button, e.relatedTarget);
-            return out;
-        };
+       COMPILE::JS
+       public class MouseEvent extends Event
+       {
+               private static function platformConstant(s:String):String
+               {
+                       return s.toLowerCase();
+               }
+
+               public static const MOUSE_DOWN:String = 
platformConstant("mouseDown");
+               public static const MOUSE_MOVE:String = 
platformConstant("mouseMove");
+               public static const MOUSE_UP:String = 
platformConstant("mouseUp");
+               public static const MOUSE_OUT:String = 
platformConstant("mouseOut");
+               public static const MOUSE_OVER:String = 
platformConstant("mouseOver");
+               public static const ROLL_OVER:String = 
platformConstant("rollOver");
+               public static const ROLL_OUT:String = 
platformConstant("rollOut");
+               public static const CLICK:String = "click";
+
+               /**
+                *  Constructor.
+                *
+                *  @param type The name of the event.
+                *  @param bubbles Whether the event bubbles.
+                *  @param cancelable Whether the event can be canceled.
+                *
+                *  @langversion 3.0
+                *  @playerversion Flash 10.2
+                *  @playerversion AIR 2.6
+                *  @productversion FlexJS 0.0
+                */
+               public function MouseEvent(type:String, bubbles:Boolean=false, 
cancelable:Boolean=false,
+                                                                  
localX:Number = NaN, localY:Number = NaN,
+                                                                  
relatedObject:Object = null,
+                                                                  
ctrlKey:Boolean = false, altKey:Boolean = false, shiftKey:Boolean = false,
+                                                                  
buttonDown:Boolean = false, delta:int = 0,
+                                                                  
commandKey:Boolean = false, controlKey:Boolean = false,
+                                                                  
clickCount:int = 0)
+               {
+                       super(type);
+
+                       this.localX = localX;
+                       this.localY = localY;
+                       this.relatedObject = relatedObject;
+                       this.ctrlKey = ctrlKey;
+                       this.altKey = altKey;
+                       this.shiftKey = shiftKey;
+                       this.buttonDown = buttonDown;
+                       this.delta = delta;
+                       this.commandKey = commandKey;
+                       this.controlKey = controlKey;
+                       this.clickCount = clickCount;
+               }
+
+               private var _localX:Number;
+               public function get localX():Number
+               {
+                       return _localX;
+               }
+               public function set localX(value:Number):void
+               {
+                       _localX = value;
+                       _stagePoint = null;
+               }
+
+               private var _localY:Number;
+               public function get localY():Number
+               {
+                       return _localY;
+               }
+               public function set localY(value:Number):void
+               {
+                       _localY = value;
+                       _stagePoint = null;
+               }
+
+               public var relatedObject:Object;
+               public var ctrlKey:Boolean;
+               public var altKey:Boolean;
+               public var shiftKey:Boolean;
+               public var buttonDown:Boolean;
+               public var delta:int;
+               public var commandKey:Boolean;
+               public var controlKey:Boolean;
+               public var clickCount:int;
+
+               // these map directly to JS MouseEvent fields.
+               public function get clientX():Number
+               {
+                       return screenX;
+               }
+               public function set clientX(value:Number):void
+               {
+                       localX = value;
+               }
+               public function get clientY():Number
+               {
+                       return screenY;
+               }
+               public function set clientY(value:Number):void
+               {
+                       localY = value;
+               }
+
+               private var _stagePoint:Point;
+
+               public function get screenX():Number
+               {
+                       if (!target) return localX;
+                       if (!_stagePoint)
+                       {
+                               var localPoint:Point = new Point(localX, 
localY);
+                               _stagePoint = 
PointUtils.localToGlobal(localPoint, target);
+                       }
+                       return _stagePoint.x;
+               }
+
+               public function get screenY():Number
+               {
+                       if (!target) return localY;
+                       if (!_stagePoint)
+                       {
+                               var localPoint:Point = new Point(localX, 
localY);
+                               _stagePoint = 
PointUtils.localToGlobal(localPoint, target);
+                       }
+                       return _stagePoint.y;
+               }
+
+               /**
+                * @private
+                */
+               private static function installRollOverMixin():Boolean
+               {
+                       window.addEventListener(MOUSE_OVER,
+                               mouseOverHandler, false);
+                       return true;
+               }
+
+
+               /**
+                * @param e The event.
+                * RollOver/RollOut is entirely implemented in mouseOver because
+                * when a parent and child share an edge, you only get a 
mouseout
+                * for the child and not the parent and you need to send rollout
+                * to both.  A similar issue exists for rollover.
+                */
+               private static function mouseOverHandler(e:MouseEvent):void
+               {
+                       var j:int;
+                       var m:int;
+                       var outs:Array;
+                       var me:window.MouseEvent;
+                       var parent:Object;
+                       var target:Object = e.target.flexjs_wrapper;
+                       if (target == null)
+                               return; // probably over the html tag
+                       var targets:Array = MouseEvent.targets;
+                       var index:int = targets.indexOf(target);
+                       if (index != -1) {
+                               // get all children
+                               outs = targets.slice(index + 1);
+                               m = outs.length;
+                               for (j = 0; j < m; j++) {
+                                       me = makeMouseEvent(
+                                               ROLL_OUT, e);
+                                       outs[j].element.dispatchEvent(me);
+                               }
+                               MouseEvent.targets = targets.slice(0, index + 
1);
+                       }
+                       else {
+                               var newTargets:Array = [target];
+                               if (!('parent' in target))
+                                       parent = null;
+                               else
+                                       parent = target.parent;
+                               while (parent) {
+                                       index = targets.indexOf(parent);
+                                       if (index == -1) {
+                                               newTargets.unshift(parent);
+                                               if (!('parent' in parent))
+                                                       break;
+                                               parent = parent.parent;
+                                       }
+                                       else {
+                                               outs = targets.slice(index + 1);
+                                               m = outs.length;
+                                               for (j = 0; j < m; j++) {
+                                                       me = makeMouseEvent(
+                                                               ROLL_OUT, e);
+                                                       
outs[j].element.dispatchEvent(me);
+                                               }
+                                               targets = targets.slice(0, 
index + 1);
+                                               break;
+                                       }
+                               }
+                               var n:int = newTargets.length;
+                               for (var i:int = 0; i < n; i++) {
+                                       me = makeMouseEvent(
+                                               ROLL_OVER, e);
+                                       newTargets[i].element.dispatchEvent(me);
+                               }
+                               MouseEvent.targets = targets.concat(newTargets);
+                       }
+               }
+
+
+               /**
+                */
+               private static var rollOverMixin:Boolean =
+                       installRollOverMixin();
+
+
+               /**
+                */
+               private static var targets:Array = [];
+
+               /**
+                * @param {string} type The event type.
+                * @param {Event} e The mouse event.
+                * @return {MouseEvent} The new event.
+                */
+               private static function makeMouseEvent(type:String, 
e:window.MouseEvent):window.MouseEvent
+               {
+                       var out:window.MouseEvent = new window.MouseEvent(type);
+                       out.initMouseEvent(type, false, false,
+                               e.view, e.detail, e.screenX, e.screenY,
+                               e.clientX, e.clientY, e.ctrlKey, e.altKey,
+                               e.shiftKey, e.metaKey, e.button, 
e.relatedTarget);
+                       return out;
+               };
 
        }
 }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/Core/as/src/org/apache/flex/events/utils/MouseUtils.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/Core/as/src/org/apache/flex/events/utils/MouseUtils.as 
b/frameworks/projects/Core/as/src/org/apache/flex/events/utils/MouseUtils.as
index 5dbc934..38f707e 100644
--- a/frameworks/projects/Core/as/src/org/apache/flex/events/utils/MouseUtils.as
+++ b/frameworks/projects/Core/as/src/org/apache/flex/events/utils/MouseUtils.as
@@ -43,7 +43,7 @@ package org.apache.flex.events.utils
                 *  @playerversion AIR 2.6
                 *  @productversion FlexJS 0.0
                 */
-               static public function eventTarget(event:Event):Object
+               static public function eventTarget(event:MouseEvent):Object
                {
                        return event.target;
                }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/Button.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/Button.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/Button.as
index d4c2001..dbee62b 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/Button.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/Button.as
@@ -45,7 +45,7 @@ package org.apache.flex.html
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-       [Event(name="click", type="org.apache.flex.events.Event")]
+       [Event(name="click", type="org.apache.flex.events.MouseEvent")]
 
     /**
      *  The Button class is a simple button.  Use TextButton for

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/CheckBox.as
----------------------------------------------------------------------
diff --git a/frameworks/projects/HTML/as/src/org/apache/flex/html/CheckBox.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/CheckBox.as
index 6405ab5..7dff6da 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/CheckBox.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/CheckBox.as
@@ -36,6 +36,7 @@ package org.apache.flex.html
         import org.apache.flex.core.WrappedHTMLElement;        
     }
        import org.apache.flex.events.Event;
+       import org.apache.flex.events.MouseEvent;
        
     //--------------------------------------
     //  Events
@@ -75,7 +76,7 @@ package org.apache.flex.html
                {
                        super();
                        
-                       addEventListener(MouseEvent.CLICK, 
internalMouseHandler);
+                       
addEventListener(org.apache.flex.events.MouseEvent.CLICK, internalMouseHandler);
                }
                
         /**
@@ -121,7 +122,7 @@ package org.apache.flex.html
                        IToggleButtonModel(model).selected = value;
                }
                                
-               private function internalMouseHandler(event:Event) : void
+               private function 
internalMouseHandler(event:org.apache.flex.events.MouseEvent) : void
                {
                        selected = !selected;
                        dispatchEvent(new Event("change"));

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/RadioButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/RadioButton.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/RadioButton.as
index 63f90e9..8630ab1 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/RadioButton.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/RadioButton.as
@@ -37,6 +37,7 @@ package org.apache.flex.html
         import org.apache.flex.core.WrappedHTMLElement;
     }
        import org.apache.flex.events.Event;
+       import org.apache.flex.events.MouseEvent;
        import org.apache.flex.core.IUIBase;
        
        [Event(name="change", type="org.apache.flex.events.Event")]
@@ -69,7 +70,7 @@ package org.apache.flex.html
                {
                        super(upState, overState, downState, hitTestState);
                        
-                       addEventListener(MouseEvent.CLICK, 
internalMouseHandler);
+                       
addEventListener(org.apache.flex.events.MouseEvent.CLICK, internalMouseHandler);
                }
                
                protected static var dict:Dictionary = new Dictionary(true);
@@ -209,7 +210,7 @@ package org.apache.flex.html
                /**
                 * @private
                 */
-               private function internalMouseHandler(event:Event) : void
+               private function 
internalMouseHandler(event:org.apache.flex.events.MouseEvent) : void
                {
                        // prevent radiobutton from being turned off by a click
                        if( !selected ) {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
index ea9b0f9..e6ca726 100644
--- a/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
+++ b/frameworks/projects/HTML/as/src/org/apache/flex/html/ToggleTextButton.as
@@ -23,30 +23,30 @@ package org.apache.flex.html
        import org.apache.flex.core.IUIBase;
        import org.apache.flex.core.ValuesManager;
        import org.apache.flex.events.IEventDispatcher;
-    
+
     COMPILE::JS
     {
         import org.apache.flex.core.WrappedHTMLElement;
     }
-       
+
     //--------------------------------------
     //  Events
     //--------------------------------------
-    
+
     /**
      *  Dispatched when the user clicks on a button.
-     *  
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion FlexJS 0.0
      */
-       [Event(name="click", type="org.apache.flex.events.Event")]
+       [Event(name="click", type="org.apache.flex.events.MouseEvent")]
 
     /**
      *  The ToggleButton class is a TextButton that supports
      *  a selected property.
-     * 
+     *
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
@@ -56,7 +56,7 @@ package org.apache.flex.html
        {
         /**
          *  Constructor.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -70,16 +70,16 @@ package org.apache.flex.html
                 this.typeNames = 'toggleTextButton';
             }
                }
-        
+
         COMPILE::JS
         private var _selected:Boolean;
-        
+
         COMPILE::JS
         private var SELECTED:String = "selected";
-        
+
         /**
          *  <code>true</code> if the Button is selected.
-         *  
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
@@ -89,14 +89,14 @@ package org.apache.flex.html
         {
             COMPILE::AS3
             {
-                return IToggleButtonModel(model).selected;                    
+                return IToggleButtonModel(model).selected;
             }
             COMPILE::JS
             {
                 return _selected;
             }
         }
-        
+
         /**
          *  @private
          */
@@ -104,14 +104,14 @@ package org.apache.flex.html
         {
             COMPILE::AS3
             {
-                IToggleButtonModel(model).selected = value;                    
+                IToggleButtonModel(model).selected = value;
             }
             COMPILE::JS
             {
-                if (_selected != value) 
+                if (_selected != value)
                 {
                     _selected = value;
-                    
+
                     var className:String = this.className;
                     var typeNames:String = this.typeNames;
                     if (value) {
@@ -135,7 +135,7 @@ package org.apache.flex.html
                 }
             }
         }
-        
+
         /**
          *  @private
          *  add another class selector
@@ -145,14 +145,14 @@ package org.apache.flex.html
             // we don't have a model yet so just pass through otherwise you 
will loop
             if (!parent)
                 return super.className;
-            
-            var name:String = super.className;            
+
+            var name:String = super.className;
             if (selected)
                 return "toggleTextButton_Selected" + (name ? " " + name : "");
             else
                 return "toggleTextButton" + (name ? " " + name : "");
         }
-        
+
         COMPILE::JS
         override protected function createElement():WrappedHTMLElement
         {
@@ -160,7 +160,7 @@ package org.apache.flex.html
             element.addEventListener("click", clickHandler, false);
             return element;
         }
-        
+
         COMPILE::JS
         private function clickHandler(event:Event):void
         {

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
index 29f58e1..c279dc5 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/DropDownListController.as
@@ -25,10 +25,11 @@ package org.apache.flex.html.beads.controllers
        import org.apache.flex.core.IBeadController;
        import org.apache.flex.core.ISelectionModel;
        import org.apache.flex.core.IStrand;
-    import org.apache.flex.core.IUIBase;
-    import org.apache.flex.core.UIBase;
+       import org.apache.flex.core.IUIBase;
+       import org.apache.flex.core.UIBase;
        import org.apache.flex.events.Event;
        import org.apache.flex.events.IEventDispatcher;
+       import org.apache.flex.events.MouseEvent;
        import org.apache.flex.html.beads.IDropDownListView;
 
     /**
@@ -72,10 +73,10 @@ package org.apache.flex.html.beads.controllers
                public function set strand(value:IStrand):void
                {
                        _strand = value;
-            IEventDispatcher(value).addEventListener("click", clickHandler);
+            
IEventDispatcher(value).addEventListener(org.apache.flex.events.MouseEvent.CLICK,
 clickHandler);
                }
                
-        private function clickHandler(event:Event):void
+        private function 
clickHandler(event:org.apache.flex.events.MouseEvent):void
         {
             var viewBead:IDropDownListView = 
_strand.getBeadByType(IDropDownListView) as IDropDownListView;
             var selectionModel:ISelectionModel = 
_strand.getBeadByType(ISelectionModel) as ISelectionModel;
@@ -90,14 +91,14 @@ package org.apache.flex.html.beads.controllers
                        DisplayObject(viewBead.popUp).x = pt.x;
                        DisplayObject(viewBead.popUp).y = pt.y;
             IEventDispatcher(viewBead.popUp).addEventListener("change", 
changeHandler);
-            IUIBase(_strand).topMostEventDispatcher.addEventListener("click", 
dismissHandler);
+            
IUIBase(_strand).topMostEventDispatcher.addEventListener(org.apache.flex.events.MouseEvent.CLICK,
 dismissHandler);
         }
         
-        private function dismissHandler(event:Event):void
+        private function 
dismissHandler(event:org.apache.flex.events.MouseEvent):void
         {
             if (event.target == _strand) return;
             
-            
IUIBase(_strand).topMostEventDispatcher.removeEventListener("click", 
dismissHandler);
+            
IUIBase(_strand).topMostEventDispatcher.removeEventListener(org.apache.flex.events.MouseEvent.CLICK,
 dismissHandler);
             var viewBead:IDropDownListView = 
_strand.getBeadByType(IDropDownListView) as IDropDownListView;
             viewBead.popUpVisible = false;
         }

http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/d56e155d/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
----------------------------------------------------------------------
diff --git 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
index 0c637bf..9e1073e 100644
--- 
a/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
+++ 
b/frameworks/projects/HTML/as/src/org/apache/flex/html/beads/controllers/ItemRendererMouseController.as
@@ -79,7 +79,8 @@ COMPILE::JS {
                        COMPILE::AS3 {
                    renderer.addEventListener(MouseEvent.ROLL_OVER, 
rollOverHandler);
                    renderer.addEventListener(MouseEvent.ROLL_OUT, 
rollOutHandler);
-                   renderer.addEventListener(MouseEvent.MOUSE_DOWN, 
mouseDownHandler);
+                               
renderer.addEventListener(MouseEvent.MOUSE_DOWN, mouseDownHandler);
+                               renderer.addEventListener(MouseEvent.MOUSE_UP, 
mouseUpHandler);
                        }
                                
                        COMPILE::JS {
@@ -174,6 +175,8 @@ COMPILE::JS {
                        var target:ISelectableItemRenderer = 
event.currentTarget as ISelectableItemRenderer;
                        if (target)
                        {
+                               event.stopImmediatePropagation();
+                               
                                var newEvent:ItemClickedEvent = new 
ItemClickedEvent("itemClicked");
                                newEvent.data = target.data;
                                newEvent.multipleSelection = event.shiftKey;

Reply via email to