Author: abelevich
Date: 2009-10-20 08:18:54 -0400 (Tue, 20 Oct 2009)
New Revision: 15734
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java
Log:
refactot iterators impls, separate DataIterator form columnIterator
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java 2009-10-20
12:17:56 UTC (rev 15733)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/ColumnsIterator.java 2009-10-20
12:18:54 UTC (rev 15734)
@@ -23,6 +23,7 @@
import java.util.Iterator;
import java.util.NoSuchElementException;
+import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
/**
@@ -30,10 +31,10 @@
* @author asmirnov
*
*/
-class ColumnsIterator implements Iterator<UIComponent> {
+class ColumnsIterator implements Iterator <javax.faces.component.UIColumn> {
- private UIComponent next;
+ private javax.faces.component.UIColumn next;
private boolean initialized = false;
@@ -52,11 +53,11 @@
return null != next;
}
- public UIComponent next() {
+ public javax.faces.component.UIColumn next() {
if (!hasNext()) {
throw new NoSuchElementException();
}
- UIComponent result = next;
+ javax.faces.component.UIColumn result = next;
next = nextColumn();
return result;
}
@@ -65,11 +66,11 @@
throw new UnsupportedOperationException("Iterator is read-only");
}
- protected UIComponent nextColumn(){
+ protected javax.faces.component.UIColumn nextColumn(){
while (childrenIterator != null && childrenIterator.hasNext()) {
UIComponent child = childrenIterator.next();
- if(child instanceof UIColumn || child instanceof Column){
- return child;
+ if(child instanceof javax.faces.component.UIColumn){
+ return (UIColumn)child;
}
}
return null;
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java 2009-10-20
12:17:56 UTC (rev 15733)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/DataIterator.java 2009-10-20
12:18:54 UTC (rev 15734)
@@ -22,57 +22,53 @@
import java.util.Iterator;
-import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
-class DataIterator extends ColumnsIterator {
+class DataIterator implements Iterator <UIComponent> {
- protected Iterator<UIComponent> facetsIterator;
+ private Iterator<UIComponent> facetsIterator;
+
+ private Iterator<UIComponent> childrenIterator;
+
- public DataIterator(UIComponent dataTable) {
- super(dataTable);
- facetsIterator = dataTable.getFacets().values().iterator();
+ public DataIterator(UIDataTable dataTable) {
+ this.childrenIterator = dataTable.getChildren().iterator();
+ this.facetsIterator = dataTable.getFacets().values().iterator();
}
- @Override
- protected UIComponent nextColumn() {
- UIComponent nextColumn = null;
- while (null == nextColumn && childrenIterator.hasNext()) {
- UIComponent child = childrenIterator.next();
- if (child.isRendered()) {
- if (child instanceof UIColumn || child instanceof Column) {
- nextColumn = child;
- } /*else if (checkAjaxComponent(child)) {
- nextColumn = child;
- } */
+ public boolean hasNext() {
+ return (facetsIterator.hasNext() || childrenIterator.hasNext());
+ }
+
+ public UIComponent next() {
+ UIComponent next = null;
+
+ while (next == null && childrenIterator.hasNext()) {
+ UIComponent child = (UIComponent) childrenIterator.next();
+ if((child instanceof UIColumn) && child.isRendered()) {
+ next = child;
}
}
- /*
- while (null == nextColumn && facetsIterator.hasNext()) {
- UIComponent child = facetsIterator.next();
- if (checkAjaxComponent(child)) {
- nextColumn = child;
- break;
+
+ while (next == null && facetsIterator.hasNext()) {
+ UIComponent child = (UIComponent) facetsIterator.next();
+ if(child.isRendered()) {
+ next = child;
}
- }*/
- return nextColumn;
+ }
+
+ return next;
}
-
- /**
- * @param child
- * @return
- */
- protected Iterator<UIComponent> getColumnChildrenIterator(UIComponent child) {
- return child.getChildren().iterator();
+
+ protected Iterator<UIComponent> getFacetsIterator() {
+ return this.facetsIterator;
}
-
- /**
- * @param child
- * @return
- */
- /*
- protected boolean checkAjaxComponent(UIComponent child) {
- return child instanceof AjaxSupport || child instanceof Dropzone;
+
+ protected Iterator<UIComponent> getChildrenIterator() {
+ return this.childrenIterator;
}
- */
+
+ public void remove() {
+ throw new UnsupportedOperationException("Iterator is read-only");
+ }
}
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java 2009-10-20
12:17:56 UTC (rev 15733)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/FixedChildrenIterator.java 2009-10-20
12:18:54 UTC (rev 15734)
@@ -22,85 +22,60 @@
import java.util.Iterator;
-import javax.faces.component.UIColumn;
import javax.faces.component.UIComponent;
-class FixedChildrenIterator extends DataIterator {
+class FixedChildrenIterator extends DataIterator {
+
private Iterator<UIComponent> currentColumnIterator;
-
- public FixedChildrenIterator(UIComponent dataTable) {
+
+ public FixedChildrenIterator(UIDataTable dataTable) {
super(dataTable);
}
-
+
@Override
- protected UIComponent nextColumn() {
- UIComponent nextColumn = null;
- if (null != currentColumnIterator) {
- nextColumn = currentColumnIterator.next();
- checkNextColumnChild();
- } else {
- while (null == nextColumn && childrenIterator.hasNext()) {
+ public UIComponent next() {
+ UIComponent next = null;
+
+ if(currentColumnIterator != null && currentColumnIterator.hasNext()) {
+ next = currentColumnIterator.next();
+ checkColumnIterator();
+ }
+
+ if(next == null) {
+ Iterator <UIComponent> childrenIterator = getChildrenIterator();
+ while(childrenIterator.hasNext()) {
UIComponent child = childrenIterator.next();
- if (child instanceof UIColumn || child instanceof Column) {
- boolean rendered = true;
- try {
- rendered = child.isRendered();
- } catch (Exception e) {
- // This exception can be thrown for a header/footer
- // facets
- // there column rendered attribute was binded to a row
- // variable.
- }
- if (rendered) {
- Iterator<UIComponent> iterator = getColumnChildrenIterator(child);
- if (iterator.hasNext()) {
- currentColumnIterator = iterator;
- nextColumn = currentColumnIterator.next();
- checkNextColumnChild();
- }
-
- }
- } /*else if (checkAjaxComponent(child)) {
- nextColumn = child;
- }*/
+ if((child instanceof UIColumn) && child.isRendered()) {
+ currentColumnIterator = getChildrenIterator(child);
+ next = next();
+ }
}
}
- if (null == nextColumn) {
- nextColumn = getNextFacet();
+
+ if (next == null) {
+ next = getNextFacet();
}
- return nextColumn;
+
+ return next;
}
-
- /**
- * @param nextColumn
- * @return
- */
+
protected UIComponent getNextFacet() {
- UIComponent nextColumn = null;
- /*while (null == nextColumn && facetsIterator.hasNext()) {
- UIComponent child = facetsIterator.next();
- if (checkAjaxComponent(child)) {
- nextColumn = child;
- }
- }*/
- return nextColumn;
+ Iterator<UIComponent> facetsIterator = getFacetsIterator();
+ while(facetsIterator.hasNext()) {
+ return facetsIterator.next();
+ }
+ return null;
}
-
- /*@Override
- protected boolean checkAjaxComponent(UIComponent child) {
- return !super.checkAjaxComponent(child);
- }*/
-
- @Override
- protected Iterator<UIComponent> getColumnChildrenIterator(UIComponent child) {
- return child.getFacets().values().iterator();
- }
-
- protected void checkNextColumnChild() {
+
+ protected void checkColumnIterator() {
if (!currentColumnIterator.hasNext()) {
currentColumnIterator = null;
}
}
+
+ protected Iterator<UIComponent> getChildrenIterator(UIComponent component) {
+ return component.getChildren().iterator();
+ }
}
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java 2009-10-20
12:17:56 UTC (rev 15733)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/SubtableFixedChildrenIterator.java 2009-10-20
12:18:54 UTC (rev 15734)
@@ -28,7 +28,7 @@
*/
public class SubtableFixedChildrenIterator extends FixedChildrenIterator {
- public SubtableFixedChildrenIterator(UIComponent dataTable) {
+ public SubtableFixedChildrenIterator(UIDataTable dataTable) {
super(dataTable);
}
Show replies by thread