Modified Slider to use addBead() and SliderMouseController to use getBeadByType(). Modified Spinner to use TextButton component for the arrow buttons and separated button control into SpinnerMouseController.
Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/e305d18a Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/e305d18a Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/e305d18a Branch: refs/heads/develop Commit: e305d18a19524ea97c4e4e51bee40518c59d4482 Parents: 206e6e9 Author: Peter Ent <p...@apache.org> Authored: Thu Aug 15 16:16:44 2013 -0400 Committer: Peter Ent <p...@apache.org> Committed: Thu Aug 15 16:16:44 2013 -0400 ---------------------------------------------------------------------- .../apache/flex/html/staticControls/Slider.js | 6 +- .../apache/flex/html/staticControls/Spinner.js | 51 ++++---------- .../beads/controllers/SliderMouseController.js | 9 ++- .../beads/controllers/SpinnerMouseController.js | 74 ++++++++++++++++++++ 4 files changed, 97 insertions(+), 43 deletions(-) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e305d18a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Slider.js ---------------------------------------------------------------------- diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Slider.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Slider.js index c818b4d..6fa8237 100644 --- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Slider.js +++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Slider.js @@ -46,14 +46,14 @@ function() { this.element.style.height = '30px'; this.track = new org.apache.flex.html.staticControls.beads.SliderTrackView(); - this.track.set_strand(this); + this.addBead(this.track); this.thumb = new org.apache.flex.html.staticControls.beads.SliderThumbView(); - this.thumb.set_strand(this); + this.addBead(this.thumb); this.controller = new org.apache.flex.html.staticControls.beads.controllers. SliderMouseController(); - this.controller.set_strand(this); + this.addBead(this.controller); this.positioner = this.element; this.element.flexjs_wrapper = this; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e305d18a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Spinner.js ---------------------------------------------------------------------- diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Spinner.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Spinner.js index 3dd7ad3..b272f22 100644 --- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Spinner.js +++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/Spinner.js @@ -15,6 +15,8 @@ goog.provide('org.apache.flex.html.staticControls.Spinner'); goog.require('org.apache.flex.core.UIBase'); +goog.require('org.apache.flex.html.staticControls.TextButton'); +goog.require('org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController'); @@ -46,21 +48,17 @@ org.apache.flex.html.staticControls.Spinner.prototype.createElement = this.element.style.verticalAlign = 'middle'; - this.incrementButton = document.createElement('button'); - this.incrementButton.id = 'incrementButton'; - this.incrementButton.style.display = 'block'; - this.incrementButton.innerHTML = '\u2191'; - this.element.appendChild(this.incrementButton); - goog.events.listen(this.incrementButton, 'click', - goog.bind(this.handleIncrementClick, this)); - - this.decrementButton = document.createElement('button'); - this.decrementButton.id = 'decrementButton'; - this.decrementButton.style.display = 'block'; - this.decrementButton.innerHTML = '\u2193'; - this.element.appendChild(this.decrementButton); - goog.events.listen(this.decrementButton, 'click', - goog.bind(this.handleDecrementClick, this)); + this.incrementButton = new org.apache.flex.html.staticControls.TextButton(); + this.incrementButton.set_text('\u2191'); + this.addElement(this.incrementButton); + + this.decrementButton = new org.apache.flex.html.staticControls.TextButton(); + this.decrementButton.set_text('\u2193'); + this.addElement(this.decrementButton); + + this.controller = new +org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController(); + this.addBead(this.controller); this.element.flexjs_wrapper = this; }; @@ -201,26 +199,3 @@ org.apache.flex.html.staticControls.Spinner.prototype.snap = function(value) return n; }; -/** - * @this {org.apache.flex.html.staticControls.Spinner} - * @param {Object} event The event object. - */ -org.apache.flex.html.staticControls.Spinner.prototype.handleIncrementClick = - function(event) -{ - this.value_ = this.snap(Math.min(this.maximum_, - this.value_ + this.stepSize_)); - this.dispatchEvent(new org.apache.flex.events.Event('valueChanged')); -}; - -/** - * @this {org.apache.flex.html.staticControls.Spinner} - * @param {event} event The event object. - */ -org.apache.flex.html.staticControls.Spinner.prototype.handleDecrementClick = - function(event) -{ - this.value_ = this.snap(Math.max(this.minimum_, - this.value_ - this.stepSize_)); - this.dispatchEvent(new org.apache.flex.events.Event('valueChanged')); -}; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e305d18a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SliderMouseController.js ---------------------------------------------------------------------- diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SliderMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SliderMouseController.js index 5d12b5c..faab34a 100644 --- a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SliderMouseController.js +++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SliderMouseController.js @@ -14,6 +14,9 @@ goog.provide('org.apache.flex.html.staticControls.beads.controllers.SliderMouseController'); +goog.require('org.apache.flex.html.staticControls.beads.SliderThumbView'); +goog.require('org.apache.flex.html.staticControls.beads.SliderTrackView'); + /** * @constructor */ @@ -31,8 +34,10 @@ org.apache.flex.html.staticControls.beads.controllers.SliderMouseController. prototype.set_strand = function(value) { this.strand_ = value; - this.track = this.strand_.track; - this.thumb = this.strand_.thumb; + this.track = this.strand_.getBeadByType( + org.apache.flex.html.staticControls.beads.SliderTrackView); + this.thumb = this.strand_.getBeadByType( + org.apache.flex.html.staticControls.beads.SliderThumbView); goog.events.listen(this.track.element, goog.events.EventType.CLICK, this.handleTrackClick, false, this); http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/e305d18a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SpinnerMouseController.js ---------------------------------------------------------------------- diff --git a/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SpinnerMouseController.js b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SpinnerMouseController.js new file mode 100644 index 0000000..fe2d1db --- /dev/null +++ b/frameworks/js/FlexJS/src/org/apache/flex/html/staticControls/beads/controllers/SpinnerMouseController.js @@ -0,0 +1,74 @@ +/** + * Licensed under the Apache License, Version 2.0 (the 'License'); + * you may not use this file except in compliance with the License. + * You may obtain a copy of the License at + * + * http://www.apache.org/licenses/LICENSE-2.0 + * + * Unless required by applicable law or agreed to in writing, software + * distributed under the License is distributed on an 'AS IS' BASIS, + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. + * See the License for the specific language governing permissions and + * limitations under the License. + */ + +goog.provide('org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController'); + +goog.require('org.apache.flex.html.staticControls.TextButton'); + + +/** + * @constructor + */ +org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController = +function() { +}; + +/** + * @expose + * @this {org.apache.flex.html.staticControls.beads.controllers. + * SpinnerMouseController} + * @param {Object} value The strand. + */ +org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController. +prototype.set_strand = function(value) { + this.strand_ = value; + + this.incrementButton = this.strand_.incrementButton; + this.decrementButton = this.strand_.decrementButton; + + goog.events.listen(this.incrementButton.element, goog.events.EventType.CLICK, + goog.bind(this.handleIncrementClick, this)); + + goog.events.listen(this.decrementButton.element, goog.events.EventType.CLICK, + goog.bind(this.handleDecrementClick, this)); +}; + +/** + * @this {org.apache.flex.html.staticControls.beads.controllers. + * SpinnerMouseController} + * @param {Object} event The event object. + */ +org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController. +prototype.handleIncrementClick = function(event) +{ + var newValue = this.strand_.snap(Math.min(this.strand_.get_maximum(), + this.strand_.get_value() + + this.strand_.get_stepSize())); + this.strand_.set_value(newValue); +}; + +/** + * @this {org.apache.flex.html.staticControls.beads.controllers. + * SpinnerMouseController} + * @param {event} event The event object. + */ +org.apache.flex.html.staticControls.beads.controllers.SpinnerMouseController. +prototype.handleDecrementClick = + function(event) +{ + var newValue = this.strand_.snap(Math.max(this.strand_.get_minimum(), + this.strand_.get_value() - + this.strand_.get_stepSize())); + this.strand_.set_value(newValue); +};