Author: abelevich
Date: 2007-11-22 13:03:40 -0500 (Thu, 22 Nov 2007)
New Revision: 4206
Modified:
trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
Log:
fix onmouseover, onmouseout, onmousemove, onclick events processing
Modified:
trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js
===================================================================
---
trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-11-22
17:58:07 UTC (rev 4205)
+++
trunk/ui/panelbar/src/main/resources/org/richfaces/renderkit/html/scripts/panelbar.js 2007-11-22
18:03:40 UTC (rev 4206)
@@ -21,6 +21,8 @@
this.ch=this.panel.clientHeight;
this.options = options;
this.onitemchange = options.onitemchange;
+ this.onclick = options.onclick;
+
this._attachBehaviors();
this.input=$(panelId+"_panelBarInput");
@@ -34,15 +36,15 @@
this.items = options.items;
if (this.mouseover && this.mouseover != ""){
- Event.observe(this.panel,'mouseover',new Function("event",
"return " + this.mouseout + ";").bindAsEventListener(this));
+ Event.observe(this.panel,'mouseover',new
Function("event",this.mouseout));
}
if (this.mouseout && this.mouseout != ""){
- Event.observe(this.panel,'mouseout',new Function("event",
"return " + this.mouseout + ";").bindAsEventListener(this));
+ Event.observe(this.panel,'mouseout',new
Function("event",this.mouseout));
}
if (this.mousemove && this.mousemove != ""){
- Event.observe(this.panel,'mousemove',new Function("event",
"return " + this.mouseout + ";").bindAsEventListener(this));
+ Event.observe(this.panel,'mousemove',new Function("event",
this.mouseout));
}
this.showSlide(this.slides[this.defaultIndex]);
@@ -135,7 +137,7 @@
return 0;
},
- invokeEvent: function(eventName, event, value, element, eventFunction) {
+ invokeEvent: function(eventName, event, leaveElement,enterElement, element,
eventFunction, data) {
var result;
if (eventFunction) {
@@ -156,8 +158,9 @@
}
eventObj.rich = {component:this};
- eventObj.rich.value = value;
-
+ eventObj.rich.enterElement = leaveElement;
+ eventObj.rich.leaveElement = enterElement;
+
try
{
result = eventFunction.call(element, eventObj);
@@ -209,7 +212,7 @@
}
if (this.onclick && this.onclick != ""){
- this.onclickFunction = new Function("return " + this.onclick +
";").bindAsEventListener(this);
+ this.onclickFunction = new Function("event",this.onclick);
}
},
@@ -232,13 +235,13 @@
},
headerOnClick: function(event) {
- if (this.onclickFunction){
- var result = this.onclickFunction();
- if (result != undefined && !result) {
- return;
- }
- }
-
+ if (this.onclickFunction) {
+ var result = this.onclickFunction(event);
+ if (result == false) {
+ return false;
+ }
+ }
+
if (this.content.style.display=="block") return;
//this.header.style.display="none";
//this.header_act.style.display="";
@@ -255,15 +258,13 @@
}
}
- var ret;
- ret =
this.slidePanel.invokeEvent("enter",event,enterItem,enterElement,enterItem.onenter);
- ret =
this.slidePanel.invokeEvent("leave",event,leaveItem,leaveElement,leaveItem.onleave);
- ret =
this.slidePanel.invokeEvent("change",event,this.slidePanel,this.slidePanel.panel,this.slidePanel.onitemchange);
-
- if (ret) {
- this.slidePanel.showSlide(this);
- }
-
+
+ if(!this.slidePanel.invokeEvent("onenter",event,leaveElement,
enterElement,enterElement,enterItem.onenter)) return false;
+ if(!this.slidePanel.invokeEvent("onleave",event,leaveElement,
enterElement,leaveElement,leaveItem.onleave)) return false;
+ if(!this.slidePanel.invokeEvent("onchangeitem",event,leaveElement,
enterElement,this.slidePanel.panel,this.slidePanel.onitemchange)) return false;
+
+ this.slidePanel.showSlide(this);
+
this.slidePanel.panel.style.maxHeight="";
this.slidePanel.panel.style.minHeight="";
},