You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by ad...@apache.org on 2009/04/15 19:44:50 UTC

svn commit: r765284 - in /ofbiz/trunk/framework: minilang/dtd/ minilang/src/org/ofbiz/minilang/method/envops/ widget/dtd/ widget/src/org/ofbiz/widget/form/ widget/src/org/ofbiz/widget/menu/ widget/src/org/ofbiz/widget/screen/ widget/src/org/ofbiz/widge...

Author: adrianc
Date: Wed Apr 15 17:44:47 2009
New Revision: 765284

URL: http://svn.apache.org/viewvc?rev=765284&view=rev
Log:
Added "NewList" and "NewMap" options to the <set> element type attribute. Now screen widgets and mini-language support the creation of empty Lists and Maps.

Usage:

<set field="theList" type="NewList"/>
<set field="theMap" type="NewMap"/>


Modified:
    ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd
    ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
    ofbiz/trunk/framework/widget/dtd/widget-form.xsd
    ofbiz/trunk/framework/widget/dtd/widget-menu.xsd
    ofbiz/trunk/framework/widget/dtd/widget-screen.xsd
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenAction.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java

Modified: ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd (original)
+++ ofbiz/trunk/framework/minilang/dtd/simple-methods.xsd Wed Apr 15 17:44:47 2009
@@ -1358,7 +1358,7 @@
         <xs:attribute name="type">
             <xs:annotation>
                 <xs:documentation>
-                    Type to convert to.
+                    Type to convert to. NewList will create a new List, NewMap will create a new Map.
                 </xs:documentation>
             </xs:annotation>
             <xs:simpleType>
@@ -1376,6 +1376,8 @@
                     <xs:enumeration value="Timestamp"/>
                     <xs:enumeration value="Boolean"/>
                     <xs:enumeration value="Object"/>
+                    <xs:enumeration value="NewList"/>
+                    <xs:enumeration value="NewMap"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>

Modified: ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java (original)
+++ ofbiz/trunk/framework/minilang/src/org/ofbiz/minilang/method/envops/SetOperation.java Wed Apr 15 17:44:47 2009
@@ -21,6 +21,9 @@
 import java.util.Locale;
 import java.util.TimeZone;
 
+import javolution.util.FastList;
+import javolution.util.FastMap;
+
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
 import org.ofbiz.base.util.ObjectType;
@@ -96,15 +99,21 @@
         }
 
         if (UtilValidate.isNotEmpty(this.type)) {
-            try {
-                newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, methodContext.getTimeZone(), methodContext.getLocale(), true);
-            } catch (GeneralException e) {
-                String errMsg = "Could not convert field value for the field: [" + this.field.toString() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
-                Debug.logError(e, errMsg, module);
-                methodContext.setErrorReturn(errMsg, simpleMethod);
-                return false;
+            if ("NewMap".equals(this.type)) {
+                newValue = FastMap.newInstance();
+            } else if ("NewList".equals(this.type)) {
+                newValue = FastList.newInstance();
+            } else {
+                try {
+                    newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, methodContext.getTimeZone(), methodContext.getLocale(), true);
+                } catch (GeneralException e) {
+                    String errMsg = "Could not convert field value for the field: [" + this.field.toString() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
+                    Debug.logError(e, errMsg, module);
+                    methodContext.setErrorReturn(errMsg, simpleMethod);
+                    return false;
+                }
+            }
             }
-        }
 
         if (Debug.verboseOn()) Debug.logVerbose("In screen setting field [" + this.field.toString() + "] to value: " + newValue, module);
         this.field.put(methodContext, newValue);

Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
+++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Wed Apr 15 17:44:47 2009
@@ -1528,6 +1528,8 @@
                     <xs:enumeration value="Timestamp"/>
                     <xs:enumeration value="Boolean"/>
                     <xs:enumeration value="Object"/>
+                    <xs:enumeration value="NewList"/>
+                    <xs:enumeration value="NewMap"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>

Modified: ofbiz/trunk/framework/widget/dtd/widget-menu.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-menu.xsd?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/dtd/widget-menu.xsd (original)
+++ ofbiz/trunk/framework/widget/dtd/widget-menu.xsd Wed Apr 15 17:44:47 2009
@@ -310,6 +310,8 @@
                     <xs:enumeration value="Timestamp"/>
                     <xs:enumeration value="Boolean"/>
                     <xs:enumeration value="Object"/>
+                    <xs:enumeration value="NewList"/>
+                    <xs:enumeration value="NewMap"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>

Modified: ofbiz/trunk/framework/widget/dtd/widget-screen.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-screen.xsd?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/dtd/widget-screen.xsd (original)
+++ ofbiz/trunk/framework/widget/dtd/widget-screen.xsd Wed Apr 15 17:44:47 2009
@@ -343,6 +343,8 @@
                     <xs:enumeration value="Timestamp"/>
                     <xs:enumeration value="Boolean"/>
                     <xs:enumeration value="Object"/>
