You are viewing a plain text version of this content. The canonical link for it is here.
Posted to xap-commits@incubator.apache.org by jm...@apache.org on 2007/05/31 20:58:05 UTC

svn commit: r543256 - in /incubator/xap/trunk: codebase/src/xap/bridges/dojo/MenuItemBridge.js samples/WebContent/examples/widgets/popupMenu.xal

Author: jmargaris
Date: Thu May 31 13:58:04 2007
New Revision: 543256

URL: http://svn.apache.org/viewvc?view=rev&rev=543256
Log:
From David Gennaco: https://issues.apache.org/jira/browse/XAP-463 

Modified:
    incubator/xap/trunk/codebase/src/xap/bridges/dojo/MenuItemBridge.js
    incubator/xap/trunk/samples/WebContent/examples/widgets/popupMenu.xal

Modified: incubator/xap/trunk/codebase/src/xap/bridges/dojo/MenuItemBridge.js
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/codebase/src/xap/bridges/dojo/MenuItemBridge.js?view=diff&rev=543256&r1=543255&r2=543256
==============================================================================
--- incubator/xap/trunk/codebase/src/xap/bridges/dojo/MenuItemBridge.js (original)
+++ incubator/xap/trunk/codebase/src/xap/bridges/dojo/MenuItemBridge.js Thu May 31 13:58:04 2007
@@ -109,7 +109,31 @@
 
 
 xap.bridges.dojo.MenuItemBridge.prototype.onClick = function( ){
-	var clientEvent = new xap.session.ClientEvent(this.getElement(),this.getSession());
+    var clientEvent = new xap.session.ClientEvent(this.getElement(),this.getSession());
+	var parent = this.getPeer().parent;
+	
+	//get the cached event that made the popup appear, this will deal with nested popups
+	if (parent.getTopOpenEvent) {
+	    var contextEvent = parent.getTopOpenEvent();
+	    var topLevelInvokingNode = contextEvent.target;
+	    
+        //search for the first parent node with an "id" set
+        var invokerId = null;
+        while (!invokerId && topLevelInvokingNode) {
+            invokerId = topLevelInvokingNode.id;
+            topLevelInvokingNode = topLevelInvokingNode.parentNode;
+        }
+        
+        // add in the invoker related information
+	    if (invokerId) {
+	        var invokingElement = this.getSession().getDocumentContainer().getUiDocument().getElementById(invokerId);
+	        clientEvent.invoker = invokerId;
+            if (invokingElement) {
+                clientEvent.invokerName = invokingElement.getAttribute('name');
+            }
+	    }
+	}
+	
 	this.fireEvent("onCommand",null,null,clientEvent);
 }	
 

Modified: incubator/xap/trunk/samples/WebContent/examples/widgets/popupMenu.xal
URL: http://svn.apache.org/viewvc/incubator/xap/trunk/samples/WebContent/examples/widgets/popupMenu.xal?view=diff&rev=543256&r1=543255&r2=543256
==============================================================================
--- incubator/xap/trunk/samples/WebContent/examples/widgets/popupMenu.xal (original)
+++ incubator/xap/trunk/samples/WebContent/examples/widgets/popupMenu.xal Thu May 31 13:58:04 2007
@@ -33,17 +33,17 @@
 					id="testComponentFreePane">
 					<xal:defs>
 						<xal:popupMenu id="testComponent">
-							<xal:menuItem text="Cut" id="cut"
+							<xal:menuItem text="Cut" id="OuterCut"
 								onCommand="mco:attributeSetter.reportEvent(event)"
 								onCreate="mco:attributeSetter.registerElement(this)"/>
-							<xal:menuItem text="Copy"/>
+							<xal:menuItem text="Copy" id="OuterCopy"/>
 							<xal:horizontalSeparator/>
-							<xal:menuItem text="Paste">
+							<xal:menuItem text="Paste" id="OuterPaste">
 								<xal:popupMenu>
-									<xal:menuItem text="Cut"/>
-									<xal:menuItem text="Copy"/>
+									<xal:menuItem text="Cut" id="innerCut" onCommand="mco:attributeSetter.reportEvent(event)"/>
+									<xal:menuItem text="Copy" id="innerCopy" onCommand="mco:attributeSetter.reportEvent(event)"/>
 									<xal:horizontalSeparator/>
-									<xal:menuItem text="Paste"/>
+									<xal:menuItem text="Paste" id="innerPaste" onCommand="mco:attributeSetter.reportEvent(event)"/>
 								</xal:popupMenu>
 							</xal:menuItem>
 						</xal:popupMenu>
@@ -54,9 +54,9 @@
 							onCreate="mco:attributeSetter.registerElement(this)"> </xal:popupMenu>
 					</xal:defs>
 
-					<xal:button text="I have a popup" popup="#testComponent"/>
+					<xal:button id="HavePopup" name="Harvey" text="I have a popup" popup="#testComponent"/>
 
-					<xal:label x="0px" y="40px" text="I have the same popup" popup="#testComponent"/>
+					<xal:label id="HaveSamePopup" x="0px" y="40px" text="I have the same popup" popup="#testComponent"/>
 
 					<xal:checkBox x="0px" y="80px" text="I have a different, empty one"
 						popup="#testComponent2"/>