[ http://team.andromda.org:8080/jira/browse/BPM-112?page=history ]
Fred Chapuis updated BPM-112: ----------------------------- Attachment: StrutsFormInterface.vsl Hi, the file upload feature isn't handled in the StrutsFormInterface.vsl template. The Attached file adds an elseif statement to generate accessors for File type paramteres. Since 3.0 release is about to come out... Regards, Fred. > file Upload > ----------- > > Key: BPM-112 > URL: http://team.andromda.org:8080/jira/browse/BPM-112 > Project: Bpm4Struts Cartridge > Type: Improvement > Reporter: Carlos Cuenca > Assignee: Wouter Zoons > Attachments: StrutsFormInterface.vsl > > > Hi all, > I had created a patch to allow a File widget which uploads a file to the > server, basicalley two modificacions in the model, one on the > BPM4StrutsMetafacadeModel.xml.zip to add a boolean file property to the > Parameter, and another one at the UMLMetafacadeModel.xml.zip to add a method > fileType at the classifier facade. > Carlos > here is the patch: > Index: > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsProfile.java > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsProfile.java,v > retrieving revision 1.21 > diff -u -r1.21 Bpm4StrutsProfile.java > --- > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsProfile.java > 9 Nov 2004 01:10:19 -0000 1.21 > +++ > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/Bpm4StrutsProfile.java > 18 Nov 2004 00:17:22 -0000 > @@ -56,6 +56,7 @@ > public static final String TAGGEDVALUE_INPUT_TYPE_PASSWORD = "password"; > public static final String TAGGEDVALUE_INPUT_TYPE_MULTIBOX = "multibox"; > public static final String TAGGEDVALUE_INPUT_TYPE_LINK = "link"; > + public static final String TAGGEDVALUE_INPUT_TYPE_FILE = "file"; > public static final int TAGGEDVALUE_INPUT_TYPE_OPTION_DEFAULT_COUNT = 3; > public static final String TAGGEDVALUE_INPUT_DEFAULT_DATEFORMAT = > "dd/MM/yyyy"; > Index: > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsParameterLogicImpl.java > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsParameterLogicImpl.java,v > retrieving revision 1.56 > diff -u -r1.56 StrutsParameterLogicImpl.java > --- > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsParameterLogicImpl.java > 22 Oct 2004 09:05:35 -0000 1.56 > +++ > cartridges/andromda-bpm4struts/src/java/org/andromda/cartridges/bpm4struts/metafacades/StrutsParameterLogicImpl.java > 18 Nov 2004 00:53:22 -0000 > @@ -744,6 +744,10 @@ > { > widgetType = "password"; > } > + else if > (Bpm4StrutsProfile.TAGGEDVALUE_INPUT_TYPE_FILE.equalsIgnoreCase(fieldType)) > + { > + widgetType = "file"; > + } > else if (isTableLink()) > { > if > (Bpm4StrutsProfile.TAGGEDVALUE_INPUT_TYPE_LINK.equalsIgnoreCase(fieldType)) > @@ -1270,4 +1274,10 @@ > return (index >= tokens.length) ? null : tokens[index]; > } > -} > + /* (non-Javadoc) > + * @see > org.andromda.cartridges.bpm4struts.metafacades.StrutsParameterLogic#handleIsFile() > + */ > + protected boolean handleIsFile() { > + return getType().isFileType(); > + } > +} > \ No newline at end of file > Index: cartridges/andromda-bpm4struts/src/templates/StrutsAction.vsl > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/templates/StrutsAction.vsl,v > retrieving revision 1.36 > diff -u -r1.36 StrutsAction.vsl > --- cartridges/andromda-bpm4struts/src/templates/StrutsAction.vsl 18 Nov > 2004 05:54:21 -0000 1.36 > +++ cartridges/andromda-bpm4struts/src/templates/StrutsAction.vsl 18 Nov > 2004 10:56:04 -0000 > @@ -39,6 +39,9 @@ > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > +import org.apache.struts.upload.FormFile; > + > + > /** > $action.getDocumentation(" * ") > */ > Index: cartridges/andromda-bpm4struts/src/templates/StrutsActionJsp.vsl > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/templates/StrutsActionJsp.vsl,v > retrieving revision 1.33 > diff -u -r1.33 StrutsActionJsp.vsl > --- cartridges/andromda-bpm4struts/src/templates/StrutsActionJsp.vsl 17 > Nov 2004 23:53:15 -0000 1.33 > +++ cartridges/andromda-bpm4struts/src/templates/StrutsActionJsp.vsl 18 > Nov 2004 10:56:04 -0000 > @@ -29,7 +29,7 @@ > #else > #set ($onsubmit = "") > #end > - <html:form action="${action.actionPath}" onsubmit="$onsubmit"> > + <html:form action="${action.actionPath}" method="post" > enctype="multipart/form-data" onsubmit="$onsubmit"> > #if ($action.tabbed) > #set ($tabSwitchFunction = "select${actionTrigger.name}FieldTab") > Index: cartridges/andromda-bpm4struts/src/templates/StrutsController.vsl > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/templates/StrutsController.vsl,v > retrieving revision 1.34 > diff -u -r1.34 StrutsController.vsl > --- cartridges/andromda-bpm4struts/src/templates/StrutsController.vsl 13 > Nov 2004 10:47:36 -0000 1.34 > +++ cartridges/andromda-bpm4struts/src/templates/StrutsController.vsl 18 > Nov 2004 02:12:10 -0000 > @@ -18,7 +18,8 @@ > import javax.servlet.http.HttpServletRequest; > import javax.servlet.http.HttpServletResponse; > - > +import org.apache.struts.upload.FormFile; > +import org.apache.struts.upload.MultipartRequestWrapper; > /** > * @see ${controllerPackageName}.${controllerClassName} > */ > Index: cartridges/andromda-bpm4struts/src/templates/StrutsForm.vsl > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/templates/StrutsForm.vsl,v > retrieving revision 1.27 > diff -u -r1.27 StrutsForm.vsl > --- cartridges/andromda-bpm4struts/src/templates/StrutsForm.vsl 13 Nov > 2004 10:47:36 -0000 1.27 > +++ cartridges/andromda-bpm4struts/src/templates/StrutsForm.vsl 18 Nov > 2004 11:39:04 -0000 > @@ -11,6 +11,9 @@ > ## > package $action.formBeanPackageName; > +import org.apache.struts.upload.FormFile; > +import org.apache.struts.upload.MultipartRequestWrapper; > + > public class $formBeanClassName > extends org.apache.struts.validator.ValidatorForm > implements java.io.Serializable > @@ -28,10 +31,16 @@ > #if ($field.type.arrayType || $field.selectable) > #set ($arrayPresent = true) > #end > - private $field.type.fullyQualifiedName $field.name; > +#if ($field.file) > + private org.apache.struts.upload.FormFile $field.name = null; > +#else > + private $field.type.fullyQualifiedName $field.name; > +#end > #if ($field.date) > private final static java.text.DateFormat ${field.name}DateFormatter = new > java.text.SimpleDateFormat("${field.dateFormat}"); > #end > + > + > #if ($field.selectable) > private Object[] $field.valueListName; > private Object[] $field.labelListName; > @@ -149,6 +158,19 @@ > { > return ${formBeanClassName}.${fieldName}DateFormatter; > } > +#elseif ($field.file) > + public void ${field.setterName}(org.apache.struts.upload.FormFile > $fieldName) > + { > + this.$fieldName = $fieldName; > + } > + > + /** > +$field.getDocumentation(" * ") > + */ > + public org.apache.struts.upload.FormFile ${field.getterName}() > + { > + return this.$fieldName; > + } > #else > public void ${field.setterName}($fieldType $fieldName) > { > @@ -163,7 +185,6 @@ > return this.$fieldName; > } > #end > - > #if ($field.selectable) > #set ($hasSelectableField = true) > #set ($listType = "Object[]") > Index: cartridges/andromda-bpm4struts/src/templates/StrutsJSP.vm > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/templates/StrutsJSP.vm,v > retrieving revision 1.42 > diff -u -r1.42 StrutsJSP.vm > --- cartridges/andromda-bpm4struts/src/templates/StrutsJSP.vm 17 Nov 2004 > 14:15:22 -0000 1.42 > +++ cartridges/andromda-bpm4struts/src/templates/StrutsJSP.vm 18 Nov 2004 > 01:57:22 -0000 > @@ -183,6 +183,12 @@ > ${indent} ${${linkName}} > ${indent}</html:link> > ## > +## F I L E > +## > +#elseif ($widgetType == 'file') > +${indent}<html:$widgetType name="$formBeanName" property="$fieldName" > #if($hints)onmouseover="hints.show('$field.titleKey')" > onmouseout="hints.hide()"#end></html:file> > +## > +## > ## P L A I N T E X T > ## > #else > Index: > cartridges/andromda-bpm4struts/src/uml/BPM4StrutsMetafacadeModel.xml.zip > =================================================================== > RCS file: > /cvsroot/andromda/cartridges/andromda-bpm4struts/src/uml/BPM4StrutsMetafacadeModel.xml.zip,v > retrieving revision 1.73 > diff -u -r1.73 BPM4StrutsMetafacadeModel.xml.zip > Binary files /tmp/cvsG7jeFG and BPM4StrutsMetafacadeModel.xml.zip differ > Index: > maven/andromdapp/plugin-resources/andromdapp/templates/j2ee-app/web/project.xml.vsl > =================================================================== > RCS file: > /cvsroot/andromda/maven/andromdapp/plugin-resources/andromdapp/templates/j2ee-app/web/project.xml.vsl,v > retrieving revision 1.6 > diff -u -r1.6 project.xml.vsl > --- > maven/andromdapp/plugin-resources/andromdapp/templates/j2ee-app/web/project.xml.vsl > 13 Nov 2004 17:44:48 -0000 1.6 > +++ > maven/andromdapp/plugin-resources/andromdapp/templates/j2ee-app/web/project.xml.vsl > 18 Nov 2004 11:50:46 -0000 > @@ -1,4 +1,4 @@ > -<?xml version="1.0" encoding="UTF-8"?> > +ÃÂÂ<?xml version="1.0" encoding="UTF-8"?> > <project> > <extend>../project.xml</extend> > @@ -52,6 +52,14 @@ > <war.bundle>true</war.bundle> > </properties> > </dependency> > + <dependency> > + <groupId>commons-fileupload</groupId> > + <artifactId>commons-fileupload</artifactId> > + <version>1.0</version> > + <properties> > + <war.bundle>true</war.bundle> > + </properties> > + </dependency> > <dependency> > <groupId>servletapi</groupId> > <artifactId>servletapi</artifactId> > Index: metafacades/uml/common/src/uml/UMLMetafacadeModel.xml.zip > =================================================================== > RCS file: > /cvsroot/andromda/metafacades/uml/common/src/uml/UMLMetafacadeModel.xml.zip,v > retrieving revision 1.90 > diff -u -r1.90 UMLMetafacadeModel.xml.zip > Binary files /tmp/cvsYW8KVg and UMLMetafacadeModel.xml.zip differ > Index: > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/ClassifierFacadeLogicImpl.java > =================================================================== > RCS file: > /cvsroot/andromda/metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/ClassifierFacadeLogicImpl.java,v > retrieving revision 1.40 > diff -u -r1.40 ClassifierFacadeLogicImpl.java > --- > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/ClassifierFacadeLogicImpl.java > 4 Nov 2004 21:43:38 -0000 1.40 > +++ > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/ClassifierFacadeLogicImpl.java > 17 Nov 2004 21:53:02 -0000 > @@ -396,4 +396,12 @@ > } > return javaNullString; > } > + > + /* (non-Javadoc) > + * @see > org.andromda.metafacades.uml14.ClassifierFacadeLogic#handleIsFileType() > + */ > + protected boolean handleIsFileType() > + { > + return UMLMetafacadeUtils.isType(this, > UMLMetafacadeGlobals.FILE_TYPE_NAME); > + } > } > \ No newline at end of file > Index: > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/UMLMetafacadeGlobals.java > =================================================================== > RCS file: > /cvsroot/andromda/metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/UMLMetafacadeGlobals.java,v > retrieving revision 1.6 > diff -u -r1.6 UMLMetafacadeGlobals.java > --- > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/UMLMetafacadeGlobals.java > 14 Oct 2004 17:08:33 -0000 1.6 > +++ > metafacades/uml/uml14/src/java/org/andromda/metafacades/uml14/UMLMetafacadeGlobals.java > 17 Nov 2004 21:53:36 -0000 > @@ -41,5 +41,9 @@ > * that will be identified as a booleon type must specialize this type. > */ > public static final String BOOLEAN_TYPE_NAME = "datatype.boolean"; > - > + /** > + * Used to indentify a File type in the model, any other type > + * that will be identified as a booleon type must specialize this type. > + */ > + public static final String FILE_TYPE_NAME = "datatype.File"; > } > \ No newline at end of file -- This message is automatically generated by JIRA. - If you think it was sent incorrectly contact one of the administrators: http://team.andromda.org:8080/jira/secure/Administrators.jspa - If you want more information on JIRA, or have a bug to report see: http://www.atlassian.com/software/jira ------------------------------------------------------- SF email is sponsored by - The IT Product Guide Read honest & candid reviews on hundreds of IT Products from real users. Discover which products truly live up to the hype. Start reading now. http://productguide.itmanagersjournal.com/ _______________________________________________ Andromda-devel mailing list Andromda-devel@lists.sourceforge.net https://lists.sourceforge.net/lists/listinfo/andromda-devel