You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@flex.apache.org by pe...@apache.org on 2016/01/20 20:33:46 UTC
git commit: [flex-asjs] [refs/heads/develop] - Changed
org.apache.flex.events.MouseEvent to inherit from flash.events.MouseEvent for
AS3 only. Updated affected files.
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 <pe...@apache.org>
Authored: Wed Jan 20 14:33:41 2016 -0500
Committer: Peter Ent <pe...@apache.org>
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;