This is an automated email from the ASF dual-hosted git repository.

pent pushed a commit to branch develop
in repository https://gitbox.apache.org/repos/asf/royale-asjs.git


The following commit(s) were added to refs/heads/develop by this push:
     new 54b8a72  Changed the default menu class for MenuBar back to the 
simpler Menu class. Removed the “menuClass” attribute from MenuBar in favor of 
a menu factory bead. Added CascadingMenuFactory and MenuFactory beads with 
MenuFactory being the default. Updating the MenuExample to show how to use 
CascadingMenu with MenuBar as a bead.
54b8a72 is described below

commit 54b8a72dce364704af9c28b1d56b6f0ef3870b34
Author: Peter Ent <[email protected]>
AuthorDate: Tue Feb 27 16:01:02 2018 -0500

    Changed the default menu class for MenuBar back to the simpler Menu class. 
Removed the “menuClass” attribute from MenuBar in favor of a menu factory bead. 
Added CascadingMenuFactory and MenuFactory beads with MenuFactory being the 
default. Updating the MenuExample to show how to use CascadingMenu with MenuBar 
as a bead.
---
 .../MenuExample/src/main/royale/MyInitialView.mxml |  8 ++-
 .../projects/Basic/src/main/resources/defaults.css |  2 +-
 .../projects/Basic/src/main/royale/BasicClasses.as |  2 +
 .../main/royale/org/apache/royale/html/MenuBar.as  | 39 ------------
 .../{MenuBar.as => beads/CascadingMenuFactory.as}  | 70 +++++++---------------
 .../html/{MenuBar.as => beads/MenuFactory.as}      | 70 +++++++---------------
 .../beads/controllers/MenuBarMouseController.as    |  6 +-
 7 files changed, 56 insertions(+), 141 deletions(-)

diff --git a/examples/royale/MenuExample/src/main/royale/MyInitialView.mxml 
b/examples/royale/MenuExample/src/main/royale/MyInitialView.mxml
index d3e7649..df3625f 100644
--- a/examples/royale/MenuExample/src/main/royale/MyInitialView.mxml
+++ b/examples/royale/MenuExample/src/main/royale/MyInitialView.mxml
@@ -146,10 +146,14 @@ limitations under the License.
                </js:beads>
                
                <!-- The MenuBar. This displays CascadingMenu menus, but you 
can change that to use the simpler
-                    Menu for a lighter app by adding 
menuClass="org.apache.royale.html.CascadingMenu". -->
+                    Menu for a lighter app by removing the 
CascadingMenuFactory bead. -->
                
                <js:MenuBar dataProvider="{menubarData}" x="0" y="0" 
width="100%"
-                                       labelField="title" 
change="handleMenubarSelection(event)" />
+                                       labelField="title" 
change="handleMenubarSelection(event)">
+                       <js:beads>
+                               <js:CascadingMenuFactory />
+                       </js:beads>
+               </js:MenuBar>
                
                <js:Label id="output" x="50" y="80" className="Output" />
                
