This is an automated email from the ASF dual-hosted git repository.

doebele pushed a commit to branch master
in repository https://gitbox.apache.org/repos/asf/empire-db.git


The following commit(s) were added to refs/heads/master by this push:
     new aa0841ac EMPIREDB-456 TagEncodingHelper: allow column reset
aa0841ac is described below

commit aa0841acb905a420022dcfd262c4253090efbfc0
Author: Rainer Döbele <doeb...@apache.org>
AuthorDate: Wed Jul 23 15:26:11 2025 +0200

    EMPIREDB-456
    TagEncodingHelper: allow column reset
---
 .../apache/empire/jakarta/components/ControlTag.java  | 12 ++++++++++--
 .../apache/empire/jakarta/components/FormGridTag.java | 12 +++++++++---
 .../apache/empire/jakarta/components/InputTag.java    | 12 ++++++++++--
 .../apache/empire/jakarta/components/LabelTag.java    | 11 +++++++++--
 .../org/apache/empire/jakarta/components/LinkTag.java | 12 +++++++++---
 .../apache/empire/jakarta/components/MenuItemTag.java |  3 +--
 .../apache/empire/jakarta/components/MenuListTag.java | 12 +++++++++---
 .../org/apache/empire/jakarta/components/NbspTag.java |  8 ++++----
 .../apache/empire/jakarta/components/RecordTag.java   |  5 +++--
 .../apache/empire/jakarta/components/SelectTag.java   |  4 +++-
 .../apache/empire/jakarta/components/TabPageTag.java  | 13 ++++++++++---
 .../apache/empire/jakarta/components/TabViewTag.java  | 12 +++++++++---
 .../apache/empire/jakarta/components/TitleTag.java    | 11 +++++++++--
 .../org/apache/empire/jakarta/components/UnitTag.java | 19 +++++++++++++------
 .../apache/empire/jakarta/components/ValueTag.java    | 11 +++++++++--
 .../empire/jakarta/utils/TagEncodingHelper.java       |  9 +++++++++
 .../jakarta/utils/TagEncodingHelperFactory.java       |  8 ++++++++
 .../org/apache/empire/jsf2/components/ControlTag.java | 12 ++++++++++--
 .../apache/empire/jsf2/components/FormGridTag.java    | 12 +++++++++---
 .../org/apache/empire/jsf2/components/InputTag.java   | 12 ++++++++++--
 .../org/apache/empire/jsf2/components/LabelTag.java   | 11 +++++++++--
 .../org/apache/empire/jsf2/components/LinkTag.java    | 12 +++++++++---
 .../apache/empire/jsf2/components/MenuItemTag.java    |  3 +--
 .../apache/empire/jsf2/components/MenuListTag.java    | 12 +++++++++---
 .../org/apache/empire/jsf2/components/NbspTag.java    |  4 ++--
 .../org/apache/empire/jsf2/components/RecordTag.java  |  5 +++--
 .../org/apache/empire/jsf2/components/SelectTag.java  |  4 +++-
 .../org/apache/empire/jsf2/components/TabPageTag.java | 13 ++++++++++---
 .../org/apache/empire/jsf2/components/TabViewTag.java | 12 +++++++++---
 .../org/apache/empire/jsf2/components/TitleTag.java   | 11 +++++++++--
 .../org/apache/empire/jsf2/components/UnitTag.java    | 11 +++++++++--
 .../org/apache/empire/jsf2/components/ValueTag.java   | 11 +++++++++--
 .../apache/empire/jsf2/utils/TagEncodingHelper.java   | 11 ++++++++++-
 .../empire/jsf2/utils/TagEncodingHelperFactory.java   |  8 ++++++++
 34 files changed, 263 insertions(+), 75 deletions(-)

diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
index 654fbbcf..003a1308 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ControlTag.java
@@ -28,6 +28,7 @@ import org.apache.empire.jakarta.utils.ControlRenderInfo;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -45,7 +46,7 @@ import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 import jakarta.faces.convert.ConverterException;
 
