|
From: Chad B. <cwb...@us...> - 2008-05-28 19:04:27
|
User: cwbrandon
Date: 08/05/28 12:04:34
Modified: andromda-jsf2/src/main/resources/templates/jsf2/utils
Messages.java.vsl MessagePhaseListener.java.vsl
andromda-jsf2/src/main/resources/templates/jsf2/views/portlet
messages.xhtml.vsl
andromda-jsf2/src/main/resources/templates/jsf2/messages
messages.properties.vsl
andromda-jsf2/src/main/resources/templates/jsf2/forms
FormImpl.java.vsl
andromda-jsf2/src/main/resources/templates/jsf2/controllers
Controller.java.vsl
Log:
Add default messages title (and ability to set in in a controller operation)
Revision Changes Path
1.3 +11 -0 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/Messages.java.vsl
Index: Messages.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/Messages.java.vsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- Messages.java.vsl 3 Apr 2008 22:21:20 -0000 1.2
+++ Messages.java.vsl 28 May 2008 19:04:29 -0000 1.3
@@ -58,4 +58,15 @@
}
return resourceString;
}
+
+ /**
+ * Gets the message given the <code>key</code>.
+ *
+ * @param key the message key.
+ * @return the message (or key if the message isn't found).
+ */
+ public static String get(String key)
+ {
+ return get(key, (Object[])null);
+ }
}
\ No newline at end of file
1.7 +23 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/MessagePhaseListener.java.vsl
Index: MessagePhaseListener.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/MessagePhaseListener.java.vsl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- MessagePhaseListener.java.vsl 28 May 2008 17:23:26 -0000 1.6
+++ MessagePhaseListener.java.vsl 28 May 2008 19:04:29 -0000 1.7
@@ -69,7 +69,24 @@
{
javax.faces.context.FacesContext.getCurrentInstance().addMessage(null, (javax.faces.application.FacesMessage)iterator.next());
}
- form.getClass().getMethod("clearJsfMessages", (Class[])null).invoke(form, (Object[])null);
+ // - set the messages title to use (if we have a severity of error or higher)
+ final javax.faces.application.FacesMessage.Severity severity = context.getMaximumSeverity();
+ if (severity != null && severity.getOrdinal() >= javax.faces.application.FacesMessage.SEVERITY_ERROR.getOrdinal())
+ {
+ final java.lang.Object request = context.getExternalContext().getRequest();
+ if (request instanceof $jsfUtils.requestClassName)
+ {
+ String messagesTitle = (String)form.getClass().getMethod("get${stringUtils.capitalize($formMessagesProperty)}Title", (Class[])null).invoke(form, (Object[])null);
+ if (messagesTitle == null || messagesTitle.trim().length() == 0)
+ {
+ messagesTitle = Messages.get("errors.header", null);
+ }
+ (($jsfUtils.requestClassName)request).setAttribute(MESSAGES_TITLE, messagesTitle);
+ }
+ }
+ form.getClass().getMethod("clear${stringUtils.capitalize($formMessagesProperty)}", (Class[])null).invoke(form, (Object[])null);
+ form.getClass().getMethod("set${stringUtils.capitalize($formMessagesProperty)}Title",
+ new Class[]{java.lang.String.class}).invoke(form, new Object[]{null});
}
}
catch (final Exception exception)
@@ -79,6 +96,11 @@
}
}
+ /**
+ * The name of the property storing the title to use for faces messages in the request scope
+ */
+ protected static final String MESSAGES_TITLE = "${formMessagesProperty}Title";
+
@Override
protected void handleAfterPhase(javax.faces.event.PhaseEvent event)
{
1.3 +4 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/portlet/messages.xhtml.vsl
Index: messages.xhtml.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/portlet/messages.xhtml.vsl,v
retrieving revision 1.2
retrieving revision 1.3
diff -u -w -r1.2 -r1.3
--- messages.xhtml.vsl 27 May 2008 16:14:19 -0000 1.2
+++ messages.xhtml.vsl 28 May 2008 19:04:31 -0000 1.3
@@ -2,6 +2,9 @@
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:h="http://java.sun.com/jsf/html">
<ui:composition>
- <h:messages globalOnly="true" title="#{messages['errors.header']}" rendered="#{!hideGlobalMessages}"/>
+ <h:panelGrid columns="1" cellpadding="2" cellspacing="2" rendered="#{!hideGlobalMessages and !empty facesContext.maximumSeverity}">
+ <h:outputText value="#{${formMessagesProperty}Title}" escape="false" rendered="#{!empty ${formMessagesProperty}Title}"/>
+ <h:messages globalOnly="true" showDetail="false"/>
+ </h:panelGrid>
</ui:composition>
</div>
1.12 +2 -2 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/messages/messages.properties.vsl
Index: messages.properties.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/messages/messages.properties.vsl,v
retrieving revision 1.11
retrieving revision 1.12
diff -u -w -r1.11 -r1.12
--- messages.properties.vsl 23 May 2008 20:59:54 -0000 1.11
+++ messages.properties.vsl 28 May 2008 19:04:32 -0000 1.12
@@ -103,9 +103,9 @@
login.na=This feature is not available yet
#
-# Messages for the validator plugin
+# Messages for validation
#
-errors.header=Errors
+errors.header=You have one or more error(s) present:
errors.required={0} is required.
errors.minlength={0} can not be less than {1} characters.
1.7 +26 -0 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/FormImpl.java.vsl
Index: FormImpl.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/FormImpl.java.vsl,v
retrieving revision 1.6
retrieving revision 1.7
diff -u -w -r1.6 -r1.7
--- FormImpl.java.vsl 28 May 2008 16:40:45 -0000 1.6
+++ FormImpl.java.vsl 28 May 2008 19:04:33 -0000 1.7
@@ -185,6 +185,32 @@
}
/**
+ * The faces message title (used on a view).
+ */
+ private String ${formMessagesProperty}Title;
+
+ /**
+ * The optional faces message title to set (used on a view). If not set, the default title
+ * will be used.
+ *
+ * @param jsfMessagesTitle the title to use for the messages on the view.
+ */
+ public void set${stringUtils.capitalize($formMessagesProperty)}Title(final String ${formMessagesProperty}Title)
+ {
+ this.${formMessagesProperty}Title = ${formMessagesProperty}Title;
+ }
+
+ /**
+ * Gets the faces messages title to use.
+ *
+ * @return the faces messages title.
+ */
+ public String get${stringUtils.capitalize($formMessagesProperty)}Title()
+ {
+ return this.${formMessagesProperty}Title;
+ }
+
+ /**
* Gets the maximum severity of the messages stored in this form.
*
* @return the maximum severity or null if no messages are present and/or severity isn't set.
1.17 +24 -0 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/Controller.java.vsl
Index: Controller.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/Controller.java.vsl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -w -r1.16 -r1.17
--- Controller.java.vsl 28 May 2008 16:40:46 -0000 1.16
+++ Controller.java.vsl 28 May 2008 19:04:33 -0000 1.17
@@ -361,6 +361,30 @@
}
/**
+ * Sets the messages title to use on the next view.
+ *
+ * @param messagesTitle the title to use.
+ */
+ protected void setMessagesTitle(final String messagesTitle)
+ {
+ final Object form = this.resolveVariable("form");
+ if (form != null)
+ {
+ try
+ {
+ final java.lang.reflect.Method method = form.getClass().getMethod(
+ "set${stringUtils.capitalize($formMessagesProperty)}Title",
+ new Class[]{java.lang.String.class});
+ method.invoke(form, new Object[]{messagesTitle});
+ }
+ catch (final Exception exception)
+ {
+ throw new RuntimeException(exception);
+ }
+ }
+ }
+
+ /**
* Gets the maximum severity of the messages stored in the current form.
*
* @return the maximum message severity.
|