You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@empire-db.apache.org by do...@apache.org on 2013/05/22 16:41:09 UTC

svn commit: r1485233 - in /empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2: components/MenuItemTag.java components/MenuListTag.java pageelements/ListPageElement.java utils/TagEncodingHelper.java

Author: doebele
Date: Wed May 22 14:41:08 2013
New Revision: 1485233

URL: http://svn.apache.org/r1485233
Log:
EMPIREDB-185
Add value expression evaluation for MyFaces

Modified:
    empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
    empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
    empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
    empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java

Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java?rev=1485233&r1=1485232&r2=1485233&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuItemTag.java Wed May 22 14:41:08 2013
@@ -115,7 +115,10 @@ public class MenuItemTag extends LinkTag
         if(!isRendered())
             return;
         // call base
-        super.encodeEnd(context);
+        if (isExpanded())
+        {
+            super.encodeEnd(context);
+        }
         // end of list item
         ResponseWriter writer = context.getResponseWriter();
         writer.endElement("li");

Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java?rev=1485233&r1=1485232&r2=1485233&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/components/MenuListTag.java Wed May 22 14:41:08 2013
@@ -19,7 +19,6 @@
 package org.apache.empire.jsf2.components;
 
 import java.io.IOException;
-import java.util.Map;
 
 import javax.faces.component.NamingContainer;
 import javax.faces.component.UIComponent;
@@ -29,12 +28,15 @@ import javax.faces.context.FacesContext;
 import javax.faces.context.ResponseWriter;
 
 import org.apache.empire.commons.StringUtils;
+import org.apache.empire.jsf2.utils.TagEncodingHelper;
 
 public class MenuListTag extends UIOutput implements NamingContainer
 {
     // Logger
     // private static final Logger log = LoggerFactory.getLogger(MenuTag.class);
     
+    private final TagEncodingHelper helper = new TagEncodingHelper(this, "eMenuList");
+    
     private String currentId = null; 
     private String currentClass = null; 
     // private String enabledClass = null; 
@@ -56,15 +58,14 @@ public class MenuListTag extends UIOutpu
         // call base
         super.encodeBegin(context);
         
-        Map<String, Object> map = getAttributes();
-        initMenuAttributes(map);
+        initMenuAttributes();
 
         // render components
         ResponseWriter writer = context.getResponseWriter();
         writer.startElement("ul", this);
         // writeAttribute(writer, map, "id");
-        writeAttribute(writer, map, "styleClass", "class");
-        writeAttribute(writer, map, "style");
+        helper.writeAttribute(writer, "class", helper.getTagAttributeString("styleClass"));
+        helper.writeAttribute(writer, "style", helper.getTagAttributeString("style"));
     }
 
     /*
@@ -75,25 +76,33 @@ public class MenuListTag extends UIOutpu
         return test;
     }
     */
+    
+    @Override
+    public void encodeChildren(FacesContext context)
+        throws IOException
+    {
+        super.encodeChildren(context);
+    }
 
     @Override
     public void encodeEnd(FacesContext context)
         throws IOException
     {
-        ResponseWriter writer = context.getResponseWriter();
-        writer.endElement("ul");
         // call base
         super.encodeEnd(context);
+        // close
+        ResponseWriter writer = context.getResponseWriter();
+        writer.endElement("ul");
     }
     
