You can subscribe to this list here.
2005 |
Jan
|
Feb
|
Mar
|
Apr
|
May
|
Jun
|
Jul
|
Aug
|
Sep
|
Oct
|
Nov
|
Dec
(6) |
---|---|---|---|---|---|---|---|---|---|---|---|---|
2006 |
Jan
(178) |
Feb
(169) |
Mar
(286) |
Apr
(117) |
May
(98) |
Jun
(68) |
Jul
(63) |
Aug
(121) |
Sep
(88) |
Oct
(124) |
Nov
(2) |
Dec
(111) |
2007 |
Jan
(224) |
Feb
(69) |
Mar
(10) |
Apr
(72) |
May
(7) |
Jun
(21) |
Jul
(33) |
Aug
(35) |
Sep
(12) |
Oct
(22) |
Nov
(5) |
Dec
(6) |
2008 |
Jan
(2) |
Feb
(10) |
Mar
(39) |
Apr
(58) |
May
(34) |
Jun
(9) |
Jul
(27) |
Aug
(10) |
Sep
(3) |
Oct
|
Nov
|
Dec
|
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-05 17:59:20
|
User: walterim Date: 08/03/05 09:59:26 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components autocomplete.xhtml.vsl Log: Added support to inline style Revision Changes Path 1.2 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components/autocomplete.xhtml.vsl Index: autocomplete.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components/autocomplete.xhtml.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- autocomplete.xhtml.vsl 2 Mar 2008 20:59:19 -0000 1.1 +++ autocomplete.xhtml.vsl 5 Mar 2008 17:59:25 -0000 1.2 @@ -153,7 +153,7 @@ } </trh:script> - <h:inputText id="#{editId}" autocomplete="off" required="#{required}" + <h:inputText id="#{editId}" autocomplete="off" required="#{required}" style="#{contentStyle}" readOnly="#{readOnly}" ondblclick="document.getElementById('#{jsActionId}').click(); return false;" onkeydown="return #{editKeydownFunc}(event);" |
From: Walter M. <wal...@us...> - 2008-03-02 20:59:19
|
User: walterim Date: 08/03/02 12:59:25 Modified: andromda-jsf2/src/main/resources/resources/views/css custom.css andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud Controller.java.vsl andromda-jsf2/src/main/resources/templates/jsf2/forms/crud SearchForm.java.vsl Form.java.vsl andromda-jsf2/src/main/resources/META-INF/andromda namespace.xml cartridge.xml andromda-jsf2/src/main/resources/resources/views/skins/beach beach.css andromda-jsf2/src/main/resources/resources/views/skins/default default.css . .project andromda-jsf2/src/main/resources/templates/jsf2/converters/crud EntityConverter.java.vsl andromda-seam pom.xml andromda-jsf2/src/main/resources/templates/jsf2/configuration faces-config.xml.vsl web.xml.vsl andromda-jsf2/src/main/resources/resources/views/skins/purple purpleSkin.css andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/crud view.xhtml.vsl andromda-jsf2/src/main/resources/templates/jsf2/exception PatternMatchingExceptionHandler.java.vsl Added: andromda-jsf2/src/main/resources/resources/views/skins/default/images autocomplete-button.gif autocomplete-button-action.gif andromda-jsf2/src/main/resources/resources/views/skins/purple/images autocomplete-button-action.gif autocomplete-button.gif andromda-jsf2/src/main/resources/templates/jsf2/views/facelets jsf2.taglib.xml.vsl andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components autocomplete.xhtml.vsl autocompleteMulti.xhtml.vsl andromda-jsf2/src/main/resources/resources/views/skins/beach/images autocomplete-button.gif autocomplete-button-action.gif Log: Added the autocomplete component Revision Changes Path 1.2 +1 -1 cartridges/andromda-jsf2/src/main/resources/resources/views/css/custom.css Index: custom.css =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/resources/views/css/custom.css,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 1.1 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/default/images/autocomplete-button.gif <<Binary file>> 1.1 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/default/images/autocomplete-button-action.gif <<Binary file>> 1.13 +154 -78 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.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- Controller.java.vsl 28 Jan 2008 19:19:18 -0000 1.12 +++ Controller.java.vsl 2 Mar 2008 20:59:16 -0000 1.13 @@ -2,9 +2,6 @@ // 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 { @@ -14,7 +11,7 @@ private static final long serialVersionUID = ${manageable.actionSerialVersionUID}L; public String init(){ - final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -27,14 +24,14 @@ } catch (final Throwable throwable) { - final String message = org.andromda.presentation.jsf2.Messages.get( - org.andromda.presentation.jsf2.PatternMatchingExceptionHandler.instance().handleException(throwable), null); - throwable.printStackTrace(); - this.addErrorMessage(message); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } return "${manageable.viewFullPath}"; @@ -53,11 +50,13 @@ #end #end +#if (!$useAutocompleteLookup) #if (!$manageable.manageableAssociationEnds.empty) final java.util.Map backingLists = ${manageable.manageableServiceAccessorCall}.readBackingLists(); #foreach ($member in $manageable.manageableAssociationEnds) form.${member.setterName}BackingList((java.util.Collection)backingLists.get("${member.name}")); #end +#end #end form.setEditState(false); @@ -68,8 +67,8 @@ #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(); + public void load(javax.faces.event.ActionEvent event){ + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -78,17 +77,18 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - this.doLoad(${idParamClass}.valueOf(((UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),form); + this.doLoad(${idParamClass}.valueOf(((javax.faces.component.UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } } @@ -97,7 +97,7 @@ final ${manageable.valueObjectClassName} vo= ${manageable.manageableServiceAccessorCall}.readById(${manageable.manageableIdentifier.name}); -#foreach ($member in $manageable.attributes) +#foreach ($member in $manageable.manageableAttributes) #if(!${member.inputFile}) form.${member.setterName}(vo.${member.getterName}()); #end @@ -109,38 +109,8 @@ form.setEditState(true); } - public String back(){ - 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.doBack(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 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(); + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -153,13 +123,14 @@ } 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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } return null; @@ -171,7 +142,7 @@ #if ($manageable.create) public String startNew(){ - final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -184,22 +155,24 @@ } 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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } - return null; + + return "${manageable.viewFullPath}"; } public void doStartNew(${manageable.formBeanType} form) throws Exception { ## set all default attribute values -#foreach ($member in $manageable.attributes) +#foreach ($member in $manageable.manageableAttributes) #set($memberType = $member.type) #if ($member.defaultValue) #if ($memberType.dateType) @@ -234,7 +207,13 @@ #end #end -##tem mesmo que ler de novo ???? +#if (!$manageable.manageableAssociationEnds.empty) +#foreach ($member in $manageable.manageableAssociationEnds) + form.${member.setterName}(null); +#end +#end + +#if (!$useAutocompleteLookup) #if (!$manageable.manageableAssociationEnds.empty) final java.util.Map backingLists = ${manageable.manageableServiceAccessorCall}.readBackingLists(); #foreach ($member in $manageable.manageableAssociationEnds) @@ -242,12 +221,13 @@ #end #end +#end form.setEditState(true); } #end #if ($manageable.create || $manageable.update) public String save(){ - final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -260,13 +240,14 @@ } 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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } return null; @@ -309,9 +290,40 @@ form.setEditState(false); } + +#end +#if ($manageable.create) + public String saveAndNew(){ + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); + try + { + final ${manageable.formBeanType} form = this.getForm(); + + try + { + contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); + + this.doSave(form); + this.doStartNew(form); + } + catch (final Throwable throwable) + { + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); + } + } + catch (final Throwable throwable) + { + throwable.printStackTrace(); + this.addExceptionMessage(throwable); + } + return null; + } #end + public String search(){ - final org.andromda.presentation.jsf2.AdfFacesContextWrapper contextWrapper = new org.andromda.presentation.jsf2.AdfFacesContextWrapper(); + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -324,13 +336,14 @@ } 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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } return null; @@ -372,20 +385,18 @@ ); form.${manageable.listSetterName}(list); - if(org.apache.commons.collections.CollectionUtils.isEmpty(list)){ - this.addInfoMessage(org.andromda.presentation.jsf2.Messages.get("empty.result.set", null)); #if ($manageable.maximumListSize > 0) - } else { if (list.size() >= $manageable.maximumListSize) saveMaxResultsWarning(); #end - } +#if (!$useAutocompleteLookup) #if (!$manageable.manageableAssociationEnds.empty) final java.util.Map backingLists = ${manageable.manageableServiceAccessorCall}.readBackingLists(); #foreach ($member in $manageable.manageableAssociationEnds) form.${member.setterName}BackingList((java.util.Collection)backingLists.get("${member.name}")); #end +#end #end form.setEditState(false); @@ -397,8 +408,8 @@ #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(); + public void delete(javax.faces.event.ActionEvent event){ + final ${managedBeansPackage}.AdfFacesContextWrapper contextWrapper = new ${managedBeansPackage}.AdfFacesContextWrapper(); try { final ${manageable.formBeanType} form = this.getForm(); @@ -407,17 +418,18 @@ { contextWrapper.getCurrentInstance().getPageFlowScope().put("form", form); - this.doDelete(${idParamClass}.valueOf(((UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),form); + this.doDelete(${idParamClass}.valueOf(((javax.faces.component.UIParameter)event.getComponent().findComponent("${manageable.manageableIdentifier.name}")).getValue().toString()),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); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) { + throwable.printStackTrace(); this.addExceptionMessage(throwable); } } @@ -431,10 +443,59 @@ #end #if ($manageable.maximumListSize > 0) private void saveMaxResultsWarning() { - addWarningMessage(org.andromda.presentation.jsf2.Messages.get("maximum.results.fetched.warning", new Object[]{String.valueOf("${manageable.maximumListSize}")})); + addWarningMessage(${managedBeansPackage}.Messages.get("maximum.results.fetched.warning", new Object[]{String.valueOf("${manageable.maximumListSize}")})); } #end + public void fillAutocomplete(javax.faces.event.ActionEvent event){ + final javax.faces.context.FacesContext facesContext = this.getContext(); + final java.util.Map parameters = facesContext.getExternalContext().getRequestParameterMap(); + final Object fieldValue = parameters.get(this.getParameterValue("searchFieldRequestParamName",event)); + try{ + final java.util.List list = ${manageable.manageableServiceAccessorCall}.read( +#set ($comma = '') +#foreach ($member in $manageable.manageableMembers) +#if($member.name == $manageable.displayAttribute.name) +#if($member.type.stringType) + ${comma}(String)fieldValue +#else +#if($member.type.primitive) + ${comma}(fieldValue==null) ? null : ${member.type.wrapperName}.valueOf(fieldValue.toString()) +#else + ${comma}(fieldValue==null) ? null : ${member.type.fullyQualifiedName}.valueOf(fieldValue.toString()) +#end +#end +#else + ${comma}null +#end +#set ($comma = ', ') +#end + ); + final javax.faces.el.ValueBinding vb = facesContext.getApplication().createValueBinding("#{autocompleteResult}"); + vb.setValue(facesContext, list); + } + catch (final Throwable throwable) + { + throwable.printStackTrace(); + this.addExceptionMessage(throwable); + } + } + + public java.util.Collection<javax.faces.model.SelectItem> getAsSelectItems(){ + final java.util.Collection<${manageable.valueObjectClassName}> vos; + try { + vos = ${manageable.manageableServiceAccessorCall}.readAll(); + } catch (Exception e) { + e.printStackTrace(); + this.addExceptionMessage(e); + return null; + } + final java.util.Collection<javax.faces.model.SelectItem> result=new java.util.ArrayList<javax.faces.model.SelectItem>(vos.size()); + for(${manageable.valueObjectClassName} vo: vos){ + result.add(new javax.faces.model.SelectItem(vo.${manageable.manageableIdentifier.getterName}(),org.apache.commons.lang.ObjectUtils.toString(vo.get$stringUtils.upperCamelCaseName($manageable.displayAttribute.name)()))); + } + return result; + } protected ${manageable.formBeanType} getForm() { @@ -442,6 +503,21 @@ } /** + * Returns an javax.faces.event.ActionEvent parameter value, from its name + */ + protected Object getParameterValue(String parameterName, javax.faces.event.ActionEvent event){ + for(Object uiObject : event.getComponent().getChildren()){ + if(uiObject instanceof javax.faces.component.UIParameter){ + final javax.faces.component.UIParameter param = (javax.faces.component.UIParameter)uiObject; + if(param.getName().equals(parameterName)) { + return param.getValue(); + } + } + } + return null; + } + + /** * Gets the current faces context. This object is the point * from which to retrieve any request, session, etc information. * @@ -507,7 +583,7 @@ * * @param throwable the exception information to add. */ - private final void addExceptionMessage( + protected final void addExceptionMessage( Throwable throwable) { String message = null; 1.3 +5 -15 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/SearchForm.java.vsl Index: SearchForm.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/SearchForm.java.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- SearchForm.java.vsl 18 Jan 2007 10:11:08 -0000 1.2 +++ SearchForm.java.vsl 2 Mar 2008 20:59:16 -0000 1.3 @@ -62,8 +62,12 @@ #end #foreach ($member in $manageable.manageableSearchAssociationEnds) -#set ($identifier = $member.type.manageableIdentifier) #set ($fieldType = $member.manageableIdentifier.type.fullyQualifiedName) +#if($member.type.hasStereotype("Manageable")) +#set ($fieldType = $member.manageableIdentifier.type.fullyQualifiedName) +#else +#set ($fieldType = $member.type.identifiers.get(0).type.fullyQualifiedName) +#end #if ($member.many) #set ($fieldType = "${fieldType}[]") #end @@ -89,20 +93,6 @@ public void set${backingListMethod}(java.util.Collection ${member.backingListName}){ this.${member.backingListName} = ${member.backingListName}; } - - private ${member.type.searchFormBeanType} ${member.name}SearchForm = null;##não pode inicializar direto senão dá loop - - $member.visibility ${member.type.searchFormBeanType} ${member.getterName}SearchForm() - { - if(this.${member.name}SearchForm == null) - this.${member.name}SearchForm = new ${member.type.searchFormBeanType}(); - return this.${member.name}SearchForm; - } - - $member.visibility void ${member.setterName}SearchForm(${member.type.searchFormBeanType} ${member.name}SearchForm) - { - this.${member.name}SearchForm = ${member.name}SearchForm; - } #end /** 1.4 +5 -15 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl Index: Form.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/forms/crud/Form.java.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- Form.java.vsl 4 Mar 2007 16:06:54 -0000 1.3 +++ Form.java.vsl 2 Mar 2008 20:59:16 -0000 1.4 @@ -170,8 +170,11 @@ #end #foreach ($member in $manageable.manageableAssociationEnds) -#set ($identifier = $member.type.manageableIdentifier) +#if($member.type.hasStereotype("Manageable")) #set ($fieldType = $member.manageableIdentifier.type.fullyQualifiedName) +#else +#set ($fieldType = $member.type.identifiers.get(0).type.fullyQualifiedName) +#end #if ($member.many) #set ($fieldType = "${fieldType}[]") #end @@ -198,19 +201,6 @@ this.${member.backingListName} = ${member.backingListName}; } - private ${member.type.searchFormBeanType} ${member.name}SearchForm = null;##não pode inicializar direto senão dá loop - - $member.visibility ${member.type.searchFormBeanType} ${member.getterName}SearchForm() - { - if(this.${member.name}SearchForm == null) - this.${member.name}SearchForm = new ${member.type.searchFormBeanType}(); - return this.${member.name}SearchForm; - } - - $member.visibility void ${member.setterName}SearchForm(${member.type.searchFormBeanType} ${member.name}SearchForm) - { - this.${member.name}SearchForm = ${member.name}SearchForm; - } #end /** * Stores any date or time formatters for this form. 1.6 +7 -0 cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml Index: namespace.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/namespace.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- namespace.xml 19 Jul 2007 17:31:43 -0000 1.5 +++ namespace.xml 2 Mar 2008 20:59:16 -0000 1.6 @@ -515,6 +515,13 @@ The name to give the pattern matching exception handler. </documentation> </property> + <property name="useAutocompleteLookup"> + <default>false</default> + <documentation> + Use autocomplete instead of select, to select related entities. + Available only with Facelets. + </documentation> + </property> </propertyGroup> <propertyGroup name="Manageable Entities"> <documentation> 1.12 +26 -15 cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml Index: cartridge.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/META-INF/andromda/cartridge.xml,v retrieving revision 1.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- cartridge.xml 2 Nov 2007 18:13:33 -0000 1.11 +++ cartridge.xml 2 Mar 2008 20:59:17 -0000 1.12 @@ -67,6 +67,7 @@ <property reference="defaultTableExportTypes"/> <property reference="manageableFormName"/> <property reference="manageableFieldMaxLength"/> + <property reference="useAutocompleteLookup"/> <property reference="manageableReferenceParameterPrefix"/> <property reference="crudValueObjectSuffix"/> @@ -83,6 +84,7 @@ <condition name="clientValidation">$clientValidation.equalsIgnoreCase("true")</condition> <condition name="formSerialization">$formSerialization.equalsIgnoreCase("true")</condition> <condition name="securityEnabled">$stringUtils.isNotBlank($securityRealm)</condition> + <condition name="useAutocompleteLookup">$useAutocompleteLookup.equalsIgnoreCase("true")</condition> <!-- condition merge-point--> @@ -137,20 +139,6 @@ overwrite="true"/> <resource - path="resources/WEB-INF/lib/*.jar" - outputPattern="WEB-INF/lib/{0}" - outlet="configuration" - overwrite="true" - lastModifiedCheck="true"/> - - <resource - path="resources/lib/trinidad/*.jar" - outputPattern="WEB-INF/lib/{0}" - outlet="libraries" - overwrite="true" - lastModifiedCheck="true"/> - - <resource path="resources/views/css/*" outputPattern="css/{0}" outlet="custom-resources" @@ -491,7 +479,6 @@ path="templates/jsf2/utils/JsfUtils.java.vsl" outputPattern="$stringUtils.replace($managedBeansPackage, '.', '/')/${className}.java" outlet="managed-beans" - outputCondition="formSerialization" overwrite="true"/> <template @@ -607,6 +594,30 @@ outputCondition="viewTypeIsFacelets"/> <template + path="templates/jsf2/views/facelets/components/autocomplete.xhtml.vsl" + outputPattern="WEB-INF/facelets/components/autocomplete.xhtml" + outlet="views" + overwrite="true" + generateEmptyFiles="true" + outputCondition="viewTypeIsFacelets"/> + + <template + path="templates/jsf2/views/facelets/components/autocompleteMulti.xhtml.vsl" + outputPattern="WEB-INF/facelets/components/autocompleteMulti.xhtml" + outlet="views" + overwrite="true" + generateEmptyFiles="true" + outputCondition="viewTypeIsFacelets"/> + + <template + path="templates/jsf2/views/facelets/jsf2.taglib.xml.vsl" + outputPattern="WEB-INF/jsf2.taglib.xml" + outlet="views" + overwrite="true" + generateEmptyFiles="true" + outputCondition="viewTypeIsFacelets"/> + + <template path="templates/jsf2/views/facelets/view.xhtml.vsl" outputPattern="${view.path}.xhtml" outlet="views" 1.1 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/purple/images/autocomplete-button-action.gif <<Binary file>> 1.1 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/purple/images/autocomplete-button.gif <<Binary file>> 1.3 +28 -0 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/beach/beach.css Index: beach.css =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/resources/views/skins/beach/beach.css,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- beach.css 19 Jul 2007 17:38:57 -0000 1.2 +++ beach.css 2 Mar 2008 20:59:17 -0000 1.3 @@ -450,3 +450,31 @@ { margin: 25px; } \ No newline at end of file + +/** Autocomplete component **/ + +/* autocomplete classes: should go to skin css in the future */ +.autocomplete-line { + background-color: #E0ECFF; + cursor:pointer; +} + +.autocomplete-selected-line{ + background-color: #C3D9FF; + cursor:pointer; +} + +.autocomplete-button, .autocomplete-button-action{ + border:0px; + width:22px; + height:17px; + background-color: transparent; + background-image:url(/skins/beach/images/autocomplete-button.gif); + background-position:top center; + background-repeat: no-repeat; + cursor:pointer; +} + +.autocomplete-button-action{ + background-image:url(/skins/beach/images/autocomplete-button-action.gif); +} \ No newline at end of file 1.2 +28 -0 cartridges/andromda-jsf2/src/main/resources/resources/views/skins/default/default.css Index: default.css =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/resources/views/skins/default/default.css,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- default.css 5 Dec 2006 19:39:33 -0000 1.1 +++ default.css 2 Mar 2008 20:59:18 -0000 1.2 @@ -547,3 +547,31 @@ { width: 100%; } \ No newline at end of file + +/** Autocomplete component **/ + +/* autocomplete classes: should go to skin css in the future */ +.autocomplete-line { + background-color: #E0ECFF; + cursor:pointer; +} + +.autocomplete-selected-line{ + background-color: #C3D9FF; + cursor:pointer; +} + +.autocomplete-button, .autocomplete-button-action{ + border:0px; + width:22px; + height:17px; + background-color: transparent; + background-image:url(/skins/default/images/autocomplete-button.gif); + background-position:top center; + background-repeat: no-repeat; + cursor:pointer; +} + +.autocomplete-button-action{ + background-image:url(/skins/default/images/autocomplete-button-action.gif); +} \ No newline at end of file 1.1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/jsf2.taglib.xml.vsl Index: jsf2.taglib.xml.vsl =================================================================== <?xml version="1.0"?> <!DOCTYPE facelet-taglib PUBLIC "-//Sun Microsystems, Inc.//DTD Facelet Taglib 1.0//EN" "http://java.sun.com/dtd/web-facesconfig_1_0.dtd"> <facelet-taglib> <namespace>http://www.andromda.org/cartridges/jsf2</namespace> <tag> <tag-name>autocomplete</tag-name> <source> facelets/components/autocomplete.xhtml </source> </tag> <tag> <tag-name>autocompleteMulti</tag-name> <source> facelets/components/autocompleteMulti.xhtml </source> </tag> <function> <function-name>valueFromConverter</function-name> <function-class>${managedBeansPackage}.JsfUtils</function-class> <function-signature>java.lang.String valueFromConverter(java.lang.Object, java.lang.String, java.lang.String)</function-signature> </function> <function> <function-name>valueFromConverter</function-name> <function-class>${managedBeansPackage}.JsfUtils</function-class> <function-signature>java.lang.String valueFromConverter(java.lang.Object, java.lang.String)</function-signature> </function> </facelet-taglib> 1.2 +7 -1 plugins/.project Index: .project =================================================================== RCS file: /cvsroot/andromdaplugins/plugins/.project,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- .project 19 Dec 2005 03:51:24 -0000 1.1 +++ .project 2 Mar 2008 20:59:18 -0000 1.2 @@ -1,11 +1,17 @@ <?xml version="1.0" encoding="UTF-8"?> <projectDescription> - <name>plugins</name> + <name>andromda-plugins</name> <comment></comment> <projects> </projects> <buildSpec> + <buildCommand> + <name>org.jboss.ide.eclipse.archives.core.archivesBuilder</name> + <arguments> + </arguments> + </buildCommand> </buildSpec> <natures> + <nature>org.jboss.ide.eclipse.archives.core.archivesNature</nature> </natures> </projectDescription> 1.2 +12 -3 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/crud/EntityConverter.java.vsl Index: EntityConverter.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/crud/EntityConverter.java.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- EntityConverter.java.vsl 2 Nov 2007 18:13:31 -0000 1.1 +++ EntityConverter.java.vsl 2 Mar 2008 20:59:18 -0000 1.2 @@ -17,12 +17,21 @@ java.lang.Object value) throws javax.faces.convert.ConverterException { + if(value == null) + return ""; + final ${manageable.valueObjectClassName} vo; try { - vo = ${manageable.manageableServiceAccessorCall}.readById((${manageable.manageableIdentifier.type.name})value); + final ${manageable.manageableIdentifier.type.name} id; + if(value instanceof String) + id = ${manageable.manageableIdentifier.type.name}.valueOf((String)value); + else + id = (${manageable.manageableIdentifier.type.name})value; + + vo = ${manageable.manageableServiceAccessorCall}.readById(id); } catch (Exception e) { e.printStackTrace(); - return ("Id "+value+" not found."); + return ("Failed to locate object."); } #if($manageable.displayAttribute.type.stringType) return vo.get$stringUtils.upperCamelCaseName($manageable.displayAttribute.name)(); @@ -40,6 +49,6 @@ java.lang.String value) throws javax.faces.convert.ConverterException { - return null; + throw new UnsupportedOperationException(); } } 1.1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components/autocomplete.xhtml.vsl Index: autocomplete.xhtml.vsl =================================================================== <ui:component xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:tr="http://myfaces.apache.org/trinidad" xmlns:trh="http://myfaces.apache.org/trinidad/html" xmlns:c="http://java.sun.com/jstl/core" xmlns:jsf2="http://www.andromda.org/cartridges/jsf2"> <c:set var="jsIdPrefix" value=""/> <c:if test="#{not empty parentId}"> <c:set var="jsIdPrefix" value="#{parentId}:"/> </c:if> <c:set var="autocompleteSubformId" value="_#{id}_subformAutocomplete"/> <c:set var="editId" value="edit"/> <c:set var="jsEditId" value="#{jsIdPrefix}#{autocompleteSubformId}:#{editId}"/> <c:set var="jsActionId" value="#{jsIdPrefix}#{autocompleteSubformId}:action"/> <c:set var="jsTableId" value="#{jsIdPrefix}#{autocompleteSubformId}:table"/> <c:set var="jsHiddenId" value="#{jsIdPrefix}#{id}"/> <c:set var="timeoutVar" value="_#{parentId}_#{id}_timeout_"/> <c:set var="lineArrayVar" value="_#{parentId}_#{id}_lineArray_"/> <c:set var="selectedLineVar" value="_#{parentId}_#{id}_selectedLine_"/> <c:set var="orgValue" value="_#{parentId}_#{id}_orgValue_"/> <c:set var="orgEditValue" value="_#{parentId}_#{id}_orgEditValue_"/> <c:set var="showResultTableFunc" value="_#{parentId}_#{id}_showResultTableFunc"/> <c:set var="setValuesFromTableFunc" value="_#{parentId}_#{id}_setValuesFromTableFunc"/> <c:set var="hideResultTableFunc" value="_#{parentId}_#{id}_hideResultTableFunc"/> <c:set var="editKeydownFunc" value="_#{parentId}_#{id}_editKeydownFunc"/> <c:set var="pprMonitorFunc" value="_#{parentId}_#{id}_pprMonitorFunc"/> <c:set var="addPPRListenerFunc" value="_#{parentId}_#{id}_addPPRListenerFunc"/> <c:set var="checkEmptyEditFunc" value="_#{parentId}_#{id}_checkEmptyEditFunc"/> <tr:inputHidden id="#{id}" value="#{value}" required="#{required}" /> <tr:subform id="#{autocompleteSubformId}"> <trh:script type="text/javascript"> var #{timeoutVar}=null; var #{lineArrayVar}=null; var #{selectedLineVar}=null; var #{orgValue}=''; var #{orgEditValue}=''; function #{showResultTableFunc}(ignoreEdit){ window.clearTimeout(#{timeoutVar}); var edit=document.getElementById('#{jsEditId}'); if(ignoreEdit || edit.value != ''){ #{selectedLineVar} = null; #{lineArrayVar} = null; var action=document.getElementById('#{jsActionId}') action.click(); } else { #{hideResultTableFunc}(); } } function #{pprMonitorFunc}(state) { var busy = state == TrRequestQueue.STATE_BUSY; if(busy){ document.getElementById('#{jsActionId}').className = 'autocomplete-button-action'; } else { document.getElementById('#{jsActionId}').className = 'autocomplete-button'; TrPage.getInstance().getRequestQueue().removeStateChangeListener(#{pprMonitorFunc}); var firstElement = document.getElementById('#{jsTableId}0'); if(firstElement){ var table = document.getElementById('#{jsTableId}'); var edit=document.getElementById('#{jsEditId}'); #{lineArrayVar} = table.getElementsByTagName('TD'); #{selectedLineVar} = 0; firstElement.className='autocomplete-selected-line'; table.style.display=""; table.style.left = edit.style.left; table.style.top = edit.style.top+edit.style.height; table.style.width = edit.offsetWidth; #{orgValue} = document.getElementById('#{jsHiddenId}').value; #{orgEditValue} = edit.value; edit.focus(); } else { #{selectedLineVar} = null; #{lineArrayVar} = null; } } } function #{addPPRListenerFunc}() { var requestQueue = TrPage.getInstance().getRequestQueue(); requestQueue.addStateChangeListener(#{pprMonitorFunc}); } function #{setValuesFromTableFunc}(hiddenValue, editValue){ document.getElementById('#{jsEditId}').value=editValue; //the order matters document.getElementById('#{jsHiddenId}').value=hiddenValue; #{hideResultTableFunc}(); } function #{hideResultTableFunc}(){ window.clearTimeout(#{timeoutVar}); #{timeoutVar}=null; document.getElementById('#{jsTableId}').style.display='none'; #{selectedLineVar}=null; #{lineArrayVar}=null; } function #{checkEmptyEditFunc}(){ var edit=document.getElementById('#{jsEditId}'); var hidden=document.getElementById('#{jsHiddenId}'); if(hidden.value == ''){ edit.value = ''; } else { edit.value = edit.value.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //trim if(edit.value == ''){ hidden.value = ''; } } } function #{editKeydownFunc}(event) { window.clearTimeout(#{timeoutVar}); var _keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if(#{selectedLineVar} == null){ if(_keyCode==40) { //down arrow #{showResultTableFunc}(true); } else { #{timeoutVar}=window.setTimeout('#{showResultTableFunc}(false);',900); } } else { if(_keyCode==38){//up arrow if(#{selectedLineVar} > 0){ document.getElementById('#{jsTableId}'+#{selectedLineVar}).className='autocomplete-line'; --#{selectedLineVar}; document.getElementById('#{jsTableId}'+#{selectedLineVar}).className='autocomplete-selected-line'; } }else if(_keyCode==40){//down arrow if((#{lineArrayVar}.length - 1) > #{selectedLineVar}){ if(#{selectedLineVar} > -1) document.getElementById('#{jsTableId}'+#{selectedLineVar}).className='autocomplete-line'; ++#{selectedLineVar}; document.getElementById('#{jsTableId}'+#{selectedLineVar}).className='autocomplete-selected-line'; } }else if(_keyCode==27){ //esc #{setValuesFromTableFunc}(#{orgValue}, #{orgEditValue}); return false; }else if(_keyCode==13){ //enter document.getElementById('#{jsTableId}'+#{selectedLineVar}).onclick(); return false; }else if(_keyCode==9){ //tab document.getElementById('#{jsTableId}'+#{selectedLineVar}).onclick(); } else { #{timeoutVar}=window.setTimeout('#{showResultTableFunc}(false);',900); } } return true; } </trh:script> <h:inputText id="#{editId}" autocomplete="off" required="#{required}" readOnly="#{readOnly}" ondblclick="document.getElementById('#{jsActionId}').click(); return false;" onkeydown="return #{editKeydownFunc}(event);" onchange="document.getElementById('#{jsHiddenId}').value=''; return true;" onblur="window.clearTimeout(#{timeoutVar}); #{checkEmptyEditFunc}(); #{timeoutVar}=window.setTimeout('#{hideResultTableFunc}();',100);" value="#{empty value ? '' : jsf2:valueFromConverter(value,itemConverterId)}"/> <tr:commandButton id="action" styleClass="autocomplete-button" actionListener="#{locateBackingBean[locateActionListenerName]}" partialSubmit="true" text="" immediate="true" onclick="#{addPPRListenerFunc}(); return true;"> <f:param name="searchFieldRequestParamName" value="#{jsEditId}"/> </tr:commandButton> <tr:table inlineStyle="position:absolute; z-index:100; #{empty autocompleteResult ? 'display:none': ''}" id="table" var="row" value="#{autocompleteResult}" rows="20" width="100%" partialTriggers="action" varStatus="status"> <tr:column> <div id="#{jsTableId}#{status.index}" class="autocomplete-line" onmouseover="this.className='autocomplete-selected-line';" onmouseout="this.className = 'autocomplete-line';" onclick="#{setValuesFromTableFunc}('#{row[locateValueFieldName]}','#{row[locateVisibleFieldName]}');" > <c:if test="#{not empty locateVisibleFieldName}"> <h:outputText value="#{row[locateVisibleFieldName]}"/> </c:if> <c:if test="#{empty locateVisibleFieldName}"> <h:outputText value="#{row[locateValueFieldName]}" converter="#{itemConverterId}"/> </c:if> </div> </tr:column> </tr:table> </tr:subform> </ui:component> 1.1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components/autocompleteMulti.xhtml.vsl Index: autocompleteMulti.xhtml.vsl =================================================================== <ui:component xmlns:h="http://java.sun.com/jsf/html" xmlns:f="http://java.sun.com/jsf/core" xmlns:ui="http://java.sun.com/jsf/facelets" xmlns:tr="http://myfaces.apache.org/trinidad" xmlns:trh="http://myfaces.apache.org/trinidad/html" xmlns:c="http://java.sun.com/jstl/core" xmlns:jsf2="http://www.andromda.org/cartridges/jsf2"> <c:set var="jsIdPrefix" value="" /> <c:if test="#{not empty parentId}"> <c:set var="jsIdPrefix" value="#{parentId}:" /> </c:if> <c:set var="autocompleteSubformId" value="_#{id}_subformAutocomplete" /> <c:set var="hiddenId" value="hidden" /> <c:set var="editId" value="edit" /> <c:set var="jsEditId" value="#{jsIdPrefix}#{autocompleteSubformId}:#{editId}" /> <c:set var="jsHiddenId" value="#{jsIdPrefix}#{autocompleteSubformId}:#{hiddenId}" /> <c:set var="jsActionId" value="#{jsIdPrefix}#{autocompleteSubformId}:action" /> <c:set var="jsTableId" value="#{jsIdPrefix}#{autocompleteSubformId}:table" /> <c:set var="jsVisibleListId" value="#{jsIdPrefix}#{autocompleteSubformId}:visibleList" /> <c:set var="jsHiddenListId" value="#{jsIdPrefix}#{id}" /> <c:set var="timeoutName" value="_#{parentId}_#{id}_timeout_" /> <c:set var="lineArrayName" value="_#{parentId}_#{id}_lineArray_" /> <c:set var="selectedLineName" value="_#{parentId}_#{id}_selectedLine_" /> <c:set var="orgValue" value="_#{parentId}_#{id}_orgValue_" /> <c:set var="orgEditValue" value="_#{parentId}_#{id}_orgEditValue_" /> <c:set var="showResultTable" value="_#{parentId}_#{id}_showResultTable" /> <c:set var="setValuesFromTable" value="_#{parentId}_#{id}_setValuesFromTable" /> <c:set var="hideResultTable" value="_#{parentId}_#{id}_hideResultTable" /> <c:set var="editKeydown" value="_#{parentId}_#{id}_editKeydown" /> <c:set var="pprMonitor" value="_#{parentId}_#{id}_pprMonitor" /> <c:set var="addPPRListener" value="_#{parentId}_#{id}_addPPRListener" /> <c:set var="checkEmptyEdit" value="_#{parentId}_#{id}_checkEmptyEdit" /> <c:set var="addActionClick" value="_#{parentId}_#{id}_addActionClick" /> <c:set var="removeActionClick" value="_#{parentId}_#{id}_removeActionClick" /> <c:set var="addValueToLists" value="_#{parentId}_#{id}_addValueToLists" /> <tr:selectManyListbox inlineStyle="display:none" id="#{id}" value="#{value}" required="#{required}" simple="true" valuePassThru="true"> <c:forEach var="item" items="#{value}"> <tr:selectItem value="#{item}" /> </c:forEach> </tr:selectManyListbox> <tr:subform id="#{autocompleteSubformId}"> <trh:script type="text/javascript"> var #{timeoutName}=null; var #{lineArrayName}=null; var #{selectedLineName}=null; var #{orgValue}=''; var #{orgEditValue}=''; function #{showResultTable}(ignoreEdit){ window.clearTimeout(#{timeoutName}); var edit=document.getElementById('#{jsEditId}'); if(ignoreEdit || edit.value != ''){ #{selectedLineName} = null; #{lineArrayName} = null; var action=document.getElementById('#{jsActionId}') action.click(); } else { #{hideResultTable}(); } } function #{pprMonitor}(state) { var busy = state == TrRequestQueue.STATE_BUSY; if(busy){ document.getElementById('#{jsActionId}').className = 'autocomplete-button-action'; } else { document.getElementById('#{jsActionId}').className = 'autocomplete-button'; TrPage.getInstance().getRequestQueue().removeStateChangeListener(#{pprMonitor}); var firstElement = document.getElementById('#{jsTableId}0'); if(firstElement){ var table = document.getElementById('#{jsTableId}'); var edit=document.getElementById('#{jsEditId}'); #{lineArrayName} = table.getElementsByTagName('TD'); #{selectedLineName} = 0; firstElement.className='autocomplete-selected-line'; table.style.display=""; table.style.left = edit.style.left; table.style.top = edit.style.top+edit.style.height; table.style.width = edit.offsetWidth; #{orgValue} = document.getElementById('#{jsHiddenId}').value; #{orgEditValue} = edit.value; edit.focus(); } else { #{selectedLineName} = null; #{lineArrayName} = null; } } } function #{addPPRListener}() { var requestQueue = TrPage.getInstance().getRequestQueue(); requestQueue.addStateChangeListener(#{pprMonitor}); } function #{setValuesFromTable}(hiddenValue, editValue){ document.getElementById('#{jsEditId}').value=editValue; //the order matters document.getElementById('#{jsHiddenId}').value=hiddenValue; #{hideResultTable}(); } function #{hideResultTable}(){ window.clearTimeout(#{timeoutName}); #{timeoutName}=null; document.getElementById('#{jsTableId}').style.display='none'; #{selectedLineName}=null; #{lineArrayName}=null; } function #{checkEmptyEdit}(){ var edit=document.getElementById('#{jsEditId}'); var hidden=document.getElementById('#{jsHiddenId}'); if(hidden.value == ''){ edit.value = ''; } else { edit.value = edit.value.replace(/^\s\s*/, '').replace(/\s\s*$/, ''); //trim if(edit.value == ''){ hidden.value = ''; } } } function #{editKeydown}(event) { window.clearTimeout(#{timeoutName}); var _keyCode = event.keyCode ? event.keyCode : event.which ? event.which : event.charCode; if(#{selectedLineName} == null){ if(_keyCode==40) { //down arrow #{showResultTable}(true); } else { #{timeoutName}=window.setTimeout('#{showResultTable}(false);',900); } } else { if(_keyCode==38){//up arrow if(#{selectedLineName} > 0){ document.getElementById('#{jsTableId}'+#{selectedLineName}).className='autocomplete-line'; --#{selectedLineName}; document.getElementById('#{jsTableId}'+#{selectedLineName}).className='autocomplete-selected-line'; } }else if(_keyCode==40){//down arrow if((#{lineArrayName}.length - 1) > #{selectedLineName}){ if(#{selectedLineName} > -1) document.getElementById('#{jsTableId}'+#{selectedLineName}).className='autocomplete-line'; ++#{selectedLineName}; document.getElementById('#{jsTableId}'+#{selectedLineName}).className='autocomplete-selected-line'; } }else if(_keyCode==27){ //esc #{setValuesFromTable}(#{orgValue}, #{orgEditValue}); return false; }else if(_keyCode==13){ //enter document.getElementById('#{jsTableId}'+#{selectedLineName}).onclick(); return false; }else if(_keyCode==9){ //tab document.getElementById('#{jsTableId}'+#{selectedLineName}).onclick(); } else { #{timeoutName}=window.setTimeout('#{showResultTable}(false);',900); } } return true; } function #{addValueToLists}(value, label){ var hiddenList = document.getElementById('#{jsHiddenListId}'); hiddenList[hiddenList.options.length]=new Option(label, value, true,true); var visibleList = document.getElementById('#{jsVisibleListId}'); visibleList[visibleList.options.length]=new Option(label, value, false,false); } function #{addActionClick}(){ var hiddenValue = document.getElementById('#{jsHiddenId}').value; if(hiddenValue != ''){ #{addValueToLists}(hiddenValue, document.getElementById('#{jsEditId}').value); #{setValuesFromTable}('', '') } } function #{removeActionClick} (){ var hiddenList = document.getElementById('#{jsHiddenListId}'); var visibleList = document.getElementById('#{jsVisibleListId}'); for (var i = visibleList.length - 1; i>=0; i--) { if (visibleList.options[i].selected) { visibleList.remove(i); hiddenList.remove(i); } } } <... [truncated message content] |
From: Walter M. <wal...@us...> - 2008-03-02 20:58:57
|
User: walterim Date: 08/03/02 12:59:00 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/components - New directory |
From: Walter M. <wal...@us...> - 2008-03-02 20:57:19
|
User: walterim Date: 08/03/02 12:57:23 Modified: andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades JSFViewLogicImpl.java Log: small bug Revision Changes Path 1.4 +1 -1 cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFViewLogicImpl.java Index: JSFViewLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFViewLogicImpl.java,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- JSFViewLogicImpl.java 1 Jul 2007 19:11:59 -0000 1.3 +++ JSFViewLogicImpl.java 2 Mar 2008 20:57:22 -0000 1.4 @@ -392,7 +392,7 @@ if(parameter.isInputFile()) return true; if(parameter.isComplex()){ - for(final Iterator attributes = parameter.getAttributes().iterator(); iterator.hasNext();) + for(final Iterator attributes = parameter.getAttributes().iterator(); attributes.hasNext();) if(((JSFAttribute)attributes.next()).isInputFile()) return true; } |
From: Walter M. <wal...@us...> - 2008-02-25 14:36:12
|
User: walterim Date: 08/02/25 06:36:15 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/jsp login.jsp.vsl view.jsp.vsl view-popup.jsp.vsl Log: Using tr:image instead of t:graphicImage to allow skin handling Revision Changes Path 1.6 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/login.jsp.vsl Index: login.jsp.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/login.jsp.vsl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- login.jsp.vsl 19 Jul 2007 18:09:29 -0000 1.5 +++ login.jsp.vsl 25 Feb 2008 14:36:15 -0000 1.6 @@ -25,7 +25,7 @@ </f:facet> <f:facet name="menu2"> <tr:menuBar> - <t:graphicImage url="/images/space.gif"/> + <tr:image source="/images/space.gif"/> </tr:menuBar> </f:facet> <f:facet name="appCopyright"> 1.5 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/view.jsp.vsl Index: view.jsp.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/view.jsp.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- view.jsp.vsl 19 Jul 2007 18:09:27 -0000 1.4 +++ view.jsp.vsl 25 Feb 2008 14:36:15 -0000 1.5 @@ -37,7 +37,7 @@ <h:panelGrid columns="3" styleClass="userPanel" width="100%"> <h:panelGrid columns="1" style="text-align:right" width="100%"> <h:panelGroup styleClass="userPanel"> - <t:graphicImage url="/images/user.gif"/> + <tr:image source="/images/user.gif"/> <tr:outputText value=" #{remoteUser}"/> </h:panelGroup> </h:panelGrid> 1.2 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/view-popup.jsp.vsl Index: view-popup.jsp.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/view-popup.jsp.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- view-popup.jsp.vsl 5 Dec 2006 19:39:21 -0000 1.1 +++ view-popup.jsp.vsl 25 Feb 2008 14:36:15 -0000 1.2 @@ -23,7 +23,7 @@ <h:panelGrid id="popupView" columns="1" styleClass="popup"> <h:panelGrid id="popupViewHeader" columns="1" styleClass="popupHeader"> <h:form> - <h:commandLink action="closePopup"><t:graphicImage url="/images/x.gif" border="0"/></h:commandLink> + <h:commandLink action="closePopup"><tr:image source="/images/x.gif" border="0"/></h:commandLink> </h:form> </h:panelGrid> #foreach ($action in $view.actions) |
From: Walter M. <wal...@us...> - 2008-02-25 14:35:48
|
User: walterim Date: 08/02/25 06:35:55 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/preferences preferences.jsp.vsl Log: Using tr:image instead of t:graphicImage to allow skin handling Revision Changes Path 1.4 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/preferences/preferences.jsp.vsl Index: preferences.jsp.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/preferences/preferences.jsp.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- preferences.jsp.vsl 19 Jul 2007 17:11:07 -0000 1.3 +++ preferences.jsp.vsl 25 Feb 2008 14:35:54 -0000 1.4 @@ -27,7 +27,7 @@ </f:facet> <f:facet name="menu2"> <tr:menuBar> - <t:graphicImage url="/images/space.gif"/> + <tr:image source="/images/space.gif"/> </tr:menuBar> </f:facet> <f:facet name="menu3"> |
From: Walter M. <wal...@us...> - 2008-02-25 14:35:27
|
User: walterim Date: 08/02/25 06:35:32 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/includes view-table.jspf.vsl Log: Using tr:image instead of t:graphicImage to allow skin handling Revision Changes Path 1.4 +3 -3 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/includes/view-table.jspf.vsl Index: view-table.jspf.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/jsp/includes/view-table.jspf.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- view-table.jspf.vsl 26 Sep 2007 16:11:45 -0000 1.3 +++ view-table.jspf.vsl 25 Feb 2008 14:35:32 -0000 1.4 @@ -53,7 +53,7 @@ #else <tr:column> <f:facet name="header"> - <t:graphicImage url="/images/space.gif"/> + <tr:image source="/images/space.gif"/> </f:facet> <tr:outputText value="#{row}"> #if ($column.type.dateType) @@ -67,7 +67,7 @@ #if (!$action.tableLinkColumnName) <tr:column> <f:facet name="header"> - <h:panelGroup styleClass="actionColumn"><t:graphicImage url="/images/space.gif"/></h:panelGroup> + <h:panelGroup styleClass="actionColumn"><tr:image source="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup styleClass="actionColumn"> <tr:commandLink text="#{messages['$action.trigger.messageKey']}" action="#{${action.controller.beanName}.${action.triggerName}}" actionListener="#{${action.controller.beanName}.action}"> @@ -82,7 +82,7 @@ #if (!$action.tableLinkColumnName) <tr:column> <f:facet name="header"> - <h:panelGroup styleClass="actionColumn"><t:graphicImage url="/images/space.gif"/></h:panelGroup> + <h:panelGroup styleClass="actionColumn"><tr:image source="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup styleClass="actionColumn"> <tr:commandButton text="#{messages['$action.trigger.messageKey']}" action="#{${action.controller.beanName}.${action.triggerName}}" actionListener="#{${action.controller.beanName}.action}"> |
From: Walter M. <wal...@us...> - 2008-02-25 14:32:30
|
User: walterim Date: 08/02/25 06:32:35 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets view-table.xhtml.vsl view-popup.xhtml.vsl Log: Using tr:image instead of t:graphicImage to allow skin handling Revision Changes Path 1.6 +3 -3 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-table.xhtml.vsl Index: view-table.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-table.xhtml.vsl,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- view-table.xhtml.vsl 26 Sep 2007 16:11:45 -0000 1.5 +++ view-table.xhtml.vsl 25 Feb 2008 14:32:34 -0000 1.6 @@ -62,7 +62,7 @@ #else <tr:column> <f:facet name="header"> - <t:graphicImage url="/images/space.gif"/> + <tr:image source="/images/space.gif"/> </f:facet> <tr:outputText value="#{row}"> #if ($column.type.dateType) @@ -76,7 +76,7 @@ #if (!$action.tableLinkColumnName) <tr:column> <f:facet name="header"> - <h:panelGroup styleClass="actionColumn"><t:graphicImage url="/images/space.gif"/></h:panelGroup> + <h:panelGroup styleClass="actionColumn"><tr:image source="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup styleClass="actionColumn"> <tr:commandLink text="#{messages['$action.trigger.messageKey']}" action="#{${action.controller.beanName}.${action.triggerName}}" actionListener="#{${action.controller.beanName}.action}"> @@ -91,7 +91,7 @@ #if (!$action.tableLinkColumnName) <tr:column> <f:facet name="header"> - <h:panelGroup styleClass="actionColumn"><t:graphicImage url="/images/space.gif"/></h:panelGroup> + <h:panelGroup styleClass="actionColumn"><tr:image source="/images/space.gif"/></h:panelGroup> </f:facet> <h:panelGroup styleClass="actionColumn"> <tr:commandButton text="#{messages['$action.trigger.messageKey']}" action="#{${action.controller.beanName}.${action.triggerName}}" actionListener="#{${action.controller.beanName}.action}"> 1.2 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-popup.xhtml.vsl Index: view-popup.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-popup.xhtml.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- view-popup.xhtml.vsl 5 Dec 2006 19:39:14 -0000 1.1 +++ view-popup.xhtml.vsl 25 Feb 2008 14:32:35 -0000 1.2 @@ -10,7 +10,7 @@ <f:view> <h:panelGrid id="popupView" columns="1" styleClass="popup"> <h:panelGrid id="popupViewHeader" columns="1" styleClass="popupHeader"> - <h:commandLink action="closePopup"><t:graphicImage url="/images/x.gif" border="0" /></h:commandLink> + <h:commandLink action="closePopup"><tr:image source="/images/x.gif"/></h:commandLink> </h:panelGrid> #foreach ($action in $view.actions) #if (!$action.tableLink) |
From: Walter M. <wal...@us...> - 2008-02-25 14:29:51
|
User: walterim Date: 08/02/25 06:29:54 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views renderActionFormInput.vm Log: Using Trinidad date component since it looks it's working fine now. Revision Changes Path 1.8 +7 -10 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/renderActionFormInput.vm Index: renderActionFormInput.vm =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/renderActionFormInput.vm,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- renderActionFormInput.vm 31 Oct 2007 11:10:58 -0000 1.7 +++ renderActionFormInput.vm 25 Feb 2008 14:29:54 -0000 1.8 @@ -24,11 +24,9 @@ #if ($parameter.readOnly) <tr:inputText id="$propertyId" value="#{${formValuePropertyName}}" label="#{messages['$parameter.messageKey']}:" readOnly="true""/> #else - <tr:panelLabelAndMessage label="#{messages['$parameter.messageKey']}:" showRequired="$parameter.required"> - <t:inputCalendar id="$propertyId" value="#{${formValuePropertyName}}" renderAsPopup="true" popupDateFormat="$parameter.format" required="$parameter.required"> - <a:convertDateTime pattern="$parameter.format"/> - </t:inputCalendar> - </tr:panelLabelAndMessage> + <tr:inputDate id="$propertyId" value="#{${formValuePropertyName}}" label="#{messages['$parameter.messageKey']}:" required="$parameter.required"> + <f:convertDateTime pattern="$parameter.format"/> + </tr:inputDate> #end #elseif ($parameter.inputCheckbox) <tr:selectBooleanCheckbox id="$propertyId" value="#{${formValuePropertyName}}" label="#{messages['$parameter.messageKey']}:" required="$parameter.required" readOnly="$parameter.readOnly"/> @@ -86,7 +84,7 @@ #else <tr:inputText id="$propertyId" value="#{${formValuePropertyName}}" label="#{messages['$parameter.messageKey']}:" required="$parameter.required" readOnly="$parameter.readOnly"#if($parameter.inputTextarea) rows="3" columns="40"#end> #if ($parameter.type.timeType) - <a:convertDateTime pattern="$parameter.format"/> + <f:convertDateTime pattern="$parameter.format"/> #end </tr:inputText> #end @@ -116,10 +114,9 @@ #if ($column.readOnly) <h:inputText id="$columnId" value="#{item.${column.name}}" readonly="true"> #else - <t:inputCalendar id="$columnId" monthYearRowClass="yearMonthHeader" weekRowClass="weekHeader" value="#{item.${column.name}}" - renderAsPopup="true" popupDateFormat="$column.format" required="$column.required"> - <a:convertDateTime pattern="$column.format"/> - </t:inputCalendar> + <tr:inputDate id="$columnId" value="#{item.${column.name}}" required="$column.required"> + <f:convertDateTime pattern="$parameter.format"/> + </tr:inputDate> #end #elseif ($column.inputCheckbox) <h:selectBooleanCheckbox id="$columnId" value="#{item.${column.name}}" required="$column.required" readonly="$column.readOnly"/> |
From: Walter M. <wal...@us...> - 2008-02-25 14:28:45
|
User: walterim Date: 08/02/25 06:28:51 Modified: andromda-jsf2/src/main/resources/templates/jsf2/utils JsfUtils.java.vsl Log: Added methods to handle converters and FacesEvents parameters Revision Changes Path 1.2 +51 -0 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/JsfUtils.java.vsl Index: JsfUtils.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/utils/JsfUtils.java.vsl,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- JsfUtils.java.vsl 5 Dec 2006 19:39:21 -0000 1.1 +++ JsfUtils.java.vsl 25 Feb 2008 14:28:51 -0000 1.2 @@ -147,4 +147,55 @@ { return TEMPORARY_DIRECTORY + session.getId() + SERIALIZED_FORM_FILE_NAME; } + + /** + * Uses the converter identified by converterId to convert the value to a String. + * @value the value to be converted + * @converterId the id of the converter to be used + * @componentId the id of the component being rendered + * @return the String representation of the value. + */ + public static String valueFromConverter( + final Object value, + final String converterId, + final String componentId){ + final javax.faces.context.FacesContext facesContext=javax.faces.context.FacesContext.getCurrentInstance(); + final javax.faces.convert.Converter converter = facesContext.getApplication().createConverter(converterId); + return converter.getAsString(facesContext, + org.apache.commons.lang.StringUtils.isEmpty(componentId)?null:facesContext.getViewRoot().findComponent(componentId), + value); + } + + /** + * Uses the converter identified by converterId to convert the value to a String. + * @value the value to be converted + * @converterId the id of the converter to be used + * @return the String representation of the value. + */ + public static String valueFromConverter( + final Object value, + final String converterId){ + final javax.faces.context.FacesContext facesContext=javax.faces.context.FacesContext.getCurrentInstance(); + final javax.faces.convert.Converter converter = facesContext.getApplication().createConverter(converterId); + return converter.getAsString(facesContext,null,value); + } + + /** + * Returns an javax.faces.event.ActionEvent parameter value, from its name + * @parameterName the parameter name + * @event ActionEvent containing the parameter + * @return the parameter value. + */ + public static Object getParameterValue(String parameterName, javax.faces.event.ActionEvent event){ + for(Object uiObject : event.getComponent().getChildren()){ + if(uiObject instanceof javax.faces.component.UIParameter){ + final javax.faces.component.UIParameter param = (javax.faces.component.UIParameter)uiObject; + if(param.getName().equals(parameterName)) { + return param.getValue(); + } + } + } + throw new RuntimeException("Parameter "+parameterName+" not found"); + } + } |
From: Walter M. <wal...@us...> - 2008-02-25 14:23:14
|
User: walterim Date: 08/02/25 06:23:20 Modified: andromda-jsf2/src/main/resources/templates/jsf2/messages messages.properties.vsl Log: Added some new 'common' messages. Revision Changes Path 1.8 +3 -1 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.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- messages.properties.vsl 28 Jan 2008 19:19:19 -0000 1.7 +++ messages.properties.vsl 25 Feb 2008 14:23:20 -0000 1.8 @@ -164,7 +164,7 @@ #set($literalKey = $literal.defaultValue) #set($literalValue = $literal.name) #set($literalValue = $literal.defaultValue) -${enumeration.messageKey}.${literalKey}=${$literalValue} +${enumeration.messageKey}.${literalKey}=${literalValue} #end #end #end @@ -177,6 +177,7 @@ action.delete=Delete action.load=Load action.save=Save +action.saveAndNew=Save & New action.cancel=Cancel action.back=Back action.close=Close @@ -187,6 +188,7 @@ action.delete.access.key=d action.load.access.key=l action.save.access.key=s +action.saveAndNew.access.key=n action.cancel.access.key=c action.back.access.key=b action.close.access.key=c |
From: Walter M. <wal...@us...> - 2008-02-25 14:21:19
|
User: walterim Date: 08/02/25 06:21:24 Modified: andromda-jsf2/src/main/resources/templates/jsf2/converters EnumerationConverter.java.vsl Log: Using resource strings instead of .toString() Revision Changes Path 1.4 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/EnumerationConverter.java.vsl Index: EnumerationConverter.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/EnumerationConverter.java.vsl,v retrieving revision 1.3 retrieving revision 1.4 diff -u -w -r1.3 -r1.4 --- EnumerationConverter.java.vsl 25 Jan 2008 18:23:16 -0000 1.3 +++ EnumerationConverter.java.vsl 25 Feb 2008 14:21:24 -0000 1.4 @@ -18,7 +18,7 @@ java.lang.Object value) throws javax.faces.convert.ConverterException { - return value != null ? value.toString() : null; + return value != null ? ${managedBeansPackage}.Messages.get("${enumeration.messageKey}."+value.toString(),null) : null; } /** |
From: Walter M. <wal...@us...> - 2008-02-25 14:19:40
|
User: walterim Date: 08/02/25 06:19:46 Modified: andromda-jsf2/src/main/resources/templates/jsf2/controllers Controller.java.vsl Log: Added support to 'silent' exceptions so the programmer can keep the current page without showing a global message. Useful when showing only field messages. Revision Changes Path 1.7 +3 -4 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.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- Controller.java.vsl 26 Sep 2007 17:59:27 -0000 1.6 +++ Controller.java.vsl 25 Feb 2008 14:19:46 -0000 1.7 @@ -80,10 +80,9 @@ catch (final Throwable throwable) { contextWrapper.getCurrentInstance().getPageFlowScope().put("$action.formKey", currentForm); - final String message = ${managedBeansPackage}.Messages.get( - ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable), null); - throwable.printStackTrace(); - this.addErrorMessage(message); + final String messageKey = ${managedBeansPackage}.${patternMatchingExceptionHandler}.instance().handleException(throwable); + if(!org.apache.commons.lang.StringUtils.isEmpty(messageKey)) + this.addErrorMessage(${managedBeansPackage}.Messages.get(messageKey, null)); } } catch (final Throwable throwable) |
From: Walter M. <wal...@us...> - 2008-02-25 14:16:45
|
User: walterim Date: 08/02/25 06:16:50 Modified: andromda-jsf2 pom.xml Log: Added commons-lang dependency Revision Changes Path 1.8 +5 -0 cartridges/andromda-jsf2/pom.xml Index: pom.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/pom.xml,v retrieving revision 1.7 retrieving revision 1.8 diff -u -w -r1.7 -r1.8 --- pom.xml 2 Jul 2007 18:55:00 -0000 1.7 +++ pom.xml 25 Feb 2008 14:16:49 -0000 1.8 @@ -18,6 +18,11 @@ <artifactId>andromda-jsf-cartridge-components</artifactId> <version>3.3-SNAPSHOT</version> </dependency> + <dependency> + <groupId>commons-lang</groupId> + <artifactId>commons-lang</artifactId> + <version>2.3</version> + </dependency> </dependencies> <build> <plugins> |
From: Walter M. <wal...@us...> - 2008-01-28 19:19:15
|
User: walterim Date: 08/01/28 11:19:19 Modified: andromda-jsf2/src/main/resources/templates/jsf2/controllers/crud Controller.java.vsl andromda-jsf2/src/main/resources/templates/jsf2/messages messages.properties.vsl Log: Using apache commons "isEmpty" instead of "== null". Showing message to the user when the search result is empty. Revision Changes Path 1.12 +19 -5 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.11 retrieving revision 1.12 diff -u -w -r1.11 -r1.12 --- Controller.java.vsl 1 Dec 2007 23:03:23 -0000 1.11 +++ Controller.java.vsl 28 Jan 2008 19:19:18 -0000 1.12 @@ -274,6 +274,7 @@ public void doSave(${manageable.formBeanType} form) throws Exception { +#if ($manageable.create) if(form.${manageable.manageableIdentifier.getterName}() == null){ ${manageable.manageableServiceAccessorCall}.create( #set ($comma = '') @@ -288,6 +289,7 @@ ); } else{ +#end ${manageable.manageableServiceAccessorCall}.update( #set ($comma = '') #foreach ($member in $manageable.manageableMembers) @@ -299,8 +301,9 @@ #set ($comma = ', ') #end ); +#if ($manageable.create) } - +#end if(form.${manageable.listGetterName}() != null) //only searches again if there was an old search doSearch(form); //search again to show the updated item (if it fits the search criteria) @@ -341,7 +344,15 @@ #set ($and = '') #foreach ($member in $manageable.manageableMembers) #if(!$member.hidden)##não está funcionando($manageable.searchable($member)) +#if($member.type.stringType) + ${and} org.apache.commons.lang.StringUtils.isEmpty(form.getSearchForm().${member.getterName}()) +#elseif($member.type.collectionType) + ${and} org.apache.commons.collections.CollectionUtils.isEmpty(form.getSearchForm().${member.getterName}()) +#elseif($member.type.arrayType) + ${and} org.apache.commons.lang.ArrayUtils.isEmpty(form.getSearchForm().${member.getterName}()) +#else ${and} form.getSearchForm().${member.getterName}() == null +#end #set ($and = '&&') #end #end @@ -361,12 +372,15 @@ ); form.${manageable.listSetterName}(list); - + if(org.apache.commons.collections.CollectionUtils.isEmpty(list)){ + this.addInfoMessage(org.andromda.presentation.jsf2.Messages.get("empty.result.set", null)); #if ($manageable.maximumListSize > 0) + } else { if (list.size() >= $manageable.maximumListSize) saveMaxResultsWarning(); - #end + } + #if (!$manageable.manageableAssociationEnds.empty) final java.util.Map backingLists = ${manageable.manageableServiceAccessorCall}.readBackingLists(); #foreach ($member in $manageable.manageableAssociationEnds) 1.7 +4 -1 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.6 retrieving revision 1.7 diff -u -w -r1.6 -r1.7 --- messages.properties.vsl 1 Dec 2007 23:03:23 -0000 1.6 +++ messages.properties.vsl 28 Jan 2008 19:19:19 -0000 1.7 @@ -162,7 +162,9 @@ #foreach ($literal in $enumeration.literals) #set($literalKey = $literal.name) #set($literalKey = $literal.defaultValue) -${enumeration.messageKey}.${literalKey}=${literal.name} +#set($literalValue = $literal.name) +#set($literalValue = $literal.defaultValue) +${enumeration.messageKey}.${literalKey}=${$literalValue} #end #end #end @@ -199,6 +201,7 @@ maximum.results.fetched.warning=Maximum of {0} records retrieved, other records may be available. Please specify more search criteria to narrow result set. binary.data=[Binary] no.entity.found=no {0} found +empty.result.set=No records found #foreach ($manageable in $manageables) $manageable.messageKey=$manageable.messageValue |
From: Walter M. <wal...@us...> - 2008-01-25 18:23:15
|
User: walterim Date: 08/01/25 10:23:16 Modified: andromda-jsf2/src/main/resources/templates/jsf2/converters EnumerationConverter.java.vsl Log: Corrected bug when using enumeration of type 'char' Revision Changes Path 1.3 +5 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/EnumerationConverter.java.vsl Index: EnumerationConverter.java.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/converters/EnumerationConverter.java.vsl,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- EnumerationConverter.java.vsl 9 Sep 2007 11:02:58 -0000 1.2 +++ EnumerationConverter.java.vsl 25 Jan 2008 18:23:16 -0000 1.3 @@ -34,8 +34,12 @@ return value != null && value.trim().length() > 0 ? ${enumeration.fullyQualifiedName}.${enumeration.fromOperationName}(value) : null; #elseif ($enumeration.literalType.primitive) try { +#if(${enumeration.literalType.fullyQualifiedName} == "char") + char v = value.charAt(0); +#else #set ($parseSuffix = $stringUtils.capitalize($enumeration.literalType.name)) ${enumeration.literalType.fullyQualifiedName} v = ${enumeration.literalType.wrapperName}.parse${parseSuffix}(value); +#end return ${enumeration.fullyQualifiedName}.${enumeration.fromOperationName}(v); } catch (Exception ex) { throw new javax.faces.convert.ConverterException(ex); |
From: Javier A. <ja...@us...> - 2007-12-17 20:45:24
|
User: jadorno Date: 07/12/17 12:45:23 Modified: andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades JSFManageableEntityLogicImpl.java Log: handleGetExceptionKey in JSFManageableEntityLogic was missing the trailing ".exception:" message key. Revision Changes Path 1.6 +1 -1 cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java Index: JSFManageableEntityLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFManageableEntityLogicImpl.java,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- JSFManageableEntityLogicImpl.java 2 Nov 2007 18:13:32 -0000 1.5 +++ JSFManageableEntityLogicImpl.java 17 Dec 2007 20:45:23 -0000 1.6 @@ -90,7 +90,7 @@ */ protected java.lang.String handleGetExceptionKey() { - return StringUtilsHelper.toResourceMessageKey(this.getName()); + return StringUtilsHelper.toResourceMessageKey(this.getName()) + ".exception"; } /** |
From: Vance K. <va...@us...> - 2007-12-11 12:27:21
|
User: vancek Date: 07/12/11 04:27:25 Modified: andromda-ejb3/src/main/resources/templates/ejb3 SessionBeanBase.vsl Log: fixed Seam DataModel properties generation Revision Changes Path 1.14 +1 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl Index: SessionBeanBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl,v retrieving revision 1.13 retrieving revision 1.14 diff -u -w -r1.13 -r1.14 --- SessionBeanBase.vsl 7 Nov 2007 14:57:23 -0000 1.13 +++ SessionBeanBase.vsl 11 Dec 2007 12:27:17 -0000 1.14 @@ -190,7 +190,7 @@ #* *##end #* *##if ($attribute.seamDataModel) - @org.jboss.seam.annotations.datamodel.DataModel#if ($stringUtils.isNotEmpty($attribute.seamDataModelParameters))$attribute.seamDataModel#end + @org.jboss.seam.annotations.datamodel.DataModel#if ($stringUtils.isNotEmpty($attribute.seamDataModelParameters))$attribute.seamDataModelParameters#end #* *##end #* *##if ($attribute.seamDataModelSelection) |
From: Javier A. <ja...@us...> - 2007-12-08 12:06:22
|
User: jadorno Date: 07/12/08 04:06:25 Modified: andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades JSFActionLogicImpl.java Log: Solves http://galaxy.andromda.org/jira/browse/JSF-39 Arises when there is more that one object coming out of a FrontEndView. handleIsNeedsFileUpload incorrect conditional variable during inner iteration Revision Changes Path 1.3 +1 -1 cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFActionLogicImpl.java Index: JSFActionLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFActionLogicImpl.java,v retrieving revision 1.2 retrieving revision 1.3 diff -u -w -r1.2 -r1.3 --- JSFActionLogicImpl.java 5 Dec 2007 15:41:02 -0000 1.2 +++ JSFActionLogicImpl.java 8 Dec 2007 12:06:25 -0000 1.3 @@ -746,7 +746,7 @@ if(parameter.isInputFile()) return true; if(parameter.isComplex()){ - for(final Iterator attributes = parameter.getAttributes().iterator(); iterator.hasNext();) + for(final Iterator attributes = parameter.getAttributes().iterator(); attributes.hasNext();) if(((JSFAttribute)attributes.next()).isInputFile()) return true; } |
From: Walter M. <wal...@us...> - 2007-12-05 15:40:59
|
User: walterim Date: 07/12/05 07:41:03 Modified: andromda-jsf2/src/main/resources/templates/jsf2/views/facelets view-action.xhtml.vsl andromda-jsf2/src/main/uml JSFMetafacadeModel.xml.zip andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades JSFActionLogicImpl.java Log: Corrected a bug regarding isNeedsFileUpload method Revision Changes Path 1.5 +1 -1 cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-action.xhtml.vsl Index: view-action.xhtml.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/resources/templates/jsf2/views/facelets/view-action.xhtml.vsl,v retrieving revision 1.4 retrieving revision 1.5 diff -u -w -r1.4 -r1.5 --- view-action.xhtml.vsl 19 Jul 2007 18:09:30 -0000 1.4 +++ view-action.xhtml.vsl 5 Dec 2007 15:41:02 -0000 1.5 @@ -34,7 +34,7 @@ #else #set ($clientValidation = $clientValidation && $action.validationRequired) #set ($formValidateName = "validate$stringUtils.capitalize($formName)") -<tr:form id="$formName"#if($clientValidation) onsubmit="return $formValidateName(this);"#end#if($view.needsFileUpload) usesUpload="true"#end> +<tr:form id="$formName"#if($clientValidation) onsubmit="return $formValidateName(this);"#end#if($action.needsFileUpload) usesUpload="true"#end> #if (!$action.hiddenParameters.empty) <ui:include src="${action.viewFragmentPath}-hidden-params.xhtml"/> #end 1.10 +174 -230 cartridges/andromda-jsf2/src/main/uml/JSFMetafacadeModel.xml.zip <<Binary file>> 1.2 +25 -0 cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFActionLogicImpl.java Index: JSFActionLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-jsf2/src/main/java/org/andromda/cartridges/jsf2/metafacades/JSFActionLogicImpl.java,v retrieving revision 1.1 retrieving revision 1.2 diff -u -w -r1.1 -r1.2 --- JSFActionLogicImpl.java 5 Dec 2006 19:39:09 -0000 1.1 +++ JSFActionLogicImpl.java 5 Dec 2007 15:41:02 -0000 1.2 @@ -729,4 +729,29 @@ { return this.getMessages(JSFProfile.TAGGEDVALUE_ACTION_WARNING_MESSAGE); } + + /** + * @see org.andromda.cartridges.jsf2.metafacades.JSFAction#isNeedsFileUpload() + */ + protected boolean handleIsNeedsFileUpload() + { + if(this.getParameters().size() == 0) + return false; + + for (final Iterator iterator = this.getParameters().iterator(); iterator.hasNext();) + { + final Object object = iterator.next(); + if (object instanceof JSFParameter){ + final JSFParameter parameter = (JSFParameter)object; + if(parameter.isInputFile()) + return true; + if(parameter.isComplex()){ + for(final Iterator attributes = parameter.getAttributes().iterator(); iterator.hasNext();) + if(((JSFAttribute)attributes.next()).isInputFile()) + return true; + } + } + } + return false; + } } |
From: Vance K. <va...@us...> - 2007-12-04 14:09:38
|
User: vancek Date: 07/12/04 06:09:42 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/main/resources/templates/ejb3 DaoBase.vsl Log: ejb-71 - fixed getter calls in transformer of base daos when an entity has a composite pk Revision Changes Path 1.31 +4 -0 cartridges/andromda-ejb3/src/site/changes.xml Index: changes.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v retrieving revision 1.30 retrieving revision 1.31 diff -u -w -r1.30 -r1.31 --- changes.xml 30 Nov 2007 12:14:31 -0000 1.30 +++ changes.xml 4 Dec 2007 14:09:42 -0000 1.31 @@ -545,6 +545,10 @@ patched; such that we still require to model the Entity stereotype as well as the MappedSuperclass stereotype on all mapped superclasses. </action> + <action dev="vancek" due-to="luca.dallolio" type="fix"> + JIRA EJB-71 - When modeling a ValueObject based on an entity that has a composite PK, the transformer to + the VO does not call the getters on the embeddable class, which throws an exception during compilation. + </action> </release> </body> </document> \ No newline at end of file 1.13 +5 -1 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl Index: DaoBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/DaoBase.vsl,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- DaoBase.vsl 24 Jan 2007 04:37:55 -0000 1.12 +++ DaoBase.vsl 4 Dec 2007 14:09:42 -0000 1.13 @@ -861,7 +861,11 @@ #* *##foreach ($entityProperty in $entityProperties) #* *##if ($property.name.equals($entityProperty.name)) #* *##set ($entityPropertyGetterValue = false) +#* *##if ($entity.compositePrimaryKeyPresent) +#* *##set ($entityPropertyGetterValue = $converter.typeConvert($entityProperty.type.fullyQualifiedName, "source.getPk().${entityProperty.getterName}()", $property.type.fullyQualifiedName)) +#* *##else #* *##set ($entityPropertyGetterValue = $converter.typeConvert($entityProperty.type.fullyQualifiedName, "source.${entityProperty.getterName}()", $property.type.fullyQualifiedName)) +#* *##end #* *##if ($entityPropertyGetterValue) target.${property.setterName}($entityPropertyGetterValue); #* *##else |
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 |
From: Vance K. <va...@us...> - 2007-11-30 12:14:28
|
User: vancek Date: 07/11/30 04:14:32 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/test/uml EJB3CartridgeTestModel.xml.zip andromda-ejb3/src/site/resources/howto HowToModel.xml.zip HowToPictures.zip andromda-ejb3/src/main/resources/META-INF/andromda metafacades.xml andromda-ejb3/src/site/axdoc howto9.xml andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades EJB3EntityFacadeLogicImpl.java Log: jira ejb-53 - reverse part of the original patch to force adding the Entity stereotype on mapped superclasses to fix issue with uml2.0. Revision Changes Path 1.30 +8 -0 cartridges/andromda-ejb3/src/site/changes.xml Index: changes.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v retrieving revision 1.29 retrieving revision 1.30 diff -u -w -r1.29 -r1.30 --- changes.xml 7 Nov 2007 14:57:23 -0000 1.29 +++ changes.xml 30 Nov 2007 12:14:31 -0000 1.30 @@ -537,6 +537,14 @@ then instead of using the @EJB annotation, use the Seam @In annotation. This applies when the source session bean is also a Seam component. </action> + <action dev="vancek" type="fix"> + JIRA EJB-53 - After applying the patch to add EJB3MappedSuperclassFacade metafacades which extend + EJB3EntityFacade and avoid the need to also model the Entity stereotype (as well as the MappedSuperclass), + several bugs appeared where dynamic identifiers were created regardless of the condition and explicitly + modelled identifiers were ignored. This only affected UML2 models. This patch reverses a part of that + patched; such that we still require to model the Entity stereotype as well as the MappedSuperclass + stereotype on all mapped superclasses. + </action> </release> </body> </document> \ No newline at end of file 1.13 +291 -266 cartridges/andromda-ejb3/src/test/uml/EJB3CartridgeTestModel.xml.zip <<Binary file>> 1.3 +197 -229 cartridges/andromda-ejb3/src/site/resources/howto/HowToModel.xml.zip <<Binary file>> 1.3 +327 -196 cartridges/andromda-ejb3/src/site/resources/howto/HowToPictures.zip <<Binary file>> 1.36 +1 -0 cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml Index: metafacades.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/META-INF/andromda/metafacades.xml,v retrieving revision 1.35 retrieving revision 1.36 diff -u -w -r1.35 -r1.36 --- metafacades.xml 27 Aug 2007 14:19:10 -0000 1.35 +++ metafacades.xml 30 Nov 2007 12:14:32 -0000 1.36 @@ -85,6 +85,7 @@ <!-- Mapped Superclass Metafacades --> <metafacade class="org.andromda.cartridges.ejb3.metafacades.EJB3MappedSuperclassFacadeLogicImpl" contextRoot="true"> <mapping> + <stereotype>ENTITY</stereotype> <stereotype>MAPPED_SUPERCLASS</stereotype> </mapping> </metafacade> 1.6 +6 -30 cartridges/andromda-ejb3/src/site/axdoc/howto9.xml Index: howto9.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/axdoc/howto9.xml,v retrieving revision 1.5 retrieving revision 1.6 diff -u -w -r1.5 -r1.6 --- howto9.xml 7 May 2007 13:32:32 -0000 1.5 +++ howto9.xml 30 Nov 2007 12:14:32 -0000 1.6 @@ -50,38 +50,14 @@ <a name="Mapped_Superclasses"/> <subsection name="Mapped Superclasses"> <p> - To explicity define an entity as a mapped superclass, model the - <![CDATA[<<MappedSuperclass>>]]> stereotype on the root entity. In the past, you had to - model the <![CDATA[<<Entity>>]]> stereotype as well on this class, but this is no longer - necessary if you are using the latest cartridge source. + To explicity define an entity as a mapped superclass, model the <![CDATA[<<Entity>>]]> <b>AND</b> + <![CDATA[<<MappedSuperclass>>]]> stereotypes on the class. (Note: The cartridge did attempt to + avoid the need to model the <![CDATA[<<Entity>>]]> stereotype, however this caused issue with UML2 + models) </p> <p class="highlight"> - If you do not want to model the <![CDATA[<<Entity>>]]> stereotype as well - in theory, a mapped - superclass is NOT an entity and it doesn't make sense for this stereotype to exist - you must - also disable the following two constraints in your <code>andromda.xml</code> by adding the following - <b>constraints</b> section. Rest assured that by disabling these constraints, your are not - vulnerable to modelling flaws, since the constraints that exist on the <i>EJB3EntityFacade</i> will - enforce these constraints. -<source language="xml"><![CDATA[ - <repository name="netBeansMDR"> - <models> - <model> - <uri>${model.uri}</uri> - <moduleSearchLocations> - <location patterns="**/*.xml.zip">${settings.localRepository}/org/andromda/profiles/</location> - </moduleSearchLocations> - <constraints enforceAll="true"> - <constraint enforce="false">org::andromda::metafacades::uml::Entity::entities can only generalize other entities</constraint> - <constraint enforce="false">org::andromda::metafacades::uml::Entity::entity must have at least one primary key</constraint> - </constraints> - </model> - </models> - </repository> -]]></source> - </p> - <p class="highlight"> - In this case, you must explicity define your identifiers either in the mapped superclass or in - the inheriting subclass entity. + You must explicity define your identifier(s) either in the mapped superclass or in + the subclass entity. </p> <p> The following is an example of this type of inheritance where the <code>Vehicle</code> mapped 1.31 +3 -0 cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java Index: EJB3EntityFacadeLogicImpl.java =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/java/org/andromda/cartridges/ejb3/metafacades/EJB3EntityFacadeLogicImpl.java,v retrieving revision 1.30 retrieving revision 1.31 diff -u -w -r1.30 -r1.31 --- EJB3EntityFacadeLogicImpl.java 21 Jul 2007 13:31:53 -0000 1.30 +++ EJB3EntityFacadeLogicImpl.java 30 Nov 2007 12:14:32 -0000 1.31 @@ -204,6 +204,9 @@ // --------------- methods --------------------- /** + * This was meant to overrides the default implementation in EntityLogicImpl.java. + * TODO: check - is it really required? + * * @see org.andromda.cartridges.ejb3.metafacades.EJB3EntityFacade#getIdentifiers() */ public Collection handleGetIdentifiers() |
From: Vance K. <va...@us...> - 2007-11-07 14:57:21
|
User: vancek Date: 07/11/07 06:57:23 Modified: andromda-ejb3/src/site changes.xml andromda-ejb3/src/main/resources/templates/ejb3 SessionBeanBase.vsl Log: ejb-70 - when target and source session beans are Seam components, use @In instead of @EJB Revision Changes Path 1.29 +5 -0 cartridges/andromda-ejb3/src/site/changes.xml Index: changes.xml =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/site/changes.xml,v retrieving revision 1.28 retrieving revision 1.29 diff -u -w -r1.28 -r1.29 --- changes.xml 7 Nov 2007 12:57:31 -0000 1.28 +++ changes.xml 7 Nov 2007 14:57:23 -0000 1.29 @@ -532,6 +532,11 @@ JIRA EJB-89 - Fixed prefix for getter methods of type boolean by using the (is) keyword rather than (get). </action> + <action dev="vancek" due-to="chawax " type="fix"> + JIRA EJB-70 - When a dependency is drawn to a target session bean modelled with Seam and Service stereotypes, + then instead of using the @EJB annotation, use the Seam @In annotation. This applies when the source + session bean is also a Seam component. + </action> </release> </body> </document> \ No newline at end of file 1.13 +7 -0 cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl Index: SessionBeanBase.vsl =================================================================== RCS file: /cvsroot/andromdaplugins/cartridges/andromda-ejb3/src/main/resources/templates/ejb3/SessionBeanBase.vsl,v retrieving revision 1.12 retrieving revision 1.13 diff -u -w -r1.12 -r1.13 --- SessionBeanBase.vsl 16 Apr 2007 14:09:37 -0000 1.12 +++ SessionBeanBase.vsl 7 Nov 2007 14:57:23 -0000 1.13 @@ -96,10 +96,17 @@ #**##foreach ($dependency in $references) #* *##set ($reference = $dependency.targetElement) +#* *##if ($service.seamComponent && $reference.seamComponent) + /** + * Inject Seam session EJB ${reference.name} + */ + @org.jboss.seam.annotations.In +#* *##else /** * Inject session EJB ${reference.name} */ @javax.ejb.EJB +#* *##end protected ${reference.fullyQualifiedServiceRemoteInterfaceName} $stringUtils.uncapitalize(${reference.name}); #**##end #end |