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 2014/11/02 10:08:21 UTC

svn commit: r1636096 - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: ModelWidgetAction.java form/ModelForm.java form/ModelFormAction.java

Author: adrianc
Date: Sun Nov  2 09:08:21 2014
New Revision: 1636096

URL: http://svn.apache.org/r1636096
Log:
Delegate most form widget actions to ModelWidgetAction.

Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetAction.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormAction.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetAction.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetAction.java?rev=1636096&r1=1636095&r2=1636096&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetAction.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/ModelWidgetAction.java Sun Nov  2 09:08:21 2014
@@ -21,6 +21,7 @@ package org.ofbiz.widget;
 import java.io.Serializable;
 import java.text.MessageFormat;
 import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
 import java.util.LinkedList;
 import java.util.List;
@@ -76,43 +77,51 @@ public abstract class ModelWidgetAction 
 
     public abstract void accept(ModelActionVisitor visitor);
 
+    public static ModelWidgetAction toModelWidgetAction(ModelWidget modelWidget, Element actionElement) {
+        if ("set".equals(actionElement.getNodeName())) {
+            return new SetField(modelWidget, actionElement);
+        } else if ("property-map".equals(actionElement.getNodeName())) {
+            return new PropertyMap(modelWidget, actionElement);
+        } else if ("property-to-field".equals(actionElement.getNodeName())) {
+            return new PropertyToField(modelWidget, actionElement);
+        } else if ("script".equals(actionElement.getNodeName())) {
+            return new Script(modelWidget, actionElement);
+        } else if ("service".equals(actionElement.getNodeName())) {
+            return new Service(modelWidget, actionElement);
+        } else if ("entity-one".equals(actionElement.getNodeName())) {
+            return new EntityOne(modelWidget, actionElement);
+        } else if ("entity-and".equals(actionElement.getNodeName())) {
+            return new EntityAnd(modelWidget, actionElement);
+        } else if ("entity-condition".equals(actionElement.getNodeName())) {
+            return new EntityCondition(modelWidget, actionElement);
+        } else if ("get-related-one".equals(actionElement.getNodeName())) {
+            return new GetRelatedOne(modelWidget, actionElement);
+        } else if ("get-related".equals(actionElement.getNodeName())) {
+            return new GetRelated(modelWidget, actionElement);
+        } else {
+            throw new IllegalArgumentException("Action element not supported with name: " + actionElement.getNodeName());
+        }
+    }
+    
     public static List<ModelWidgetAction> readSubActions(ModelWidget modelWidget, Element parentElement) {
         List<? extends Element> actionElementList = UtilXml.childElementList(parentElement);
         List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size());
         for (Element actionElement: actionElementList) {
-            if ("set".equals(actionElement.getNodeName())) {
-                actions.add(new SetField(modelWidget, actionElement));
-            } else if ("property-map".equals(actionElement.getNodeName())) {
-                actions.add(new PropertyMap(modelWidget, actionElement));
-            } else if ("property-to-field".equals(actionElement.getNodeName())) {
-                actions.add(new PropertyToField(modelWidget, actionElement));
-            } else if ("script".equals(actionElement.getNodeName())) {
-                actions.add(new Script(modelWidget, actionElement));
-            } else if ("service".equals(actionElement.getNodeName())) {
-                actions.add(new Service(modelWidget, actionElement));
-            } else if ("entity-one".equals(actionElement.getNodeName())) {
-                actions.add(new EntityOne(modelWidget, actionElement));
-            } else if ("entity-and".equals(actionElement.getNodeName())) {
-                actions.add(new EntityAnd(modelWidget, actionElement));
-            } else if ("entity-condition".equals(actionElement.getNodeName())) {
-                actions.add(new EntityCondition(modelWidget, actionElement));
-            } else if ("get-related-one".equals(actionElement.getNodeName())) {
-                actions.add(new GetRelatedOne(modelWidget, actionElement));
-            } else if ("get-related".equals(actionElement.getNodeName())) {
-                actions.add(new GetRelated(modelWidget, actionElement));
-            } else {
-                throw new IllegalArgumentException("Action element not supported with name: " + actionElement.getNodeName());
-            }
+            actions.add(toModelWidgetAction(modelWidget, actionElement));
         }
-        return actions;
+        return Collections.unmodifiableList(actions);
     }
 