diff --git a/frameworks/projects/Basic/src/main/resources/defaults.css 
b/frameworks/projects/Basic/src/main/resources/defaults.css
index d172d05..e254ef3 100644
--- a/frameworks/projects/Basic/src/main/resources/defaults.css
+++ b/frameworks/projects/Basic/src/main/resources/defaults.css
@@ -457,7 +457,7 @@ MenuBar {
        IBeadLayout: 
ClassReference("org.apache.royale.html.beads.layouts.HorizontalLayout");
        IItemRenderer: 
ClassReference("org.apache.royale.html.supportClasses.MenuBarItemRenderer");    
                 
        IBeadController: 
ClassReference("org.apache.royale.html.beads.controllers.MenuBarMouseController");
-       IMenuClassFactory: 
ClassReference("org.apache.royale.html.CascadingMenu");
+       IMenuFactory: 
ClassReference("org.apache.royale.html.beads.MenuFactory");
        height: 30px;
        line-height: 30px;
        vertical-align: middle;
diff --git a/frameworks/projects/Basic/src/main/royale/BasicClasses.as 
b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
index 4087fb0..6d73af9 100644
--- a/frameworks/projects/Basic/src/main/royale/BasicClasses.as
+++ b/frameworks/projects/Basic/src/main/royale/BasicClasses.as
@@ -58,9 +58,11 @@ internal class BasicClasses
        import org.apache.royale.html.beads.controllers.MenuBarMouseController; 
MenuBarMouseController;
        import org.apache.royale.html.Menu; Menu;
        import org.apache.royale.html.beads.MenuView; MenuView;
+       import org.apache.royale.html.beads.MenuFactory; MenuFactory;
        import 
org.apache.royale.html.beads.controllers.MenuSelectionMouseController; 
MenuSelectionMouseController;
        import org.apache.royale.html.supportClasses.MenuItemRenderer; 
MenuItemRenderer;
        import org.apache.royale.html.CascadingMenu; CascadingMenu;
+       import org.apache.royale.html.beads.CascadingMenuFactory; 
CascadingMenuFactory;
        import org.apache.royale.html.beads.models.CascadingMenuModel; 
CascadingMenuModel;
        import 
org.apache.royale.html.beads.controllers.CascadingMenuSelectionMouseController; 
CascadingMenuSelectionMouseController;
        import org.apache.royale.html.supportClasses.CascadingMenuItemRenderer; 
CascadingMenuItemRenderer;
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
index 2b3ff4c..784054f 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
@@ -18,10 +18,6 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html
 {
-       import org.apache.royale.core.ClassFactory;
-       import org.apache.royale.core.IFactory;
-       import org.apache.royale.core.IMenu;
-       import org.apache.royale.core.ValuesManager;
        import org.apache.royale.html.beads.models.MenuBarModel;
 
        /**
@@ -65,40 +61,5 @@ package org.apache.royale.html
                {
                        (model as MenuBarModel).submenuField = value;
                }
-               
-               private var _menuClass:IFactory;
-               
-               /**
-                * The class to use that can manufacture an IMenu. This can be 
set either in a style
-                * using "IMenuClassFactory" or directory from ActionScript or 
MXML.
-                *
-                *  @langversion 3.0
-                *  @playerversion Flash 10.2
-                *  @playerversion AIR 2.6
-                *  @productversion Royale 0.9
-                */
-               public function get menuClass():IFactory
-               {
-                       return _menuClass;
-               }
-               public function set menuClass(value:IFactory):void
-               {
-                       _menuClass = value;
-               }
-               
-               /**
-                * @private
-                */
-               override public function addedToParent():void
-               {
-                       super.addedToParent();
-                       
-                       if (menuClass == null) {
-                               var mclass:Class = 
ValuesManager.valuesImpl.getValue(this, "iMenuClassFactory") as Class;
-                               if (mclass) {
-                                       menuClass = new ClassFactory(mclass);
-                               }
-                       }
-               }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CascadingMenuFactory.as
similarity index 53%
copy from 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
copy to 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CascadingMenuFactory.as
index 2b3ff4c..147813a 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/CascadingMenuFactory.as
@@ -16,89 +16,61 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html
+package org.apache.royale.html.beads
 {
-       import org.apache.royale.core.ClassFactory;
+       import org.apache.royale.core.IBead;
        import org.apache.royale.core.IFactory;
-       import org.apache.royale.core.IMenu;
-       import org.apache.royale.core.ValuesManager;
-       import org.apache.royale.html.beads.models.MenuBarModel;
-
+       import org.apache.royale.core.IStrand;
+       import org.apache.royale.html.CascadingMenu;
+       
        /**
-        * The MenuBar class is a list that, when an item is tapped, displays a 
menu of selections.
-        *
+        * This bead class generates instances of the CascadingMenu for use 
with MenuBar.
+        *  
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9
         */
-       public class MenuBar extends List
+       public class CascadingMenuFactory implements IBead, IFactory
        {
                /**
-                * Constructor
-                *
+                * Constructor.
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function MenuBar()
+               public function CascadingMenuFactory()
                {
-                       super();
-                       typeNames = "MenuBar";
                }
                
+               private var _strand:IStrand;
+               
                /**
-                * The field in the data that holds the sub-menus. The default 
is "menu".
-                *
+                * @copy org.apache.royale.core.IBead#strand
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function get submenuField():String
-               {
-                       return (model as MenuBarModel).submenuField;
-               }
-               
-               public function set submenuField(value:String):void
+               public function set strand(value:IStrand):void
                {
-                       (model as MenuBarModel).submenuField = value;
+                       _strand = value;
                }
                
-               private var _menuClass:IFactory;
-               
                /**
-                * The class to use that can manufacture an IMenu. This can be 
set either in a style
-                * using "IMenuClassFactory" or directory from ActionScript or 
MXML.
-                *
+                * Returns a new instance of CascadingMenu.
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function get menuClass():IFactory
-               {
-                       return _menuClass;
-               }
-               public function set menuClass(value:IFactory):void
-               {
-                       _menuClass = value;
-               }
-               
-               /**
-                * @private
-                */
-               override public function addedToParent():void
+               public function newInstance():*
                {
-                       super.addedToParent();
-                       
-                       if (menuClass == null) {
-                               var mclass:Class = 
ValuesManager.valuesImpl.getValue(this, "iMenuClassFactory") as Class;
-                               if (mclass) {
-                                       menuClass = new ClassFactory(mclass);
-                               }
-                       }
+                       return new CascadingMenu();
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MenuFactory.as
similarity index 53%
copy from 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
copy to 
frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MenuFactory.as
index 2b3ff4c..c70c134 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/MenuBar.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/MenuFactory.as
@@ -16,89 +16,61 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package org.apache.royale.html
+package org.apache.royale.html.beads
 {
-       import org.apache.royale.core.ClassFactory;
+       import org.apache.royale.core.IBead;
        import org.apache.royale.core.IFactory;
-       import org.apache.royale.core.IMenu;
-       import org.apache.royale.core.ValuesManager;
-       import org.apache.royale.html.beads.models.MenuBarModel;
-
+       import org.apache.royale.core.IStrand;
+       import org.apache.royale.html.Menu;
+       
        /**
-        * The MenuBar class is a list that, when an item is tapped, displays a 
menu of selections.
-        *
+        * This bead class generates instances of the Menu class for use with 
MenuBar.
+        *  
         *  @langversion 3.0
         *  @playerversion Flash 10.2
         *  @playerversion AIR 2.6
         *  @productversion Royale 0.9
         */
-       public class MenuBar extends List
+       public class MenuFactory implements IBead, IFactory
        {
                /**
-                * Constructor
-                *
+                * Constructor.
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function MenuBar()
+               public function MenuFactory()
                {
-                       super();
-                       typeNames = "MenuBar";
                }
                
+               private var _strand:IStrand;
+               
                /**
-                * The field in the data that holds the sub-menus. The default 
is "menu".
-                *
+                * @copy org.apache.royale.core.IBead#strand
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function get submenuField():String
-               {
-                       return (model as MenuBarModel).submenuField;
-               }
-               
-               public function set submenuField(value:String):void
+               public function set strand(value:IStrand):void
                {
-                       (model as MenuBarModel).submenuField = value;
+                       _strand = value;
                }
                
-               private var _menuClass:IFactory;
-               
                /**
-                * The class to use that can manufacture an IMenu. This can be 
set either in a style
-                * using "IMenuClassFactory" or directory from ActionScript or 
MXML.
-                *
+                * Returns a new instance of the Menu class.
+                *  
                 *  @langversion 3.0
                 *  @playerversion Flash 10.2
                 *  @playerversion AIR 2.6
                 *  @productversion Royale 0.9
                 */
-               public function get menuClass():IFactory
-               {
-                       return _menuClass;
-               }
-               public function set menuClass(value:IFactory):void
-               {
-                       _menuClass = value;
-               }
-               
-               /**
-                * @private
-                */
-               override public function addedToParent():void
+               public function newInstance():*
                {
-                       super.addedToParent();
-                       
-                       if (menuClass == null) {
-                               var mclass:Class = 
ValuesManager.valuesImpl.getValue(this, "iMenuClassFactory") as Class;
-                               if (mclass) {
-                                       menuClass = new ClassFactory(mclass);
-                               }
-                       }
+                       return new Menu();
                }
        }
 }
\ No newline at end of file
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
index 0507b7e..50bf3c3 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuBarMouseController.as
@@ -19,6 +19,7 @@
 package org.apache.royale.html.beads.controllers
 {
        import org.apache.royale.core.IBeadModel;
+       import org.apache.royale.core.IFactory;
        import org.apache.royale.core.IMenu;
        import org.apache.royale.core.IStrand;
        import org.apache.royale.core.IUIBase;
@@ -30,6 +31,7 @@ package org.apache.royale.html.beads.controllers
        import org.apache.royale.html.MenuBar;
        import org.apache.royale.html.beads.models.MenuBarModel;
        import org.apache.royale.utils.UIUtils;
+       import org.apache.royale.utils.loadBeadFromValuesManager;
 
        /**
         * The MenuBarMouseController handles mouse events for the MenuBar. 
While the menu bar is
@@ -88,7 +90,9 @@ package org.apache.royale.html.beads.controllers
                        
                        var component:IUIBase = event.target as IUIBase;
                        var mbar:MenuBar = _strand as MenuBar;
-                       var menu:IMenu = mbar.menuClass.newInstance() as IMenu;
+                       
+                       var menuFactory:IFactory = 
loadBeadFromValuesManager(IFactory, "iMenuFactory", mbar) as IFactory;
+                       var menu:IMenu = menuFactory.newInstance() as IMenu;
                        
                        var model:MenuBarModel = 
_strand.getBeadByType(IBeadModel) as MenuBarModel;
                        

-- 
To stop receiving notification emails like this one, please contact
[email protected].

Reply via email to