You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by pr...@apache.org on 2005/11/18 23:39:31 UTC

svn commit: r345588 - in /myfaces/share/trunk/src/java/org/apache/myfaces: renderkit/html/HtmlMessageRendererBase.java renderkit/html/HtmlMessagesRendererBase.java renderkit/html/HtmlResponseWriterImpl.java taglib/html/HtmlMessageTagBase.java

Author: prophecy
Date: Fri Nov 18 14:39:26 2005
New Revision: 345588

URL: http://svn.apache.org/viewcvs?rev=345588&view=rev
Log:
- Made t:message elements work with Ajax errors
- fixed UIComponent.findComponent to actually work.

Modified:
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessageRendererBase.java
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessagesRendererBase.java
    myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlResponseWriterImpl.java
    myfaces/share/trunk/src/java/org/apache/myfaces/taglib/html/HtmlMessageTagBase.java

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessageRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessageRendererBase.java?rev=345588&r1=345587&r2=345588&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessageRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessageRendererBase.java Fri Nov 18 14:39:26 2005
@@ -51,10 +51,21 @@
                                         FacesMessage facesMessage,
                                         String msgClientId);
 
+
     protected void renderMessage(FacesContext facesContext,
                                  UIComponent message)
             throws IOException
     {
+        renderMessage(facesContext, message, false);
+    }
+
+    /**
+     * @param facesContext
+     * @param message
+     * @param alwaysRenderSpan if true will render a span even if there is no message
+     */
+    protected void renderMessage(FacesContext facesContext, UIComponent message, boolean alwaysRenderSpan) throws IOException
+    {
         String forAttr = getFor(message);
         if (forAttr == null)
         {
@@ -75,18 +86,25 @@
         if (!messageIterator.hasNext())
         {
             // No associated message, nothing to render
+            if (alwaysRenderSpan)
+            {
+                // show span anyways in case there's a client side update, ie: ajax
+                ResponseWriter writer = facesContext.getResponseWriter();
+                writer.startElement(HTML.SPAN_ELEM, message);
+                writer.writeAttribute(HTML.ID_ATTR, message.getId(), null);
+                writer.endElement(HTML.SPAN_ELEM);
+            }
             return;
         }
 
         // get first message
-        FacesMessage facesMessage = (FacesMessage)messageIterator.next();
+        FacesMessage facesMessage = (FacesMessage) messageIterator.next();
 
         // and render it
-        renderSingleFacesMessage(facesContext, message, facesMessage,clientId);
+        renderSingleFacesMessage(facesContext, message, facesMessage, clientId);
     }
 
 
-
     protected void renderSingleFacesMessage(FacesContext facesContext,
                                             UIComponent message,
                                             FacesMessage facesMessage,
@@ -94,7 +112,7 @@
             throws IOException
     {
         // determine style and style class
-        String[] styleAndClass = getStyleAndStyleClass(message, facesMessage.getSeverity());
+        String[] styleAndClass = HtmlMessageRendererBase.getStyleAndStyleClass(message, facesMessage.getSeverity());
         String style = styleAndClass[0];
         String styleClass = styleAndClass[1];
 
@@ -114,7 +132,7 @@
         boolean span = false;
 
 
-        if(message.getId()!=null && !message.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
+        if (message.getId() != null && !message.getId().startsWith(UIViewRoot.UNIQUE_ID_PREFIX))
         {
             span = true;
 
@@ -126,8 +144,8 @@
         }
         else
         {
-            span=HtmlRendererUtils.renderHTMLAttributesWithOptionalStartElement(
-                                writer, message, HTML.SPAN_ELEM, HTML.MESSAGE_PASSTHROUGH_ATTRIBUTES_WITHOUT_TITLE_STYLE_AND_STYLE_CLASS);
+            span = HtmlRendererUtils.renderHTMLAttributesWithOptionalStartElement(
+                    writer, message, HTML.SPAN_ELEM, HTML.MESSAGE_PASSTHROUGH_ATTRIBUTES_WITHOUT_TITLE_STYLE_AND_STYLE_CLASS);
         }
 
         span |= HtmlRendererUtils.renderHTMLAttributeWithOptionalStartElement(writer, message, HTML.SPAN_ELEM, HTML.TITLE_ATTR, title, span);
@@ -159,8 +177,8 @@
     }
 
 
-    protected String[] getStyleAndStyleClass(UIComponent message,
-                                             FacesMessage.Severity severity)
+    public static String[] getStyleAndStyleClass(UIComponent message,
+                                                 FacesMessage.Severity severity)
     {
         String style = null;
         String styleClass = null;
@@ -168,33 +186,33 @@
         {
             if (severity == FacesMessage.SEVERITY_INFO)
             {
-                style = ((HtmlMessage)message).getInfoStyle();
-                styleClass = ((HtmlMessage)message).getInfoClass();
+                style = ((HtmlMessage) message).getInfoStyle();
+                styleClass = ((HtmlMessage) message).getInfoClass();
             }
             else if (severity == FacesMessage.SEVERITY_WARN)
             {
-                style = ((HtmlMessage)message).getWarnStyle();
-                styleClass = ((HtmlMessage)message).getWarnClass();
+                style = ((HtmlMessage) message).getWarnStyle();
+                styleClass = ((HtmlMessage) message).getWarnClass();
             }
             else if (severity == FacesMessage.SEVERITY_ERROR)
             {
-                style = ((HtmlMessage)message).getErrorStyle();
-                styleClass = ((HtmlMessage)message).getErrorClass();
+                style = ((HtmlMessage) message).getErrorStyle();
+                styleClass = ((HtmlMessage) message).getErrorClass();
             }
             else if (severity == FacesMessage.SEVERITY_FATAL)
             {
-                style = ((HtmlMessage)message).getFatalStyle();
-                styleClass = ((HtmlMessage)message).getFatalClass();
+                style = ((HtmlMessage) message).getFatalStyle();
+                styleClass = ((HtmlMessage) message).getFatalClass();
             }
 
             if (style == null)
             {
-                style = ((HtmlMessage)message).getStyle();
+                style = ((HtmlMessage) message).getStyle();
             }
 
             if (styleClass == null)
             {
-                styleClass = ((HtmlMessage)message).getStyleClass();
+                styleClass = ((HtmlMessage) message).getStyleClass();
             }
         }
         else
@@ -202,48 +220,48 @@
             Map attr = message.getAttributes();
             if (severity == FacesMessage.SEVERITY_INFO)
             {
-                style = (String)attr.get(JSFAttr.INFO_STYLE_ATTR);
-                styleClass = (String)attr.get(JSFAttr.INFO_CLASS_ATTR);
+                style = (String) attr.get(JSFAttr.INFO_STYLE_ATTR);
+                styleClass = (String) attr.get(JSFAttr.INFO_CLASS_ATTR);
             }
             else if (severity == FacesMessage.SEVERITY_WARN)
             {
-                style = (String)attr.get(JSFAttr.WARN_STYLE_ATTR);
-                styleClass = (String)attr.get(JSFAttr.WARN_CLASS_ATTR);
+                style = (String) attr.get(JSFAttr.WARN_STYLE_ATTR);
+                styleClass = (String) attr.get(JSFAttr.WARN_CLASS_ATTR);
             }
             else if (severity == FacesMessage.SEVERITY_ERROR)
             {
-                style = (String)attr.get(JSFAttr.ERROR_STYLE_ATTR);
-                styleClass = (String)attr.get(JSFAttr.ERROR_CLASS_ATTR);
+                style = (String) attr.get(JSFAttr.ERROR_STYLE_ATTR);
+                styleClass = (String) attr.get(JSFAttr.ERROR_CLASS_ATTR);
             }
             else if (severity == FacesMessage.SEVERITY_FATAL)
             {
-                style = (String)attr.get(JSFAttr.FATAL_STYLE_ATTR);
-                styleClass = (String)attr.get(JSFAttr.FATAL_CLASS_ATTR);
+                style = (String) attr.get(JSFAttr.FATAL_STYLE_ATTR);
+                styleClass = (String) attr.get(JSFAttr.FATAL_CLASS_ATTR);
             }
 
             if (style == null)
             {
-                style = (String)attr.get(JSFAttr.STYLE_CLASS_ATTR);
+                style = (String) attr.get(JSFAttr.STYLE_CLASS_ATTR);
             }
 
             if (styleClass == null)
             {
-                styleClass = (String)attr.get(JSFAttr.STYLE_CLASS_ATTR);
+                styleClass = (String) attr.get(JSFAttr.STYLE_CLASS_ATTR);
             }
         }
 
-        return new String[] {style, styleClass};
+        return new String[]{style, styleClass};
     }
 
     protected String getFor(UIComponent component)
     {
         if (component instanceof UIMessage)
         {
-            return ((UIMessage)component).getFor();
+            return ((UIMessage) component).getFor();
         }
         else
         {
-            return (String)component.getAttributes().get(JSFAttr.FOR_ATTR);
+            return (String) component.getAttributes().get(JSFAttr.FOR_ATTR);
         }
     }
 
@@ -251,11 +269,11 @@
     {
         if (component instanceof HtmlMessage)
         {
-            return ((HtmlMessage)component).getTitle();
+            return ((HtmlMessage) component).getTitle();
         }
         else
         {
-            return (String)component.getAttributes().get(JSFAttr.TITLE_ATTR);
+            return (String) component.getAttributes().get(JSFAttr.TITLE_ATTR);
         }
     }
 
@@ -263,7 +281,7 @@
     {
         if (component instanceof HtmlMessage)
         {
-            return ((HtmlMessage)component).isTooltip();
+            return ((HtmlMessage) component).isTooltip();
         }
         else
         {
@@ -275,7 +293,7 @@
     {
         if (component instanceof UIMessage)
         {
-            return ((UIMessage)component).isShowSummary();
+            return ((UIMessage) component).isShowSummary();
         }
         else
         {
@@ -287,23 +305,13 @@
     {
         if (component instanceof UIMessage)
         {
-            return ((UIMessage)component).isShowDetail();
+            return ((UIMessage) component).isShowDetail();
         }
         else
         {
             return RendererUtils.getBooleanAttribute(component, JSFAttr.SHOW_DETAIL_ATTR, false);
         }
     }
-
-
-
-
-
-
-
-
-
-
 
 
 }

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessagesRendererBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessagesRendererBase.java?rev=345588&r1=345587&r2=345588&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessagesRendererBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlMessagesRendererBase.java Fri Nov 18 14:39:26 2005
@@ -129,7 +129,7 @@
     }
 
 
-    protected String[] getStyleAndStyleClass(UIComponent messages,
+    public static String[] getStyleAndStyleClass(UIComponent messages,
                                              FacesMessage.Severity severity)
     {
         String style = null;

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlResponseWriterImpl.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlResponseWriterImpl.java?rev=345588&r1=345587&r2=345588&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlResponseWriterImpl.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/renderkit/html/HtmlResponseWriterImpl.java Fri Nov 18 14:39:26 2005
@@ -279,8 +279,12 @@
         {
             if (s_emptyHtmlElements.contains(name.toLowerCase()))
             {
+           /*
+           Should this be here?  It warns even when you have an x:htmlTag value="br", it should just close.
+
                 if (log.isWarnEnabled())
                     log.warn("HTML nesting warning on closing " + name + ": This element must not contain nested elements or text in HTML");
+                    */
             }
             else
             {

Modified: myfaces/share/trunk/src/java/org/apache/myfaces/taglib/html/HtmlMessageTagBase.java
URL: http://svn.apache.org/viewcvs/myfaces/share/trunk/src/java/org/apache/myfaces/taglib/html/HtmlMessageTagBase.java?rev=345588&r1=345587&r2=345588&view=diff
==============================================================================
--- myfaces/share/trunk/src/java/org/apache/myfaces/taglib/html/HtmlMessageTagBase.java (original)
+++ myfaces/share/trunk/src/java/org/apache/myfaces/taglib/html/HtmlMessageTagBase.java Fri Nov 18 14:39:26 2005
@@ -92,6 +92,11 @@
         _for = aFor;
     }
 
+    public String getFor()
+    {
+        return _for;
+    }
+
     public void setShowSummary(String showSummary)
     {
         _showSummary = showSummary;