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); } } |