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
|