Author: maksimkaszynski
Date: 2007-11-21 13:16:53 -0500 (Wed, 21 Nov 2007)
New Revision: 4153
Modified:
branches/3.1.x/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
Log:
context menu - parameters support, more comprehensive demo
Modified:
branches/3.1.x/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js
===================================================================
---
branches/3.1.x/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-11-21
18:16:44 UTC (rev 4152)
+++
branches/3.1.x/ui/menu-components/src/main/resources/org/richfaces/renderkit/html/scripts/menu.js 2007-11-21
18:16:53 UTC (rev 4153)
@@ -105,21 +105,38 @@
var visible = this.isVisible(menuName);
this.setVisibility(menuName, visibleFlag);
this.ieSelectWorkAround(menuName, visibleFlag);
+ var menuLayer = this.layers[menu.id];
+
if (visible && !visibleFlag) {
- var menuLayer = this.layers[menu.id];
- if (menuLayer && menuLayer.eventOnClose) menuLayer.eventOnClose();
- if (menuLayer && menuLayer.eventOnCollapse) menuLayer.eventOnCollapse();
- if (menuLayer.refItem) menuLayer.refItem.highLightGroup(false);
+ if (menuLayer) {
+ if (menuLayer.eventOnClose) {
+ menuLayer.eventOnClose();
+ }
+ if (menuLayer.eventOnCollapse) {
+ menuLayer.eventOnCollapse();
+ }
+ if (menuLayer.refItem) {
+ menuLayer.refItem.highLightGroup(false);
+ }
+ }
} else if (!visible && visibleFlag) {
- var menuLayer = this.layers[menu.id];
- if (menuLayer && menuLayer.eventOnOpen) menuLayer.eventOnOpen();
- if (menuLayer && menuLayer.eventOnExpand) menuLayer.eventOnExpand();
-
- if (menuLayer.level>0) {
- do {
- menuLayer = this.layers[(this.father[menuLayer.id])];
- } while (menuLayer.level > 0)
- if (menuLayer && menuLayer.eventOnGroupActivate)
menuLayer.eventOnGroupActivate();
+ if (menuLayer) {
+ if (menuLayer.eventOnOpen) {
+ menuLayer.eventOnOpen();
+ }
+ if (menuLayer.eventOnExpand) {
+ menuLayer.eventOnExpand();
+ }
+
+ if (menuLayer.level>0) {
+ do {
+ menuLayer = this.layers[(this.father[menuLayer.id])];
+ } while (menuLayer.level > 0);
+
+ if (menuLayer && menuLayer.eventOnGroupActivate) {
+ menuLayer.eventOnGroupActivate();
+ }
+ }
}
}
},
@@ -1072,35 +1089,24 @@
return this;
},
- asContextMenu: function(parent, evt){
- var refLayer = $(parent);
- if(!refLayer) return this;
- var id = this.id;
+ asContextMenu: function(options){
this.highlightParent = false;
+ this.options = options || {};
+ if (this.options.ongroupactivate){
+ this.eventOnGroupActivate = this.options.ongroupactivate.bindAsEventListener(this);
+ }
+ if (this.options.onitemselect){
+ this.eventOnItemSelect = this.options.onitemselect.bindAsEventListener(this);
+ }
+ if (this.options.oncollapse){
+ this.eventOnCollapse = this.options.oncollapse.bindAsEventListener(this);
+ }
+ if (this.options.onexpand){
+ this.eventOnExpand = this.options.onexpand.bindAsEventListener(this);
+ }
+
//TODO: clarify
- return this;
-
- if(!evt){
- evt = 'onclick';
- }
- var offEvt = 'onmouseout';
- offEvt = this.eventJsToPrototype(offEvt);
-
- var dis = this;
- var onmouseout =
- function(e){
- RichFaces.Menu.Layers.setLMTO(this.hideDelay);
- RichFaces.Menu.Layers.clearPopUpTO();
- }.bindAsEventListener(this);
- evt = this.eventJsToPrototype(evt);
- var handler = function(e){new RichFaces.Menu.DelayedContextMenu(this.id,
e).show();}.bindAsEventListener(this);
- var binding = new RichFaces.Menu.Layer.Binding (parent, evt, handler);
- this.bindings.push(binding);
- binding.refresh();
- binding = new RichFaces.Menu.Layer.Binding (parent, offEvt, onmouseout);
- this.bindings.push(binding);
- binding.refresh();
- return this;
+ return this;
},
eventJsToPrototype: function(evtName){
var indexof = evtName.indexOf('on');
Show replies by date