You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by ah...@apache.org on 2018/09/28 03:42:44 UTC

[royale-asjs] 04/21: switch to using an interface

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 <ah...@apache.org>
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;
 		
         /**