fix event types for valuechange. Otherwise Binding would break. Events are global and should be compatible for any given event type
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/4df71784 Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/4df71784 Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/4df71784 Branch: refs/heads/tlf Commit: 4df717847eaeb12d6b14af833853852eb3cc13ce Parents: b17c2bd Author: Alex Harui <[email protected]> Authored: Tue Jun 6 11:58:03 2017 -0700 Committer: Alex Harui <[email protected]> Committed: Tue Jun 6 11:58:03 2017 -0700 ---------------------------------------------------------------------- .../flex/html/beads/NumericStepperView.as | 5 ++-- .../beads/controllers/SliderMouseController.as | 27 +++++++++++++++----- .../beads/controllers/SpinnerMouseController.as | 9 +++++-- .../apache/flex/html/beads/models/RangeModel.as | 4 ++- .../html/beads/models/RangeModelExtended.as | 9 +++++-- .../html/beads/models/ValueToggleButtonModel.as | 5 +++- 6 files changed, 44 insertions(+), 15 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/NumericStepperView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/NumericStepperView.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/NumericStepperView.as index 15e2321..5ad42dc 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/NumericStepperView.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/NumericStepperView.as @@ -29,6 +29,7 @@ package org.apache.flex.html.beads import org.apache.flex.core.IUIBase; import org.apache.flex.core.UIBase; import org.apache.flex.events.Event; + import org.apache.flex.events.ValueChangeEvent import org.apache.flex.events.IEventDispatcher; import org.apache.flex.html.Label; import org.apache.flex.html.Spinner; @@ -143,11 +144,11 @@ package org.apache.flex.html.beads /** * @private */ - private function spinnerValueChanged(event:Event) : void + private function spinnerValueChanged(event:ValueChangeEvent) : void { input.text = String(spinner.value); - var newEvent:Event = new Event(event.type,event.bubbles); + var newEvent:ValueChangeEvent = new ValueChangeEvent(event.type, false, false, event.oldValue, event.newValue); IEventDispatcher(_strand).dispatchEvent(newEvent); } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SliderMouseController.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SliderMouseController.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SliderMouseController.as index 91589b5..9663aff 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SliderMouseController.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SliderMouseController.as @@ -26,6 +26,7 @@ package org.apache.flex.html.beads.controllers import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; import org.apache.flex.events.MouseEvent; + import org.apache.flex.events.ValueChangeEvent; import org.apache.flex.geom.Point; import org.apache.flex.html.beads.ISliderView; import org.apache.flex.html.beads.SliderTrackView; @@ -68,7 +69,9 @@ package org.apache.flex.html.beads.controllers private var rangeModel:IRangeModel; private var _strand:IStrand; - + + private var oldValue:Number; + /** * @copy org.apache.flex.core.IBead#strand * @@ -126,6 +129,7 @@ package org.apache.flex.html.beads.controllers origin = new Point(event.screenX, event.screenY); thumb = new Point(sliderView.thumb.x,sliderView.thumb.y); + oldValue = rangeModel.value; } /** @@ -137,7 +141,8 @@ package org.apache.flex.html.beads.controllers UIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_MOVE, thumbMoveHandler); UIBase(_strand).topMostEventDispatcher.removeEventListener(MouseEvent.MOUSE_UP, thumbUpHandler); - IEventDispatcher(_strand).dispatchEvent(new Event("valueChange")); + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, oldValue, rangeModel.value); + IEventDispatcher(_strand).dispatchEvent(vce); } COMPILE::SWF @@ -160,9 +165,10 @@ package org.apache.flex.html.beads.controllers var p:Number = newX/sliderView.track.width; var n:Number = p*(rangeModel.maximum - rangeModel.minimum) + rangeModel.minimum; + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, rangeModel.value, n); rangeModel.value = n; - IEventDispatcher(_strand).dispatchEvent(new Event("valueChange")); + IEventDispatcher(_strand).dispatchEvent(vce); } /** @@ -179,9 +185,10 @@ package org.apache.flex.html.beads.controllers var p:Number = xloc/sliderView.track.width; var n:Number = p*(rangeModel.maximum - rangeModel.minimum) + rangeModel.minimum; + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, rangeModel.value, n); rangeModel.value = n; - IEventDispatcher(_strand).dispatchEvent(new Event("valueChange")); + IEventDispatcher(_strand).dispatchEvent(vce); } /** @@ -195,6 +202,7 @@ package org.apache.flex.html.beads.controllers var n:Number = p * (host.maximum - host.minimum) + host.minimum; + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, host.value, n); host.value = n; origin = parseInt(thumb.element.style.left, 10); @@ -202,7 +210,7 @@ package org.apache.flex.html.beads.controllers calcValFromMousePosition(event, true); - host.dispatchEvent(new org.apache.flex.events.Event('valueChange')); + host.dispatchEvent(vce); } @@ -219,6 +227,7 @@ package org.apache.flex.html.beads.controllers origin = event.clientX; position = parseInt(thumb.element.style.left, 10); + oldValue = rangeModel.value; } COMPILE::JS @@ -238,8 +247,9 @@ package org.apache.flex.html.beads.controllers handleThumbMove, false, this); calcValFromMousePosition(event, false); + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, oldValue, rangeModel.value); - host.dispatchEvent(new org.apache.flex.events.Event('valueChange')); + host.dispatchEvent(vce); } @@ -249,9 +259,12 @@ package org.apache.flex.html.beads.controllers private function handleThumbMove(event:BrowserEvent):void { var host:Slider = _strand as Slider; + var lastValue:Number = rangeModel.value; calcValFromMousePosition(event, false); - host.dispatchEvent(new org.apache.flex.events.Event('valueChange')); + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, lastValue, rangeModel.value); + + host.dispatchEvent(vce); } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SpinnerMouseController.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SpinnerMouseController.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SpinnerMouseController.as index 2a898d8..b228980 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SpinnerMouseController.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/controllers/SpinnerMouseController.as @@ -25,6 +25,7 @@ package org.apache.flex.html.beads.controllers import org.apache.flex.events.Event; import org.apache.flex.events.IEventDispatcher; import org.apache.flex.events.MouseEvent; + import org.apache.flex.events.ValueChangeEvent; import org.apache.flex.html.TextButton; import org.apache.flex.html.beads.ISpinnerView; COMPILE::JS @@ -108,8 +109,10 @@ package org.apache.flex.html.beads.controllers */ private function decrementClickHandler( event:org.apache.flex.events.MouseEvent ) : void { + var oldValue:Number = rangeModel.value; rangeModel.value = Math.max(rangeModel.minimum, rangeModel.value - rangeModel.stepSize); - IEventDispatcher(_strand).dispatchEvent(new Event("valueChange")); + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, oldValue, rangeModel.value); + IEventDispatcher(_strand).dispatchEvent(vce); } /** @@ -117,8 +120,10 @@ package org.apache.flex.html.beads.controllers */ private function incrementClickHandler( event:org.apache.flex.events.MouseEvent ) : void { + var oldValue:Number = rangeModel.value; rangeModel.value = Math.min(rangeModel.maximum, rangeModel.value + rangeModel.stepSize); - IEventDispatcher(_strand).dispatchEvent(new Event("valueChange")); + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, oldValue, rangeModel.value); + IEventDispatcher(_strand).dispatchEvent(vce); } } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as index c06d3fe..ab86d03 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModel.as @@ -23,6 +23,7 @@ package org.apache.flex.html.beads.models import org.apache.flex.core.IRangeModel; import org.apache.flex.events.Event; import org.apache.flex.events.EventDispatcher; + import org.apache.flex.events.ValueChangeEvent; /** * The RangeModel class bead defines a set of for a numeric range of values @@ -194,8 +195,9 @@ package org.apache.flex.html.beads.models // what is coming in. newValue = Math.max(minimum, newValue); newValue = Math.min(maximum, newValue); + var oldValue:Number = _value; _value = snap(newValue); - dispatchEvent(new Event("valueChange")); + dispatchEvent(new ValueChangeEvent("valueChange", false, false, oldValue, _value)); } } http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as index ebbc4f3..fad333e 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as @@ -19,6 +19,7 @@ package org.apache.flex.html.beads.models { import org.apache.flex.events.Event; + import org.apache.flex.events.ValueChangeEvent; import org.apache.flex.html.beads.models.RangeModel; /** @@ -56,8 +57,12 @@ package org.apache.flex.html.beads.models } override public function set value(newValue:Number):void { - _value = newValue; - dispatchEvent(new Event("valueChange")); + if (_value != newValue) + { + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, _value, newValue); + _value = newValue; + dispatchEvent(vce); + } } private var _labelFunction:Function; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/4df71784/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ValueToggleButtonModel.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ValueToggleButtonModel.as b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ValueToggleButtonModel.as index 27b0a95..e8fbc76 100644 --- a/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ValueToggleButtonModel.as +++ b/frameworks/projects/Basic/src/main/flex/org/apache/flex/html/beads/models/ValueToggleButtonModel.as @@ -21,6 +21,8 @@ package org.apache.flex.html.beads.models import org.apache.flex.core.IValueToggleButtonModel; import org.apache.flex.events.Event; + import org.apache.flex.events.ValueChangeEvent; + /** * The ValueToggleButtonModel class bead extends the @@ -67,8 +69,9 @@ package org.apache.flex.html.beads.models { if( newValue != _value ) { + var vce:ValueChangeEvent = new ValueChangeEvent("valueChange", false, false, _value, newValue); _value = newValue; - dispatchEvent(new Event("valueChange")); + dispatchEvent(vce); } }
