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 6f3ff5e3 EMPIREDB-422 MenuItemTag generated id
6f3ff5e3 is described below
commit 6f3ff5e3cd5d2d751ecede32e214639b9c720454
Author: Rainer Döbele <[email protected]>
AuthorDate: Mon Apr 29 08:39:51 2024 +0200
EMPIREDB-422
MenuItemTag generated id
---
.../apache/empire/jsf2/components/MenuItemTag.java | 30 +++++++++++++++++-----
.../apache/empire/jsf2/components/MenuListTag.java | 24 ++++++++---------
2 files changed, 35 insertions(+), 19 deletions(-)
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 52298c1c..3a35b721 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
@@ -22,7 +22,6 @@ import java.io.IOException;
import javax.faces.component.UIComponent;
import javax.faces.component.UINamingContainer;
-import javax.faces.component.UIPanel;
import javax.faces.component.html.HtmlOutcomeTargetLink;
import javax.faces.context.FacesContext;
import javax.faces.context.ResponseWriter;
@@ -38,7 +37,7 @@ public class MenuItemTag extends LinkTag
// Logger
private static final Logger log =
LoggerFactory.getLogger(MenuItemTag.class);
- protected MenuListTag parentMenu = null;
+ protected MenuListTag parentMenu;
protected String menuId;
public MenuItemTag()
@@ -52,6 +51,10 @@ public class MenuItemTag extends LinkTag
return UINamingContainer.COMPONENT_FAMILY;
}
+ /*
+ * Auto-generate Menu item component id
+ * Works, but is too inflexible
+ *
@Override
public void setParent(UIComponent parent)
{
@@ -72,13 +75,29 @@ public class MenuItemTag extends LinkTag
}
}
}
+ */
+
+ @Override
+ public void setId(String id)
+ {
+ if (id.endsWith("@")) {
+ // Generate MenuItem component id from menuId
+ menuId = helper.getTagAttributeString("menuId");
+ if (StringUtils.isNotEmpty(menuId)) {
+ int idx = id.indexOf('@');
+ String ident = (idx>0) ? id.substring(0,idx)+menuId : menuId;
+ id = TagEncodingHelper.buildComponentId(ident);
+ }
+ }
+ super.setId(id);
+ }
@Override
public void encodeBegin(FacesContext context)
throws IOException
{
// Detect Parent Menu
- parentMenu = getParentMenu();
+ parentMenu = findParentMenu();
if (menuId==null)
menuId = helper.getTagAttributeString("menuId");
@@ -90,8 +109,7 @@ public class MenuItemTag extends LinkTag
writer.startElement("li", this);
//Compoent-ID
- if (helper.hasComponentId())
- writer.writeAttribute("id", getClientId(context), null);
+ helper.writeComponentId(writer, false);
// Style Class
helper.writeAttribute(writer, "class", getStyleClass());
@@ -174,7 +192,7 @@ public class MenuItemTag extends LinkTag
return null;
}
- protected MenuListTag getParentMenu()
+ protected MenuListTag findParentMenu()
{
// walk upwards the parent component tree and return the first record
component found (if
// any)
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 4e9cd86f..709da792 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
@@ -46,8 +46,8 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
disabledClass,
expandedClass,
itemWrapTag,
- defaultItemClass,
- autoItemId;
+ defaultItemClass;
+ // autoItemId
}
protected String currentId = null;
@@ -57,7 +57,7 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
protected String expandedClass = null;
protected String itemWrapTag = null;
protected String defaultItemClass = null; // e.g. "level{}"
- protected Boolean autoItemId = null;
+ // protected Boolean autoItemId = null;
protected int level = 0;
private MenuListTag parentMenu = null;
@@ -82,17 +82,11 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
writer.startElement("ul", this);
//Compoent-ID
- if (helper.hasComponentId())
- writer.writeAttribute("id", getClientId(context), null);
+ helper.writeComponentId(writer, false);
// Style class and style
helper.writeAttribute(writer, "class", getStyleClass());
helper.writeAttribute(writer, "style",
helper.getTagAttributeString("style"));
- // previousId
- /*
- if (prevMenuId!=null)
- helper.writeAttribute(writer, "previousId", prevMenuId);
- */
}
@Override
@@ -132,7 +126,7 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
// find parent
if (parentMenu==null)
- parentMenu = getParentMenu();
+ parentMenu = findParentMenu();
if (parentMenu==null)
return;
@@ -220,19 +214,21 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
return defaultItemClass;
}
+ /*
public Boolean isAutoItemId()
{
if (this.autoItemId == null) {
this.autoItemId =
(Boolean)getStateHelper().get(Properties.autoItemId);
if (this.autoItemId==null) {
if (parentMenu==null)
- parentMenu = getParentMenu();
+ parentMenu = findParentMenu();
if (parentMenu!=null)
return parentMenu.isAutoItemId();
}
}
return this.autoItemId;
}
+ */
/* setters */
@@ -278,18 +274,20 @@ public class MenuListTag extends UIOutput // implements
NamingContainer
getStateHelper().put(Properties.itemWrapTag, itemWrapTag);
}
+ /*
public void setAutoItemId(Boolean autoItemId)
{
this.autoItemId = autoItemId;
// save
getStateHelper().put(Properties.autoItemId, this.autoItemId);
}
+ */
/*
* helpers
*/
- protected MenuListTag getParentMenu()
+ protected MenuListTag findParentMenu()
{
// walk upwards the parent component tree and return the first record
component found (if
// any)