[ 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/

Reply via email to