Details

    • Type: Improvement
    • Status: Closed
    • Priority: Major
    • Resolution: Fixed
    • Affects Version/s: None
    • Fix Version/s: None
    • Component/s: None
    • Labels:
      None

      Description

      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 @@

        Unknown macro: { 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>
            +##
            +##

        1. 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

        Attachments

          Activity

            People

            • Assignee:
              overheat Plushnikov Michail
              Reporter:
              carloslcuenca Carlos Cuenca
            • Votes:
              0 Vote for this issue
              Watchers:
              0 Start watching this issue

              Dates

              • Created:
                Updated:
                Resolved: