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/07 20:44:56 UTC

[royale-asjs] branch develop updated: Add itemOpen event to ADG

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 9fe568117f Add itemOpen event to ADG
     new d2f3528743 Merge branch 'develop' of https://github.com/apache/royale-asjs into develop
9fe568117f is described below

commit 9fe568117f22b255e069be238343fc073b8b4742
Author: Yishay Weiss <yi...@hotmail.com>
AuthorDate: Thu Apr 7 23:44:36 2022 +0300

    Add itemOpen event to ADG
---
 .../main/royale/mx/controls/AdvancedDataGrid.as    |  2 +-
 ...vancedDataGridSingleSelectionMouseController.as | 24 ++++++++++++++++++----
 2 files changed, 21 insertions(+), 5 deletions(-)

diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
index 409aa74c95..b8b64759de 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/AdvancedDataGrid.as
@@ -126,7 +126,7 @@ use namespace mx_internal;
 *  @playerversion AIR 1.1
 *  @productversion Royale 0.9.4
 */
-//[Event(name="itemOpen", type="mx.events.AdvancedDataGridEvent")]
+[Event(name="itemOpen", type="mx.events.AdvancedDataGridEvent")]
 
 /**
 *  Dispatched when a tree branch open or close operation is initiated.
diff --git a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSingleSelectionMouseController.as b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSingleSelectionMouseController.as
index 91161e2038..0ff9800e4e 100644
--- a/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSingleSelectionMouseController.as
+++ b/frameworks/projects/MXRoyale/src/main/royale/mx/controls/advancedDataGridClasses/AdvancedDataGridSingleSelectionMouseController.as
@@ -30,6 +30,10 @@ package mx.controls.advancedDataGridClasses
 	import org.apache.royale.events.ItemClickedEvent;
 	import org.apache.royale.html.beads.controllers.ListSingleSelectionMouseController;
 	import mx.supportClasses.IFoldable;
+	import mx.events.AdvancedDataGridEvent;
+	import org.apache.royale.core.IHasDataField;
+	import mx.controls.listClasses.IListItemRenderer;
+	import org.apache.royale.utils.sendEvent;
 
 	/**
 	 *  The TreeSingleSelectionMouseController class is a controller for 
@@ -73,9 +77,13 @@ package mx.controls.advancedDataGridClasses
 		 */
 		override protected function selectedHandler(event:ItemClickedEvent):void
 		{
+			var adg:AdvancedDataGrid =  (_strand as AdvancedDataGridColumnList).grid as AdvancedDataGrid;
+			var lists:Array = (adg.view as AdvancedDataGridView).columnLists;
+			for (var i:int = 0; i < lists.length; i++)
+				if (lists[i] == _strand) break;
+
 			var node:Object = event.data;
 			
-			var adg:AdvancedDataGrid =  (_strand as AdvancedDataGridColumnList).grid as AdvancedDataGrid;
 			var hasChildren:Boolean = adg.hasChildren(node);
 			var foldableTarget:IFoldable = event.target as IFoldable;
 			if (hasChildren && (foldableTarget is IFoldable))
@@ -84,6 +92,17 @@ package mx.controls.advancedDataGridClasses
 					adg.closeNode(node);
 				} else if (foldableTarget.canUnfold) {
 					adg.openNode(node);
+					var adgEvent:AdvancedDataGridEvent = new AdvancedDataGridEvent(
+						AdvancedDataGridEvent.ITEM_OPEN,
+						false,
+						false,
+						i, 
+						(adg.columns[i] as IHasDataField).dataField,
+						event.index,
+						null,
+						event.target as IListItemRenderer
+						);
+					sendEvent(adg, adgEvent);
 				}
 			}
 
@@ -94,9 +113,6 @@ package mx.controls.advancedDataGridClasses
 			
 			var newEvent:ListEvent = new ListEvent(ListEvent.ITEM_CLICK);
 			newEvent.rowIndex = event.index;
-					var lists:Array = (adg.view as AdvancedDataGridView).columnLists;
-					for (var i:int = 0; i < lists.length; i++)
-						if (lists[i] == _strand) break;
 					newEvent.columnIndex = i;
 					newEvent.itemRenderer = event.currentTarget;
 			IEventDispatcher(_strand).dispatchEvent(newEvent);