Author: konstantin.mishin
Date: 2010-02-03 10:45:46 -0500 (Wed, 03 Feb 2010)
New Revision: 16403
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.css
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.js
Log:
RF-8107
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2010-02-03
15:26:43 UTC (rev 16402)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/renderkit/ExtendedDataTableRenderer.java 2010-02-03
15:45:46 UTC (rev 16403)
@@ -284,39 +284,51 @@
writer.startElement(HTML.DIV_ELEM, table);
writer.writeAttribute(HTML.ID_ATTRIBUTE, table.getClientId(context) +
":b", null);
writer.writeAttribute(HTML.CLASS_ATTRIBUTE, "rich-extable-body",
null);
- writer.startElement(HTML.DIV_ELEM, table);
- // writer.startElement(HTML.DIV_ELEM, table); TODO
- // writer.write(" ");
- // writer.endElement(HTML.DIV_ELEM);
- writer.startElement(HTML.TABLE_ELEMENT, table);
- writer.writeAttribute(HTML.CELLPADDING_ATTRIBUTE, "0", null);
- writer.writeAttribute(HTML.CELLSPACING_ATTRIBUTE, "0", null);
- writer.startElement(HTML.TBOBY_ELEMENT, table);
- writer.startElement(HTML.TR_ELEMENT, table);
- state.setFrozen(true);
- for (int i = 0; i < 2; i++) { // TODO 1. Replace 2 with constant 2. Empty
frozen part shouldn't be rendered
- writer.startElement(HTML.TD_ELEM, table);
+ if (table.getRowCount() == 0) {
+ UIComponent facet = table.getFacet("noData");
+ if (facet != null && facet.isRendered()) {
+ renderChild(context, facet);
+ } else {
+ Object noDataLabel = table.getAttributes().get("noDataLabel");
+ if (noDataLabel != null) {
+ writer.writeText(noDataLabel, "noDataLabel");
+ }
+ }
+ } else {
writer.startElement(HTML.DIV_ELEM, table);
- if (i == 1) {
- writer.writeAttribute(HTML.ID_ATTRIBUTE, table.getClientId(context) +
":body", null);
- writer.writeAttribute(HTML.CLASS_ATTRIBUTE, "rich-extable-part
rich-extable-part-width", null);
- }
+ // writer.startElement(HTML.DIV_ELEM, table); TODO
+ // writer.write(" ");
+ // writer.endElement(HTML.DIV_ELEM);
writer.startElement(HTML.TABLE_ELEMENT, table);
writer.writeAttribute(HTML.CELLPADDING_ATTRIBUTE, "0", null);
writer.writeAttribute(HTML.CELLSPACING_ATTRIBUTE, "0", null);
writer.startElement(HTML.TBOBY_ELEMENT, table);
- table.walk(context, this, state); // TODO encodeRows(context, table);
+ writer.startElement(HTML.TR_ELEMENT, table);
+ state.setFrozen(true);
+ for (int i = 0; i < 2; i++) { // TODO 1. Replace 2 with constant 2. Empty
frozen part shouldn't be rendered
+ writer.startElement(HTML.TD_ELEM, table);
+ writer.startElement(HTML.DIV_ELEM, table);
+ if (i == 1) {
+ writer.writeAttribute(HTML.ID_ATTRIBUTE, table.getClientId(context) +
":body", null);
+ writer.writeAttribute(HTML.CLASS_ATTRIBUTE, "rich-extable-part
rich-extable-part-width", null);
+ }
+ writer.startElement(HTML.TABLE_ELEMENT, table);
+ writer.writeAttribute(HTML.CELLPADDING_ATTRIBUTE, "0", null);
+ writer.writeAttribute(HTML.CELLSPACING_ATTRIBUTE, "0", null);
+ writer.startElement(HTML.TBOBY_ELEMENT, table);
+ table.walk(context, this, state); // TODO encodeRows(context, table);
+ writer.endElement(HTML.TBOBY_ELEMENT);
+ writer.endElement(HTML.TABLE_ELEMENT);
+ writer.endElement(HTML.DIV_ELEM);
+ writer.endElement(HTML.TD_ELEM);
+ state.setFrozen(false);
+ }
+ writer.endElement(HTML.TR_ELEMENT);
writer.endElement(HTML.TBOBY_ELEMENT);
writer.endElement(HTML.TABLE_ELEMENT);
writer.endElement(HTML.DIV_ELEM);
- writer.endElement(HTML.TD_ELEM);
- state.setFrozen(false);
}
- writer.endElement(HTML.TR_ELEMENT);
- writer.endElement(HTML.TBOBY_ELEMENT);
- writer.endElement(HTML.TABLE_ELEMENT);
writer.endElement(HTML.DIV_ELEM);
- writer.endElement(HTML.DIV_ELEM);
}
private void encodeHeaderOrFooterCell(FacesContext context, ResponseWriter writer,
UIComponent column,
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.css
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.css 2010-02-03
15:26:43 UTC (rev 16402)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.css 2010-02-03
15:45:46 UTC (rev 16403)
@@ -32,7 +32,7 @@
.rich-extable-body{
overflow-x: hidden;
- overflow-y: scroll;
+ overflow-y: auto;
width: 100%;
}
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.js
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.js 2010-02-03
15:26:43 UTC (rev 16402)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/resources/META-INF/resources/extendedDataTable.js 2010-02-03
15:45:46 UTC (rev 16403)
@@ -37,26 +37,28 @@
richfaces.ExtendedDataTable = function(id, ajaxFunction) {
var WIDTH_CLASS_NAME_BASE = "rich-extable-cell-width-";
var MIN_WIDTH = 20;
+ var idSuffixs = [":header", ":footer"];
var element = document.getElementById(id);
var bodyElement = document.getElementById(id + ":b");
- var contentElement = bodyElement.firstChild;//TODO Richfaces.firstDescendant;
- //TODO var marginElement = contentElement.firstChild;this.marginElement =
Richfaces.firstDescendant(this.contentElement);
- var dataTableElement = contentElement.lastChild;//TODO this.dataTableElement =
Richfaces.lastDescendant(this.contentElement);
- var frozenHeaderPartElement = document.getElementById(id + ":frozenHeader");
+ var contentElement = jQuery(bodyElement).children("div:first").get(0);
var dragElement = document.getElementById(id + ":d");
var reorderElement = document.getElementById(id + ":r");
var widthInput = document.getElementById(id + ":wi");
var normalPartStyle =
richfaces.getCSSRule(".rich-extable-part-width").style;
var resizerHolders =
jQuery(element).children(".rich-extable-header").find(".rich-extable-resizer-holder").get();
- var idSuffixs = [":header", ":body", ":footer"];
+ var frozenHeaderPartElement = document.getElementById(id + ":frozenHeader");
var frozenColumnCount = frozenHeaderPartElement ?
frozenHeaderPartElement.firstChild.rows[0].cells.length : 0;//TODO
Richfaces.firstDescendant;
- var rows = document.getElementById(id + idSuffixs[1]).firstChild.rows.length;//TODO
Richfaces.firstDescendant;
-
- var scrollElement = document.getElementById(id + idSuffixs[2]);
+ if (contentElement) {
+ idSuffixs[idSuffixs.length] = ":body";
+ //TODO var marginElement = contentElement.firstChild;this.marginElement =
Richfaces.firstDescendant(this.contentElement);
+ var dataTableElement = contentElement.lastChild;//TODO this.dataTableElement =
Richfaces.lastDescendant(this.contentElement);
+ var rows = document.getElementById(id + idSuffixs[1]).firstChild.rows.length;//TODO
Richfaces.firstDescendant;
+ }
+ var scrollElement = document.getElementById(id + ":footer");
var resizeData = {};
var idOfReorderingColumn = "";