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 d2e7340  EMPIREDB-306 Allow id on linkTag
d2e7340 is described below

commit d2e734060ea69a2ff960787b7b1351babbbd06eb
Author: Rainer Döbele <[email protected]>
AuthorDate: Sat Sep 28 21:38:25 2019 +0200

    EMPIREDB-306
    Allow id on linkTag
---
 .../org/apache/empire/jsf2/components/LinkTag.java | 25 ++++++++++++++++++++++
 .../java/org/apache/empire/jsf2/pages/Page.java    |  5 +++--
 .../empire/jsf2/utils/TagEncodingHelper.java       |  2 +-
 3 files changed, 29 insertions(+), 3 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 ed707d4..eb3a0ad 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
@@ -37,8 +37,11 @@ import javax.faces.context.ResponseWriter;
 import org.apache.empire.commons.ObjectUtils;
 import org.apache.empire.commons.StringUtils;
 import org.apache.empire.data.DataType;
+import org.apache.empire.exceptions.InvalidPropertyException;
+import org.apache.empire.jsf2.app.FacesUtils;
 import org.apache.empire.jsf2.controls.InputControl;
 import org.apache.empire.jsf2.controls.InputControlManager;
+import org.apache.empire.jsf2.utils.ParameterMap;
 import org.apache.empire.jsf2.utils.StringResponseWriter;
 import org.apache.empire.jsf2.utils.TagEncodingHelper;
 import org.apache.empire.jsf2.utils.TagEncodingHelperFactory;
@@ -83,6 +86,24 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
     private String treeClientId = null;
     
     @Override
+    public void setId(String id) 
+    {   // empty?
+        if(StringUtils.isEmpty(id))
+        {   // Generate unique id
+            Object page = getAttributes().get("page");
+            String outcome = StringUtils.toString(page);
+            if (StringUtils.isEmpty(outcome))
+                throw new InvalidPropertyException("page", page);
+            ParameterMap pm = 
FacesUtils.getParameterMap(FacesUtils.getContext());
+            id = pm.encodeString(outcome);
+        }
+        // set
+        super.setId(id);
+        // reset record
+        helper.setRecord(null);
+    }
+    
+    @Override
     public boolean visitTree(VisitContext visitContext, VisitCallback 
callback) 
     {
         FacesContext context = visitContext.getFacesContext();
@@ -238,6 +259,10 @@ public class LinkTag extends UIOutput // implements 
NamingContainer
         boolean hasColumn = helper.hasColumn();
         Object value = getLinkValue(hasColumn);
         link.setValue(value);
+        // id
+        String id = getId();
+        if (id.startsWith("j_")==false)
+            link.setId(id+"_a");
         // css Style
         DataType dataType = (hasColumn ? helper.getColumn().getDataType() : 
DataType.UNKNOWN);
         link.setStyleClass(helper.getTagStyleClass(dataType, null, 
getLinkStyleClass()));
diff --git 
a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/Page.java 
b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/Page.java
index 26ca141..25af54b 100644
--- a/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/Page.java
+++ b/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pages/Page.java
@@ -22,6 +22,7 @@ import java.io.Serializable;
 import java.lang.reflect.Method;
 import java.sql.Connection;
 import java.util.ArrayList;
+import java.util.Iterator;
 import java.util.List;
 import java.util.Map;
 
@@ -224,8 +225,8 @@ public abstract class Page implements Serializable
     
     public boolean isHasMessages()
     {
-        List<FacesMessage> msgl = 
FacesContext.getCurrentInstance().getMessageList();
-        return !msgl.isEmpty();
+        Iterator<FacesMessage> fmi = 
FacesContext.getCurrentInstance().getMessages();
+        return fmi.hasNext();
     }
     
     protected void checkPageAccess()
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 40eb08a..312e445 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
@@ -605,7 +605,7 @@ public class TagEncodingHelper implements NamingContainer
     
     public String getColumnName()
     {
-        return (getColumn()!=null ? column.getName() : "null");
+        return ((this.column=findColumn())!=null ? column.getName() : "null");
     }
 
     public void setColumn(Column column)

Reply via email to