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 da394f5b EMPIREDB-439 ControlTag: placeholder id attribute fix
da394f5b is described below
commit da394f5bad64b2cc5ed651b3da8e98965f4a6bb3
Author: Rainer Döbele <[email protected]>
AuthorDate: Sat Oct 12 15:09:46 2024 +0200
EMPIREDB-439
ControlTag: placeholder id attribute fix
---
.../java/org/apache/empire/jsf2/components/FormGridTag.java | 10 ++++++++--
.../main/java/org/apache/empire/jsf2/components/SelectTag.java | 4 ++--
.../java/org/apache/empire/jsf2/utils/TagEncodingHelper.java | 6 +++---
3 files changed, 13 insertions(+), 7 deletions(-)
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 80a014b6..8066383f 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
@@ -112,14 +112,20 @@ public class FormGridTag extends UIOutput // implements
NamingContainer
{ // label facet
placeholderFacet.encodeAll(context);
}
- else if (renderPlaceholder ||
ObjectUtils.getBoolean(controlTag.getAttributes().get("placeholder")))
+ else if (renderPlaceholder ||
ObjectUtils.getBoolean(controlTag.getAttributes().get("placeholder"), false))
{ // render placeholder
ResponseWriter writer = context.getResponseWriter();
String placeholderTag = (CONTROL_TAG!=null ? CONTROL_TAG :
INPUT_WRAPPER_TAG);
writer.startElement(placeholderTag, controlTag);
+ // id attribute
+ if (CONTROL_TAG!=null &&
TagEncodingHelper.hasComponentId(controlTag))
+ writer.writeAttribute(InputControl.HTML_ATTR_ID,
controlTag.getClientId(), null);
+ // Style class
writer.writeAttribute(InputControl.HTML_ATTR_CLASS,
TagStyleClass.CONTROL_PLACEHOLDER.get(), null);
- if (InputControl.HTML_TAG_TD.equalsIgnoreCase(placeholderTag))
+ // Legacy two <td>
+ if (CONTROL_TAG==null &&
InputControl.HTML_TAG_TD.equalsIgnoreCase(placeholderTag))
writer.writeAttribute("colspan", 2, null);
+ // done
writer.endElement(placeholderTag);
}
}
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 237cc4ba..8bf76e7e 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
@@ -408,9 +408,9 @@ public class SelectTag extends UIInput implements
NamingContainer
protected void copyAttributes(UISelectOne input)
{
// set id
- String inputId = this.getId();
- if (TagEncodingHelper.hasComponentId(inputId))
+ if (TagEncodingHelper.hasComponentId(this))
{ // remove trailing underscore (workaround since parent and child
may not have the same name)
+ String inputId = this.getId();
if (inputId.endsWith("_"))
{
inputId = inputId.substring(0, inputId.length() - 1);
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 2f9df6d7..089ad80d 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
@@ -1547,12 +1547,12 @@ public class TagEncodingHelper implements
NamingContainer
public boolean hasComponentId()
{
- String id = component.getId();
- return (id!=null && id.length()>0 && !id.startsWith(FACES_ID_PREFIX));
+ return hasComponentId(this.component);
}
- public static boolean hasComponentId(String id)
+ public static boolean hasComponentId(UIComponent component)
{
+ String id = component.getId();
return (id!=null && id.length()>0 && !id.startsWith(FACES_ID_PREFIX));
}