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].