Author: nbelaevski
Date: 2007-11-06 12:42:28 -0500 (Tue, 06 Nov 2007)
New Revision: 3802
Modified:
branches/3.1.x/samples/effect-sample/src/main/webapp/effect.xhtml
branches/3.1.x/ui/effect/src/main/java/org/richfaces/renderkit/EffectRendererBase.java
branches/3.1.x/ui/effect/src/main/templates/effect.jspx
Log:
http://jira.jboss.com/jira/browse/RF-1265
Modified: branches/3.1.x/samples/effect-sample/src/main/webapp/effect.xhtml
===================================================================
--- branches/3.1.x/samples/effect-sample/src/main/webapp/effect.xhtml 2007-11-06 17:12:40
UTC (rev 3801)
+++ branches/3.1.x/samples/effect-sample/src/main/webapp/effect.xhtml 2007-11-06 17:42:28
UTC (rev 3802)
@@ -18,6 +18,10 @@
<span onclick="hideIt()">Hide</span>
<span onclick="showIt()">Show</span>
+ <div id="my:text"
style="width:100px;height:100px;background-color:lightgreen"> </div>
+
+ <e:effect for="my:text" event="onmouseover" type="Fade"
params="duration:ma"/>
+
<div id="my"
style="width:100px;height:100px;background-color:lightblue"> </div>
<e:effect for="my" name="hideIt" type="Fade"/>
Modified:
branches/3.1.x/ui/effect/src/main/java/org/richfaces/renderkit/EffectRendererBase.java
===================================================================
---
branches/3.1.x/ui/effect/src/main/java/org/richfaces/renderkit/EffectRendererBase.java 2007-11-06
17:12:40 UTC (rev 3801)
+++
branches/3.1.x/ui/effect/src/main/java/org/richfaces/renderkit/EffectRendererBase.java 2007-11-06
17:42:28 UTC (rev 3802)
@@ -9,6 +9,7 @@
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
+import org.ajax4jsf.javascript.JSEncoder;
import org.ajax4jsf.renderkit.HeaderResourcesRendererBase;
import org.richfaces.component.UIEffect;
import org.richfaces.json.JSONTokener;
@@ -129,4 +130,21 @@
}
}
}
+
+ public String escapeJavaScript(Object s) {
+ if (s != null) {
+ JSEncoder encoder = new JSEncoder();
+ StringBuffer result = new StringBuffer();
+ String string = s.toString();
+ int length = string.length();
+
+ for (int i = 0; i < length; i++) {
+ result.append(encoder.encode(string.charAt(i)));
+ }
+
+ return result.toString();
+ } else {
+ return null;
+ }
+ }
}
Modified: branches/3.1.x/ui/effect/src/main/templates/effect.jspx
===================================================================
--- branches/3.1.x/ui/effect/src/main/templates/effect.jspx 2007-11-06 17:12:40 UTC (rev
3801)
+++ branches/3.1.x/ui/effect/src/main/templates/effect.jspx 2007-11-06 17:42:28 UTC (rev
3802)
@@ -86,8 +86,21 @@
var pm = Object.extend( Object.extend(#{typePart},#{forPart}), #{targetPart} );
/* pm.id can have a special meaning, let's check */
//pm.id = #{this:convertElementParameter(pmId)};
-if (typeof #{attachObj} == 'object') {pm.attachId= #{attachObj};if
(#{targetObj}=='') pm.targetId=#{attachObj}; };
-if (typeof #{targetObj} == 'object') pm.targetId= #{targetObj};
+var attachObj;
+try {
+ attachObj = eval('#{this:escapeJavaScript(attachObj)}');
+} catch (e) {
+}
+
+var targetObj;
+try {
+ targetObj = eval('#{this:escapeJavaScript(targetObj)}');
+} catch (e) {
+}
+
+if (typeof attachObj == 'object') {pm.attachId = attachObj;if (targetObj ==
'') pm.targetId = attachObj; };
+if (typeof targetObj == 'object') pm.targetId = targetObj;
+
pm = Object.extend(pm, #{params});
var ename = Richfaces.effectEventOnOut('#{event}');
var bindedFunction = function(event){ return Richfaces.processEffect(this);
}.bindAsEventListener(pm);