-    private void initMenuAttributes(Map<String, Object> map)
-    {
-        currentId = StringUtils.toString(map.get("currentId"));
-        currentClass = StringUtils.toString(map.get("currentClass")); 
-        // enabledClass = StringUtils.toString(map.get("enabledClass")); 
-        disabledClass = StringUtils.toString(map.get("disabledClass")); 
-        expandedClass = StringUtils.toString(map.get("expandedClass"));
-        defaultItemClass = StringUtils.toString(map.get("defaultItemClass"));
+    private void initMenuAttributes()
+    {        
+        currentId        = helper.getTagAttributeString("currentId"); 
+        currentClass     = helper.getTagAttributeString("currentClass"); 
+        // enabledClass  = StringUtils.toString(map.get("enabledClass")); 
+        disabledClass    = helper.getTagAttributeString("disabledClass"); 
+        expandedClass    = helper.getTagAttributeString("expandedClass");
+        defaultItemClass = helper.getTagAttributeString("defaultItemClass");
         
         MenuListTag parent = getParentMenu();
         if (parent==null)
@@ -171,7 +180,7 @@ public class MenuListTag extends UIOutpu
         return defaultItemClass;
     }
 
-    /** setters wozu? **/
+    /* setters */
     
     public void setCurrentId(String currentId)
     {
@@ -200,17 +209,4 @@ public class MenuListTag extends UIOutpu
         this.expandedClass = expandedClass;
     }
 
-    protected void writeAttribute(ResponseWriter writer, Map<String, Object> map, String attribute, String targetName)
-        throws IOException
-    {
-        Object value = map.get(attribute);
-        if (value != null)
-            writer.writeAttribute(targetName, value, null);
-    }
-    protected void writeAttribute(ResponseWriter writer, Map<String, Object> map, String attribute)
-        throws IOException
-    {
-        writeAttribute(writer, map, attribute, attribute);
-    }
-
 }

Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java?rev=1485233&r1=1485232&r2=1485233&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/pageelements/ListPageElement.java Wed May 22 14:41:08 2013
@@ -423,21 +423,46 @@ public abstract class ListPageElement<T>
         return this.items;
     }
 
+    /**
+     * returns whether the item list has been loaded 
+     * @return true if the item list has been loaded even it contains no items for false otherwise
+     */
     public final boolean isValid()
     {
-        return (this.items != null); //  ? false : this.items.size() > 0
+        return (this.items != null);
     }
 
+    /**
+     * returns true if the either the item list is not valid or if it contains no items 
+     * @return true if the either the item list is not valid or if it contains no items
+     */
     public final boolean isEmpty()
     {
         return (this.items==null || this.items.size()==0);
     }
 
+    /**
+     * returns whether the item list is valid and contains at least one item 
+     * @return true if the item list contains one or more items or false otherwise
+     */
     public final boolean isNotEmpty()
     {
         return (this.items!=null && this.items.size()>0);
     }
 
+    /**
+     * added as "isEmpty" is not accessible from EL.
+     * @return true if the either the item list is not valid or if it contains no items
+     */
+    public final boolean isBlank()
+    {
+        return isEmpty();
+    }
+
+    /**
+     * returns the total item count of the entire list (not just the visible part)
+     * @return the total number of items in the list
+     */
     public int getItemCount()
     {
         return getTableInfo().getItemCount();

Modified: empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java
URL: http://svn.apache.org/viewvc/empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java?rev=1485233&r1=1485232&r2=1485233&view=diff
==============================================================================
--- empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java (original)
+++ empire-db/trunk/empire-db-jsf2/src/main/java/org/apache/empire/jsf2/utils/TagEncodingHelper.java Wed May 22 14:41:08 2013
@@ -1120,11 +1120,6 @@ public class TagEncodingHelper implement
         FacesMessage msg = new FacesMessage(FacesMessage.SEVERITY_ERROR, msgText, msgText);
         context.addMessage(tag.getClientId(), msg);
     }
-    
-    public Object getTagAttributeValue(String name)
-    {
-        return tag.getAttributes().get(name);
-    }
 
     public Object getAttributeValueEx(String name)
     { 
@@ -1158,9 +1153,24 @@ public class TagEncodingHelper implement
         return value;
     }
     
+    public Object getTagAttributeValue(String name)
+    {
+        Object value = tag.getAttributes().get(name);
+        if (value==null)
+        {   // try value expression
+            ValueExpression ve = tag.getValueExpression(name);
+            if (ve!=null)
+            {   // It's a value expression
+                FacesContext ctx = FacesContext.getCurrentInstance();
+                value = ve.getValue(ctx.getELContext());
+            }
+        }
+        return value;
+    }
+    
     public String getTagAttributeString(String name, String defValue)
     {
-        Object  v = tag.getAttributes().get(name);
+        Object  v = getTagAttributeValue(name);
         return (v!=null) ? StringUtils.toString(v) : defValue;
     }