[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