+                    <xs:enumeration value="NewList"/>
+                    <xs:enumeration value="NewMap"/>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java Wed Apr 15 17:44:47 2009
@@ -28,6 +28,9 @@
 import java.util.TimeZone;
 import java.util.regex.PatternSyntaxException;
 
+import javolution.util.FastList;
+import javolution.util.FastMap;
+
 import org.ofbiz.base.util.BshUtil;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
@@ -141,14 +144,19 @@
             }
 
             if (UtilValidate.isNotEmpty(this.type)) {
-                try {
-                    newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
-                } catch (GeneralException e) {
-                    String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
-                    Debug.logError(e, errMsg, module);
-                    throw new IllegalArgumentException(errMsg);
+                if ("NewMap".equals(this.type)) {
+                    newValue = FastMap.newInstance();
+                } else if ("NewList".equals(this.type)) {
+                    newValue = FastList.newInstance();
+                } else {
+                    try {
+                        newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
+                    } catch (GeneralException e) {
+                        String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
+                        Debug.logError(e, errMsg, module);
+                        throw new IllegalArgumentException(errMsg);
+                    }
                 }
-
             }
             if (Debug.verboseOn()) Debug.logVerbose("In screen setting field [" + this.field.getOriginalName() + "] to value: " + newValue, module);
             this.field.put(context, newValue);

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/menu/ModelMenuAction.java Wed Apr 15 17:44:47 2009
@@ -25,6 +25,7 @@
 import java.util.Map;
 import java.util.TimeZone;
 
+import javolution.util.FastList;
 import javolution.util.FastMap;
 
 import org.ofbiz.base.util.BshUtil;
@@ -184,14 +185,19 @@
             }
 
             if (UtilValidate.isNotEmpty(this.type)) {
-                try {
-                    newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
-                } catch (GeneralException e) {
-                    String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
-                    Debug.logError(e, errMsg, module);
-                    throw new IllegalArgumentException(errMsg);
+                if ("NewMap".equals(this.type)) {
+                    newValue = FastMap.newInstance();
+                } else if ("NewList".equals(this.type)) {
+                    newValue = FastList.newInstance();
+                } else {
+                    try {
+                        newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
+                    } catch (GeneralException e) {
+                        String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
+                        Debug.logError(e, errMsg, module);
+                        throw new IllegalArgumentException(errMsg);
+                    }
                 }
-
             }
             if (this.toScope != null && this.toScope.equals("user")) {
                     String originalName = this.field.getOriginalName();

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenAction.java?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenAction.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/screen/ModelScreenAction.java Wed Apr 15 17:44:47 2009
@@ -181,12 +181,18 @@
             }
 
             if (UtilValidate.isNotEmpty(this.type)) {
-                try {
-                    newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
-                } catch (GeneralException e) {
-                    String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
-                    Debug.logError(e, errMsg, module);
-                    throw new IllegalArgumentException(errMsg);
+                if ("NewMap".equals(this.type)) {
+                    newValue = FastMap.newInstance();
+                } else if ("NewList".equals(this.type)) {
+                    newValue = FastList.newInstance();
+                } else {
+                    try {
+                        newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
+                    } catch (GeneralException e) {
+                        String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
+                        Debug.logError(e, errMsg, module);
+                        throw new IllegalArgumentException(errMsg);
+                    }
                 }
             }
 

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java?rev=765284&r1=765283&r2=765284&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java Wed Apr 15 17:44:47 2009
@@ -25,6 +25,7 @@
 import java.util.TimeZone;
 import java.util.regex.PatternSyntaxException;
 
+import javolution.util.FastList;
 import javolution.util.FastMap;
 
 import org.ofbiz.base.util.BshUtil;
@@ -139,14 +140,19 @@
                 newValue = this.valueExdr.expandString(context);
             }
             if (UtilValidate.isNotEmpty(this.type)) {
-                try {
-                    newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
-                } catch (GeneralException e) {
-                    String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
-                    Debug.logError(e, errMsg, module);
-                    throw new IllegalArgumentException(errMsg);
+                if ("NewMap".equals(this.type)) {
+                    newValue = FastMap.newInstance();
+                } else if ("NewList".equals(this.type)) {
+                    newValue = FastList.newInstance();
+                } else {
+                    try {
+                        newValue = ObjectType.simpleTypeConvert(newValue, this.type, null, (TimeZone) context.get("timeZone"), (Locale) context.get("locale"), true);
+                    } catch (GeneralException e) {
+                        String errMsg = "Could not convert field value for the field: [" + this.field.getOriginalName() + "] to the [" + this.type + "] type for the value [" + newValue + "]: " + e.toString();
+                        Debug.logError(e, errMsg, module);
+                        throw new IllegalArgumentException(errMsg);
+                    }
                 }
-
             }
             this.field.put(context, newValue);