Author: abelevich
Date: 2010-03-31 11:23:03 -0400 (Wed, 31 Mar 2010)
New Revision: 16697
Added:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java
Log:
Added:
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java
===================================================================
---
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java
(rev 0)
+++
root/ui-sandbox/trunk/components/datascroller/ui/src/main/java/org/richfaces/DataScrollerUtils.java 2010-03-31
15:23:03 UTC (rev 16697)
@@ -0,0 +1,103 @@
+package org.richfaces;
+
+import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.List;
+import java.util.Map;
+import java.util.Set;
+import java.util.Map.Entry;
+
+import javax.faces.component.NamingContainer;
+import javax.faces.component.UIComponent;
+
+import org.richfaces.component.UIDataScroller;
+
+
+
+public class DataScrollerUtils {
+
+ protected enum PropertyKeys {
+ rowCount, rows
+ }
+
+ public static int getPageCount(UIComponent data, int rowCount, int rows) {
+ int pageCount;
+ if (rows > 0) {
+ pageCount = rows <= 0 ? 1 : rowCount / rows;
+ if (rowCount % rows > 0) {
+ pageCount++;
+ }
+ if (pageCount == 0) {
+ pageCount = 1;
+ }
+ } else {
+ rows = 1;
+ pageCount = 1;
+ }
+ return pageCount;
+ }
+
+ public static int getRows(UIComponent component) {
+ int row = 0;
+ row = (Integer)component.getAttributes().get("rows");
+ if (row == 0) {
+ row = getRowCount(component);
+ }
+
+ return row;
+ }
+
+ public static int getRowCount(UIComponent component) {
+ return (Integer)eval(PropertyKeys.rowCount, component, 0);
+ }
+
+ protected static Object eval(Serializable key, UIComponent component, Object
defaultValue) {
+ String name = key.toString();
+ Object retObject = component.getAttributes().get(name);
+ return retObject != null ? retObject : defaultValue;
+ }
+
+ public static UIComponent findParentContainer(UIComponent component) {
+ UIComponent parent = component.getParent();
+ if(!(component instanceof NamingContainer)) {
+ findParentContainer(parent);
+ }
+ return parent;
+ }
+
+ public static List<UIDataScroller> findDataScrollers(UIComponent dataTable) {
+ List <UIDataScroller> datascrollers = new
ArrayList<UIDataScroller>();
+
+ Map<String, UIComponent> facets = dataTable.getFacets();
+ Set<Entry<String, UIComponent>> entries = facets.entrySet();
+
+ for (Entry<String, UIComponent> entry: entries) {
+ findBelow(entry.getValue(), datascrollers);
+ }
+
+ UIComponent parent = findParentContainer(dataTable);
+
+ if(parent != null) {
+ findBelow(parent, datascrollers);
+ }
+
+ return datascrollers;
+ }
+
+
+ protected static void findBelow(UIComponent component, List<UIDataScroller>
result) {
+ if((component instanceof UIDataScroller) && component.isRendered()) {
+ result.add((UIDataScroller)component);
+ } else {
+
+ for(UIComponent child: component.getChildren()) {
+ if(!(child instanceof NamingContainer)) {
+ findBelow(child, result);
+ }
+ }
+
+ }
+ }
+
+
+}
Show replies by date