From seam-commits at lists.jboss.org Fri Apr 30 16:27:10 2010
Content-Type: multipart/mixed; boundary="===============7647811130887409129=="
MIME-Version: 1.0
From: seam-commits at lists.jboss.org
To: seam-commits at lists.jboss.org
Subject: [seam-commits] Seam SVN: r12669 - in modules/faces/trunk:
api/src/main/java/org/jboss/seam/faces/display and 3 other directories.
Date: Fri, 30 Apr 2010 16:27:10 -0400
Message-ID: <201004302027.o3UKRApr019506@svn01.web.mwc.hst.phx2.redhat.com>
--===============7647811130887409129==
Content-Type: text/plain; charset="utf-8"
MIME-Version: 1.0
Content-Transfer-Encoding: quoted-printable
Author: lincolnthree
Date: 2010-04-30 16:27:09 -0400 (Fri, 30 Apr 2010)
New Revision: 12669
Added:
modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/
modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Level=
.java
modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Messa=
ge.java
modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Messa=
ges.java
modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/display/Seam=
Message.java
modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/display/Seam=
Messages.java
Modified:
modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/context/Flas=
hScopedContext.java
modules/faces/trunk/impl/src/main/resources/META-INF/faces-config.xml
Log:
Fixed the flash scope
Implemented first generation Messages API
Added: modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/L=
evel.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Leve=
l.java (rev 0)
+++ modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Leve=
l.java 2010-04-30 20:27:09 UTC (rev 12669)
@@ -0,0 +1,28 @@
+/**
+ * =
+ */
+package org.jboss.seam.faces.display;
+
+import javax.faces.application.FacesMessage;
+import javax.faces.application.FacesMessage.Severity;
+
+/**
+ * @author Lincoln Baxter, II=
I
+ * =
+ */
+public enum Level
+{
+ INFO(FacesMessage.SEVERITY_INFO), WARN(FacesMessage.SEVERITY_WARN), ERR=
OR(FacesMessage.SEVERITY_ERROR), FATAL(FacesMessage.SEVERITY_FATAL);
+
+ private Severity severity;
+
+ Level(final Severity severity)
+ {
+ this.severity =3D severity;
+ }
+
+ public Severity getSeverity()
+ {
+ return severity;
+ }
+}
\ No newline at end of file
Added: modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/M=
essage.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Mess=
age.java (rev 0)
+++ modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Mess=
age.java 2010-04-30 20:27:09 UTC (rev 12669)
@@ -0,0 +1,47 @@
+package org.jboss.seam.faces.display;
+
+import java.io.Serializable;
+
+/**
+ * A convenient message to be displayed to the user as Feedback, Toast, Al=
erts,
+ * etc... See {@link Messages} for usage.
+ * =
+ * @author Lincoln Baxter, II=
I
+ */
+public interface Message extends Serializable
+{
+ /**
+ * Set the message summary to be displayed if the output component is e=
nabled
+ * to display summary. This is the primary text of the message.
+ * =
+ * @param message
+ * @return The builder pattern {@link Message}
+ */
+ Message summary(String message);
+
+ /**
+ * Set the message details to be displayed if the output component is e=
nabled
+ * to display detail. This is the secondary text of the message.
+ * =
+ * @return The builder pattern {@link Message}
+ */
+ Message details(String details);
+
+ /**
+ * Specifies that this message should be displayed by the corresponding
+ * <h:message for=3D"clientId" />
tag, where clientI=
d is the
+ * ID of the component to which this message belongs.
+ * =
+ * @param The clientId of the component to which this message should be
+ * attached/displayed
+ */
+ Message component(String clientId);
+
+ public Level getLevel();
+
+ public String getMessage();
+
+ public String getDetails();
+
+ public String getClientId();
+}
\ No newline at end of file
Added: modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/M=
essages.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Mess=
ages.java (rev 0)
+++ modules/faces/trunk/api/src/main/java/org/jboss/seam/faces/display/Mess=
ages.java 2010-04-30 20:27:09 UTC (rev 12669)
@@ -0,0 +1,36 @@
+package org.jboss.seam.faces.display;
+
+import java.util.Set;
+
+/**
+ * A convenient way to add messages to be displayed to the user as Feedback
+ * messages, Toast, Alerts, etc...
+ * =
+ * Messages can be displayed by using the <h:messages />
tag
+ * in any given View.
+ * =
+ * @author Lincoln Baxter, II=
I
+ */
+public interface Messages
+{
+ /**
+ * Create a new {@link Message} object and add it to the pending message
+ * cache. Messages remain pending until the Render Response phase is ne=
xt
+ * invoked. E.g: If a redirect is issued before Render Response occurs,
+ * messages will be displayed during the next Render Response phase unl=
ess
+ * {@link Messages#clear()} is called, or the user's Session expires.
+ *
+ * Note: Duplicate messages are ignored.
+ */
+ Message add(Level level);
+
+ /**
+ * Retrieve all pending messages.
+ */
+ Set getAll();
+
+ /**
+ * Clears all pending messages.
+ */
+ void clear();
+}
\ No newline at end of file
Modified: modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/conte=
xt/FlashScopedContext.java
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=
=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D=3D
--- modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/context/Fla=
shScopedContext.java 2010-04-30 16:11:01 UTC (rev 12668)
+++ modules/faces/trunk/impl/src/main/java/org/jboss/seam/faces/context/Fla=
shScopedContext.java 2010-04-30 20:27:09 UTC (rev 12669)
@@ -21,6 +21,7 @@
*/
package org.jboss.seam.faces.context;
=
+import java.io.IOException;
import java.lang.annotation.Annotation;
import java.util.Map;
import java.util.Map.Entry;
@@ -30,6 +31,7 @@
import javax.enterprise.context.spi.Context;
import javax.enterprise.context.spi.Contextual;
import javax.enterprise.context.spi.CreationalContext;
+import javax.enterprise.event.Observes;
import javax.faces.bean.FlashScoped;
import javax.faces.context.ExternalContext;
import javax.faces.context.FacesContext;
@@ -37,6 +39,9 @@
import javax.faces.event.PhaseEvent;
import javax.faces.event.PhaseId;
import javax.faces.event.PhaseListener;
+import javax.faces.event.PreRenderViewEvent;
+import javax.inject.Inject;
+import javax.servlet.ServletRequest;
=
/**
* This class provides the lifecycle for the new JSF 2 Flash Context
@@ -45,157 +50,183 @@
*/
public class FlashScopedContext implements Context, PhaseListener
{
- private static final long serialVersionUID =3D -1580689204988513798L;
+ private static final long serialVersionUID =3D -1580689204988513798L;
=
- private final static String COMPONENT_MAP_NAME =3D "org.jboss.seam.fac=
es.flash.componentInstanceMap";
- private final static String CREATIONAL_MAP_NAME =3D "org.jboss.seam.fa=
ces.flash.creationalInstanceMap";
- private final ThreadLocal