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);
+};

Reply via email to