EMPIREDB-232
bugfix: reset client-id inside UIData
diff --git a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
index 051b777..f64dfa6 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/controls/InputControl.java
@@ -179,12 +179,23 @@
try {
this.creatingComponents = true;
createInputComponents(comp, ii, context, children);
+ // check
+ boolean resetChildId = ii.isInsideUIData();
+ if (resetChildId && log.isDebugEnabled())
+ { // Debug-Info only
+ UIComponent c1 = comp.getChildren().get(0);
+ String clientId = c1.getClientId();
+ log.debug("Performing ChildId-reset for {}", clientId);
+ }
// add attached objects
UIComponent parent = comp;
while (!(parent instanceof UIInput))
parent = parent.getParent();
for (UIComponent child : children)
- { // check type
+ { // reset child-id
+ if (resetChildId && child.getId()!=null)
+ child.setId(child.getId());
+ // check type
if (!(child instanceof UIComponentBase))
continue;
// add attached objects
@@ -209,8 +220,7 @@
{
// Encode all
for (UIComponent child : comp.getChildren())
- { // reset child-id
- // render
+ { // render
if (child.isRendered())
child.encodeAll(context);
}