-public class ControlTag extends UIInput implements NamingContainer
+public class ControlTag extends UIInput implements NamingContainer, 
TagEncodingHolder
 {
     /**
      * ControlSeparatorComponent
@@ -258,7 +259,14 @@ public class ControlTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     protected void saveState()
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
index 4e61c233..2df24105 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/FormGridTag.java
@@ -25,17 +25,17 @@ import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.ControlRenderInfo;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class FormGridTag extends UIOutput // implements NamingContainer
+public class FormGridTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = 
LoggerFactory.getLogger(FormGridTag.class);
@@ -142,7 +142,13 @@ public class FormGridTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
         
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
index e8bdb8ba..a805e036 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/InputTag.java
@@ -27,6 +27,7 @@ import org.apache.empire.jakarta.utils.ControlRenderInfo;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -42,7 +43,7 @@ import jakarta.faces.context.ResponseWriter;
 import jakarta.faces.convert.ConverterException;
 import jakarta.faces.view.AttachedObjectHandler;
 
-public class InputTag extends UIInput implements NamingContainer
+public class InputTag extends UIInput implements NamingContainer, 
TagEncodingHolder
 {
     // Logger
     private static final Logger       log                    = 
LoggerFactory.getLogger(InputTag.class);
@@ -78,7 +79,14 @@ public class InputTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     protected void saveState()
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LabelTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LabelTag.java
index e237290e..7c5e6ac6 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LabelTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LabelTag.java
@@ -25,6 +25,7 @@ import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -35,7 +36,7 @@ import jakarta.faces.component.visit.VisitCallback;
 import jakarta.faces.component.visit.VisitContext;
 import jakarta.faces.context.FacesContext;
 
-public class LabelTag extends UIOutput // implements NamingContainer
+public class LabelTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(LabelTag.class);
@@ -52,7 +53,13 @@ public class LabelTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     /**
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LinkTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LinkTag.java
index 9f9c7869..f4f4ae01 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LinkTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/LinkTag.java
@@ -33,12 +33,12 @@ import org.apache.empire.jakarta.utils.ParameterMap;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.component.UIPanel;
 import jakarta.faces.component.UIParameter;
@@ -49,7 +49,7 @@ import jakarta.faces.component.visit.VisitContext;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class LinkTag extends UIOutput // implements NamingContainer
+public class LinkTag extends UIOutput implements TagEncodingHolder
 {
     // or HtmlOutcomeTargetLink
     // or HtmlOutputLink
@@ -83,7 +83,13 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     /**
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuItemTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuItemTag.java
index 550beb15..1d0bb5b0 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuItemTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuItemTag.java
@@ -28,7 +28,6 @@ import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.html.HtmlOutcomeTargetLink;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
@@ -49,7 +48,7 @@ public class MenuItemTag extends LinkTag
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY; 
     }
     
     /* 
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuListTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuListTag.java
index 5e3303b2..51257ae2 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuListTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/MenuListTag.java
@@ -24,15 +24,15 @@ import org.apache.empire.commons.StringUtils;
 import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class MenuListTag extends UIOutput // implements NamingContainer
+public class MenuListTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     // private static final Logger log = 
LoggerFactory.getLogger(MenuListTag.class);
@@ -64,7 +64,13 @@ public class MenuListTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
         
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/NbspTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/NbspTag.java
index d3953dd6..8eefd8a2 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/NbspTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/NbspTag.java
@@ -20,13 +20,13 @@ package org.apache.empire.jakarta.components;
 
 import java.io.IOException;
 
-import jakarta.faces.component.UINamingContainer;
+import org.apache.empire.commons.ObjectUtils;
+import org.apache.empire.jakarta.utils.TagEncodingHelper;
+
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-import org.apache.empire.commons.ObjectUtils;
-
 public class NbspTag extends UIOutput // implements NamingContainer
 {
     // private int count = 1;
@@ -34,7 +34,7 @@ public class NbspTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY; 
     }
 
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/RecordTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/RecordTag.java
index 98992d4e..f5c9db48 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/RecordTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/RecordTag.java
@@ -23,10 +23,11 @@ import jakarta.faces.component.UIComponentBase;
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.data.Record;
 import org.apache.empire.data.RecordData;
+import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class RecordTag extends UIComponentBase // implements NamingContainer
+public class RecordTag extends UIComponentBase
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(RecordTag.class);
@@ -39,7 +40,7 @@ public class RecordTag extends UIComponentBase // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
     }
 
     public Object getRecord()
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
index 1b777db6..65462316 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/SelectTag.java
@@ -38,6 +38,7 @@ import 
org.apache.empire.jakarta.controls.InputControl.InputInfo;
 import org.apache.empire.jakarta.controls.InputControlManager;
 import org.apache.empire.jakarta.controls.SelectInputControl;
 import org.apache.empire.jakarta.utils.StyleClass;
+import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -201,7 +202,8 @@ public class SelectTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
     }
     
     /**
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabPageTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabPageTag.java
index 4e56f2c4..909f8c25 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabPageTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabPageTag.java
@@ -25,19 +25,19 @@ import 
org.apache.empire.jakarta.components.TabViewTag.TabViewMode;
 import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
 import jakarta.faces.component.NamingContainer;
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.component.UIPanel;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class TabPageTag extends UIOutput implements NamingContainer
+public class TabPageTag extends UIOutput implements NamingContainer, 
TagEncodingHolder
 {
     // Logger
     private static final Logger log = 
LoggerFactory.getLogger(TabPageTag.class);
@@ -51,7 +51,14 @@ public class TabPageTag extends UIOutput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        // return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabViewTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabViewTag.java
index a9bcefd4..51a65bca 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabViewTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TabViewTag.java
@@ -31,6 +31,7 @@ import org.apache.empire.jakarta.controls.InputControlManager;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -38,7 +39,6 @@ import org.slf4j.LoggerFactory;
 import jakarta.el.MethodExpression;
 import jakarta.el.ValueExpression;
 import jakarta.faces.component.UIComponent;
-import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.component.html.HtmlCommandLink;
 import jakarta.faces.context.FacesContext;
@@ -47,7 +47,7 @@ import jakarta.faces.event.AbortProcessingException;
 import jakarta.faces.event.ActionEvent;
 import jakarta.faces.event.ActionListener;
 
-public class TabViewTag extends UIOutput // implements NamingContainer
+public class TabViewTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger       log                    = 
LoggerFactory.getLogger(TabViewTag.class);
@@ -153,7 +153,13 @@ public class TabViewTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     public TabViewMode getViewMode()
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TitleTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TitleTag.java
index f66c705f..5001e764 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TitleTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/TitleTag.java
@@ -28,6 +28,7 @@ import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -36,7 +37,7 @@ import jakarta.faces.component.UIOutput;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class TitleTag extends UIOutput // implements NamingContainer
+public class TitleTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(TitleTag.class);
@@ -51,7 +52,13 @@ public class TitleTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/UnitTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/UnitTag.java
index cc6625c4..3c4c99b6 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/UnitTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/UnitTag.java
@@ -20,20 +20,21 @@ package org.apache.empire.jakarta.components;
 
 import java.io.IOException;
 
-import jakarta.faces.component.UIOutput;
-import jakarta.faces.context.FacesContext;
-import jakarta.faces.context.ResponseWriter;
-
 import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.Column;
 import org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.jakarta.controls.TextInputControl;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class UnitTag extends UIOutput // implements NamingContainer
+import jakarta.faces.component.UIOutput;
+import jakarta.faces.context.FacesContext;
+import jakarta.faces.context.ResponseWriter;
+
+public class UnitTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(UnitTag.class);
@@ -50,7 +51,13 @@ public class UnitTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ValueTag.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ValueTag.java
index 57fac671..894cccac 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ValueTag.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/components/ValueTag.java
@@ -25,6 +25,7 @@ import org.apache.empire.jakarta.controls.InputControl;
 import org.apache.empire.jakarta.utils.StyleClass;
 import org.apache.empire.jakarta.utils.TagEncodingHelper;
 import org.apache.empire.jakarta.utils.TagEncodingHelperFactory;
+import 
org.apache.empire.jakarta.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jakarta.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -33,7 +34,7 @@ import jakarta.faces.component.UIOutput;
 import jakarta.faces.context.FacesContext;
 import jakarta.faces.context.ResponseWriter;
 
-public class ValueTag extends UIOutput // implements NamingContainer
+public class ValueTag extends UIOutput implements TagEncodingHolder
 {
 
     // Logger
@@ -49,7 +50,13 @@ public class ValueTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "jakarta.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
index fa010462..f765dbdf 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelper.java
@@ -77,6 +77,7 @@ import jakarta.faces.component.NamingContainer;
 import jakarta.faces.component.UIComponent;
 import jakarta.faces.component.UIData;
 import jakarta.faces.component.UIInput;
+import jakarta.faces.component.UINamingContainer;
 import jakarta.faces.component.UIOutput;
 import jakarta.faces.component.html.HtmlOutputLabel;
 import jakarta.faces.component.html.HtmlOutputText;
@@ -90,6 +91,8 @@ import jakarta.faces.context.ResponseWriter;
  */
 public class TagEncodingHelper implements NamingContainer
 {
+    public static final String COMPONENT_FAMILY = 
UINamingContainer.COMPONENT_FAMILY;
+    
     public static final String FACES_ID_PREFIX = "j_id";  // Standard Faces ID 
Prefix
 
     public static boolean CSS_STYLE_USE_INPUT_TYPE_INSTEAD_OF_DATA_TYPE = true;
@@ -745,6 +748,12 @@ public class TagEncodingHelper implements NamingContainer
         if (this.valueInfo!=null) 
            ((ValueInfoImpl)this.valueInfo).reset();
     }
+
+    public void resetColumn()
+    {
+        this.column = null;
+        reset();
+    }
     
     public Object findRecordComponent()
     {
diff --git 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelperFactory.java
 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelperFactory.java
index c065c324..c66d4c2e 100644
--- 
a/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelperFactory.java
+++ 
b/empire-db-jakarta-faces/src/main/java/org/apache/empire/jakarta/utils/TagEncodingHelperFactory.java
@@ -22,6 +22,14 @@ import jakarta.faces.component.UIOutput;
 
 public abstract class TagEncodingHelperFactory
 {
+    /**
+     * TagEncodingHolder
+     */
+    public static interface TagEncodingHolder
+    {
+        TagEncodingHelper getEncodingHelper();
+    }
+    
     /**
      * DefaultTagEncodingHelperFactory
      * Factory creating instances of TagEncodingHelper
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
index d4d5eadd..23f1e6e9 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ControlTag.java
@@ -42,10 +42,11 @@ import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
 import org.apache.empire.jsf2.utils.TagStyleClass;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ControlTag extends UIInput implements NamingContainer
+public class ControlTag extends UIInput implements NamingContainer, 
TagEncodingHolder
 {
     /**
      * ControlSeparatorComponent
@@ -258,7 +259,14 @@ public class ControlTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     protected void saveState()
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
index 4155b6be..e52d2e67 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/FormGridTag.java
@@ -21,7 +21,6 @@ package org.apache.empire.jsf2.components;
 import java.io.IOException;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
@@ -31,11 +30,12 @@ import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.ControlRenderInfo;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class FormGridTag extends UIOutput // implements NamingContainer
+public class FormGridTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = 
LoggerFactory.getLogger(FormGridTag.class);
@@ -142,7 +142,13 @@ public class FormGridTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
         
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
index a700efaa..75af3264 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/InputTag.java
@@ -38,11 +38,12 @@ import org.apache.empire.jsf2.utils.ControlRenderInfo;
 import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class InputTag extends UIInput implements NamingContainer
+public class InputTag extends UIInput implements NamingContainer, 
TagEncodingHolder
 {
     // Logger
     private static final Logger       log                    = 
LoggerFactory.getLogger(InputTag.class);
@@ -78,7 +79,14 @@ public class InputTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     protected void saveState()
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
index 86204e46..4593cd9b 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LabelTag.java
@@ -32,10 +32,11 @@ import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
 import org.apache.empire.jsf2.utils.TagStyleClass;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class LabelTag extends UIOutput // implements NamingContainer
+public class LabelTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(LabelTag.class);
@@ -52,7 +53,13 @@ public class LabelTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     /**
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
index 20dee572..e48ea718 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/LinkTag.java
@@ -23,7 +23,6 @@ import java.util.List;
 import java.util.Map;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.component.UIPanel;
 import javax.faces.component.UIParameter;
@@ -45,11 +44,12 @@ import org.apache.empire.jsf2.utils.ParameterMap;
 import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class LinkTag extends UIOutput // implements NamingContainer
+public class LinkTag extends UIOutput implements TagEncodingHolder
 {
     // or HtmlOutcomeTargetLink
     // or HtmlOutputLink
@@ -83,7 +83,13 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     /**
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
index b8023c4f..c2f122d4 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
@@ -21,7 +21,6 @@ package org.apache.empire.jsf2.components;
 import java.io.IOException;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.html.HtmlOutcomeTargetLink;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
@@ -49,7 +48,7 @@ public class MenuItemTag extends LinkTag
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY; 
     }
     
     /* 
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
index 43914247..c4cc2393 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
@@ -21,7 +21,6 @@ package org.apache.empire.jsf2.components;
 import java.io.IOException;
 
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
@@ -30,9 +29,10 @@ import org.apache.empire.commons.StringUtils;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 
-public class MenuListTag extends UIOutput // implements NamingContainer
+public class MenuListTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     // private static final Logger log = 
LoggerFactory.getLogger(MenuListTag.class);
@@ -64,7 +64,13 @@ public class MenuListTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
         
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/NbspTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/NbspTag.java
index 00cad899..552a976d 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/NbspTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/NbspTag.java
@@ -20,12 +20,12 @@ package org.apache.empire.jsf2.components;
 
 import java.io.IOException;
 
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 
 import org.apache.empire.commons.ObjectUtils;
+import org.apache.empire.jsf2.utils.TagEncodingHelper;
 
 public class NbspTag extends UIOutput // implements NamingContainer
 {
@@ -34,7 +34,7 @@ public class NbspTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY; 
     }
 
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/RecordTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/RecordTag.java
index 0d8052ff..82fea04b 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/RecordTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/RecordTag.java
@@ -23,10 +23,11 @@ import javax.faces.component.UIComponentBase;
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.data.Record;
 import org.apache.empire.data.RecordData;
+import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class RecordTag extends UIComponentBase // implements NamingContainer
+public class RecordTag extends UIComponentBase
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(RecordTag.class);
@@ -39,7 +40,7 @@ public class RecordTag extends UIComponentBase // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
     }
 
     public Object getRecord()
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
index 9f673947..580fe001 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/SelectTag.java
@@ -47,6 +47,7 @@ import org.apache.empire.jsf2.controls.InputControl.InputInfo;
 import org.apache.empire.jsf2.controls.InputControlManager;
 import org.apache.empire.jsf2.controls.SelectInputControl;
 import org.apache.empire.jsf2.utils.StyleClass;
+import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
@@ -201,7 +202,8 @@ public class SelectTag extends UIInput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        // return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
     }
     
     /**
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
index 56b7ee02..ec1bcc49 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabPageTag.java
@@ -22,7 +22,6 @@ import java.io.IOException;
 
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.component.UIPanel;
 import javax.faces.context.FacesContext;
@@ -33,11 +32,12 @@ import 
org.apache.empire.jsf2.components.TabViewTag.TabViewMode;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class TabPageTag extends UIOutput implements NamingContainer
+public class TabPageTag extends UIOutput implements NamingContainer, 
TagEncodingHolder
 {
     // Logger
     private static final Logger log = 
LoggerFactory.getLogger(TabPageTag.class);
@@ -51,7 +51,14 @@ public class TabPageTag extends UIOutput implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY; 
+        // return UINamingContainer.COMPONENT_FAMILY; 
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
     
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
index 9b2187d4..76db3887 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TabViewTag.java
@@ -25,7 +25,6 @@ import java.util.List;
 import javax.el.MethodExpression;
 import javax.el.ValueExpression;
 import javax.faces.component.UIComponent;
-import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.component.html.HtmlCommandLink;
 import javax.faces.context.FacesContext;
@@ -43,11 +42,12 @@ import org.apache.empire.jsf2.controls.InputControlManager;
 import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.apache.empire.jsf2.utils.TagStyleClass;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class TabViewTag extends UIOutput // implements NamingContainer
+public class TabViewTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger       log                    = 
LoggerFactory.getLogger(TabViewTag.class);
@@ -153,7 +153,13 @@ public class TabViewTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return UINamingContainer.COMPONENT_FAMILY;
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     public TabViewMode getViewMode()
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
index 4e7c0de8..5850938a 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/TitleTag.java
@@ -33,10 +33,11 @@ import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
 import org.apache.empire.jsf2.utils.TagStyleClass;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class TitleTag extends UIOutput // implements NamingContainer
+public class TitleTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(TitleTag.class);
@@ -51,7 +52,13 @@ public class TitleTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/UnitTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/UnitTag.java
index 0a03dbbc..1ee5b7e8 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/UnitTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/UnitTag.java
@@ -30,10 +30,11 @@ import 
org.apache.empire.exceptions.InvalidArgumentException;
 import org.apache.empire.jsf2.controls.TextInputControl;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class UnitTag extends UIOutput // implements NamingContainer
+public class UnitTag extends UIOutput implements TagEncodingHolder
 {
     // Logger
     private static final Logger log = LoggerFactory.getLogger(UnitTag.class);
@@ -50,7 +51,13 @@ public class UnitTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
index 005bfaab..6954b460 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/ValueTag.java
@@ -30,10 +30,11 @@ import org.apache.empire.jsf2.utils.StyleClass;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
 import org.apache.empire.jsf2.utils.TagStyleClass;
+import org.apache.empire.jsf2.utils.TagEncodingHelperFactory.TagEncodingHolder;
 import org.slf4j.Logger;
 import org.slf4j.LoggerFactory;
 
-public class ValueTag extends UIOutput // implements NamingContainer
+public class ValueTag extends UIOutput implements TagEncodingHolder
 {
 
     // Logger
@@ -49,7 +50,13 @@ public class ValueTag extends UIOutput // implements 
NamingContainer
     @Override
     public String getFamily()
     {
-        return "javax.faces.NamingContainer";
+        return TagEncodingHelper.COMPONENT_FAMILY;
+    }
+
+    @Override
+    public TagEncodingHelper getEncodingHelper()
+    {
+        return helper;
     }
 
     @Override
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
index 05e0c778..1c594fda 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
@@ -34,6 +34,7 @@ import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
 import javax.faces.component.UIData;
 import javax.faces.component.UIInput;
+import javax.faces.component.UINamingContainer;
 import javax.faces.component.UIOutput;
 import javax.faces.component.html.HtmlOutputLabel;
 import javax.faces.component.html.HtmlOutputText;
@@ -90,6 +91,8 @@ import org.slf4j.LoggerFactory;
  */
 public class TagEncodingHelper implements NamingContainer
 {
+    public static final String COMPONENT_FAMILY = 
UINamingContainer.COMPONENT_FAMILY;
+    
     public static final String FACES_ID_PREFIX = "j_id";  // Standard Faces ID 
Prefix
 
     public static boolean CSS_STYLE_USE_INPUT_TYPE_INSTEAD_OF_DATA_TYPE = true;
@@ -458,7 +461,7 @@ public class TagEncodingHelper implements NamingContainer
     protected TagEncodingHelper(UIOutput component, String cssStyleClass)
     {
         this.component = component;
-        this.cssStyleClass = cssStyleClass;
+        this.cssStyleClass = cssStyleClass;        
     }
 
     /**
@@ -745,6 +748,12 @@ public class TagEncodingHelper implements NamingContainer
         if (this.valueInfo!=null) 
            ((ValueInfoImpl)this.valueInfo).reset();
     }
+
+    public void resetColumn()
+    {
+        this.column = null;
+        reset();
+    }
     
     public Object findRecordComponent()
     {
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelperFactory.java
 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelperFactory.java
index 5aa9f534..cf122b58 100644
--- 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelperFactory.java
+++ 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelperFactory.java
@@ -22,6 +22,14 @@ import javax.faces.component.UIOutput;
 
 public abstract class TagEncodingHelperFactory
 {
+    /**
+     * TagEncodingHolder
+     */
+    public static interface TagEncodingHolder
+    {
+        TagEncodingHelper getEncodingHelper();
+    }
+    
     /**
      * DefaultTagEncodingHelperFactory
      * Factory creating instances of TagEncodingHelper

Reply via email to