Author: nbelaevski
Date: 2008-10-24 11:52:08 -0400 (Fri, 24 Oct 2008)
New Revision: 10900
Modified:
trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java
Log:
https://jira.jboss.org/jira/browse/RF-4709
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2008-10-24
15:01:44 UTC (rev 10899)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2008-10-24
15:52:08 UTC (rev 10900)
@@ -33,6 +33,7 @@
import org.apache.commons.collections.CollectionUtils;
import org.apache.commons.collections.Predicate;
import org.apache.commons.collections.iterators.FilterIterator;
+import org.apache.commons.collections.iterators.IteratorChain;
import org.richfaces.event.SwitchablePanelSwitchEvent;
/**
@@ -53,7 +54,7 @@
final Object renderedValue = this.restoredRenderedValue;
- return new FilterIterator(getRenderedTabs(), new Predicate() {
+ return new IteratorChain(new FilterIterator(getRenderedTabs(), new Predicate() {
public boolean evaluate(Object object) {
UITab tab = (UITab) object;
@@ -69,7 +70,7 @@
return renderedValue != null && renderedValue.equals(tab.getName());
}
- });
+ }), getFacets().values().iterator());
}
public boolean isImmediate() {
Modified: trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java
===================================================================
--- trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java 2008-10-24
15:01:44 UTC (rev 10899)
+++ trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java 2008-10-24
15:52:08 UTC (rev 10900)
@@ -7,6 +7,7 @@
import javax.faces.component.html.HtmlForm;
import javax.faces.component.html.HtmlOutputText;
import java.util.Iterator;
+import java.util.Map;
/**
* Unit test for UITabPanel.
@@ -107,6 +108,8 @@
Iterator it = tabPanel.getSwitchedFacetsAndChildren();
assertEquals(tab3.getId(), ((UITab)it.next()).getId());
+
+ assertFalse(it.hasNext());
}
public void testGetSwitchedFacetsAndChildren2() throws Exception {
@@ -118,5 +121,27 @@
assertEquals(tab1.getId(), ((UITab)it.next()).getId());
assertEquals(tab2.getId(), ((UITab)it.next()).getId());
assertEquals(tab3.getId(), ((UITab)it.next()).getId());
+
+ assertFalse(it.hasNext());
}
+
+ public void testGetSwitchedFacetsAndChildrenFacets() throws Exception {
+ Map<String, UIComponent> facets = tabPanel.getFacets();
+
+ UIComponent testFacet = new HtmlOutputText();
+ facets.put("testFacet", testFacet);
+
+ tab1.setSwitchType(UISwitchablePanel.CLIENT_METHOD);
+ tab2.setSwitchType(UISwitchablePanel.CLIENT_METHOD);
+ tab3.setSwitchType(UISwitchablePanel.CLIENT_METHOD);
+
+ Iterator it = tabPanel.getSwitchedFacetsAndChildren();
+ assertEquals(tab1.getId(), ((UITab)it.next()).getId());
+ assertEquals(tab2.getId(), ((UITab)it.next()).getId());
+ assertEquals(tab3.getId(), ((UITab)it.next()).getId());
+
+ assertSame(testFacet, it.next());
+
+ assertFalse(it.hasNext());
+ }
}