[richfaces-svn-commits] JBoss Rich Faces SVN: r4771 - in trunk/ui/dataFilterSlider/src/main: java/org/richfaces/component and 2 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Wed Dec 12 08:37:01 EST 2007
Author: akushunin
Date: 2007-12-12 08:37:01 -0500 (Wed, 12 Dec 2007)
New Revision: 4771
Modified:
trunk/ui/dataFilterSlider/src/main/config/component/dataFilterSlider.xml
trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java
trunk/ui/dataFilterSlider/src/main/java/org/richfaces/renderkit/DataFilterSliderRendererBase.java
trunk/ui/dataFilterSlider/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/slider.js
Log:
RF-1365
Modified: trunk/ui/dataFilterSlider/src/main/config/component/dataFilterSlider.xml
===================================================================
--- trunk/ui/dataFilterSlider/src/main/config/component/dataFilterSlider.xml 2007-12-12 13:32:47 UTC (rev 4770)
+++ trunk/ui/dataFilterSlider/src/main/config/component/dataFilterSlider.xml 2007-12-12 13:37:01 UTC (rev 4771)
@@ -31,8 +31,15 @@
</taghandler>
&ui_component_attributes;
+ &html_events;
&html_style_attributes;
+ &ui_command_attributes;
+ &ajax_component_attributes;
+ &html_event_handler_attributes;
+
+ &ui_component_attributes;
+
<property>
<name>handleValue</name>
<classname>java.lang.Integer</classname>
Modified: trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java
===================================================================
--- trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java 2007-12-12 13:32:47 UTC (rev 4770)
+++ trunk/ui/dataFilterSlider/src/main/java/org/richfaces/component/UIDataFltrSlider.java 2007-12-12 13:37:01 UTC (rev 4771)
@@ -33,8 +33,12 @@
import javax.faces.el.MethodBinding;
import javax.faces.event.AbortProcessingException;
import javax.faces.event.FacesEvent;
+import javax.faces.event.PhaseId;
import javax.faces.model.ListDataModel;
+import org.ajax4jsf.component.AjaxComponent;
+import org.ajax4jsf.event.AjaxEvent;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.RendererUtils;
import org.richfaces.event.DataFilterSliderAdapter;
import org.richfaces.event.DataFilterSliderEvent;
@@ -44,7 +48,7 @@
/**
* JSF component class
*/
-public abstract class UIDataFltrSlider extends UIComponentBase implements DataFilterSliderSource {
+public abstract class UIDataFltrSlider extends UIComponentBase implements DataFilterSliderSource, AjaxComponent {
/**
* The component type for this component.
@@ -74,7 +78,13 @@
public void broadcast(FacesEvent event) throws AbortProcessingException {
super.broadcast(event);
if (event instanceof DataFilterSliderEvent){
-
+
+ FacesContext context = FacesContext.getCurrentInstance();
+ AjaxRendererUtils.addRegionByName(context, this, this.getId());
+ String forAttr = this.getFor();
+ RendererUtils rendUtil = RendererUtils.getInstance();
+ AjaxRendererUtils.addRegionByName(context, this, rendUtil.correctForIdReference(forAttr, this));
+
if(getSliderListeners().length < 1){
addSliderListener(new DataFilterSliderAdapter(getSliderListener()));
}
@@ -320,6 +330,6 @@
public void decode(FacesContext context) {
super.decode(context);
}
-
-
-}
+
+}
+
Modified: trunk/ui/dataFilterSlider/src/main/java/org/richfaces/renderkit/DataFilterSliderRendererBase.java
===================================================================
--- trunk/ui/dataFilterSlider/src/main/java/org/richfaces/renderkit/DataFilterSliderRendererBase.java 2007-12-12 13:32:47 UTC (rev 4770)
+++ trunk/ui/dataFilterSlider/src/main/java/org/richfaces/renderkit/DataFilterSliderRendererBase.java 2007-12-12 13:37:01 UTC (rev 4771)
@@ -22,8 +22,10 @@
package org.richfaces.renderkit;
import java.io.IOException;
+import java.nio.Buffer;
import java.util.Map;
+import javax.faces.FacesException;
import javax.faces.component.UIComponent;
import javax.faces.component.UIForm;
import javax.faces.component.UIInput;
@@ -34,6 +36,8 @@
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSReference;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import org.ajax4jsf.renderkit.RendererUtils;
import org.ajax4jsf.util.SelectUtils;
import org.richfaces.component.UIDataFltrSlider;
import org.richfaces.event.DataFilterSliderEvent;
@@ -95,7 +99,7 @@
}
if(slider.isOnSlideSubmit()){
- options.append(",onSlideSubmit: function(v) { updateSlider1(v);}");
+ options.append(",onSlideSubmit: function(event, v) { updateSlider1(event, v);}");
}
options.append("}");
@@ -122,12 +126,15 @@
String id = slider.getId();
- String sliderHandlerScript = "function updateSlider1(value) {\n" +
+ JSFunction ajaxFunction = AjaxRendererUtils.buildAjaxFunction(slider,context);
+ ajaxFunction.addParameter(AjaxRendererUtils.buildEventOptions(
+ context, slider));
+ StringBuffer script= new StringBuffer();
+ ajaxFunction.appendScript(script);
+ script.append("; return false");
+ String sliderHandlerScript = "function updateSlider1(event, value) {\n" +
"$('"+ clientId +"slider_val').value = value;\n" +
- "try{\n" +
- "eval(document.forms['" + formClientId + "'].action);\n" +
- "}catch(exception){\n" +
- "}\n" +
+ script.toString() +
"}\n";
return sliderHandlerScript;
@@ -174,8 +181,9 @@
//ajaxSlider.setHandleValue(ajaxSlider.getStartRange());
} else {
dataFilterSlider.setHandleValue(newSliderVal);
+
DataFilterSliderEvent event = new DataFilterSliderEvent(dataFilterSlider, oldSliderVal, newSliderVal);
- //dataFilterSlider.queueEvent(event);
+// dataFilterSlider.queueEvent(event);
event.queue();
if (dataFilterSlider.isStoreResults()) {
dataFilterSlider.filterDataTable(newSliderVal.intValue());
@@ -209,6 +217,6 @@
}
return object != null && object.equals(Boolean.TRUE);
- }
+ }
}
Modified: trunk/ui/dataFilterSlider/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/slider.js
===================================================================
--- trunk/ui/dataFilterSlider/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/slider.js 2007-12-12 13:32:47 UTC (rev 4770)
+++ trunk/ui/dataFilterSlider/src/main/resources/org/richfaces/renderkit/html/scripts/scriptaculous-js-1.6.5/src/slider.js 2007-12-12 13:37:01 UTC (rev 4771)
@@ -17,7 +17,7 @@
Control.Slider.prototype = {
initialize: function(handle, track, options) {
var slider = this;
-
+
if(handle instanceof Array) {
this.handles = handle.collect( function(e) { return $(e) });
} else {
@@ -26,6 +26,7 @@
this.track = $(track);
this.options = options || {};
+ this.flag = false;
this.axis = this.options.axis || 'horizontal';
this.increment = this.options.increment || 1;
@@ -54,7 +55,7 @@
this.active = false;
this.dragging = false;
this.disabled = false;
-
+
if(this.options.disabled) this.setDisabled();
// Allowed values array
@@ -156,7 +157,8 @@
this.translateToPx(sliderValue);
this.drawSpans();
- if(!this.dragging || !this.event) this.updateFinished();
+ if((!this.dragging || !this.event)&&this.flag) this.updateFinished();
+ this.flag = true;
},
setValueBy: function(delta, handleIdx) {
this.setValue(this.values[handleIdx || this.activeHandleIdx || 0] + delta,
@@ -277,9 +279,10 @@
}
if(this.initialized) {
if (this.options.onSlideSubmit) {
- this.options.onSlideSubmit(this.values.length>1 ? this.values : this.values[0], this);
+ this.options.onSlideSubmit(event,this.values.length>1 ? this.values : this.values[0], this);
}
}
+
},
endDrag: function(event) {
if(this.active && this.dragging) {
@@ -295,11 +298,11 @@
this.updateFinished(event);
},
- updateFinished: function() {
+ updateFinished: function(event) {
if(this.initialized) {
var value = this.values.length>1 ? this.values : this.values[0];
if (this.options.onSlideSubmit) {
- this.options.onSlideSubmit(value, this);
+ this.options.onSlideSubmit(event, value, this);
}
}
More information about the richfaces-svn-commits
mailing list