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

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

commit bb56d8a544ec773e0f9445844ec34a1600d09963
Author: Alex Harui <[email protected]>
AuthorDate: Thu Sep 27 00:35:31 2018 -0700

    switch to using an interface
---
 .../beads/controllers/MenuBarMouseController.as    |  4 +-
 .../royale/html/beads/models/MenuBarModel.as       |  3 +-
 .../projects/Core/src/main/royale/CoreClasses.as   |  2 +
 .../org/apache/royale/core/IMenuBarModel.as}       | 52 +++++-----------------
 .../mx/controls/beads/models/MenuBarModel.as       | 27 ++++++++++-
 5 files changed, 42 insertions(+), 46 deletions(-)

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 70e06b1..e446f19 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
@@ -31,7 +31,7 @@ package org.apache.royale.html.beads.controllers
        import org.apache.royale.events.ItemClickedEvent;
        import org.apache.royale.html.Menu;
        import org.apache.royale.html.MenuBar;
-       import org.apache.royale.html.beads.models.MenuBarModel;
+       import org.apache.royale.core.IMenuBarModel;
        import org.apache.royale.utils.UIUtils;
        import org.apache.royale.utils.loadBeadFromValuesManager;
 
@@ -114,7 +114,7 @@ package org.apache.royale.html.beads.controllers
                        var menuFactory:IFactory = 
loadBeadFromValuesManager(IFactory, "iMenuFactory", _strand) as IFactory;
                        var menu:IMenu = menuFactory.newInstance() as IMenu;
                        
-                       var model:MenuBarModel = 
_strand.getBeadByType(IBeadModel) as MenuBarModel;
+                       var model:IMenuBarModel = 
_strand.getBeadByType(IBeadModel) as IMenuBarModel;
                        
                        menu.dataProvider = event.data[model.submenuField];
                        menu.labelField = model.labelField;
diff --git 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/MenuBarModel.as
 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/MenuBarModel.as
index 7a51450..80ca593 100644
--- 
a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/MenuBarModel.as
+++ 
b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/models/MenuBarModel.as
@@ -14,13 +14,14 @@
 
