You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@royale.apache.org by yi...@apache.org on 2022/04/26 11:52:53 UTC

[royale-asjs] branch develop updated: Emulation - make menubar change event a MenuEvent

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

yishayw 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 bf6e14e460 Emulation - make menubar change event a MenuEvent
bf6e14e460 is described below

commit bf6e14e460d3b2069c01e85a8ca982bbc714d605
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Tue Apr 26 14:52:03 2022 +0300

    Emulation - make menubar change event a MenuEvent
---
 .../controllers/MenuSelectionMouseController.as    | 10 +++++++-
 .../src/main/royale/mx/controls/MenuBar.as         |  2 +-
 .../CascadingMenuSelectionMouseController.as       | 30 +++++++++++++++-------
 3 files changed, 31 insertions(+), 11 deletions(-)

diff --git a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
index e85b4bd6a8..2d4cdac5cb 100644
--- a/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
+++ b/frameworks/projects/Basic/src/main/royale/org/apache/royale/html/beads/controllers/MenuSelectionMouseController.as
@@ -110,9 +110,17 @@ package org.apache.royale.html.beads.controllers
 			var node:Object = event.data;
 			
 			list.model.selectedItem = node;
-			sendEvent(menuDispatcher,"change");
+			sendChangeEvent(menuDispatcher, event)
 			hideOpenMenus();
 		}
+
+		/**
+		 * private
+		 */
+		protected function sendChangeEvent(menuDispatcher:IEventDispatcher, itemClickedEvent:ItemClickedEvent):void
+		{
+			sendEvent(menuDispatcher,"change");
+		}
 		
 		/**
 		 * Finds and returns the object from which events should be dispatched. This
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
index 72382a25f2..ac32d24ba6 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/MenuBar.as
@@ -87,7 +87,7 @@ use namespace mx_internal;
  *  @playerversion AIR 1.1
  *  @productversion Royale 0.9.3
  */
-//[Event(name="change", type="mx.events.MenuEvent")]
+[Event(name="change", type="mx.events.MenuEvent")]
 
 /**
  *  Dispatched when the user selects an item in a pop-up submenu.
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
index 8f627dbad7..2b16e42ce4 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/beads/controllers/CascadingMenuSelectionMouseController.as
@@ -79,15 +79,9 @@ package mx.controls.beads.controllers
 			}
 		}
 
-		override protected function selectedHandler(event:ItemClickedEvent):void
+		private function populateMenuEvent(menuEvent:MenuEvent, itemClickedEvent:ItemClickedEvent):void
 		{
-			super.selectedHandler(event);
-			if (event.target is IFoldable && (event.target as IFoldable).canUnfold)
-			{
-				return; // this is not selection, but rather a folding action
-			}
-			var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
-			var data:Object = event.target.data;
+			var data:Object = itemClickedEvent.target.data;
 			menuEvent.item = data;
 			var menu:IMenu = _strand as IMenu;
 			var label:String;
@@ -100,7 +94,18 @@ package mx.controls.beads.controllers
 				label = data[menu.labelField];
 			}
 			menuEvent.label = label;
-			menuEvent.index = event.index;
+			menuEvent.index = itemClickedEvent.index;
+		}
+
+		override protected function selectedHandler(event:ItemClickedEvent):void
+		{
+			super.selectedHandler(event);
+			if (event.target is IFoldable && (event.target as IFoldable).canUnfold)
+			{
+				return; // this is not selection, but rather a folding action
+			}
+			var menuEvent:MenuEvent = new MenuEvent(MenuEvent.ITEM_CLICK);
+			populateMenuEvent(menuEvent, event);
 			findMenuDispatcher().dispatchEvent(menuEvent);
 		}
 
@@ -145,6 +150,13 @@ package mx.controls.beads.controllers
 			}
 		}
 
+		override protected function sendChangeEvent(menuDispatcer:IEventDispatcher, itemClickedEvent:ItemClickedEvent):void
+		{
+			var menuEvent:MenuEvent = new MenuEvent(Event.CHANGE);
+			populateMenuEvent(menuEvent, itemClickedEvent);
+			menuDispatcer.dispatchEvent(menuEvent);
+		}
+
 		override protected function getParentMenuBar():IEventDispatcher
 		{
 			var parentMenuBar:IEventDispatcher = (_strand as IMenu).parentMenuBar;