[richfaces-svn-commits] JBoss Rich Faces SVN: r2229 - in trunk/ui/scrollable-grid/src/main: java/org/richfaces/renderkit/html and 2 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Mon Aug 13 13:02:58 EDT 2007
Author: maksimkaszynski
Date: 2007-08-13 13:02:58 -0400 (Mon, 13 Aug 2007)
New Revision: 2229
Added:
trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridOptions.java
Modified:
trunk/ui/scrollable-grid/src/main/config/component/scrollable-grid.xml
trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/AjaxFunctionBuilder.java
trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridBody.js
trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js
trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-footer-cell.jspx
trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-header-cell.jspx
trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
Log:
RF-592
RF-591
Modified: trunk/ui/scrollable-grid/src/main/config/component/scrollable-grid.xml
===================================================================
--- trunk/ui/scrollable-grid/src/main/config/component/scrollable-grid.xml 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/config/component/scrollable-grid.xml 2007-08-13 17:02:58 UTC (rev 2229)
@@ -115,6 +115,12 @@
<name>selection</name>
<classname>org.richfaces.model.selection.Selection</classname>
</property>
+
+ <property>
+ <name>hideWhenScrolling</name>
+ <classname>boolean</classname>
+ <defaultvalue>false</defaultvalue>
+ </property>
&ui_component_attributes;
</component>
Modified: trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/AjaxFunctionBuilder.java
===================================================================
--- trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/AjaxFunctionBuilder.java 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/AjaxFunctionBuilder.java 2007-08-13 17:02:58 UTC (rev 2229)
@@ -8,7 +8,6 @@
import org.ajax4jsf.javascript.JSFunction;
import org.ajax4jsf.javascript.JSFunctionDefinition;
import org.ajax4jsf.javascript.JSReference;
-import org.ajax4jsf.renderkit.RendererBase;
import org.richfaces.component.UIScrollableGrid;
@@ -29,17 +28,16 @@
return function;
}
- public static JSFunctionDefinition getOnComplete(FacesContext context, UIScrollableGrid grid, RendererBase renderer, int type) {
+ public static JSFunctionDefinition getOnComplete(FacesContext context, UIScrollableGrid grid, int type) {
- ScrollableGridBaseRenderer sr = (ScrollableGridBaseRenderer)renderer;
JSFunction function = null;
switch (type) {
case SCROLL:
- function = createFunction(sr.getJavaScriptVarName(context, grid) + ".onScrollComplete");
+ function = createFunction(ScrollableGridBaseRenderer.getJavaScriptVarName(context, grid) + ".onScrollComplete");
break;
case SORT:
- function = createFunction(sr.getJavaScriptVarName(context, grid) + ".onSortComplete");
+ function = createFunction(ScrollableGridBaseRenderer.getJavaScriptVarName(context, grid) + ".onSortComplete");
break;
}
Modified: trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java
===================================================================
--- trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridBaseRenderer.java 2007-08-13 17:02:58 UTC (rev 2229)
@@ -12,8 +12,6 @@
import org.ajax4jsf.context.AjaxContext;
import org.ajax4jsf.javascript.JSFunction;
-import org.ajax4jsf.javascript.JSFunctionDefinition;
-import org.ajax4jsf.javascript.JSReference;
import org.ajax4jsf.model.DataVisitor;
import org.ajax4jsf.renderkit.AjaxRendererUtils;
import org.ajax4jsf.renderkit.ComponentVariables;
@@ -30,7 +28,6 @@
import org.richfaces.model.SortOrder;
import org.richfaces.renderkit.CompositeRenderer;
import org.richfaces.renderkit.RendererContributor;
-import org.richfaces.renderkit.ScriptOptions;
import org.richfaces.renderkit.html.response.GridScrollSettings;
import org.richfaces.utils.TemplateLoader;
@@ -390,7 +387,7 @@
addContributor(new SelectionRendererContributor());
}
- public String getJavaScriptVarName(FacesContext context, UIScrollableGrid grid) {
+ public static String getJavaScriptVarName(FacesContext context, UIScrollableGrid grid) {
String name = grid.getScriptVar();
if (name == null) {
@@ -402,37 +399,14 @@
}
public String createClientScrollableGrid(FacesContext context, UIScrollableGrid grid) {
-
- String id = grid.getBaseClientId(context);
- ScriptOptions options = new ScriptOptions(grid);
- options.addOption("client_id", id);
+ ScrollableGridOptions options = new ScrollableGridOptions(grid);
- if(grid.getFacets().containsKey("splash")){
- UIComponent splash = grid.getFacet("splash");
- String splash_id = splash.getClientId(context);
- options.addOption("splash_id", splash_id);
- }
- int columnCount = grid.getChildCount();
+ mergeScriptOptions(options, context, grid);
- options.addOption("columnsCount", new Integer(columnCount));
- options.addOption("rowsCount", new Integer(grid.getRows()));
- options.addEventHandler("onselectionchange");
- options.addOption("ids", GridRendererState.getRendererState(context).getIds());
JSFunction function = new JSFunction("new ClientUI.controls.grid.ScrollableGrid");
function.addParameter(options);
-
- JSFunctionDefinition functionDefinition = new JSFunctionDefinition();
-
- JSReference sortEvent = new JSReference("event");
- functionDefinition.addParameter(sortEvent);
- functionDefinition.addToBody(onSortAjaxUpdate(context, grid));
-
- options.addOption("onSortAjaxUpdate", functionDefinition);
-
- mergeScriptOptions(options, context, grid);
-
return function.toScript();
}
@@ -549,7 +523,7 @@
JSFunction function = AjaxRendererUtils.buildAjaxFunction(grid, context);
Map options = AjaxRendererUtils.buildEventOptions(context, grid);
- options.put("oncomplete", AjaxFunctionBuilder.getOnComplete(context, grid, this, AjaxFunctionBuilder.SCROLL));
+ options.put("oncomplete", AjaxFunctionBuilder.getOnComplete(context, grid, AjaxFunctionBuilder.SCROLL));
Map parametersMap = (Map)options.get("parameters");
parametersMap.put(grid.getBaseClientId(context) + ":scroll", "");
function.addParameter(options);
@@ -559,30 +533,6 @@
}
- public String onSortAjaxUpdate(FacesContext context, UIScrollableGrid grid){
-
- JSReference sortColumn = new JSReference("event.column");
- JSReference sortOrder = new JSReference("event.order");
- JSReference sortStartRow = new JSReference("event.startRow");
- JSReference sortIndex = new JSReference("event.index");
-
- Map options = AjaxRendererUtils.buildEventOptions(context, grid);
-
- Map parametersMap = (Map)options.get("parameters");
- String id = grid.getClientId(context);
- parametersMap.put(id + ":sortColumn", sortColumn);
- parametersMap.put(id + ":sortOrder", sortOrder);
- parametersMap.put(id + ":sortStartRow", sortStartRow);
- parametersMap.put(id + ":sortIndex", sortIndex);
- options.put("parameters", parametersMap);
-
- JSFunction function = AjaxRendererUtils.buildAjaxFunction(grid, context);
- options.put("oncomplete", AjaxFunctionBuilder.getOnComplete(context, grid, this, AjaxFunctionBuilder.SORT));
- function.addParameter(options);
- String completeFunction = function.toScript() + "; return false;";
-
- return completeFunction;
- }
protected void doDecode(FacesContext context, UIComponent component) {
Added: trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridOptions.java
===================================================================
--- trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridOptions.java (rev 0)
+++ trunk/ui/scrollable-grid/src/main/java/org/richfaces/renderkit/html/ScrollableGridOptions.java 2007-08-13 17:02:58 UTC (rev 2229)
@@ -0,0 +1,97 @@
+/**
+ * License Agreement.
+ *
+ * JBoss RichFaces 3.0 - Ajax4jsf Component Library
+ *
+ * Copyright (C) 2007 Exadel, Inc.
+ *
+ * This library is free software; you can redistribute it and/or
+ * modify it under the terms of the GNU Lesser General Public
+ * License version 2.1 as published by the Free Software Foundation.
+ *
+ * This library is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU
+ * Lesser General Public License for more details.
+ *
+ * You should have received a copy of the GNU Lesser General Public
+ * License along with this library; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA
+ */
+
+package org.richfaces.renderkit.html;
+
+import java.util.Map;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+
+import org.ajax4jsf.javascript.JSFunction;
+import org.ajax4jsf.javascript.JSFunctionDefinition;
+import org.ajax4jsf.javascript.JSReference;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import org.richfaces.component.UIScrollableGrid;
+import org.richfaces.renderkit.ScriptOptions;
+
+public class ScrollableGridOptions extends ScriptOptions {
+
+ public ScrollableGridOptions(UIScrollableGrid grid) {
+ super(grid);
+ FacesContext context = FacesContext.getCurrentInstance();
+
+ String id = grid.getBaseClientId(context);
+
+ addOption("client_id", id);
+
+ if(grid.getFacets().containsKey("splash")){
+ UIComponent splash = grid.getFacet("splash");
+ String splash_id = splash.getClientId(context);
+ addOption("splash_id", splash_id);
+ }
+
+ int columnCount = grid.getChildCount();
+
+ addOption("columnsCount", new Integer(columnCount));
+ addOption("rowsCount", new Integer(grid.getRows()));
+ addEventHandler("onselectionchange");
+ addOption("ids", GridRendererState.getRendererState(context).getIds());
+ addOption("hideWhenScrolling");
+
+
+ JSFunctionDefinition functionDefinition = new JSFunctionDefinition();
+
+ JSReference sortEvent = new JSReference("event");
+ functionDefinition.addParameter(sortEvent);
+ functionDefinition.addToBody(onSortAjaxUpdate(context, grid));
+
+ addOption("onSortAjaxUpdate", functionDefinition);
+
+ }
+
+ public String onSortAjaxUpdate(FacesContext context, UIScrollableGrid grid){
+
+ JSReference sortColumn = new JSReference("event.column");
+ JSReference sortOrder = new JSReference("event.order");
+ JSReference sortStartRow = new JSReference("event.startRow");
+ JSReference sortIndex = new JSReference("event.index");
+
+ Map options = AjaxRendererUtils.buildEventOptions(context, grid);
+
+ Map parametersMap = (Map)options.get("parameters");
+ String id = grid.getClientId(context);
+ parametersMap.put(id + ":sortColumn", sortColumn);
+ parametersMap.put(id + ":sortOrder", sortOrder);
+ parametersMap.put(id + ":sortStartRow", sortStartRow);
+ parametersMap.put(id + ":sortIndex", sortIndex);
+ options.put("parameters", parametersMap);
+
+ JSFunction function = AjaxRendererUtils.buildAjaxFunction(grid, context);
+ options.put("oncomplete", AjaxFunctionBuilder.getOnComplete(context, grid, AjaxFunctionBuilder.SORT));
+ function.addParameter(options);
+ String completeFunction = function.toScript() + "; return false;";
+
+ return completeFunction;
+ }
+
+
+}
\ No newline at end of file
Modified: trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridBody.js
===================================================================
--- trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridBody.js 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/GridBody.js 2007-08-13 17:02:58 UTC (rev 2229)
@@ -437,8 +437,11 @@
this.currRange = range;
this.currentPos = task.pos;
- //this.container.hide();
+ if (this.grid.options.hideWhenScrolling) {
+ this.container.hide();
+ }
+
var options = {
index: startIndex,
count: countToLoad,
@@ -595,7 +598,9 @@
},
_showContainer: function() {
this.container.show();
- this.setScrollPos(this.currentPos);
+ if (ClientUILib.isIE) {
+ this.setScrollPos(this.currentPos);
+ }
},
/**
* show hiden rows after loading them from datasource
Modified: trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js
===================================================================
--- trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/javascript/ClientUI/controls/grid/Selection.js 2007-08-13 17:02:58 UTC (rev 2229)
@@ -441,7 +441,7 @@
},
selectionChanged: function(event) {
- $(this.inputElement).value = this.selection.inspectRanges()+ this.selectionFlag;
+ $(this.inputElement).value = this.selection.inspectRanges()+ (this.selectionFlag ? this.selectionFlag : "") ;
var state = this.selection.getState();
event.oldSelection = this.oldState;
event.newSelection = state;
Modified: trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-footer-cell.jspx
===================================================================
--- trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-footer-cell.jspx 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-footer-cell.jspx 2007-08-13 17:02:58 UTC (rev 2229)
@@ -11,12 +11,12 @@
component="javax.faces.component.UIComponent"
>
- <td class="dr-sgrid-fc rich-sgrid-footer-cell #{component.attributes['footerClass']}">
+ <th class="dr-sgrid-fc rich-sgrid-footer-cell #{component.attributes['footerClass']}">
<span id="#{client_id}:fc_#{cell_index}" class="dr-sgrid-fcbody1">
<span class="dr-sgrid-fcbody">
<vcp:body/>
</span>
</span>
- </td>
+ </th>
</f:root>
\ No newline at end of file
Modified: trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-header-cell.jspx
===================================================================
--- trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-header-cell.jspx 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid-header-cell.jspx 2007-08-13 17:02:58 UTC (rev 2229)
@@ -12,7 +12,7 @@
component="javax.faces.component.UIComponent"
>
- <td class="dr-sgrid-hc rich-sgrid-header-cell" id="#{client_id}:hc_#{cell_index}" columnIndex="#{cell_index}" sortable="#{component.attributes['sortable']}">
+ <th class="dr-sgrid-hc rich-sgrid-header-cell" id="#{client_id}:hc_#{cell_index}" columnIndex="#{cell_index}" sortable="#{component.attributes['sortable']}">
<vcp:body/>
@@ -22,6 +22,6 @@
</jsp:scriptlet>
<span column="#{cell_index}" id="#{client_id}:hsep_#{cell_index}" style="left: #{offset}px;" class="dr-sgrid-hsep rich-sgrid-hsep" />
- </td>
+ </th>
</f:root>
\ No newline at end of file
Modified: trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx
===================================================================
--- trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx 2007-08-13 16:15:10 UTC (rev 2228)
+++ trunk/ui/scrollable-grid/src/main/templates/org/richfaces/scrollable-grid.jspx 2007-08-13 17:02:58 UTC (rev 2229)
@@ -81,7 +81,7 @@
]]>
</jsp:scriptlet>
- <tbody>
+ <thead>
<tr class="dr-sgrid-hr #{component.attributes['headerClass']}">
<jsp:scriptlet>
<![CDATA[
@@ -89,7 +89,7 @@
]]>
</jsp:scriptlet>
</tr>
- </tbody>
+ </thead>
</table>
</span>
@@ -102,16 +102,16 @@
]]>
</jsp:scriptlet>
<col width="1"/>
- <tbody>
+ <thead>
<tr class="dr-sgrid-hr #{component.attributes['headerClass']}">
<jsp:scriptlet>
<![CDATA[
renderHeaders(context, component, false);
]]>
</jsp:scriptlet>
- <td></td>
+ <th></th>
</tr>
- </tbody>
+ </thead>
</table>
</span>
</div>
@@ -175,7 +175,7 @@
renderCols(context, component, true);
]]>
</jsp:scriptlet>
- <tbody>
+ <tfoot>
<tr class="dr-sgrid-fr #{component.attributes['footerClass']}">
<jsp:scriptlet>
<![CDATA[
@@ -183,7 +183,7 @@
]]>
</jsp:scriptlet>
</tr>
- </tbody>
+ </tfoot>
</table>
</span>
@@ -196,16 +196,16 @@
]]>
</jsp:scriptlet>
<col width="1"/>
- <tbody>
+ <tfoot>
<tr class="dr-sgrid-fr #{component.attributes['footerClass']}">
<jsp:scriptlet>
<![CDATA[
renderFooters(context, component,false);
]]>
</jsp:scriptlet>
- <td></td>
+ <th></th>
</tr>
- </tbody>
+ </tfoot>
</table>
</span>
</div>
More information about the richfaces-svn-commits
mailing list