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 8787e52a EMPIREDB-431 MenuItemTag: Alllow custom facet for 
linkComponent
8787e52a is described below

commit 8787e52a0fb83b3e19d52221a43a0321f28f4766
Author: Rainer Döbele <[email protected]>
AuthorDate: Fri Oct 11 18:54:08 2024 +0200

    EMPIREDB-431
    MenuItemTag: Alllow custom facet for linkComponent
---
 .../org/apache/empire/jsf2/components/LinkTag.java | 35 ++++++++--------------
 .../apache/empire/jsf2/components/MenuItemTag.java | 18 +++++++++++
 2 files changed, 31 insertions(+), 22 deletions(-)

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 1c1eb74f..6f29912e 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
@@ -211,7 +211,7 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
             else
             {   // default rendering (no children)
                 linkComponent.setRendered(true);
-                linkComponent.encodeAll(context);
+                encodeLinkComponent(context, linkComponent);
                 linkComponent.setRendered(false); // Don't render twice!
             }
         }
@@ -391,35 +391,26 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
         return link;
     }
     
-    protected HtmlGraphicImage encodeImage(FacesContext context, 
HtmlOutcomeTargetLink parent, String imagePath)
+    protected HtmlOutcomeTargetLink getLinkComponent()
     {
-        HtmlGraphicImage img = InputControlManager.createComponent(context, 
HtmlGraphicImage.class);
-        img.setValue(imagePath);
-        return img;
+        return (getChildCount()>0 ? 
(HtmlOutcomeTargetLink)getChildren().get(0) : null);
     }
     
-    /*
-     * public String getLabelValue()
-     * {
-     * return StringUtils.toString(getValue());
-     * }
-     * public String getPageValue()
-     * {
-     * return (String) getAttributes().get("page");
-     * }
-     * public String getActionValue()
-     * {
-     * return (String) getAttributes().get("action");
-     * }
-     */
-    
     protected boolean isEncodeLinkChildren(Object linkValue)
     {
         return ObjectUtils.isEmpty(linkValue);
     }
     
-    protected HtmlOutcomeTargetLink getLinkComponent()
+    protected void encodeLinkComponent(FacesContext context, 
HtmlOutcomeTargetLink linkComponent)
+        throws IOException
     {
-        return (getChildCount()>0 ? 
(HtmlOutcomeTargetLink)getChildren().get(0) : null);
+        linkComponent.encodeAll(context);
+    }
+    
+    protected HtmlGraphicImage encodeImage(FacesContext context, 
HtmlOutcomeTargetLink parent, String imagePath)
+    {
+        HtmlGraphicImage img = InputControlManager.createComponent(context, 
HtmlGraphicImage.class);
+        img.setValue(imagePath);
+        return img;
     }
 }
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 b87722fe..dab39f6c 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
@@ -313,4 +313,22 @@ public class MenuItemTag extends LinkTag
     {
         return false;
     }
+    
+    @Override
+    protected void encodeLinkComponent(FacesContext context, 
HtmlOutcomeTargetLink linkComponent)
+        throws IOException
+    {
+        UIComponent linkFacet = this.getFacet("link");
+        if (linkFacet!=null)
+        {   // custom rendering
+            linkComponent.encodeBegin(context);
+            linkFacet.encodeAll(context);
+            linkComponent.encodeEnd(context);
+        }
+        else
+        {   // default
+            linkComponent.encodeAll(context);
+        }
+    }
+    
 }

Reply via email to