Author: abelevich
Date: 2009-12-03 14:01:07 -0500 (Thu, 03 Dec 2009)
New Revision: 16065
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java
Log:
move SubTableState resolve code to the createComponentState method
Modified:
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java
===================================================================
---
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java 2009-12-03
18:59:41 UTC (rev 16064)
+++
root/ui-sandbox/trunk/components/tables/ui/src/main/java/org/richfaces/component/UISubTable.java 2009-12-03
19:01:07 UTC (rev 16065)
@@ -107,11 +107,6 @@
return true;
}
- @Override
- protected DataComponentState createComponentState() {
- return new SubTableState(getClientId(), getFirst(), getRows());
- }
-
public void setBreakBefore(boolean newBreakBefore) {
throw new IllegalStateException("Property 'breakBefore' for subtable is
read-only");
}
@@ -142,18 +137,19 @@
public SubTableState getCurrentComponentState() {
DataComponentState dataComponentState = getComponentState();
if(dataComponentState instanceof SubTableState) {
- return (SubTableState)dataComponentState;
+ DataTableState parentState = getParentState();
+ parentState.addSubTableState((SubTableState)dataComponentState);
+
+ return (SubTableState) dataComponentState;
}
- return null;
+ return null;
}
public DataTableState getParentState() {
-
DataTableState dataTableState = null;
-
+
UIComponent component = getParent();
if(component instanceof UIDataTable) {
-
UIDataTable dataTable = (UIDataTable)component;
DataComponentState state = dataTable.getComponentState();
@@ -161,36 +157,24 @@
dataTableState = (DataTableState)state;
}
}
+
return dataTableState;
}
@Override
- public DataComponentState getComponentState() {
+ protected DataComponentState createComponentState() {
+ DataComponentState state = null;
+ DataTableState parentState = getParentState();
- DataTableState dataTableState = getParentState();
-
- if(componentState == null) {
- ELContext elContext = getFacesContext().getELContext();
+ if(parentState != null) {
+ state = parentState.getChildState(getClientId());
+ }
- ValueExpression expression = getValueExpression("componentState");
- if(expression != null) {
- componentState = (SubTableState)expression.getValue(elContext);
- }
-
- if(componentState == null) {
- componentState = dataTableState.getChildState(getClientId());
- }
-
- if(componentState == null) {
- componentState = createComponentState();
- }
-
- if(expression != null && !expression.isReadOnly(elContext)) {
- expression.setValue(elContext, componentState);
- }
+ if(state == null) {
+ state = new SubTableState(getClientId(), getFirst(), getRows());
}
- dataTableState.addChildState(componentState);
- return componentState;
+
+ return state;
}
public void setExpanded(boolean expanded) {
Show replies by date