[ http://jira.andromda.org/browse/BPM-112?page=comments#action_15010 ]
Ale commented on BPM-112: ------------------------- Hi, It seems that the "file upload" fonctionality is available on andromda 3.2 release, isn't it? I have noticed, using andromda-src-3.2, that "TAGGEDVALUE_INPUT_TYPE_FILE = "file" was present inside Bpm4StrutsProfile.java file. I created a new project using andromda 3.2 binary distribution (cause I have some problem to build the sources) . I opened the uml file using Magic Draw 9.5. I created a new object with one attribute. Unfortunately, when I tried to define, for this attribute, a new tag value "@andromda.presentation.web.view.field.type" I couldn't choice "file" as value. The proposed values were hidden, password, link ... but no file option. I have also read from your comments that I had to use "@andromda.struts.view.field.type" tag value but his is also missing inside the proposed options. Could you tell me what I'm doing wrong? Thanks in advance, Alejandro. > file Upload > ----------- > > Key: BPM-112 > URL: http://jira.andromda.org/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://jira.andromda.org/secure/Administrators.jspa - For more information on JIRA, see: http://www.atlassian.com/software/jira ------------------------------------------------------------------------- This SF.net email is sponsored by: Splunk Inc. Still grepping through log files to find problems? Stop. Now Search log events and configuration files using AJAX and a browser. Download your FREE copy of Splunk now >> http://get.splunk.com/