From: Walter M. <wal...@us...> - 2007-12-01 23:03:20
|
User: walterim Date: 07/12/01 15:03:23 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 andromda-jsf2/src/main/resources/templates/jsf2/messages messages.properties.vsl Log: Changes related with Ajax support in crud views Revision Changes Path 1.11 +33 -3 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.10 retrieving revision 1.11 diff -u -w -r1.10 -r1.11 --- Controller.java.vsl 21 Oct 2007 20:06:59 -0000 1.10 +++ Controller.java.vsl 1 Dec 2007 23:03:23 -0000 1.11 @@ -132,13 +132,43 @@ { this.addExceptionMessage(throwable); } - return "${manageable.viewFullPath}"; + return null; } public void doBack(${manageable.formBeanType} form) throws Exception { form.setEditState(false); } + public String cancel(){ + final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); + try + { + final ${manageable.formBeanType} form = this.getForm(); + + try + { + contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); + + this.doCancel(form); + } + catch (final Throwable throwable) + { + final String message = org.andromda.presentation.jsf2.Messages.get( + org.andromda.presentation.jsf2.PatternMatchingExceptionHandler.instance().handleException(throwable), null); + this.addErrorMessage(message); + } + } + catch (final Throwable throwable) + { + this.addExceptionMessage(throwable); + } + return null; + } + + public void doCancel(${manageable.formBeanType} form) throws Exception { + form.setEditState(false); + } + #if ($manageable.create) public String startNew(){ final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); @@ -163,7 +193,7 @@ { this.addExceptionMessage(throwable); } - return "${manageable.viewFullPath}"; + return null; } public void doStartNew(${manageable.formBeanType} form) throws Exception { @@ -239,7 +269,7 @@ { this.addExceptionMessage(throwable); } - return "${manageable.viewFullPath}"; + return null; } public void doSave(${manageable.formBeanType} form) throws Exception { 1.12 +19 -15 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.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- view.xhtml.vsl 2 Nov 2007 18:13:32 -0000 1.11 +++ view.xhtml.vsl 1 Dec 2007 23:03:23 -0000 1.12 @@ -87,10 +87,14 @@ </ui:define> <ui:define name="content"> #set($formName = $manageable.formBeanName) +#set($searchFormName = "${formName}_search") +#set($editFormName = "${formName}_edit") ## deixei false em função da discrepância com o uso do \ no javascript#set ($clientValidation = $clientValidation && $manageable.validationRequired) #set ($clientValidation = false) #set ($formValidateName = "validate$stringUtils.capitalize($formName)") - <tr:form id="${formName}_search" rendered="#{!${formName}.editState}"#if($view.needsFileUpload) usesUpload="true"#end> + <tr:form id="${formName}" partialTriggers="${searchFormName}:newAction ${searchFormName}:searchAction ${searchFormName}:searchResult:loadAction ${editFormName}:saveAction ${editFormName}:cancelAction" #if($view.needsFileUpload) usesUpload="true"#end> + <tr:group rendered="#{!${formName}.editState}"> + <tr:subform id="${searchFormName}"> <tr:panelFormLayout> #foreach ($field in $manageable.manageableSearchAttributes) #renderSearchInput($field) @@ -113,27 +117,27 @@ #end <f:facet name="footer"> <tr:panelButtonBar> - <tr:commandButton id="searchButton" text="#{messages['action.search']}" action="#{${manageable.controllerBeanName}.search}" accessKey="#{messages['action.search.access.key']}"/> + <tr:commandButton id="searchAction" text="#{messages['action.search']}" action="#{${manageable.controllerBeanName}.search}" accessKey="#{messages['action.search.access.key']}" partialSubmit="true" blocking="true"/> #if ($manageable.create) - <tr:commandButton id="newButton" text="#{messages['action.new']}" action="#{${manageable.controllerBeanName}.startNew}" accessKey="#{messages['action.new.access.key']}"/> + <tr:commandButton id="newAction" text="#{messages['action.new']}" action="#{${manageable.controllerBeanName}.startNew}" accessKey="#{messages['action.new.access.key']}" partialSubmit="true" blocking="true"/> #end </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="#{${formName}.${manageable.listName} != null}"> + <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:column width="46px"> <f:facet name="header"> <h:panelGroup><t:graphicImage url="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup> - <tr:commandLink actionListener="#{${manageable.controllerBeanName}.load}" action="${manageable.viewFullPath}" > - <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableLoad.gif" title="#{messages['action.load']}" border="0"/> + <tr:commandLink id="loadAction" actionListener="#{${manageable.controllerBeanName}.load}" action="${manageable.viewFullPath}" partialSubmit="true" blocking="true"> + <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableLoad.gif" title="#{messages['action.load']}" style="border-style:none" /> <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 actionListener="#{${manageable.controllerBeanName}.delete}"> - <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableDelete.gif" title="#{messages['action.delete']}" border="0"/> + <tr:commandLink id="deleteAction" actionListener="#{${manageable.controllerBeanName}.delete}" partialSubmit="true" blocking="true"> + <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/tableDelete.gif" title="#{messages['action.delete']}" style="border-style:none" /> <f:param name="${manageable.manageableIdentifier.name}" id="${manageable.manageableIdentifier.name}" value="#{row.${manageable.manageableIdentifier.name}}" /> </tr:commandLink> #end @@ -170,12 +174,10 @@ #end #end </tr:table> - </tr:form> + </tr:subform> + </tr:group> <tr:group rendered="#{${formName}.editState}"> - <tr:commandLink action="#{${manageable.controllerBeanName}.back}" accessKey="#{messages['action.back.access.key']}"> - <t:graphicImage url="/skins/#{${preferencesBeanName}.skin}/images/back.gif" title="#{messages['action.back']}" border="0" /> - </tr:commandLink> - <tr:form id="${formName}_edit" #if($clientValidation) onsubmit="return $formValidateName(this);"#end#if($view.needsFileUpload) usesUpload="true"#end> + <tr:subform id="${formName}_edit" #if($clientValidation) onsubmit="return $formValidateName(this);"#end> <tr:panelFormLayout> #foreach ($field in $manageable.manageableAttributes) #if($field.hidden) @@ -223,14 +225,16 @@ <f:facet name="footer"> <tr:panelButtonBar> #if ($manageable.create || !$manageable.update) - <tr:commandButton text="#{messages['action.save']}" action="#{${manageable.controllerBeanName}.save}" accessKey="#{messages['action.save.access.key']}"/> + <tr:commandButton id="saveAction" text="#{messages['action.save']}" action="#{${manageable.controllerBeanName}.save}" accessKey="#{messages['action.save.access.key']}" blocking="true"/> + <tr:commandButton id="cancelAction" text="#{messages['action.cancel']}" action="#{${manageable.controllerBeanName}.cancel}" accessKey="#{messages['action.cancel.access.key']}" immediate="true" partialSubmit="true" blocking="true"/> #end </tr:panelButtonBar> </f:facet> </tr:panelFormLayout> <a:validator#if(!$clientValidation) client="false"#end/> - </tr:form> + </tr:subform> </tr:group> + </tr:form> </ui:define> </ui:composition> 1.6 +2 -0 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.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- messages.properties.vsl 19 Jul 2007 17:41:16 -0000 1.5 +++ messages.properties.vsl 1 Dec 2007 23:03:23 -0000 1.6 @@ -175,6 +175,7 @@ action.delete=Delete action.load=Load action.save=Save +action.cancel=Cancel action.back=Back action.close=Close action.search=Search @@ -184,6 +185,7 @@ action.delete.access.key=d action.load.access.key=l action.save.access.key=s +action.cancel.access.key=c action.back.access.key=b action.close.access.key=c action.search.access.key=s |