Author: vmolotkov
Date: 2007-11-02 14:08:26 -0400 (Fri, 02 Nov 2007)
New Revision: 3736
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/LayoutManager.js
Log:
Synchronization of tables
Modified:
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java
===================================================================
---
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-02
18:05:17 UTC (rev 3735)
+++
trunk/sandbox/ui/orderingList/src/main/java/org/richfaces/renderkit/OrderingListRendererBase.java 2007-11-02
18:08:26 UTC (rev 3736)
@@ -12,14 +12,11 @@
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
-import org.ajax4jsf.component.SequenceDataAdaptor;
import org.ajax4jsf.component.UIDataAdaptor;
import org.ajax4jsf.renderkit.RendererUtils.HTML;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.iterators.FilterIterator;
import org.richfaces.component.Column;
-import org.richfaces.component.Row;
-import org.richfaces.component.UIDataTable;
import org.richfaces.component.UIOrderingList;
public abstract class OrderingListRendererBase extends AbstractRowsRenderer {
@@ -84,9 +81,9 @@
writer.endElement("thead");
}
- protected void encodeHeaderFacets(FacesContext context,
- ResponseWriter writer, Iterator headers, String skinCellClass,
- String headerClass, String facetName, String element)
+ protected void encodeHeaderFacets(FacesContext context, ResponseWriter writer,
+ Iterator headers, String skinCellClass,
+ String headerClass, String facetName, String element)
throws IOException {
while (headers.hasNext()) {
UIComponent column = (UIComponent) headers.next();
@@ -98,13 +95,16 @@
skinCellClass = "ol_endcol rich-table-subheadercell";
}
encodeStyleClass(writer, null, skinCellClass, headerClass, columnHeaderClass);
- writer.writeAttribute("scope", "col", null);
getUtils().encodeAttribute(context, column, "colspan");
+ writer.startElement("div", column);
+ writer.writeAttribute("style", "overflow:hidden;white-space:
nowrap;", null);
+
UIComponent facet = column.getFacet(facetName);
if (facet != null) {
renderChild(context, facet);
}
+ writer.endElement("div");
writer.endElement(element);
}
}
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss
===================================================================
---
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-02
18:05:17 UTC (rev 3735)
+++
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/css/orderingList.xcss 2007-11-02
18:08:26 UTC (rev 3736)
@@ -81,10 +81,12 @@
border-bottom : 1px solid #bfbfc0;
border-right : 1px solid #bfbfc0;
padding : 2px;
+ white-space: nowrap;
}
#internal_header_tab .ol_endcol {
border-right : 0px;
+ white-space: nowrap;
}
#internal_tab {
@@ -93,6 +95,7 @@
#internal_tab .ol_endcol {
border-right : 0px;
+ white-space: nowrap;
}
#internal_tab td {
@@ -102,6 +105,7 @@
border-bottom : 1px solid #bfbfc0;
border-right : 1px solid #bfbfc0;
padding : 2px;
+ white-space: nowrap;
}
Modified:
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/LayoutManager.js
===================================================================
---
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/LayoutManager.js 2007-11-02
18:05:17 UTC (rev 3735)
+++
trunk/sandbox/ui/orderingList/src/main/resources/org/richfaces/renderkit/html/scripts/LayoutManager.js 2007-11-02
18:08:26 UTC (rev 3736)
@@ -1,18 +1,41 @@
LayoutManager = function(headerId, contentId) {
this.headerTable = document.getElementById(headerId);
this.contentTable = document.getElementById(contentId);
+ this.headerDiv = this.headerTable.parentNode;
+ this.contentDiv = this.contentTable.parentNode;
+
+ var obj = this;
+ if (window.attachEvent) {
+ this.contentDiv.attachEvent("onscroll", function()
{obj.scrollHandler(obj)});
+ } else {
+ this.contentDiv.addEventListener("scroll", function()
{obj.scrollHandler(obj)}, true);
+ }
+
}
-LayoutManager.scrollWidth = 17;
+LayoutManager.SCROLL_WIDTH = 17;
+LayoutManager.STYLE_CONTENTTD_BORDER = 1;
+LayoutManager.STYLE_CONTENTTD_PADDING = 4;
+
LayoutManager.prototype.widthSynchronization = function() {
var contentCells = this.contentTable.tBodies[0].rows[0].cells;
var headerCells = this.headerTable.tHead.rows[0].cells;
+ var width;
for (var i = 0; i < contentCells.length; i++) {
+ width = contentCells[i].offsetWidth - LayoutManager.STYLE_CONTENTTD_BORDER -
LayoutManager.STYLE_CONTENTTD_PADDING;
if (i == contentCells.length - 1) {
- headerCells[i].style.width = contentCells[i].offsetWidth + LayoutManager.scrollWidth;
+ width = width + LayoutManager.SCROLL_WIDTH;
+ headerCells[i].firstChild.style.width = width;
+ headerCells[i].style.width = width;
} else {
- headerCells[i].style.width = contentCells[i].offsetWidth;
+ headerCells[i].firstChild.style.width = width;
+ headerCells[i].style.width = width;
}
}
+ this.headerTable.style.width = this.contentTable.offsetWidth +
LayoutManager.SCROLL_WIDTH;
+}
+
+LayoutManager.prototype.scrollHandler = function(obj) {
+ obj.headerDiv.scrollLeft = obj.contentDiv.scrollLeft;
}
\ No newline at end of file
Show replies by date