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)