This is an automated email from the ASF dual-hosted git repository. harbs pushed a commit to branch feature/bead-base in repository https://gitbox.apache.org/repos/asf/royale-asjs.git
commit 5741fcc6adfe2e772fee992c0bd7890f044822fa Author: Harbs <[email protected]> AuthorDate: Wed Jan 1 15:29:30 2020 +0200 Cleanup --- .../beads/DataItemRendererFactoryForColumnData.as | 17 +- .../org/apache/royale/html/beads/DisableBead.as | 14 +- .../royale/html/beads/DisableChildrenBead.as | 10 +- .../DynamicItemsRendererFactoryForArrayListData.as | 22 ++- .../apache/royale/html/beads/NumericStepperView.as | 36 ++-- .../org/apache/royale/html/beads/PanelView.as | 167 ++++++++--------- .../beads/TextItemRendererFactoryForArrayData.as | 199 ++++++++++----------- .../ListSingleSelectionMouseController.as | 15 +- .../TreeSingleSelectionMouseController.as | 24 ++- .../html/beads/layouts/LayoutChangeNotifier.as | 19 +- .../org/apache/royale/core/DispatcherBead.as | 4 +- 11 files changed, 251 insertions(+), 276 deletions(-) diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as index 5a7be50..691197c 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DataItemRendererFactoryForColumnData.as @@ -31,6 +31,7 @@ package org.apache.royale.html.beads import org.apache.royale.events.IEventDispatcher; import org.apache.royale.html.supportClasses.DataItemRenderer; import org.apache.royale.utils.loadBeadFromValuesManager; + import org.apache.royale.core.Bead; /** * The DataItemRendererFactoryForColumnData class implents the @@ -42,7 +43,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class DataItemRendererFactoryForColumnData implements IBead, IDataProviderItemRendererMapper + public class DataItemRendererFactoryForColumnData extends Bead implements IDataProviderItemRendererMapper { /** * constructor. @@ -57,9 +58,7 @@ package org.apache.royale.html.beads } private var selectionModel:IDataGridModel; - - private var _strand:IStrand; - + /** * @copy org.apache.royale.core.IBead#strand * @@ -68,14 +67,15 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public function set strand(value:IStrand):void + override public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("initComplete",finishSetup); + listenOnStrand("initComplete",finishSetup); } /** * @private + * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory */ private function finishSetup(event:Event):void { @@ -99,6 +99,7 @@ package org.apache.royale.html.beads * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.0 + * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory */ public function get itemRendererFactory():IItemRendererClassFactory { @@ -124,6 +125,8 @@ package org.apache.royale.html.beads /** * @private + * @royaleignorecoercion org.apache.royale.html.beads.DataGridColumnView + * @royaleignorecoercion org.apache.royale.html.supportClasses.DataItemRenderer */ private function dataProviderChangeHandler(event:Event):void { @@ -147,7 +150,7 @@ package org.apache.royale.html.beads tf.data = dp[i]; } - IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated")); + notify("itemsCreated"); } } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableBead.as index 00eaaa5..b51b240 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableBead.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableBead.as @@ -22,12 +22,10 @@ package org.apache.royale.html.beads import flash.display.InteractiveObject; } - import org.apache.royale.core.IBead; + import org.apache.royale.core.Bead; import org.apache.royale.core.IStrand; import org.apache.royale.core.IUIBase; - import org.apache.royale.core.UIHTMLElementWrapper; import org.apache.royale.events.Event; - import org.apache.royale.events.IEventDispatcher; import org.apache.royale.events.ValueEvent; COMPILE::JS{ @@ -44,7 +42,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.0 */ - public class DisableBead implements IBead + public class DisableBead extends Bead { /** * constructor. @@ -58,7 +56,6 @@ package org.apache.royale.html.beads { } - private var _strand:IStrand; private var _disabled:Boolean; /** @@ -71,7 +68,7 @@ package org.apache.royale.html.beads * @royaleignorecoercion HTMLInputElement * @royaleignorecoercion org.apache.royale.core.UIBase; */ - public function set strand(value:IStrand):void + override public function set strand(value:IStrand):void { _strand = value; updateHost(); @@ -139,14 +136,11 @@ package org.apache.royale.html.beads } - /** - * @royaleignorecoercion org.apache.royale.events.IEventDispatcher - */ private function throwChangeEvent():void { if (_strand) { - IEventDispatcher(_strand).dispatchEvent(new ValueEvent("disabledChange", disabled)); + notify(new ValueEvent("disabledChange", disabled)); } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableChildrenBead.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableChildrenBead.as index c82d113..30025d0 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableChildrenBead.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DisableChildrenBead.as @@ -22,6 +22,7 @@ package org.apache.royale.html.beads import flash.display.DisplayObjectContainer; } + import org.apache.royale.core.Bead; import org.apache.royale.core.IBead; import org.apache.royale.core.IStrand; import org.apache.royale.core.IUIBase; @@ -44,7 +45,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.9 */ - public class DisableChildrenBead implements IBead + public class DisableChildrenBead extends Bead { /** * constructor. @@ -58,7 +59,6 @@ package org.apache.royale.html.beads { } - private var _strand:IStrand; private var _disabled:Boolean; /** @@ -71,10 +71,10 @@ package org.apache.royale.html.beads * @royaleignorecoercion HTMLInputElement * @royaleignorecoercion org.apache.royale.core.UIBase; */ - public function set strand(value:IStrand):void + override public function set strand(value:IStrand):void { _strand = value; - host.addEventListener("childrenAdded",childrenAddedHandler); + listenOnStrand("childrenAdded",childrenAddedHandler); } public function get disabled():Boolean @@ -145,7 +145,7 @@ package org.apache.royale.html.beads { if (_strand) { - IEventDispatcher(_strand).dispatchEvent(new ValueEvent("disabledChange", disabled)); + notify(new ValueEvent("disabledChange", disabled)); } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as index 8c424fc..695e163 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/DynamicItemsRendererFactoryForArrayListData.as @@ -37,6 +37,7 @@ package org.apache.royale.html.beads import org.apache.royale.events.IEventDispatcher; import org.apache.royale.html.beads.IListView; import org.apache.royale.utils.loadBeadFromValuesManager; + import org.apache.royale.core.DispatcherBead; [Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")] @@ -50,7 +51,7 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.9 */ - public class DynamicItemsRendererFactoryForArrayListData extends EventDispatcher implements IBead, IDataProviderItemRendererMapper + public class DynamicItemsRendererFactoryForArrayListData extends DispatcherBead implements IDataProviderItemRendererMapper { public function DynamicItemsRendererFactoryForArrayListData(target:Object = null) { @@ -59,7 +60,6 @@ package org.apache.royale.html.beads protected var labelField:String; - protected var _strand:IStrand; /** * @copy org.apache.royale.core.IBead#strand @@ -69,10 +69,10 @@ package org.apache.royale.html.beads * @playerversion AIR 2.6 * @productversion Royale 0.8 */ - public function set strand(value:IStrand):void + override public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("initComplete", initComplete); + listenOnStrand("initComplete", initComplete); } /** @@ -82,6 +82,8 @@ package org.apache.royale.html.beads * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.8 + * @royaleignorecoercion org.apache.royale.core.ISelectionModel + * @royaleignorecoercion org.apache.royale.html.beads.IListView */ protected function initComplete(event:Event):void { @@ -121,6 +123,7 @@ package org.apache.royale.html.beads * @playerversion Flash 10.2 * @playerversion AIR 2.6 * @productversion Royale 0.8 + * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory */ public function get itemRendererFactory():IItemRendererClassFactory { @@ -151,6 +154,8 @@ package org.apache.royale.html.beads /** * @private + * @royaleignorecoercion org.apache.royale.core.IListPresentationModel + * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer */ protected function dataProviderChangeHandler(event:Event):void { @@ -173,11 +178,13 @@ package org.apache.royale.html.beads fillRenderer(i, item, ir, presentationModel); } - IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated")); + notify("itemsCreated"); } /** * @private + * @royaleignorecoercion org.apache.royale.core.IListPresentationModel + * @royaleignorecoercion org.apache.royale.core.ISelectableItemRenderer */ protected function itemAddedHandler(event:CollectionEvent):void { @@ -198,12 +205,13 @@ package org.apache.royale.html.beads ir.index = i; } - (_strand as IEventDispatcher).dispatchEvent(new Event("itemsCreated")); - (_strand as IEventDispatcher).dispatchEvent(new Event("layoutNeeded")); + notify("itemsCreated"); + notify("layoutNeeded"); } /** * @private + * @royaleignorecoercion org.apache.royale.core.UIBase */ protected function fillRenderer(index:int, item:Object, diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/NumericStepperView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/NumericStepperView.as index 6544e86..97ed84c 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/NumericStepperView.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/NumericStepperView.as @@ -18,20 +18,20 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.beads { - import org.apache.royale.core.BeadViewBase; + import org.apache.royale.core.BeadViewBase; import org.apache.royale.core.IBead; import org.apache.royale.core.IBeadView; import org.apache.royale.core.ILayoutChild; - import org.apache.royale.core.IParent; + import org.apache.royale.core.IParent; import org.apache.royale.core.IParentIUIBase; import org.apache.royale.core.IRangeModel; import org.apache.royale.core.IStrand; - import org.apache.royale.core.IUIBase; - import org.apache.royale.core.UIBase; + import org.apache.royale.core.IUIBase; + import org.apache.royale.core.UIBase; import org.apache.royale.events.Event; import org.apache.royale.events.ValueChangeEvent import org.apache.royale.events.IEventDispatcher; - import org.apache.royale.html.Label; + import org.apache.royale.html.Label; import org.apache.royale.html.Spinner; import org.apache.royale.html.TextInput; import org.apache.royale.html.supportClasses.Border; @@ -62,8 +62,8 @@ package org.apache.royale.html.beads } protected var label:Label; - protected var input:TextInput; - protected var spinner:Spinner; + protected var input:TextInput; + protected var spinner:Spinner; /** * @copy org.apache.royale.core.IBead#strand @@ -80,16 +80,16 @@ package org.apache.royale.html.beads override public function set strand(value:IStrand):void { super.strand = value; - + // add an input field input = new TextInput(); - input.className = "NumericStepperInput"; - input.typeNames = "NumericStepperInput"; + input.className = "NumericStepperInput"; + input.typeNames = "NumericStepperInput"; (value as IParent).addElement(input); COMPILE::JS { - input.positioner.style.display = 'inline-block'; - input.positioner.style.width = '100px'; + input.positioner.style.display = 'inline-block'; + input.positioner.style.width = '100px'; } // add a spinner spinner = new Spinner(); @@ -103,8 +103,8 @@ package org.apache.royale.html.beads } COMPILE::JS { - spinner.positioner.style.display = 'inline-block'; - spinner.positioner.style.position = ''; + spinner.positioner.style.display = 'inline-block'; + spinner.positioner.style.position = ''; } // listen for changes to the text input field which will reset the @@ -116,9 +116,9 @@ package org.apache.royale.html.beads // listen for change events on the spinner so the value can be updated as // as resizing the component spinner.addEventListener("valueChange",spinnerValueChanged); - IEventDispatcher(value).addEventListener("widthChanged",sizeChangeHandler); - IEventDispatcher(value).addEventListener("heightChanged",sizeChangeHandler); - IEventDispatcher(value).addEventListener("sizeChanged",sizeChangeHandler); + listenOnStrand("widthChanged",sizeChangeHandler); + listenOnStrand("heightChanged",sizeChangeHandler); + listenOnStrand("sizeChanged",sizeChangeHandler); // listen for changes to the model itself and update the UI accordingly IEventDispatcher(UIBase(value).model).addEventListener("valueChange",modelChangeHandler); @@ -189,7 +189,7 @@ package org.apache.royale.html.beads input.text = "" + spinner.value; var newEvent:ValueChangeEvent = ValueChangeEvent.createUpdateEvent(_strand, "value", event.oldValue, event.newValue); - IEventDispatcher(_strand).dispatchEvent(newEvent); + notify(newEvent); } /** diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/PanelView.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/PanelView.as index 4d459c2..207e13b 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/PanelView.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/PanelView.as @@ -21,27 +21,16 @@ package org.apache.royale.html.beads import org.apache.royale.core.IBeadLayout; import org.apache.royale.core.IBeadView; import org.apache.royale.core.IChild; - import org.apache.royale.core.IContainer; import org.apache.royale.core.IContainerBaseStrandChildrenHost; - import org.apache.royale.core.ILayoutChild; import org.apache.royale.core.ILayoutView; - import org.apache.royale.core.IParent; import org.apache.royale.core.IStrand; - import org.apache.royale.core.IUIBase; import org.apache.royale.core.IViewport; - import org.apache.royale.core.IViewportModel; import org.apache.royale.core.UIBase; import org.apache.royale.core.ValuesManager; import org.apache.royale.events.Event; - import org.apache.royale.events.IEventDispatcher; - import org.apache.royale.geom.Rectangle; - import org.apache.royale.geom.Size; - import org.apache.royale.html.Container; - import org.apache.royale.html.Group; - import org.apache.royale.html.TitleBar; + import org.apache.royale.html.TitleBar; import org.apache.royale.html.beads.layouts.VerticalFlexLayout; import org.apache.royale.html.supportClasses.PanelLayoutProxy; - import org.apache.royale.utils.CSSUtils; COMPILE::SWF { import org.apache.royale.core.SimpleCSSStylesWithFlex; @@ -50,7 +39,7 @@ package org.apache.royale.html.beads /** * The Panel class creates the visual elements of the org.apache.royale.html.Panel * component. A Panel has a org.apache.royale.html.TitleBar, and content. A - * different View, PanelWithControlBarView, can display a ControlBar. + * different View, PanelWithControlBarView, can display a ControlBar. * * @viewbead * @langversion 3.0 @@ -89,13 +78,13 @@ package org.apache.royale.html.beads return _titleBar; } - /** - * @private - */ - public function set titleBar(value:UIBase):void - { - _titleBar = value; - } + /** + * @private + */ + public function set titleBar(value:UIBase):void + { + _titleBar = value; + } private var _contentArea:UIBase; @@ -133,14 +122,14 @@ package org.apache.royale.html.beads { super.strand = value; - var host:UIBase = value as UIBase; + var host:UIBase = value as UIBase; // Look for a layout and/or viewport bead on the host's beads list. If one // is found, pull it off so it will not be added permanently // to the strand. - var beads: Array = host.beads; - var transferLayoutBead: IBeadLayout; - var transferViewportBead: IViewport; + var beads: Array = host.beads; + var transferLayoutBead: IBeadLayout; + var transferViewportBead: IViewport; if (host.beads != null) { for(var i:int=host.beads.length-1; i >= 0; i--) { if (host.beads[i] is IBeadLayout) { @@ -154,8 +143,8 @@ package org.apache.royale.html.beads } } - if (!_titleBar) { - _titleBar = new TitleBar(); + if (!_titleBar) { + _titleBar = new TitleBar(); } _titleBar.id = "panelTitleBar"; @@ -171,77 +160,77 @@ package org.apache.royale.html.beads } if (!_contentArea) { - var cls:Class = ValuesManager.valuesImpl.getValue(_strand, "iPanelContentArea"); + var cls:Class = ValuesManager.valuesImpl.getValue(_strand, "iPanelContentArea"); _contentArea = new cls() as UIBase; _contentArea.id = "panelContent"; _contentArea.typeNames = "PanelContent"; // add the layout bead to the content area. if (transferLayoutBead) - _contentArea.addBead(transferLayoutBead); - else - setupContentAreaLayout(); - + _contentArea.addBead(transferLayoutBead); + else + setupContentAreaLayout(); + // add the viewport bead to the content area. if (transferViewportBead) _contentArea.addBead(transferViewportBead); } COMPILE::SWF { - IEventDispatcher(value).addEventListener("widthChanged", handleSizeChange); - IEventDispatcher(value).addEventListener("heightChanged", handleSizeChange); - IEventDispatcher(value).addEventListener("sizeChanged", handleSizeChange); - IEventDispatcher(value).addEventListener("childrenAdded", handleChildrenAdded); - IEventDispatcher(value).addEventListener("initComplete", handleInitComplete); + listenOnStrand("widthChanged", handleSizeChange); + listenOnStrand("heightChanged", handleSizeChange); + listenOnStrand("sizeChanged", handleSizeChange); + listenOnStrand("childrenAdded", handleChildrenAdded); + listenOnStrand("initComplete", handleInitComplete); } - super.strand = value; + super.strand = value; if (contentArea.parent == null) { (_strand as IContainerBaseStrandChildrenHost).$addElement(contentArea as IChild); } - setupLayout(); - } - - protected function setupContentAreaLayout():void - { - - } - - protected function setupLayout():void - { - COMPILE::JS { - _titleBar.element.style["flex-grow"] = "0"; - _titleBar.element.style["order"] = "1"; - } - - COMPILE::SWF { - _contentArea.percentWidth = 100; - - if (_contentArea.style == null) { - _contentArea.style = new SimpleCSSStylesWithFlex(); - } - _contentArea.style.flexGrow = 1; - _contentArea.style.order = 2; - } - - COMPILE::SWF { - _titleBar.percentWidth = 100; - - if (_titleBar.style == null) { - _titleBar.style = new SimpleCSSStylesWithFlex(); - } - _titleBar.style.flexGrow = 0; - _titleBar.style.order = 1; - } - - COMPILE::JS { - _contentArea.element.style["flex-grow"] = "1"; - _contentArea.element.style["order"] = "2"; - _contentArea.element.style["overflow"] = "auto"; // temporary - } - + setupLayout(); + } + + protected function setupContentAreaLayout():void + { + + } + + protected function setupLayout():void + { + COMPILE::JS { + _titleBar.element.style["flex-grow"] = "0"; + _titleBar.element.style["order"] = "1"; + } + + COMPILE::SWF { + _contentArea.percentWidth = 100; + + if (_contentArea.style == null) { + _contentArea.style = new SimpleCSSStylesWithFlex(); + } + _contentArea.style.flexGrow = 1; + _contentArea.style.order = 2; + } + + COMPILE::SWF { + _titleBar.percentWidth = 100; + + if (_titleBar.style == null) { + _titleBar.style = new SimpleCSSStylesWithFlex(); + } + _titleBar.style.flexGrow = 0; + _titleBar.style.order = 1; + } + + COMPILE::JS { + _contentArea.element.style["flex-grow"] = "1"; + _contentArea.element.style["order"] = "2"; + _contentArea.element.style["overflow"] = "auto"; // temporary + } + // Now give the Panel its own layout var layoutBead:IBeadLayout = new VerticalFlexLayout(); _strand.addBead(layoutBead); @@ -284,19 +273,19 @@ package org.apache.royale.html.beads performLayout(event); } - - private var sawInitComplete:Boolean; + + private var sawInitComplete:Boolean; private function handleChildrenAdded(event:Event):void { - var host:UIBase = _strand as UIBase; - if (sawInitComplete || - ((host.isHeightSizedToContent() || !isNaN(host.explicitHeight)) && - (host.isWidthSizedToContent() || !isNaN(host.explicitWidth)))) - { - _contentArea.dispatchEvent(new Event("layoutNeeded")); - performLayout(event); - } + var host:UIBase = _strand as UIBase; + if (sawInitComplete || + ((host.isHeightSizedToContent() || !isNaN(host.explicitHeight)) && + (host.isWidthSizedToContent() || !isNaN(host.explicitWidth)))) + { + _contentArea.dispatchEvent(new Event("layoutNeeded")); + performLayout(event); + } } /** @@ -304,7 +293,7 @@ package org.apache.royale.html.beads */ private function handleClose(event:Event):void { - IEventDispatcher(_strand).dispatchEvent(new Event("close")); + notify("close"); } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as index 606708d..0df7cb4 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/TextItemRendererFactoryForArrayData.as @@ -18,46 +18,47 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.beads { - import org.apache.royale.core.IBead; + import org.apache.royale.core.IBead; import org.apache.royale.core.IDataProviderItemRendererMapper; - import org.apache.royale.core.IItemRendererClassFactory; - import org.apache.royale.core.IItemRendererParent; - import org.apache.royale.core.ISelectionModel; - import org.apache.royale.core.IStrand; - import org.apache.royale.core.IStrandWithModelView; - import org.apache.royale.core.ValuesManager; - import org.apache.royale.events.Event; + import org.apache.royale.core.IItemRendererClassFactory; + import org.apache.royale.core.IItemRendererParent; + import org.apache.royale.core.ISelectionModel; + import org.apache.royale.core.IStrand; + import org.apache.royale.core.IStrandWithModelView; + import org.apache.royale.core.ValuesManager; + import org.apache.royale.events.Event; import org.apache.royale.events.EventDispatcher; import org.apache.royale.events.ItemRendererEvent; - import org.apache.royale.events.IEventDispatcher; - import org.apache.royale.html.beads.IListView; + import org.apache.royale.events.IEventDispatcher; + import org.apache.royale.html.beads.IListView; import org.apache.royale.utils.loadBeadFromValuesManager; + import org.apache.royale.core.DispatcherBead; [Event(name="itemRendererCreated",type="org.apache.royale.events.ItemRendererEvent")] - /** - * The TextItemRendererFactoryForArrayData class is the - * IDataProviderItemRendererMapper for creating - * ITextItemRenderers and assigning them data from an array. - * Other IDataProviderItemRendererMapper implementations - * assign specific array or vector types to item - * renderers expecting those types. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - */ - public class TextItemRendererFactoryForArrayData extends EventDispatcher implements IBead, IDataProviderItemRendererMapper + /** + * The TextItemRendererFactoryForArrayData class is the + * IDataProviderItemRendererMapper for creating + * ITextItemRenderers and assigning them data from an array. + * Other IDataProviderItemRendererMapper implementations + * assign specific array or vector types to item + * renderers expecting those types. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9 + */ + public class TextItemRendererFactoryForArrayData extends DispatcherBead implements IDataProviderItemRendererMapper { - /** - * Constructor. - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - */ + /** + * Constructor. + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9 + */ public function TextItemRendererFactoryForArrayData(target:Object=null) { super(target); @@ -65,27 +66,25 @@ package org.apache.royale.html.beads private var selectionModel:ISelectionModel; - private var _strand:IStrand; - - /** - * @copy org.apache.royale.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - * @royaleignorecoercion org.apache.royale.events.IEventDispatcher - */ - public function set strand(value:IStrand):void + /** + * @copy org.apache.royale.core.IBead#strand + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9 + * @royaleignorecoercion org.apache.royale.events.IEventDispatcher + */ + override public function set strand(value:IStrand):void { _strand = value; - IEventDispatcher(value).addEventListener("initComplete",finishSetup); + listenOnStrand("initComplete",finishSetup); } - /** - * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory - * @royaleignorecoercion org.apache.royale.core.ISelectionModel - */ + /** + * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory + * @royaleignorecoercion org.apache.royale.core.ISelectionModel + */ private function finishSetup(event:Event):void { selectionModel = _strand.getBeadByType(ISelectionModel) as ISelectionModel; @@ -93,61 +92,61 @@ package org.apache.royale.html.beads // if the host component inherits from DataContainerBase, the itemRendererClassFactory will // already have been loaded by DataContainerBase.addedToParent function. - if (!itemRendererFactory) - { - _itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory; - } + if (!itemRendererFactory) + { + _itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory; + } dataProviderChangeHandler(null); } - private var _itemRendererFactory:IItemRendererClassFactory; - - /** - * An IItemRendererClassFactory that should generate ITextItemRenderers - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory - */ - public function get itemRendererFactory():IItemRendererClassFactory - { + private var _itemRendererFactory:IItemRendererClassFactory; + + /** + * An IItemRendererClassFactory that should generate ITextItemRenderers + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9 + * @royaleignorecoercion org.apache.royale.core.IItemRendererClassFactory + */ + public function get itemRendererFactory():IItemRendererClassFactory + { if(!_itemRendererFactory) - _itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory; - - return _itemRendererFactory - } - - /** - * @private - */ - public function set itemRendererFactory(value:IItemRendererClassFactory):void - { - _itemRendererFactory = value; - } - - /** - * The IItemRendererParent that should parent the ITextItemRenderers - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - * @royaleignorecoercion Array - * @royaleignorecoercion org.apache.royale.html.beads.ITextItemRenderer - * @royaleignorecoercion org.apache.royale.events.IEventDispatcher - * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView - * @royaleignorecoercion org.apache.royale.html.beads.IListView - */ + _itemRendererFactory = loadBeadFromValuesManager(IItemRendererClassFactory, "iItemRendererClassFactory", _strand) as IItemRendererClassFactory; + + return _itemRendererFactory + } + + /** + * @private + */ + public function set itemRendererFactory(value:IItemRendererClassFactory):void + { + _itemRendererFactory = value; + } + + /** + * The IItemRendererParent that should parent the ITextItemRenderers + * + * @langversion 3.0 + * @playerversion Flash 10.2 + * @playerversion AIR 2.6 + * @productversion Royale 0.9 + * @royaleignorecoercion Array + * @royaleignorecoercion org.apache.royale.html.beads.ITextItemRenderer + * @royaleignorecoercion org.apache.royale.events.IEventDispatcher + * @royaleignorecoercion org.apache.royale.core.IStrandWithModelView + * @royaleignorecoercion org.apache.royale.html.beads.IListView + */ private function dataProviderChangeHandler(event:Event):void { var dp:Array = selectionModel.dataProvider as Array; if (!dp) return; - var view:IListView = (_strand as IStrandWithModelView).view as IListView; + var view:IListView = (_strand as IStrandWithModelView).view as IListView; var dataGroup:IItemRendererParent = view.dataGroup; dataGroup.removeAllItemRenderers(); @@ -156,19 +155,19 @@ package org.apache.royale.html.beads for (var i:int = 0; i < n; i++) { var tf:ITextItemRenderer = itemRendererFactory.createItemRenderer(dataGroup) as ITextItemRenderer; - tf.index = i; - dataGroup.addItemRenderer(tf, false); - if (selectionModel.labelField) { - tf.labelField = selectionModel.labelField; - } - tf.data = dp[i]; + tf.index = i; + dataGroup.addItemRenderer(tf, false); + if (selectionModel.labelField) { + tf.labelField = selectionModel.labelField; + } + tf.data = dp[i]; var newEvent:ItemRendererEvent = new ItemRendererEvent(ItemRendererEvent.CREATED); newEvent.itemRenderer = tf; dispatchEvent(newEvent); } - IEventDispatcher(_strand).dispatchEvent(new Event("itemsCreated")); + notify("itemsCreated"); } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as index bd8ccb0..7141390 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/ListSingleSelectionMouseController.as @@ -18,6 +18,7 @@ //////////////////////////////////////////////////////////////////////////////// package org.apache.royale.html.beads.controllers { + import org.apache.royale.core.Bead; import org.apache.royale.core.IBeadController; import org.apache.royale.core.IItemRendererParent; import org.apache.royale.core.IRollOverModel; @@ -27,11 +28,9 @@ package org.apache.royale.html.beads.controllers import org.apache.royale.events.Event; import org.apache.royale.events.IEventDispatcher; import org.apache.royale.events.ItemAddedEvent; + import org.apache.royale.events.ItemClickedEvent; import org.apache.royale.events.ItemRemovedEvent; - import org.apache.royale.events.MouseEvent; import org.apache.royale.html.beads.IListView; - - import org.apache.royale.events.ItemClickedEvent; /** * The ListSingleSelectionMouseController class is a controller for @@ -48,7 +47,7 @@ package org.apache.royale.html.beads.controllers * @playerversion AIR 2.6 * @productversion Royale 0.9 */ - public class ListSingleSelectionMouseController implements IBeadController + public class ListSingleSelectionMouseController extends Bead implements IBeadController { /** * Constructor. @@ -91,8 +90,6 @@ package org.apache.royale.html.beads.controllers * @productversion Royale 0.9 */ protected var dataGroup:IItemRendererParent; - - private var _strand:IStrand; /** * @copy org.apache.royale.core.IBead#strand @@ -105,13 +102,13 @@ package org.apache.royale.html.beads.controllers * @royaleignorecoercion org.apache.royale.events.IEventDispatcher * @royaleignorecoercion org.apache.royale.html.beads.IListView */ - public function set strand(value:IStrand):void + override public function set strand(value:IStrand):void { _strand = value; listModel = value.getBeadByType(ISelectionModel) as ISelectionModel; listView = value.getBeadByType(IListView) as IListView; - IEventDispatcher(_strand).addEventListener("itemAdded", handleItemAdded); - IEventDispatcher(_strand).addEventListener("itemRemoved", handleItemRemoved); + listenOnStrand("itemAdded", handleItemAdded); + listenOnStrand("itemRemoved", handleItemRemoved); } /** diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as index 9cd5626..5cabaa7 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/TreeSingleSelectionMouseController.as @@ -7,7 +7,7 @@ // (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 +// 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, @@ -20,8 +20,6 @@ package org.apache.royale.html.beads.controllers { import org.apache.royale.collections.ITreeData; import org.apache.royale.core.IStrand; - import org.apache.royale.events.Event; - import org.apache.royale.events.IEventDispatcher; import org.apache.royale.events.ItemClickedEvent; /** @@ -71,18 +69,18 @@ package org.apache.royale.html.beads.controllers var node:Object = event.data; - if (treeData.hasChildren(node)) - { - if (treeData.isOpen(node)) { - treeData.closeNode(node); - } else { - treeData.openNode(node); - } - } - + if (treeData.hasChildren(node)) + { + if (treeData.isOpen(node)) { + treeData.closeNode(node); + } else { + treeData.openNode(node); + } + } + // reset the selection listModel.selectedItem = node; - IEventDispatcher(_strand).dispatchEvent(new Event("change")); + notify("change"); } } } diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/LayoutChangeNotifier.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/LayoutChangeNotifier.as index bc5d3ae..e262e2e 100644 --- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/LayoutChangeNotifier.as +++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/layouts/LayoutChangeNotifier.as @@ -23,6 +23,7 @@ package org.apache.royale.html.beads.layouts import org.apache.royale.core.IStrand; import org.apache.royale.events.Event; import org.apache.royale.events.IEventDispatcher; + import org.apache.royale.core.Bead; /** * The LayoutChangeNotifier notifies layouts when a property @@ -33,7 +34,7 @@ package org.apache.royale.html.beads.layouts * @playerversion AIR 2.6 * @productversion Royale 0.9 */ - public class LayoutChangeNotifier implements IBead + public class LayoutChangeNotifier extends Bead { /** * constructor. @@ -47,20 +48,6 @@ package org.apache.royale.html.beads.layouts { } - private var _strand:IStrand; - - /** - * @copy org.apache.royale.core.IBead#strand - * - * @langversion 3.0 - * @playerversion Flash 10.2 - * @playerversion AIR 2.6 - * @productversion Royale 0.9 - */ - public function set strand(value:IStrand):void - { - _strand = value; - } private var _value:* = undefined; @@ -97,7 +84,7 @@ package org.apache.royale.html.beads.layouts if (_strand is IBeadView) IBeadView(_strand).host.dispatchEvent(new Event("layoutNeeded")); else - IEventDispatcher(_strand).dispatchEvent(new Event("layoutNeeded")); + notify("layoutNeeded"); } } diff --git a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/DispatcherBead.as b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/DispatcherBead.as index 1313fa5..079384f 100644 --- a/frameworks/projects/Core/src/main/royale/org/apache/royale/core/DispatcherBead.as +++ b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/DispatcherBead.as @@ -31,9 +31,9 @@ package org.apache.royale.core */ public class DispatcherBead extends EventDispatcher implements IBead { - public function DispatcherBead() + public function DispatcherBead(target:IEventDispatcher = null) { - + super(target); } /**