////////////////////////////////////////////////////////////////////////////////
 package org.apache.royale.html.beads.models
 {
+    import org.apache.royale.core.IMenuBarModel;
        import org.apache.royale.html.beads.models.ArraySelectionModel;
        import org.apache.royale.events.Event;
 
        /**
         * The model used by the MenuBar.
         */
-       public class MenuBarModel extends ArraySelectionModel
+       public class MenuBarModel extends ArraySelectionModel implements 
IMenuBarModel
        {
                public function MenuBarModel()
                {
diff --git a/frameworks/projects/Core/src/main/royale/CoreClasses.as 
b/frameworks/projects/Core/src/main/royale/CoreClasses.as
index 0928389..514c6a6 100644
--- a/frameworks/projects/Core/src/main/royale/CoreClasses.as
+++ b/frameworks/projects/Core/src/main/royale/CoreClasses.as
@@ -233,6 +233,8 @@ import org.apache.royale.events.ItemRemovedEvent; 
ItemRemovedEvent;
     import org.apache.royale.states.SetProperty; SetProperty;
     import org.apache.royale.states.State; State;
 
+    import org.apache.royale.core.IMenuBarModel; IMenuBarModel;
+    
     import org.apache.royale.core.IDataGridModel; IDataGridModel;
     import org.apache.royale.core.IDataGridPresentationModel; 
IDataGridPresentationModel;
     import org.apache.royale.core.IDateChooserModel; IDateChooserModel;
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IMenuBarModel.as
similarity index 52%
copy from 
frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
copy to 
frameworks/projects/Core/src/main/royale/org/apache/royale/core/IMenuBarModel.as
index 4df5cad..980bd51 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
+++ 
b/frameworks/projects/Core/src/main/royale/org/apache/royale/core/IMenuBarModel.as
@@ -16,63 +16,33 @@
 //  limitations under the License.
 //
 
////////////////////////////////////////////////////////////////////////////////
-package mx.controls.beads.models
+package org.apache.royale.core
 {
-    import mx.controls.MenuBar;
-    
-    import org.apache.royale.core.IMenu;
-    import org.apache.royale.core.IUIBase;
-    import org.apache.royale.html.beads.models.MenuBarModel;
+       import org.apache.royale.events.IEventDispatcher;
        
     /**
-     *  MenuBar Mouse Controller
+     *  The IComboBoxModel interface describes the minimum set of properties
+     *  available to a ComboBox control.  More sophisticated ComboBox controls
+     *  could have models that extend IComboBoxModel.
      *  
      *  @langversion 3.0
      *  @playerversion Flash 10.2
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class MenuBarModel extends 
org.apache.royale.html.beads.models.MenuBarModel
+       public interface IMenuBarModel extends IEventDispatcher, 
ISelectionModel, IBeadModel
        {
+        // TODO: should extend ITextModel
         /**
-         *  Constructor.
-         *  
+         *  The text displayed in the ComboBox.
+         *
          *  @langversion 3.0
          *  @playerversion Flash 10.2
          *  @playerversion AIR 2.6
          *  @productversion Royale 0.0
          */
-               public function MenuBarModel()
-               {
-            labelField = "label";
-            submenuField = "children";
-               }
+               function get submenuField():String;
+               function set submenuField(value:String):void;
                
-        private var _showRoot:Boolean;
-               
-        /**
-         *  showRoot
-         *  
-         *  @langversion 3.0
-         *  @playerversion Flash 10.2
-         *  @playerversion AIR 2.6
-         *  @productversion Royale 0.0
-         */
-               public function get showRoot():Boolean
-               {
-            return _showRoot;
-               }
-        public function set showRoot(value:Boolean):void
-        {
-            _showRoot = value;
-        }
-        
-        override public function get dataProvider():Object
-        {
-            if (!showRoot)
-                return super.dataProvider.children; // TODO: needs to use 
descriptor
-            
-            return super.dataProvider;
-        }
        }
 }
diff --git 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
index 4df5cad..8d0b6f8 100644
--- 
a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
+++ 
b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/models/MenuBarModel.as
@@ -21,8 +21,10 @@ package mx.controls.beads.models
     import mx.controls.MenuBar;
     
     import org.apache.royale.core.IMenu;
+    import org.apache.royale.core.IMenuBarModel;
     import org.apache.royale.core.IUIBase;
-    import org.apache.royale.html.beads.models.MenuBarModel;
+    import org.apache.royale.events.Event;
+    import org.apache.royale.html.beads.models.ArraySelectionModel;
        
     /**
      *  MenuBar Mouse Controller
@@ -32,7 +34,7 @@ package mx.controls.beads.models
      *  @playerversion AIR 2.6
      *  @productversion Royale 0.0
      */
-       public class MenuBarModel extends 
org.apache.royale.html.beads.models.MenuBarModel
+       public class MenuBarModel extends ArraySelectionModel implements 
IMenuBarModel
        {
         /**
          *  Constructor.
@@ -48,6 +50,27 @@ package mx.controls.beads.models
             submenuField = "children";
                }
                
+        private var _submenuField:String = "menu";
+        
+        /**
+         * The field in the data object that identifies sub-menus. The default 
is "menu". This
+         * value is transferred to the CascadingMenu opened for each menu item.
+         *
+         *  @langversion 3.0
+         *  @playerversion Flash 10.2
+         *  @playerversion AIR 2.6
+         *  @productversion Royale 0.9
+         */
+        public function get submenuField():String
+        {
+            return _submenuField;
+        }
+        public function set submenuField(value:String):void
+        {
+            _submenuField = value;
+            dispatchEvent(new Event("submenuFieldChanged"));
+        }
+
         private var _showRoot:Boolean;
                
         /**

Reply via email to