[richfaces-svn-commits] JBoss Rich Faces SVN: r2204 - in trunk/ui/tabPanel/src: main/java/org/richfaces/renderkit and 1 other directories.
richfaces-svn-commits at lists.jboss.org
richfaces-svn-commits at lists.jboss.org
Fri Aug 10 12:13:35 EDT 2007
Author: nbelaevski
Date: 2007-08-10 12:13:35 -0400 (Fri, 10 Aug 2007)
New Revision: 2204
Modified:
trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITab.java
trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java
trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabTest.java
Log:
http://jira.jboss.com/jira/browse/RF-560 fix for JSF 1.2
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITab.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITab.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITab.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -21,19 +21,19 @@
package org.richfaces.component;
-import org.ajax4jsf.component.AjaxActionComponent;
-import org.ajax4jsf.component.AjaxComponent;
-import org.ajax4jsf.event.AjaxSource;
-import org.ajax4jsf.renderkit.AjaxRendererUtils;
+import java.io.IOException;
import javax.faces.FacesException;
import javax.faces.component.ActionSource;
import javax.faces.component.UIComponent;
import javax.faces.context.FacesContext;
-import javax.faces.el.ValueBinding;
import javax.faces.render.Renderer;
-import java.io.IOException;
+import org.ajax4jsf.component.AjaxActionComponent;
+import org.ajax4jsf.component.AjaxComponent;
+import org.ajax4jsf.event.AjaxSource;
+import org.ajax4jsf.renderkit.AjaxRendererUtils;
+
/**
* Base class for panel tab.
*
@@ -47,8 +47,6 @@
private transient boolean _active = false;
- private String switchType;
-
/**
* @param context
* @param active
@@ -146,45 +144,22 @@
/* public abstract String getDescription();
public abstract void setDescription(String newvalue);*/
- public String getSwitchType() {
- if (this.switchType != null) {
- return this.switchType;
- }
-
- ValueBinding valueBinding = getValueBinding("switchType");
- if (valueBinding != null) {
- return (String) valueBinding.getValue(
- FacesContext.getCurrentInstance());
- }
-
- UITabPanel pane = getPane();
- if (pane != null) {
- return getPane().getSwitchType();
- }
-
+ public String getSwitchTypeOrDefault() {
+ String switchType = getSwitchType();
+ if (switchType == null) {
+ switchType = getPane().getSwitchType();
+ }
+
+ if (switchType != null) {
+ return switchType;
+ }
+
return UISwitchablePanel.DEFAULT_METHOD;
}
+
+ public abstract String getSwitchType();
+ public abstract void setSwitchType(String newvalue);
- public void setSwitchType(String newvalue) {
- this.switchType = newvalue;
- }
-
- public Object saveState(FacesContext context) {
- Object[] state = new Object[2];
- state[0] = super.saveState(context);
-
- state[1] = switchType;
-
- return state;
- }
-
- public void restoreState(FacesContext context, Object object) {
- Object[] state = (Object[]) object;
- super.restoreState(context, state[0]);
-
- this.switchType = (String) state[1];
- }
-
//TODO - nick - ?
// public void processDecodes(FacesContext context) {
//
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/component/UITabPanel.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -43,7 +43,7 @@
return new TabsIterator(this, new TabsIterator.FilterCondition() {
public boolean isSuitable(UITab tab) {
- if (CLIENT_METHOD.equals(tab.getSwitchType())) {
+ if (CLIENT_METHOD.equals(tab.getSwitchTypeOrDefault())) {
return true;
}
@@ -82,9 +82,19 @@
return selectedTab;
}
+ Object localValue = getLocalValue();
+ if (localValue != null) {
+ return localValue;
+ }
+
//do not use VB for selectedTab here, because it'll be returned for "value" VB queue
//see UITabPanel#getValueBinding(String) for more
- return super.getValue();
+ ValueBinding vb = getValueBinding("value");
+ if (vb != null) {
+ return vb.getValue(getFacesContext());
+ }
+
+ return null;
}
public void setValue(Object value) {
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabHeaderRendererBase.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -54,7 +54,7 @@
boolean disabled = tab.isDisabled();
UITabPanel pane = tab.getPane();
- String method = tab.getSwitchType();
+ String method = tab.getSwitchTypeOrDefault();
boolean ajax = UISwitchablePanel.AJAX_METHOD.equals(method);
boolean clientSide = UISwitchablePanel.CLIENT_METHOD.equals(method);
String label = tab.getLabel();
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabPanelRendererBase.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -21,6 +21,16 @@
package org.richfaces.renderkit;
+import java.io.IOException;
+import java.util.ArrayList;
+import java.util.HashMap;
+import java.util.Iterator;
+import java.util.Map;
+
+import javax.faces.component.UIComponent;
+import javax.faces.context.FacesContext;
+import javax.faces.event.ActionEvent;
+
import org.ajax4jsf.event.AjaxEvent;
import org.ajax4jsf.javascript.JSReference;
import org.ajax4jsf.javascript.ScriptUtils;
@@ -34,16 +44,7 @@
import org.richfaces.component.util.HtmlUtil;
import org.richfaces.event.SwitchablePanelSwitchEvent;
-import javax.faces.component.UIComponent;
-import javax.faces.context.FacesContext;
-import javax.faces.event.ActionEvent;
-import java.io.IOException;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.Map;
-
/**
* @author Nick Belaevski - nbelaevski at exadel.com
* created 12.01.2007
@@ -89,7 +90,7 @@
new SwitchablePanelSwitchEvent(panel, null, eventTab).queue();
new ActionEvent(eventTab).queue();
- if (UISwitchablePanel.AJAX_METHOD.equals(eventTab.getSwitchType()))
+ if (UISwitchablePanel.AJAX_METHOD.equals(eventTab.getSwitchTypeOrDefault()))
{
new AjaxEvent(eventTab).queue();
}
@@ -226,10 +227,7 @@
public void encodeTabs(FacesContext context, UITabPanel tabPanel) throws IOException {
ComponentVariables componentVariables = ComponentsVariableResolver.getVariables(this, tabPanel);
- Object checkedValue = checkValue(tabPanel.getSelectedTab());
- if (checkedValue == null) {
- checkedValue = checkValue(tabPanel.getValue());
- }
+ Object checkedValue = checkValue(tabPanel.getValue());
boolean useFirstRenderedTab = checkedValue == null;
UITabPanel pane = tabPanel;
@@ -286,7 +284,7 @@
if (tab.isRendered()) {
if (!clientSide) {
- clientSide = UISwitchablePanel.CLIENT_METHOD.equals(tab.getSwitchType());
+ clientSide = UISwitchablePanel.CLIENT_METHOD.equals(tab.getSwitchTypeOrDefault());
}
tab.encodeTab(context, active);
Modified: trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java
===================================================================
--- trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/main/java/org/richfaces/renderkit/TabRendererBase.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -83,7 +83,7 @@
}
protected boolean shouldRenderTab(UITab tab) {
- String method = tab.getSwitchType();
+ String method = tab.getSwitchTypeOrDefault();
return (tab.isActive() || UISwitchablePanel.CLIENT_METHOD.equals(method));
}
Modified: trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java
===================================================================
--- trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabPanelTest.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -102,7 +102,9 @@
tab3.setSwitchType(UISwitchablePanel.SERVER_METHOD);
tabPanel.setRenderedValue(tab3.getName());
-
+ Object state = tabPanel.saveState(facesContext);
+ tabPanel.restoreState(facesContext, state);
+
Iterator it = tabPanel.getSwitchedFacetsAndChildren();
assertEquals(tab3.getId(), ((UITab)it.next()).getId());
}
Modified: trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabTest.java
===================================================================
--- trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabTest.java 2007-08-10 16:11:08 UTC (rev 2203)
+++ trunk/ui/tabPanel/src/test/java/org/richfaces/component/UITabTest.java 2007-08-10 16:13:35 UTC (rev 2204)
@@ -21,13 +21,14 @@
package org.richfaces.component;
-import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
-
+import javax.faces.FacesException;
import javax.faces.component.UIForm;
import javax.faces.component.html.HtmlForm;
import javax.faces.context.FacesContext;
import javax.faces.render.Renderer;
+import org.ajax4jsf.tests.AbstractAjax4JsfTestCase;
+
/**
* Unit test for UITab.
*/
@@ -75,15 +76,27 @@
}
public void testGetPane1() throws Exception {
- assertNull(tab.getPane());
+ try {
+ tab.getPane();
+
+ fail();
+ } catch (FacesException e) {
+ }
+
tabPanel.getChildren().add(tab);
assertTrue(tab.getPane() instanceof UITabPanel);
}
public void testGetPane2() throws Exception {
- assertNull(tab.getPane());
+ try {
+ tab.getPane();
+
+ fail();
+ } catch (FacesException e) {
+ }
+
form.getChildren().add(tab);
try {
@@ -248,5 +261,12 @@
public void setFocus(String arg0) {
}
+
+ public String getSwitchType() {
+ return null;
+ }
+
+ public void setSwitchType(String newvalue) {
+ }
}
}
More information about the richfaces-svn-commits
mailing list