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