You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@myfaces.apache.org by aw...@apache.org on 2007/09/04 21:09:16 UTC
svn commit: r572772 - in /myfaces/trinidad/trunk/trinidad:
trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/
trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/
trinidad-impl/src/main/java/org/apache/myfaces...
Author: awiner
Date: Tue Sep 4 12:09:16 2007
New Revision: 572772
URL: http://svn.apache.org/viewvc?rev=572772&view=rev
Log:
TRINIDAD-679: tr:messages fails to display EL labels correctly
- MessageBoxRenderer wasn't retrieving labels correctly
- ... mostly because LabeledFacesMessage was seriously obscure, so Javadoc'd it and
added a convenience method for real label retrieval
Modified:
myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/LabeledFacesMessage.java
myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java
myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/MessageWrapper.java
Modified: myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/LabeledFacesMessage.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/LabeledFacesMessage.java?rev=572772&r1=572771&r2=572772&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/LabeledFacesMessage.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-api/src/main/java/org/apache/myfaces/trinidad/util/LabeledFacesMessage.java Tue Sep 4 12:09:16 2007
@@ -19,6 +19,9 @@
package org.apache.myfaces.trinidad.util;
import javax.faces.application.FacesMessage;
+import javax.faces.context.FacesContext;
+import javax.faces.el.ValueBinding;
+
/**
* Extension to FacesMessage which keeps track of the label on the component
* that generated the message.
@@ -30,6 +33,12 @@
{
}
+ /**
+ * Creates a LabeledFacesMessage without a pre-set label.
+ * @param severity the severity of the message
+ * @param summary the message summary
+ * @param detail the message detail
+ */
public LabeledFacesMessage(
FacesMessage.Severity severity,
String summary,
@@ -38,6 +47,14 @@
super(severity, summary, detail);
}
+
+ /**
+ * Creates a LabeledFacesMessage with a label.
+ * @param severity the severity of the message
+ * @param summary the message summary
+ * @param detail the message detail
+ * @param label the message label - either a String or a ValueBinding
+ */
public LabeledFacesMessage(
FacesMessage.Severity severity,
String summary,
@@ -48,15 +65,41 @@
_label = label;
}
+ /**
+ * Returns the label, which can be either a String or a ValueBinding.
+ */
public Object getLabel()
{
return _label;
}
+ /**
+ * Sets the label, which can be either a String or a ValueBinding.
+ */
public void setLabel(Object label)
{
_label = label;
}
+
+ /**
+ * Gets a string representation of the label. If the label
+ * is a ValueBinding, the expression is evaluated and the string
+ * value returned.
+ */
+ public String getLabelAsString(FacesContext context)
+ {
+ Object label = getLabel();
+ if (label instanceof ValueBinding)
+ {
+ label = ((ValueBinding) label).getValue(context);
+ }
+
+ if (label == null)
+ return null;
+
+ return label.toString();
+ }
+
private Object _label;
private static final long serialVersionUID = 1L;
Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java?rev=572772&r1=572771&r2=572772&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/renderkit/core/xhtml/MessageBoxRenderer.java Tue Sep 4 12:09:16 2007
@@ -297,7 +297,7 @@
writer.startElement(XhtmlConstants.LINK_ELEMENT, null);
renderStyleClass(context, arc, SkinSelectors.LINK_STYLE_CLASS);
writer.writeAttribute(XhtmlConstants.HREF_ATTRIBUTE, "#" + anchor, null);
- writer.write(labeledMsg.getLabel().toString());
+ writer.write(labeledMsg.getLabelAsString(context));
writer.endElement(XhtmlConstants.LINK_ELEMENT);
}
}
Modified: myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/MessageWrapper.java
URL: http://svn.apache.org/viewvc/myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/MessageWrapper.java?rev=572772&r1=572771&r2=572772&view=diff
==============================================================================
--- myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/MessageWrapper.java (original)
+++ myfaces/trinidad/trunk/trinidad/trinidad-impl/src/main/java/org/apache/myfaces/trinidadinternal/ui/laf/base/desktop/MessageWrapper.java Tue Sep 4 12:09:16 2007
@@ -73,20 +73,11 @@
if (_msg instanceof LabeledFacesMessage)
{
- Object label = ((LabeledFacesMessage) _msg).getLabel();
- if (label != null)
- {
- // TODO: change to ValueExpression in JSF 1.2
- if (label instanceof ValueBinding)
- {
- FacesContext context = FacesContext.getCurrentInstance();
- label = ((ValueBinding) label).getValue(context);
- }
-
- _label = label.toString();
- return _label;
- }
+ FacesContext context = FacesContext.getCurrentInstance();
+ _label = ((LabeledFacesMessage) _msg).getLabelAsString(context);
+ return _label;
}
+
return dflt;
}