-    public static void runSubActions(List<ModelWidgetAction> actions, Map<String, Object> context) throws GeneralException {
+    public static void runSubActions(List<ModelWidgetAction> actions, Map<String, Object> context) {
         if (actions == null) return;
-
-        for (ModelWidgetAction action: actions) {
-            if (Debug.verboseOn()) Debug.logVerbose("Running widget action " + action.getClass().getName(), module);
-            action.runAction(context);
+        for (ModelWidgetAction action : actions) {
+            if (Debug.verboseOn())
+                Debug.logVerbose("Running action " + action.getClass().getName(), module);
+            try {
+                action.runAction(context);
+            } catch (GeneralException e) {
+                throw new RuntimeException(e);
+            }
         }
     }
 

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=1636096&r1=1636095&r2=1636096&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Sun Nov  2 09:08:21 2014
@@ -861,7 +861,7 @@ public class ModelForm extends ModelWidg
     }
 
     public void runFormActions(Map<String, Object> context) {
-        ModelFormAction.runSubActions(this.actions, context);
+        ModelWidgetAction.runSubActions(this.actions, context);
     }
 
     /**
@@ -1580,7 +1580,7 @@ public class ModelForm extends ModelWidg
                 previousItem = new HashMap<String, Object>();
                 previousItem.putAll(itemMap);
 
-                ModelFormAction.runSubActions(this.rowActions, localContext);
+                ModelWidgetAction.runSubActions(this.rowActions, localContext);
 
                 localContext.put("itemIndex", Integer.valueOf(itemIndex - lowIndex));
                 if (UtilValidate.isNotEmpty(context.get("renderFormSeqNumber"))) {

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=1636096&r1=1636095&r2=1636096&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 Sun Nov  2 09:08:21 2014
@@ -18,8 +18,9 @@
  *******************************************************************************/
 package org.ofbiz.widget.form;
 
+import java.util.ArrayList;
+import java.util.Collections;
 import java.util.HashMap;
-import java.util.LinkedList;
 import java.util.List;
 import java.util.ListIterator;
 import java.util.Map;
@@ -39,11 +40,6 @@ import org.ofbiz.service.GenericServiceE
 import org.ofbiz.service.ModelService;
 import org.ofbiz.widget.ModelActionVisitor;
 import org.ofbiz.widget.ModelWidgetAction;
-import org.ofbiz.widget.ModelWidgetAction.EntityOne;
-import org.ofbiz.widget.ModelWidgetAction.PropertyMap;
-import org.ofbiz.widget.ModelWidgetAction.PropertyToField;
-import org.ofbiz.widget.ModelWidgetAction.Script;
-import org.ofbiz.widget.ModelWidgetAction.SetField;
 import org.ofbiz.widget.WidgetWorker;
 import org.w3c.dom.Element;
 
@@ -51,26 +47,15 @@ import org.w3c.dom.Element;
  * Widget Library - Screen model class
  */
 public abstract class ModelFormAction {
-    public static final String module = ModelFormAction.class.getName();
 
-    public abstract void runAction(Map<String, Object> context);
+    public static final String module = ModelFormAction.class.getName();
 
     public static List<ModelWidgetAction> readSubActions(ModelForm modelForm, Element parentElement) {
-        List<ModelWidgetAction> actions = new LinkedList<ModelWidgetAction>();
-
-        for (Element actionElement: UtilXml.childElementList(parentElement)) {
-            if ("set".equals(actionElement.getNodeName())) {
-                actions.add(new SetField(modelForm, actionElement));
-            } else if ("property-map".equals(actionElement.getNodeName())) {
-                actions.add(new PropertyMap(modelForm, actionElement));
-            } else if ("property-to-field".equals(actionElement.getNodeName())) {
-                actions.add(new PropertyToField(modelForm, actionElement));
-            } else if ("script".equals(actionElement.getNodeName())) {
-                actions.add(new Script(modelForm, actionElement));
-            } else if ("service".equals(actionElement.getNodeName())) {
+        List<? extends Element> actionElementList = UtilXml.childElementList(parentElement);
+        List<ModelWidgetAction> actions = new ArrayList<ModelWidgetAction>(actionElementList.size());
+        for (Element actionElement : UtilXml.childElementList(parentElement)) {
+            if ("service".equals(actionElement.getNodeName())) {
                 actions.add(new Service(modelForm, actionElement));
-            } else if ("entity-one".equals(actionElement.getNodeName())) {
-                actions.add(new EntityOne(modelForm, actionElement));
             } else if ("entity-and".equals(actionElement.getNodeName())) {
                 actions.add(new EntityAnd(modelForm, actionElement));
             } else if ("entity-condition".equals(actionElement.getNodeName())) {
@@ -78,24 +63,10 @@ public abstract class ModelFormAction {
             } else if ("call-parent-actions".equals(actionElement.getNodeName())) {
                 actions.add(new CallParentActions(modelForm, actionElement));
             } else {
-                throw new IllegalArgumentException("Action element not supported with name: " + actionElement.getNodeName());
-            }
-        }
-
-        return actions;
-    }
-
-    public static void runSubActions(List<ModelWidgetAction> actions, Map<String, Object> context) {
-        if (actions == null) return;
-
-        for (ModelWidgetAction action: actions) {
-            if (Debug.verboseOn()) Debug.logVerbose("Running screen action " + action.getClass().getName(), module);
-            try {
-                action.runAction(context);
-            } catch (GeneralException e) {
-                throw new RuntimeException(e);
+                actions.add(ModelWidgetAction.toModelWidgetAction(modelForm, actionElement));
             }
         }
+        return Collections.unmodifiableList(actions);
     }
 
     @SuppressWarnings("serial")
@@ -363,7 +334,7 @@ public abstract class ModelFormAction {
                     parentModel.runFormActions(context);
                     break;
                 case ROW_ACTIONS:
-                    ModelFormAction.runSubActions(parentModel.rowActions, context);
+                    ModelWidgetAction.runSubActions(parentModel.rowActions, context);
                     break;
             }
         }