From: Walter M. <wal...@us...> - 2007-02-20 10:16:37
|
User: walterim Date: 07/02/20 02:16:37 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud view.xhtml.vsl Log: Now the table is allways rendered. Revision Changes Path 1.5 +22 -2 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl Index: view.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- view.xhtml.vsl 18 Jan 2007 10:11:08 -0000 1.4 +++ view.xhtml.vsl 20 Feb 2007 10:16:37 -0000 1.5 @@ -120,7 +120,7 @@ </tr:panelButtonBar> </f:facet> </tr:panelFormLayout> - <tr:table allDetailsEnabled="true" var="row" bandingInterval="1" banding="row" value="#{${formName}.${manageable.listName}}" rows="#{${preferencesBeanName}.maxTableRows}" width="90%" rendered="#{!empty ${formName}.${manageable.listName}}"> + <tr:table allDetailsEnabled="true" var="row" bandingInterval="1" banding="row" value="#{${formName}.${manageable.listName}}" rows="#{${preferencesBeanName}.maxTableRows}" width="90%" rendered="#{${formName}.${manageable.listName} != null}"> <tr:column width="46px"> <f:facet name="header"> <h:panelGroup><t:graphicImage url="/images/space.gif"/></h:panelGroup> @@ -170,9 +170,29 @@ #if($field.hidden) <h:inputHidden id="${field.name}" value="#{${formName}.${field.name}}"/> #else +##esse if está aqui enquanto não se padroniza a questão do enumerator em todo os JSF2 +#if($field.type.enumeration) +#set ($propertyId = $field.name) +#set ($formValuePropertyName = "${formName}.${field.name}") +#set ($multiSelect = $field.type.collectionType || $field.type.arrayType) +#set ($selectBoxType = "selectOneChoice") +#if ($multiSelect) +#set ($selectBoxType = "selectManyListbox") +#end + <tr:$selectBoxType id="$propertyId" value="#{${formValuePropertyName}}" label="#{messages['$field.messageKey']}:" required="$field.required" readOnly="$field.readOnly"#if ($multiSelect) size="$defaultMultiSelectSize"#else unselectedLabel=""#end> + <f:converter converterId="${field.type.fullyQualifiedName}"/> +#foreach ($literal in $field.type.literals) +#if ($literal.type.stringType)#set ($quote = '')#else#set ($quote = '"')#end +#set($literalKey = $literal.name) +#set($literalKey = $literal.defaultValue) + <f:selectItem itemLabel="#{messages['${field.type.messageKey}.${literalKey}']}" itemValue=${quote}${literal.enumerationValue}${quote} /> +#end + </tr:$selectBoxType> +#else #renderActionInput($field "") #end #end +#end #foreach ($field in $manageable.manageableAssociationEnds) #set ($valuePropertyName = $field.name) #set ($backingListName = "${formName}.${field.name}BackingList") |
From: Walter M. <wal...@us...> - 2007-09-09 11:01:10
|
User: walterim Date: 07/09/09 04:01:10 Modified: andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud Controller.java.vsl andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud view.xhtml.vsl Log: Changes to avoid the population from the request inside the controller. Revision Changes Path 1.9 +28 -93 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl Index: Controller.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud/Controller.java.vsl,v retrieving revision 1.8 retrieving revision 1.9 diff -u -w -r1.8 -r1.9 --- Controller.java.vsl 2 Jul 2007 17:10:14 -0000 1.8 +++ Controller.java.vsl 9 Sep 2007 11:01:06 -0000 1.9 @@ -2,6 +2,9 @@ // license-header java merge-point package $manageable.manageablePackageName; +import javax.faces.component.UIParameter; +import javax.faces.event.ActionEvent; + public class ${manageable.controllerName} implements java.io.Serializable { @@ -20,9 +23,6 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - this.doInit(form); } catch (final Throwable throwable) @@ -63,7 +63,12 @@ form.setEditState(false); } - public String load(){ +#if ($manageable.manageableIdentifier.type.primitive) +#set($idParamClass = $manageable.manageableIdentifier.type.wrapperName) +#else +#set($idParamClass = $manageable.manageableIdentifier.type.name) +#end + public void load(ActionEvent event){ final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); try { @@ -73,10 +78,7 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - - this.doLoad(form); + this.doLoad(${idParamClass}.valueOf(((UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),form); } catch (final Throwable throwable) { @@ -89,15 +91,18 @@ { this.addExceptionMessage(throwable); } - return "${manageable.viewFullPath}"; } - public void doLoad(${manageable.formBeanType} form) throws Exception { - final Object vo= - ${manageable.manageableServiceAccessorCall}.readById(form.${manageable.manageableIdentifier.getterName}()); + public void doLoad(${idParamClass} ${manageable.manageableIdentifier.name}, ${manageable.formBeanType} form) throws Exception { + final ${manageable.valueObjectClassName} vo= + ${manageable.manageableServiceAccessorCall}.readById(${manageable.manageableIdentifier.name}); -## fazer via members - org.apache.commons.beanutils.BeanUtils.copyProperties(form,vo); +#foreach ($member in $manageable.attributes) + form.${member.setterName}(vo.${member.getterName}()); +#end +#foreach ($member in $manageable.manageableAssociationEnds) + form.${member.setterName}(vo.${member.getterName}()); +#end form.setEditState(true); } @@ -112,9 +117,6 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - this.doBack(form); } catch (final Throwable throwable) @@ -146,9 +148,6 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - this.doStartNew(form); } catch (final Throwable throwable) @@ -225,9 +224,6 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - this.doSave(form); } catch (final Throwable throwable) @@ -289,9 +285,6 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - this.doSearch(form); } catch (final Throwable throwable) @@ -353,7 +346,12 @@ } #if ($manageable.delete) - public String delete(){ +#if ($manageable.manageableIdentifier.type.primitive) +#set($idParamClass = $manageable.manageableIdentifier.type.wrapperName) +#else +#set($idParamClass = $manageable.manageableIdentifier.type.name) +#end + public void delete(ActionEvent event){ final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); try { @@ -363,10 +361,7 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - // - populate the form with any request parameters that may match - this.populateFormFromRequestParameters(form, form.getDateTimeFormatters()); - - this.doDelete(form); + this.doDelete(${idParamClass}.valueOf(((UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),form); } catch (final Throwable throwable) { @@ -379,13 +374,11 @@ { this.addExceptionMessage(throwable); } - return null; } - public void doDelete(${manageable.formBeanType} form) throws Exception { - ${manageable.manageableServiceAccessorCall}.delete(new Long[]{form.${manageable.manageableIdentifier.getterName}()}); + public void doDelete(${idParamClass} ${manageable.manageableIdentifier.name}, ${manageable.formBeanType} form) throws Exception { + ${manageable.manageableServiceAccessorCall}.delete(new Long[]{${manageable.manageableIdentifier.name}}); - form.${manageable.manageableIdentifier.setterName}(null); doSearch(form); } @@ -551,62 +544,4 @@ } } } - - /** - * Populates the form from the given parameters. If the request parameter is null or an empty - * string, then null is placed on the form. - * - * @param form the form to populate. - * @param formatters any date or time formatters. - */ - private final void populateFormFromRequestParameters(final Object form, final java.util.Map formatters) - { - try - { - final java.util.Map parameters = this.getContext().getExternalContext().getRequestParameterMap(); - for (final java.util.Iterator iterator = parameters.keySet().iterator(); iterator.hasNext();) - { - final String name = (String)iterator.next(); - if (org.apache.commons.beanutils.PropertyUtils.isWriteable(form, name)) - { - final java.beans.PropertyDescriptor descriptor = - org.apache.commons.beanutils.PropertyUtils.getPropertyDescriptor(form, name); - if (descriptor != null) - { - final String parameter = (String)parameters.get(name); - Object value = null; - // - only convert if the string is not empty - if (parameter != null && parameter.trim().length() > 0) - { - java.text.DateFormat formatter = (java.text.DateFormat)formatters.get(name); - // - if the formatter is available we use that, otherwise we attempt to convert - if (formatter != null) - { - try - { - value = formatter.parse(parameter); - } - catch (java.text.ParseException parseException) - { - // - try the default formatter (handles the default java.util.Date.toString() format) - formatter = (java.text.DateFormat)formatters.get(null); - value = formatter.parse(parameter); - } - } - else - { - value = org.apache.commons.beanutils.ConvertUtils.convert(parameter, descriptor.getPropertyType()); - } - org.apache.commons.beanutils.PropertyUtils.setProperty(form, name, value); - } - } - } - } - } - catch (final Throwable throwable) - { - throw new RuntimeException(throwable); - } - } - } \ No newline at end of file 1.10 +10 -9 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl Index: view.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl,v retrieving revision 1.9 retrieving revision 1.10 diff -u -w -r1.9 -r1.10 --- view.xhtml.vsl 19 Jul 2007 18:09:32 -0000 1.9 +++ view.xhtml.vsl 9 Sep 2007 11:01:09 -0000 1.10 @@ -126,15 +126,15 @@ <h:panelGroup><t:graphicImage url="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup> - <tr:commandLink action="#{${manageable.controllerBeanName}.load}" > + <tr:commandLink actionListener="#{${manageable.controllerBeanName}.load}" action="${manageable.viewFullPath}" > <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableLoad.gif" title="#{messages['action.load']}" border="0"/> - <f:param name="${manageable.manageableIdentifier.name}" value="#{row.${manageable.manageableIdentifier.name}}" /> + <f:param name="${manageable.manageableIdentifier.name}" id="${manageable.manageableIdentifier.name}" value="#{row.${manageable.manageableIdentifier.name}}" /> </tr:commandLink> #if ($manageable.delete) <tr:spacer width="10" height="1"/> - <tr:commandLink action="#{${manageable.controllerBeanName}.delete}"> + <tr:commandLink actionListener="#{${manageable.controllerBeanName}.delete}"> <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableDelete.gif" title="#{messages['action.delete']}" border="0"/> - <f:param name="${manageable.manageableIdentifier.name}" value="#{row.${manageable.manageableIdentifier.name}}" /> + <f:param name="${manageable.manageableIdentifier.name}" id="${manageable.manageableIdentifier.name}" value="#{row.${manageable.manageableIdentifier.name}}" /> </tr:commandLink> #end </h:panelGroup> @@ -145,12 +145,13 @@ <f:facet name="header"> <tr:outputText value="#{messages['$member.messageKey']}"/> </f:facet> -#if($member.type.enumeration) - <c:set var="messageKey" value="${member.type.messageKey}.#{row.${member.name}}"/> - <tr:outputText value="#{messages[messageKey]}"> -#else +## TODO: it isn't working +###if($member.type.enumeration) +## <c:set var="messageKey" value="${member.type.messageKey}.#{row.${member.name}}"/> +## <tr:outputText value="#{messages[messageKey]}"> +###else <tr:outputText value="#{row.${member.name}}"> -#end +###end #if ($column.type.dateType) <a:convertDateTime pattern="$defaultDateFormat"/> #end |
From: Walter M. <wal...@us...> - 2008-03-05 18:00:58
|
User: walterim Date: 08/03/05 10:01:03 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud view.xhtml.vsl Log: Cancel button must have immediate="true" to avoid unneeded validation Revision Changes Path 1.14 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl Index: view.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl,v retrieving revision 1.13 retrieving revision 1.14 diff -u -w -r1.13 -r1.14 --- view.xhtml.vsl 2 Mar 2008 20:59:20 -0000 1.13 +++ view.xhtml.vsl 5 Mar 2008 18:00:58 -0000 1.14 @@ -138,7 +138,7 @@ #end <f:facet name="footer"> <tr:panelButtonBar> - <tr:commandButton id="searchAction" text="#{messages['action.search']}" action="#{${manageable.controllerBeanName}.search}" accessKey="#{messages['action.search.access.key']}" partialSubmit="true" immediate="true"/> + <tr:commandButton id="searchAction" text="#{messages['action.search']}" action="#{${manageable.controllerBeanName}.search}" accessKey="#{messages['action.search.access.key']}" partialSubmit="true"/> #if ($manageable.create) <tr:commandButton id="newAction" text="#{messages['action.new']}" action="#{${manageable.controllerBeanName}.startNew}" accessKey="#{messages['action.new.access.key']}" partialSubmit="true" immediate="true"/> #end |
From: Walter M. <wal...@us...> - 2008-03-13 13:14:09
|
User: walterim Date: 08/03/13 06:14:13 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud view.xhtml.vsl Log: added a message inside the table when the search result set is empty. Revision Changes Path 1.15 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl Index: view.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud/view.xhtml.vsl,v retrieving revision 1.14 retrieving revision 1.15 diff -u -w -r1.14 -r1.15 --- view.xhtml.vsl 5 Mar 2008 18:00:58 -0000 1.14 +++ view.xhtml.vsl 13 Mar 2008 13:14:13 -0000 1.15 @@ -145,7 +145,7 @@ </tr:panelButtonBar> </f:facet> </tr:panelFormLayout> - <tr:table id="searchResult" allDetailsEnabled="true" var="row" rowBandingInterval="1" value="#{${formName}.${manageable.listName}}" rows="#{${preferencesBeanName}.maxTableRows}" width="90%" rendered="#{not empty ${formName}.${manageable.listName}}" partialTriggers="searchResult:deleteAction"> + <tr:table id="searchResult" allDetailsEnabled="true" var="row" rowBandingInterval="1" value="#{${formName}.${manageable.listName}}" rows="#{${preferencesBeanName}.maxTableRows}" width="90%" rendered="#{${formName}.${manageable.listName} != null}" partialTriggers="searchResult:deleteAction" emptyText="#{messages['empty.result.set']}"> <tr:column width="46px"> <f:facet name="header"> <h:panelGroup><tr:image source="/images/space.gif"/></h:panelGroup> |