|
From: Chad B. <cwb...@us...> - 2008-07-07 18:21:40
|
User: cwbrandon
Date: 08/07/07 11:21:49
Modified: andromda-jsf2/src/main/resources/templates/jsf2/flow/portlet
PortletPhaseListener.java.vsl
andromda-jsf2/src/main/resources/templates/jsf2/utils
FormPopulator.java.vsl
Log:
improve population of properties from parameters in the portlet phase listener
Revision Changes Path
1.17 +14 -2 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/flow/portlet/PortletPhaseListener.java.vsl
Index: PortletPhaseListener.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/flow/portlet/PortletPhaseListener.java.vsl,v
retrieving revision 1.16
retrieving revision 1.17
diff -u -w -r1.16 -r1.17
--- PortletPhaseListener.java.vsl 3 Jul 2008 21:42:15 -0000 1.16
+++ PortletPhaseListener.java.vsl 7 Jul 2008 18:21:48 -0000 1.17
@@ -35,10 +35,22 @@
final javax.portlet.PortletRequest request = (javax.portlet.PortletRequest)event.getFacesContext().getExternalContext().getRequest();
final String currentUrl = (String)request.getAttribute(CURRENT_URL);
final java.util.Map<String, Object> parameters = ${managedBeansPackage}.JsfUtils.extractParameters(currentUrl);
+ if (parameters != null && !parameters.isEmpty())
+ {
+ final javax.faces.context.FacesContext context = event.getFacesContext();
+ final Object form = context.getApplication().getVariableResolver().resolveVariable(context, "$actionFormKey");
+ if (form != null)
+ {
+ ${managedBeansPackage}.${formPopulatorName}.populateFormFromPropertyMap(form, null, parameters);
+ }
+ else
+ {
for (final String parameter : parameters.keySet())
{
request.setAttribute(parameter, parameters.get(parameter));
}
+ }
+ }
#end
// - make the faces context available to all views
((javax.portlet.PortletRequest)event.getFacesContext().getExternalContext().getRequest()).setAttribute(FACES_CONTEXT, event.getFacesContext());
1.13 +2 -2 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/FormPopulator.java.vsl
Index: FormPopulator.java.vsl
===================================================================
RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/FormPopulator.java.vsl,v
retrieving revision 1.12
retrieving revision 1.13
diff -u -w -r1.12 -r1.13
--- FormPopulator.java.vsl 3 Jul 2008 18:27:18 -0000 1.12
+++ FormPopulator.java.vsl 7 Jul 2008 18:21:49 -0000 1.13
@@ -215,7 +215,7 @@
final String propertyAsString = (String)property;
if (propertyAsString.trim().length() > 0)
{
- java.text.DateFormat formatter = (java.text.DateFormat)formatters.get(name);
+ java.text.DateFormat formatter = formatters != null ? (java.text.DateFormat)formatters.get(name) : null;
// - if the formatter is available we use that, otherwise we attempt to convert
if (formatter != null)
{
@@ -226,7 +226,7 @@
catch (java.text.ParseException parseException)
{
// - try the default formatter (handles the default java.util.Date.toString() format)
- formatter = (java.text.DateFormat)formatters.get(null);
+ formatter = formatters != null ? (java.text.DateFormat)formatters.get(null) : null;
value = formatter.parse(propertyAsString);
}
}
|