You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by hn...@apache.org on 2018/12/13 12:32:15 UTC

[myfaces-tobago] branch tobago-4.x updated: TOBAGO-1940 Show summary and details for tc:messages

This is an automated email from the ASF dual-hosted git repository.

hnoeth pushed a commit to branch tobago-4.x
in repository https://gitbox.apache.org/repos/asf/myfaces-tobago.git


The following commit(s) were added to refs/heads/tobago-4.x by this push:
     new 73a0953  TOBAGO-1940 Show summary and details for tc:messages
73a0953 is described below

commit 73a09537825cebc17d860bcef1430ffd18f760be
Author: Henning Noeth <hn...@apache.org>
AuthorDate: Thu Sep 27 17:46:16 2018 +0200

    TOBAGO-1940 Show summary and details for tc:messages
    
    * Summary and details are now shown in the same message. If both are
      shown, the summary has highlighted text.
    * improve demo
    * If no message text is available the severity is shown. So at least the
      message doesn't look broken.
    
    (cherry picked from commit 750d16db0904b7292cb3ed5437e3a202440d9179)
---
 .../renderkit/renderer/MessagesRenderer.java       | 24 +++++++--------
 .../tobago/example/demo/MessagesController.java    | 34 +++++++++++++++-------
 .../020-output/30-messages/messages.xhtml          |  1 +
 3 files changed, 36 insertions(+), 23 deletions(-)

diff --git a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessagesRenderer.java b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessagesRenderer.java
index 690429e..4d177f0 100644
--- a/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessagesRenderer.java
+++ b/tobago-core/src/main/java/org/apache/myfaces/tobago/internal/renderkit/renderer/MessagesRenderer.java
@@ -153,25 +153,25 @@ public class MessagesRenderer extends RendererBase {
 
     final String summary = message.getSummary();
     final String detail = message.getDetail();
+    final boolean showSummary = summary != null && messages.isShowSummary() && summary.length() > 0;
+    final boolean showDetails = detail != null && messages.isShowDetail() && detail.length() > 0;
     writer.startElement(HtmlElements.LABEL);
     if (clientId != null) {
       writer.writeAttribute(HtmlAttributes.FOR, clientId, false);
     }
     writer.writeAttribute(HtmlAttributes.TITLE, detail, true);
-    boolean writeEmptyText = true;
-    if (summary != null && messages.isShowSummary()) {
+
+    if (showSummary && showDetails && !summary.equals(detail)) {
+      writer.startElement(HtmlElements.STRONG);
       writer.writeText(summary);
-      writeEmptyText = false;
-      if (detail != null && messages.isShowDetail()) {
-        writer.writeText(" ");
-      }
-    }
-    if (detail != null && messages.isShowDetail()) {
-      writeEmptyText = false;
+      writer.endElement(HtmlElements.STRONG);
       writer.writeText(detail);
-    }
-    if (writeEmptyText) {
-      writer.writeText("");
+    } else if (showSummary) {
+      writer.writeText(summary);
+    } else if (showDetails) {
+      writer.writeText(detail);
+    } else {
+      writer.writeText(message.getSeverity().toString());
     }
     writer.endElement(HtmlElements.LABEL);
 
diff --git a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/MessagesController.java b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/MessagesController.java
index e61c514..2e618fa 100644
--- a/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/MessagesController.java
+++ b/tobago-example/tobago-example-demo/src/main/java/org/apache/myfaces/tobago/example/demo/MessagesController.java
@@ -47,38 +47,50 @@ public class MessagesController implements Serializable {
 
   public void createFatalMessage() {
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_FATAL, "Fatal Message", "Details of fatal message."));
+        new FacesMessage(FacesMessage.SEVERITY_FATAL, "Fatal Message", "Details of fatal message."));
   }
 
   public void createErrorMessage() {
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error Message", "Details of error message."));
+        new FacesMessage(FacesMessage.SEVERITY_ERROR, "Error Message", "Details of error message."));
   }
 
   public void createWarnMessage() {
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_WARN, "Warn Message", "Details of warn message."));
+        new FacesMessage(FacesMessage.SEVERITY_WARN, "Warn Message", "Details of warn message."));
   }
 
   public void createInfoMessage() {
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_INFO, "Info Message", "Details of info message."));
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "Info Message", "Details of info message."));
   }
 
   public void createSevenMessages() {
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_INFO, "First Message - Info", null));
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "First Message - Info", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_FATAL, "Second Message - Fatal", null));
+        new FacesMessage(FacesMessage.SEVERITY_FATAL, "Second Message - Fatal", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_WARN, "Third Message - Warn", null));
+        new FacesMessage(FacesMessage.SEVERITY_WARN, "Third Message - Warn", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_FATAL, "Fourth Message - Fatal", null));
+        new FacesMessage(FacesMessage.SEVERITY_FATAL, "Fourth Message - Fatal", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_ERROR, "Fifth Message - Error", null));
+        new FacesMessage(FacesMessage.SEVERITY_ERROR, "Fifth Message - Error", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_INFO, "Sixth Message - Info", null));
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "Sixth Message - Info", null));
     FacesContext.getCurrentInstance().addMessage(null,
-            new FacesMessage(FacesMessage.SEVERITY_WARN, "Seventh Message - Warn", null));
+        new FacesMessage(FacesMessage.SEVERITY_WARN, "Seventh Message - Warn", null));
+  }
+
+  public void createSummaryDetailMessages() {
+    FacesContext.getCurrentInstance().addMessage(null,
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "Summary only", null));
+    FacesContext.getCurrentInstance().addMessage(null,
+        new FacesMessage(FacesMessage.SEVERITY_INFO, null, "Details only"));
+    FacesContext.getCurrentInstance().addMessage(null,
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "Summary", "Details"));
+    FacesContext.getCurrentInstance().addMessage(null,
+        new FacesMessage(FacesMessage.SEVERITY_INFO, "Summary and details are equal strings",
+            "Summary and details are equal strings"));
   }
 }
diff --git a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
index 9b2e6f2..82fac5d 100644
--- a/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
+++ b/tobago-example/tobago-example-demo/src/main/webapp/content/20-component/020-output/30-messages/messages.xhtml
@@ -40,6 +40,7 @@
     <tc:button label="7 Messages (Ajax)" action="#{messagesController.createSevenMessages}">
       <f:ajax render="tabGroup"/>
     </tc:button>
+    <tc:button label="Summary/Details" action="#{messagesController.createSummaryDetailMessages}"/>
   </tc:section>
 
   <tc:tabGroup id="tabGroup" switchType="reloadPage">