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);      
     }
 
     /**

Reply via email to