file Upload
-----------

         Key: BPM-112
         URL: http://team.andromda.org:8080/jira/browse/BPM-112
     Project: Bpm4Struts Cartridge
        Type: Improvement
    Reporter: Carlos Cuenca
 Assigned to: Wouter Zoons 


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



-------------------------------------------------------
This SF.Net email is sponsored by: InterSystems CACHE
FREE OODBMS DOWNLOAD - A multidimensional database that combines
robust object and relational technologies, making it a perfect match
for Java, C++,COM, XML, ODBC and JDBC. www.intersystems.com/match8
_______________________________________________
Andromda-devel mailing list
[EMAIL PROTECTED]
https://lists.sourceforge.net/lists/listinfo/andromda-devel

Reply via email to