[richfaces-svn-commits] JBoss Rich Faces SVN: r11861 - trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit.

richfaces-svn-commits at lists.jboss.org richfaces-svn-commits at lists.jboss.org
Thu Dec 18 02:08:13 EST 2008


Author: pgolawski
Date: 2008-12-18 02:08:12 -0500 (Thu, 18 Dec 2008)
New Revision: 11861

Modified:
   trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
Log:
set focus (without select text) to current inplace filter input on filter event

Modified: trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java
===================================================================
--- trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java	2008-12-18 00:21:41 UTC (rev 11860)
+++ trunk/ui/extendedDataTable/src/main/java/org/richfaces/renderkit/AbstractExtendedTableRenderer.java	2008-12-18 07:08:12 UTC (rev 11861)
@@ -317,10 +317,7 @@
                     UIColumn dataColumn = (UIColumn) column;
                     if (internalFilterEnabledColumn(dataColumn)) {
                         writer.startElement(HTML.DIV_ELEM, column);
-                        addInplaceInput(context, column, buildAjaxFunction(
-                                context, column, false,
-                                getOnAjaxCompleteFunction(context,
-                                        (UIDataTable) column.getParent())));
+                        addInplaceInput(context, column);
                         writer.endElement(HTML.DIV_ELEM);
                     }
                     else if (dataColumn.getFacet("filter") != null) {
@@ -336,6 +333,14 @@
             }
         }
     }
+    
+    private JSFunctionDefinition buildSetFocusFunctionDef(String elementId){
+    	JSFunctionDefinition function = new JSFunctionDefinition("event");
+		function.addToBody("" + "var element = document.getElementById('"
+				+ elementId + "');" + "if (element) {" + "	element.focus();"
+				+ "}");
+		return function;
+    }
 
     public boolean isColumnFacetPresent(UIDataTable table, String facetName) {
         Iterator<UIComponent> columns = table.columns();
@@ -1175,10 +1180,10 @@
                         }
                         boolean filterChanged = (newFilterValue == null ? (oldFilterValue != null)
                                 : !newFilterValue.equals(oldFilterValue));
-                        if (filterChanged) {
-                        	//set focus on changed field
-                        	AjaxContext.getCurrentInstance().getResponseDataMap().put(AjaxActionComponent.FOCUS_DATA_ID, filterValueInput.getClientId(context));
-                        }
+//                        if (filterChanged) {
+//                        	//set focus on changed field
+//                        	AjaxContext.getCurrentInstance().getResponseDataMap().put(AjaxActionComponent.FOCUS_DATA_ID, filterValueInput.getClientId(context));
+//                        }
                         filtering = (filtering || filterChanged);
                     }
                 }
@@ -1345,8 +1350,7 @@
         }
     }
 
-    protected void addInplaceInput(FacesContext context, UIComponent column,
-            String buffer) throws IOException {
+    protected void addInplaceInput(FacesContext context, UIComponent column) throws IOException {
         UIInput filterValueInput = (UIInput) column
                 .getFacet(FILTER_INPUT_FACET_NAME);
         if (null == filterValueInput) {
@@ -1364,6 +1368,11 @@
             filterEvent = "onchange";
         }
 
+        String buffer = buildAjaxFunction(
+        		context, 
+        		column, 
+        		false, 
+        		buildSetFocusFunctionDef(filterValueInput.getClientId(context)));
         filterValueInput.getAttributes().put(filterEvent, buffer);
         filterValueInput.setValue(column.getAttributes().get("filterValue"));
 
@@ -1494,8 +1503,7 @@
                     && col.getValueExpression("filterBy") != null) {
 
                 writer.startElement(HTML.DIV_ELEM, column);
-                addInplaceInput(context, column, buildAjaxFunction(context,
-                        column, false, null));
+                addInplaceInput(context, column);
                 writer.endElement(HTML.DIV_ELEM);
             }
         }




More information about the richfaces-svn-commits mailing list