Repository: flex-asjs Updated Branches: refs/heads/develop 7f2737785 -> f376283d4
Added RangeStepper controller and associated beads. Project: http://git-wip-us.apache.org/repos/asf/flex-asjs/repo Commit: http://git-wip-us.apache.org/repos/asf/flex-asjs/commit/f376283d Tree: http://git-wip-us.apache.org/repos/asf/flex-asjs/tree/f376283d Diff: http://git-wip-us.apache.org/repos/asf/flex-asjs/diff/f376283d Branch: refs/heads/develop Commit: f376283d4c00040c8505c60fa2b59fd3dd9449fc Parents: 7f27377 Author: Peter Ent <[email protected]> Authored: Mon Jun 6 16:25:19 2016 -0400 Committer: Peter Ent <[email protected]> Committed: Mon Jun 6 16:25:19 2016 -0400 ---------------------------------------------------------------------- .../projects/HTML/src/main/flex/HTMLClasses.as | 5 + .../flex/org/apache/flex/html/RangeStepper.as | 69 ++++++++ .../flex/html/beads/DecrementButtonView.as | 96 +++++++++++ .../flex/html/beads/IncrementButtonView.as | 96 +++++++++++ .../apache/flex/html/beads/RangeStepperView.as | 158 +++++++++++++++++++ .../controllers/RangeStepperMouseController.as | 94 +++++++++++ .../html/beads/models/RangeModelExtended.as | 101 ++++++++++++ .../HTML/src/main/resources/basic-manifest.xml | 1 + .../HTML/src/main/resources/defaults.css | 6 + 9 files changed, 626 insertions(+) ---------------------------------------------------------------------- http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/HTMLClasses.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as index ad3ba4b..0834abb 100644 --- a/frameworks/projects/HTML/src/main/flex/HTMLClasses.as +++ b/frameworks/projects/HTML/src/main/flex/HTMLClasses.as @@ -91,6 +91,7 @@ internal class HTMLClasses } import org.apache.flex.html.beads.models.ArraySelectionModel; ArraySelectionModel; import org.apache.flex.html.beads.models.RangeModel; RangeModel; + import org.apache.flex.html.beads.models.RangeModelExtended; RangeModelExtended; COMPILE::AS3 { import org.apache.flex.html.beads.models.ComboBoxModel; ComboBoxModel; @@ -152,12 +153,16 @@ internal class HTMLClasses import org.apache.flex.html.beads.DataGridView; DataGridView; import org.apache.flex.html.beads.DateChooserView; DateChooserView; import org.apache.flex.html.beads.DateFieldView; DateFieldView; + import org.apache.flex.html.beads.DecrementButtonView; DecrementButtonView; + import org.apache.flex.html.beads.IncrementButtonView; IncrementButtonView; + import org.apache.flex.html.beads.RangeStepperView; RangeStepperView; import org.apache.flex.html.beads.layouts.FlexibleFirstChildHorizontalLayout; FlexibleFirstChildHorizontalLayout; import org.apache.flex.html.beads.models.DataGridModel; DataGridModel; import org.apache.flex.html.beads.models.DateChooserModel; DateChooserModel; import org.apache.flex.html.beads.models.DataGridPresentationModel; DataGridPresentationModel; import org.apache.flex.html.beads.controllers.DateChooserMouseController; DateChooserMouseController; import org.apache.flex.html.beads.controllers.DateFieldMouseController; DateFieldMouseController; + import org.apache.flex.html.beads.controllers.RangeStepperMouseController; RangeStepperMouseController; import org.apache.flex.html.supportClasses.DataGridColumn; DataGridColumn; import org.apache.flex.html.supportClasses.DateChooserButton; DateChooserButton; import org.apache.flex.html.supportClasses.GraphicsItemRenderer; GraphicsItemRenderer; http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RangeStepper.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RangeStepper.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RangeStepper.as new file mode 100644 index 0000000..bcba27b --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/RangeStepper.as @@ -0,0 +1,69 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html +{ + import org.apache.flex.core.IRangeModel; + import org.apache.flex.core.UIBase; + + /** + * The RangeStepper control allows for the selection of a single value + * from multiple choices. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class RangeStepper extends UIBase + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function RangeStepper() + { + super(); + + className = "RangeStepper"; + + setWidthAndHeight(40, 60, true); + } + + /** + * The value selected or set. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function set value(newValue:Number):void + { + IRangeModel(model).value = newValue; + } + public function get value():Number + { + return IRangeModel(model).value; + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as new file mode 100644 index 0000000..a753090 --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/DecrementButtonView.as @@ -0,0 +1,96 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html.beads +{ + import org.apache.flex.core.BeadViewBase; + import org.apache.flex.core.IBeadView; + import org.apache.flex.core.IStrand; + import org.apache.flex.core.UIBase; + import org.apache.flex.core.graphics.Path; + import org.apache.flex.core.graphics.Rect; + import org.apache.flex.core.graphics.SolidColor; + import org.apache.flex.core.graphics.SolidColorStroke; + import org.apache.flex.events.Event; + + public class DecrementButtonView extends BeadViewBase implements IBeadView + { + public function DecrementButtonView() + { + super(); + } + + private var _strand:IStrand; + + private var _backRect:Rect; + private var _arrow:Path; + + /** + * @copy org.apache.flex.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function set strand(value:IStrand):void + { + super.strand = value; + _strand = value; + + var host:UIBase = _strand as UIBase; + + _backRect = new Rect(); + _backRect.fill = new SolidColor(); + (_backRect.fill as SolidColor).color = 0xFFFFFF; + _backRect.stroke = new SolidColorStroke(); + (_backRect.stroke as SolidColorStroke).color = 0x000000; + (_backRect.stroke as SolidColorStroke).weight = 1.0; + host.addElement(_backRect); + + // arrow + _arrow = new Path(); + _arrow.fill = new SolidColor(); + (_arrow.fill as SolidColor).color = 0x000000; + host.addElement(_arrow); + + host.addEventListener("widthChanged", sizeHandler); + host.addEventListener("heightChanged", sizeHandler); + + sizeHandler(null); + } + + private function sizeHandler(event:Event):void + { + var host:UIBase = _strand as UIBase; + + _backRect.x = 0; + _backRect.y = 0; + _backRect.setWidthAndHeight(host.width, host.height, true); + _backRect.drawRect(0, 0, host.width, host.height); + + var xm:Number = host.width/2; + var ym:Number = host.height - 4; + + _arrow.setWidthAndHeight(xm, ym, true); + _arrow.y = 2; + _arrow.x = 0; + _arrow.drawPath(0, 0, "M "+String(xm)+" "+String(ym)+" L "+String(xm-8)+" 2 "+String(xm+8)+" 2 "+String(xm)+" "+String(ym)+" Z"); + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as new file mode 100644 index 0000000..2e0c8a0 --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/IncrementButtonView.as @@ -0,0 +1,96 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html.beads +{ + import org.apache.flex.core.BeadViewBase; + import org.apache.flex.core.IBeadView; + import org.apache.flex.core.IStrand; + import org.apache.flex.core.UIBase; + import org.apache.flex.core.graphics.Path; + import org.apache.flex.core.graphics.Rect; + import org.apache.flex.core.graphics.SolidColor; + import org.apache.flex.core.graphics.SolidColorStroke; + import org.apache.flex.events.Event; + + public class IncrementButtonView extends BeadViewBase implements IBeadView + { + public function IncrementButtonView() + { + super(); + } + + private var _strand:IStrand; + + private var _backRect:Rect; + private var _arrow:Path; + + /** + * @copy org.apache.flex.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function set strand(value:IStrand):void + { + super.strand = value; + _strand = value; + + var host:UIBase = _strand as UIBase; + + _backRect = new Rect(); + _backRect.fill = new SolidColor(); + (_backRect.fill as SolidColor).color = 0xFFFFFF; + _backRect.stroke = new SolidColorStroke(); + (_backRect.stroke as SolidColorStroke).color = 0x000000; + (_backRect.stroke as SolidColorStroke).weight = 1.0; + host.addElement(_backRect); + + // arrow + _arrow = new Path(); + _arrow.fill = new SolidColor(); + (_arrow.fill as SolidColor).color = 0x000000; + host.addElement(_arrow); + + host.addEventListener("widthChanged", sizeHandler); + host.addEventListener("heightChanged", sizeHandler); + + sizeHandler(null); + } + + private function sizeHandler(event:Event):void + { + var host:UIBase = _strand as UIBase; + + _backRect.x = 0; + _backRect.y = 0; + _backRect.setWidthAndHeight(host.width, host.height, true); + _backRect.drawRect(0, 0, host.width, host.height); + + var xm:Number = host.width/2; + var ym:Number = host.height - 4; + + _arrow.setWidthAndHeight(xm, ym, true); + _arrow.y = 2; + _arrow.x = 0; + _arrow.drawPath(0, 0, "M "+String(xm)+" 2 L "+String(xm-8)+" "+String(ym)+" L "+String(xm+8)+" "+String(ym)+" Z"); + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/RangeStepperView.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/RangeStepperView.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/RangeStepperView.as new file mode 100644 index 0000000..ca3986c --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/RangeStepperView.as @@ -0,0 +1,158 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html.beads +{ + import org.apache.flex.core.BeadViewBase; + import org.apache.flex.core.IBeadView; + import org.apache.flex.core.IStrand; + import org.apache.flex.core.UIBase; + import org.apache.flex.core.graphics.Rect; + import org.apache.flex.core.graphics.SolidColorStroke; + import org.apache.flex.events.Event; + import org.apache.flex.events.IEventDispatcher; + import org.apache.flex.html.ImageButton; + import org.apache.flex.html.Label; + import org.apache.flex.html.beads.models.RangeModelExtended; + + /** + * The RangeStepperView bead creates the visual elements of the RangeStepper. This + * includes an increment button, a decrement button, and label to display the value. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class RangeStepperView extends BeadViewBase implements IBeadView + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function RangeStepperView() + { + super(); + } + + private var _strand:IStrand; + private var _label:Label; + private var _incrementButton:ImageButton; + private var _decrementButton:ImageButton; + private var _labelBox:Rect; + + /** + * Increment control. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get incrementButton():ImageButton + { + return _incrementButton; + } + + /** + * Decrement control. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get decrementButton():ImageButton + { + return _decrementButton; + } + + /** + * @copy org.apache.flex.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + override public function set strand(value:IStrand):void + { + super.strand = value; + _strand = value; + + var host:UIBase = _strand as UIBase; + + _labelBox = new Rect(); + _labelBox.stroke = new SolidColorStroke(); + (_labelBox.stroke as SolidColorStroke).color = 0x000000; + (_labelBox.stroke as SolidColorStroke).weight = 1.0; + + _incrementButton = new ImageButton(); + _incrementButton.source = "assets/up-arrow.png"; + + _decrementButton = new ImageButton(); + _decrementButton.source = "assets/down-arrow.png"; + + IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler); + IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler); + + _label = new Label(); + + host.addElement(_labelBox); + host.addElement(_incrementButton); + host.addElement(_decrementButton); + host.addElement(_label); + + var model:RangeModelExtended = host.model as RangeModelExtended; + model.addEventListener("valueChange", handleValueChange); + + sizeChangeHandler(null); + } + + private function sizeChangeHandler(event:Event):void + { + var host:UIBase = _strand as UIBase; + + _incrementButton.x = 0; + _incrementButton.y = 0; + _incrementButton.setWidthAndHeight(host.width, 20); + + _label.x = 0; + _label.y = _incrementButton.height + 2; + _label.setWidthAndHeight(host.width, host.height-40, true); + + _labelBox.x = _label.x; + _labelBox.y = _label.y - 2; + _labelBox.drawRect(0, 0, _label.width - 1, _label.height); + + _decrementButton.x = 0; + _decrementButton.y = host.height - 20; + _decrementButton.setWidthAndHeight(host.width, 20); + } + + private function handleValueChange(event:Event):void + { + var model:RangeModelExtended = (_strand as UIBase).model as RangeModelExtended; + _label.text = model.getLabelForIndex(model.value); + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/RangeStepperMouseController.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/RangeStepperMouseController.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/RangeStepperMouseController.as new file mode 100644 index 0000000..b566d55 --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/controllers/RangeStepperMouseController.as @@ -0,0 +1,94 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html.beads.controllers +{ + import org.apache.flex.core.IBeadController; + import org.apache.flex.core.IStrand; + import org.apache.flex.core.UIBase; + import org.apache.flex.events.MouseEvent; + import org.apache.flex.html.ImageButton; + import org.apache.flex.html.beads.RangeStepperView; + import org.apache.flex.html.beads.models.RangeModel; + + /** + * The RangeStepperMouseController bead feeds mouse events to the RangeStepper and its + * components. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class RangeStepperMouseController implements IBeadController + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function RangeStepperMouseController() + { + } + + private var _strand:IStrand; + + private var _incrButton:ImageButton; + private var _decrButton:ImageButton; + + /** + * @copy org.apache.flex.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function set strand(value:IStrand):void + { + _strand = value; + + var stepperView:RangeStepperView = _strand.getBeadByType(RangeStepperView) as RangeStepperView; + + _incrButton = stepperView.incrementButton; + _incrButton.addEventListener(MouseEvent.CLICK, handleIncrClick); + + _decrButton = stepperView.decrementButton; + _decrButton.addEventListener(MouseEvent.CLICK, handleDecrClick); + } + + private function handleIncrClick(event:MouseEvent):void + { + var model:RangeModel = (_strand as UIBase).model as RangeModel; + var nextValue:Number = model.value + 1; + if (nextValue >= model.maximum) nextValue = model.maximum; + model.value = nextValue; + } + + private function handleDecrClick(event:MouseEvent):void + { + var model:RangeModel = (_strand as UIBase).model as RangeModel; + var nextValue:Number = model.value - 1; + if (nextValue < model.minimum) nextValue = model.minimum; + model.value = nextValue; + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as new file mode 100644 index 0000000..ebbc4f3 --- /dev/null +++ b/frameworks/projects/HTML/src/main/flex/org/apache/flex/html/beads/models/RangeModelExtended.as @@ -0,0 +1,101 @@ +//////////////////////////////////////////////////////////////////////////////// +// +// Licensed to the Apache Software Foundation (ASF) under one or more +// contributor license agreements. See the NOTICE file distributed with +// this work for additional information regarding copyright ownership. +// The ASF licenses this file to You 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. +// +//////////////////////////////////////////////////////////////////////////////// +package org.apache.flex.html.beads.models +{ + import org.apache.flex.events.Event; + import org.apache.flex.html.beads.models.RangeModel; + + /** + * The RangeModelExtended bead expands on the RangeModel and adds a function to + * display a value from the model. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public class RangeModelExtended extends RangeModel + { + /** + * constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function RangeModelExtended() + { + super(); + } + + private var _value:Number = 0; + + /** + * @private + */ + override public function get value():Number + { + return _value; + } + override public function set value(newValue:Number):void + { + _value = newValue; + dispatchEvent(new Event("valueChange")); + } + + private var _labelFunction:Function; + + /** + * A function used to format a value in the model. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function get labelFunction():Function + { + return _labelFunction; + } + public function set labelFunction(value:Function):void + { + _labelFunction = value; + } + + /** + * Returns the label, using the labelFunction (if provided) for the value + * at the given index. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion FlexJS 0.0 + */ + public function getLabelForIndex(index:Number):String + { + if (_labelFunction != null) { + return _labelFunction(this, index); + } + else { + return ""; + } + } + } +} http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/resources/basic-manifest.xml ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml index 8a4db07..9fe03a8 100644 --- a/frameworks/projects/HTML/src/main/resources/basic-manifest.xml +++ b/frameworks/projects/HTML/src/main/resources/basic-manifest.xml @@ -46,6 +46,7 @@ <component id="PanelView" class="org.apache.flex.html.beads.PanelView"/> <component id="PanelWithControlBar" class="org.apache.flex.html.PanelWithControlBar"/> <component id="ControlBar" class="org.apache.flex.html.ControlBar"/> + <component id="RangeStepper" class="org.apache.flex.html.RangeStepper" /> <component id="TitleBar" class="org.apache.flex.html.TitleBar"/> <component id="TitleBarModel" class="org.apache.flex.html.beads.models.TitleBarModel"/> <component id="ToolTip" class="org.apache.flex.html.ToolTip"/> http://git-wip-us.apache.org/repos/asf/flex-asjs/blob/f376283d/frameworks/projects/HTML/src/main/resources/defaults.css ---------------------------------------------------------------------- diff --git a/frameworks/projects/HTML/src/main/resources/defaults.css b/frameworks/projects/HTML/src/main/resources/defaults.css index ea0c0c8..20fcebd 100644 --- a/frameworks/projects/HTML/src/main/resources/defaults.css +++ b/frameworks/projects/HTML/src/main/resources/defaults.css @@ -153,6 +153,12 @@ DateField { IFormatBead: ClassReference("org.apache.flex.html.accessories.DateFormatMMDDYYYYBead"); } +RangeStepper { + IBeadView: ClassReference("org.apache.flex.html.beads.RangeStepperView"); + IBeadModel: ClassReference("org.apache.flex.html.beads.models.RangeModelExtended"); + IBeadController: ClassReference("org.apache.flex.html.beads.controllers.RangeStepperMouseController"); +} + HContainer { IBeadView: ClassReference("org.apache.flex.html.beads.ContainerView");
