Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeAction.java
 Mon Jan  5 08:50:30 2015
@@ -45,63 +45,250 @@ import org.ofbiz.service.DispatchContext
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.ModelService;
 import org.ofbiz.widget.ModelActionVisitor;
-import org.ofbiz.widget.ModelWidget;
 import org.ofbiz.widget.ModelWidgetAction;
 import org.ofbiz.widget.WidgetWorker;
+import org.ofbiz.widget.tree.ModelTree.ModelNode;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 
 /**
- * Widget Library - Tree model class
+ * Abstract tree action.
  */
 @SuppressWarnings("serial")
 public abstract class ModelTreeAction extends ModelWidgetAction {
 
+    /*
+     * ----------------------------------------------------------------------- 
*
+     *                     DEVELOPERS PLEASE READ
+     * ----------------------------------------------------------------------- 
*
+     * 
+     * This model is intended to be a read-only data structure that represents
+     * an XML element. Outside of object construction, the class should not
+     * have any behaviors.
+     * 
+     * Instances of this class will be shared by multiple threads - therefore
+     * it is immutable. DO NOT CHANGE THE OBJECT'S STATE AT RUN TIME!
+     * 
+     */
+
     public static final String module = ModelTreeAction.class.getName();
 
-    protected ModelTree modelTree;
-    protected ModelTree.ModelNode.ModelSubNode modelSubNode;
+    public static List<ModelWidgetAction> readNodeActions(ModelNode modelNode, 
Element actionsElement) {
+        List<? extends Element> actionElementList = 
UtilXml.childElementList(actionsElement);
+        List<ModelWidgetAction> actions = new 
ArrayList<ModelWidgetAction>(actionElementList.size());
+        for (Element actionElement : actionElementList) {
+            if ("service".equals(actionElement.getNodeName())) {
+                actions.add(new Service(modelNode, actionElement));
+            } else if ("script".equals(actionElement.getNodeName())) {
+                actions.add(new Script(modelNode, actionElement));
+            } else {
+                actions.add(ModelWidgetAction.newInstance(modelNode, 
actionElement));
+            }
+        }
+        return actions;
+    }
+
+    public static List<ModelWidgetAction> 
readSubNodeActions(ModelNode.ModelSubNode modelSubNode, Element actionsElement) 
{
+        List<? extends Element> actionElementList = 
UtilXml.childElementList(actionsElement);
+        List<ModelWidgetAction> actions = new 
ArrayList<ModelWidgetAction>(actionElementList.size());
+        for (Element actionElement : actionElementList) {
+            if ("service".equals(actionElement.getNodeName())) {
+                actions.add(new Service(modelSubNode, actionElement));
+            } else if ("entity-and".equals(actionElement.getNodeName())) {
+                actions.add(new EntityAnd(modelSubNode, actionElement));
+            } else if ("entity-condition".equals(actionElement.getNodeName())) 
{
+                actions.add(new EntityCondition(modelSubNode, actionElement));
+            } else if ("script".equals(actionElement.getNodeName())) {
+                actions.add(new Script(modelSubNode, actionElement));
+            } else {
+                actions.add(ModelWidgetAction.newInstance(modelSubNode, 
actionElement));
+            }
+        }
+        return actions;
+    }
+
+    private final ModelNode.ModelSubNode modelSubNode;
+    private final ModelTree modelTree;
 
-    public ModelTreeAction(ModelTree.ModelNode modelNode, Element 
actionElement) {
-        if (Debug.verboseOn()) Debug.logVerbose("Reading Tree action with 
name: " + actionElement.getNodeName(), module);
+    protected ModelTreeAction(ModelNode modelNode, Element actionElement) {
+        if (Debug.verboseOn())
+            Debug.logVerbose("Reading Tree action with name: " + 
actionElement.getNodeName(), module);
         this.modelTree = modelNode.getModelTree();
+        this.modelSubNode = null;
     }
 
-    public ModelTreeAction(ModelTree.ModelNode.ModelSubNode modelSubNode, 
Element actionElement) {
-        if (Debug.verboseOn()) Debug.logVerbose("Reading Tree action with 
name: " + actionElement.getNodeName(), module);
+    protected ModelTreeAction(ModelNode.ModelSubNode modelSubNode, Element 
actionElement) {
+        if (Debug.verboseOn())
+            Debug.logVerbose("Reading Tree action with name: " + 
actionElement.getNodeName(), module);
         this.modelSubNode = modelSubNode;
         this.modelTree = modelSubNode.getNode().getModelTree();
     }
 
-    public static List<ModelWidgetAction> readNodeActions(ModelWidget 
modelNode, Element actionsElement) {
-        List<? extends Element> actionElementList = 
UtilXml.childElementList(actionsElement);
-        List<ModelWidgetAction> actions = new 
ArrayList<ModelWidgetAction>(actionElementList.size());
-        for (Element actionElement : actionElementList) {
-            // TODO: Check for tree-specific actions
-            actions.add(ModelWidgetAction.toModelWidgetAction(modelNode, 
actionElement));
+    public ModelNode.ModelSubNode getModelSubNode() {
+        return modelSubNode;
+    }
+
+    public ModelTree getModelTree() {
+        return modelTree;
+    }
+
+    /**
+     * Models the &lt;entity-and&gt; element.
+     * 
+     * @see <code>widget-tree.xsd</code>
+     */
+    public static class EntityAnd extends ModelTreeAction {
+        private final ByAndFinder finder;
+        private final String listName;
+
+        public EntityAnd(ModelNode.ModelSubNode modelSubNode, Element 
entityAndElement) {
+            super(modelSubNode, entityAndElement);
+            boolean useCache = 
"true".equalsIgnoreCase(entityAndElement.getAttribute("use-cache"));
+            Document ownerDoc = entityAndElement.getOwnerDocument();
+            if (!useCache)
+                UtilXml.addChildElement(entityAndElement, "use-iterator", 
ownerDoc);
+            String listName = 
UtilFormatOut.checkEmpty(entityAndElement.getAttribute("list"),
+                    entityAndElement.getAttribute("list-name"));
+            if (UtilValidate.isEmpty(listName))
+                listName = "_LIST_ITERATOR_";
+            this.listName = listName;
+            entityAndElement.setAttribute("list-name", this.listName);
+            finder = new ByAndFinder(entityAndElement);
+        }
+
+        @Override
+        public void accept(ModelActionVisitor visitor) {
+            visitor.visit(this);
+        }
+
+        public ByAndFinder getFinder() {
+            return finder;
+        }
+
+        public String getListName() {
+            return listName;
+        }
+
+        @Override
+        public void runAction(Map<String, Object> context) {
+            try {
+                context.put(this.listName, null);
+                finder.runFind(context, WidgetWorker.getDelegator(context));
+                Object obj = context.get(this.listName);
+                if (obj != null && (obj instanceof EntityListIterator || obj 
instanceof ListIterator<?>)) {
+                    ListIterator<? extends Map<String, ? extends Object>> 
listIt = UtilGenerics.cast(obj);
+                    this.getModelSubNode().setListIterator(listIt, context);
+                } else {
+                    if (obj instanceof List<?>) {
+                        List<? extends Map<String, ? extends Object>> list = 
UtilGenerics.checkList(obj);
+                        
this.getModelSubNode().setListIterator(list.listIterator(), context);
+                    }
+                }
+            } catch (GeneralException e) {
+                String errMsg = "Error doing entity query by condition: " + 
e.toString();
+                Debug.logError(e, errMsg, module);
+                throw new IllegalArgumentException(errMsg);
+            }
         }
-        return actions;
     }
 
+    /**
+     * Models the &lt;entity-condition&gt; element.
+     * 
+     * @see <code>widget-tree.xsd</code>
+     */
+    public static class EntityCondition extends ModelTreeAction {
+        private final ByConditionFinder finder;
+        private final String listName;
+
+        public EntityCondition(ModelNode.ModelSubNode modelSubNode, Element 
entityConditionElement) {
+            super(modelSubNode, entityConditionElement);
+            Document ownerDoc = entityConditionElement.getOwnerDocument();
+            boolean useCache = 
"true".equalsIgnoreCase(entityConditionElement.getAttribute("use-cache"));
+            if (!useCache)
+                UtilXml.addChildElement(entityConditionElement, 
"use-iterator", ownerDoc);
+            String listName = 
UtilFormatOut.checkEmpty(entityConditionElement.getAttribute("list"),
+                    entityConditionElement.getAttribute("list-name"));
+            if (UtilValidate.isEmpty(listName))
+                listName = "_LIST_ITERATOR_";
+            this.listName = listName;
+            entityConditionElement.setAttribute("list-name", this.listName);
+            finder = new ByConditionFinder(entityConditionElement);
+        }
+
+        @Override
+        public void accept(ModelActionVisitor visitor) {
+            visitor.visit(this);
+        }
+
+        public ByConditionFinder getFinder() {
+            return finder;
+        }
+
+        public String getListName() {
+            return listName;
+        }
+
+        @Override
+        public void runAction(Map<String, Object> context) {
+            try {
+                context.put(this.listName, null);
+                finder.runFind(context, WidgetWorker.getDelegator(context));
+                Object obj = context.get(this.listName);
+                if (obj != null && (obj instanceof EntityListIterator || obj 
instanceof ListIterator<?>)) {
+                    ListIterator<? extends Map<String, ? extends Object>> 
listIt = UtilGenerics.cast(obj);
+                    this.getModelSubNode().setListIterator(listIt, context);
+                } else {
+                    if (obj instanceof List<?>) {
+                        List<? extends Map<String, ? extends Object>> list = 
UtilGenerics.cast(obj);
+                        
this.getModelSubNode().setListIterator(list.listIterator(), context);
+                    }
+                }
+            } catch (GeneralException e) {
+                String errMsg = "Error doing entity query by condition: " + 
e.toString();
+                Debug.logError(e, errMsg, module);
+                throw new IllegalArgumentException(errMsg);
+            }
+        }
+    }
+
+    /**
+     * Models the &lt;script&gt; element.
+     * 
+     * @see <code>widget-tree.xsd</code>
+     */
     public static class Script extends ModelTreeAction {
-        protected String location;
-        protected String method;
+        private final String location;
+        private final String method;
 
-        public Script(ModelTree.ModelNode modelNode, Element scriptElement) {
-            super (modelNode, scriptElement);
+        public Script(ModelNode modelNode, Element scriptElement) {
+            super(modelNode, scriptElement);
             String scriptLocation = scriptElement.getAttribute("location");
             this.location = WidgetWorker.getScriptLocation(scriptLocation);
             this.method = WidgetWorker.getScriptMethodName(scriptLocation);
         }
 
-        public Script(ModelTree.ModelNode.ModelSubNode modelSubNode, Element 
scriptElement) {
-            super (modelSubNode, scriptElement);
+        public Script(ModelNode.ModelSubNode modelSubNode, Element 
scriptElement) {
+            super(modelSubNode, scriptElement);
             String scriptLocation = scriptElement.getAttribute("location");
             this.location = WidgetWorker.getScriptLocation(scriptLocation);
             this.method = WidgetWorker.getScriptMethodName(scriptLocation);
         }
 
         @Override
+        public void accept(ModelActionVisitor visitor) {
+            visitor.visit(this);
+        }
+
+        public String getLocation() {
+            return location;
+        }
+
+        public String getMethod() {
+            return method;
+        }
+
+        @Override
         public void runAction(Map<String, Object> context) {
             context.put("_LIST_ITERATOR_", null);
             if (location.endsWith(".xml")) {
@@ -119,87 +306,112 @@ public abstract class ModelTreeAction ex
                 ScriptUtil.executeScript(this.location, this.method, context);
             }
             Object obj = context.get("_LIST_ITERATOR_");
-            if (this.modelSubNode != null) {
+            if (this.getModelSubNode() != null) {
                 if (obj != null && (obj instanceof EntityListIterator || obj 
instanceof ListIterator<?>)) {
                     ListIterator<? extends Map<String, ? extends Object>> 
listIt = UtilGenerics.cast(obj);
-                    this.modelSubNode.setListIterator(listIt);
+                    this.getModelSubNode().setListIterator(listIt, context);
                 } else {
                     if (obj instanceof List<?>) {
                         List<? extends Map<String, ? extends Object>> list = 
UtilGenerics.checkList(obj);
-                        this.modelSubNode.setListIterator(list.listIterator());
+                        
this.getModelSubNode().setListIterator(list.listIterator(), context);
                     }
                 }
             }
         }
-
-        @Override
-        public void accept(ModelActionVisitor visitor) {
-            visitor.visit(this);
-        }
     }
 
+    /**
+     * Models the &lt;service&gt; element.
+     * 
+     * @see <code>widget-tree.xsd</code>
+     */
     public static class Service extends ModelTreeAction {
-        protected FlexibleStringExpander serviceNameExdr;
-        protected FlexibleMapAccessor<Map<String, Object>> resultMapNameAcsr;
-        protected FlexibleStringExpander autoFieldMapExdr;
-        protected FlexibleStringExpander resultMapListNameExdr;
-        protected FlexibleStringExpander resultMapValueNameExdr;
-        protected FlexibleStringExpander valueNameExdr;
-        protected Map<FlexibleMapAccessor<Object>, Object> fieldMap;
-
-        public Service(ModelTree.ModelNode modelNode, Element serviceElement) {
-            super (modelNode, serviceElement);
-            initService(serviceElement);
-        }
+        private final FlexibleStringExpander autoFieldMapExdr;
+        private final Map<FlexibleMapAccessor<Object>, Object> fieldMap;
+        private final FlexibleStringExpander resultMapListNameExdr;
+        private final FlexibleMapAccessor<Map<String, Object>> 
resultMapNameAcsr;
+        private final FlexibleStringExpander resultMapValueNameExdr;
+        private final FlexibleStringExpander serviceNameExdr;
+        private final FlexibleStringExpander valueNameExdr;
 
-        public Service(ModelTree.ModelNode.ModelSubNode modelSubNode, Element 
serviceElement) {
-            super (modelSubNode, serviceElement);
-            initService(serviceElement);
+        public Service(ModelNode modelNode, Element serviceElement) {
+            super(modelNode, serviceElement);
+            this.serviceNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("service-name"));
+            this.resultMapNameAcsr = 
FlexibleMapAccessor.getInstance(serviceElement.getAttribute("result-map"));
+            this.autoFieldMapExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("auto-field-map"));
+            this.resultMapListNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-list"));
+            this.resultMapValueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-value"));
+            this.valueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("value"));
+            this.fieldMap = EntityFinderUtil.makeFieldMap(serviceElement);
         }
 
-        public void initService(Element serviceElement) {
-
+        public Service(ModelNode.ModelSubNode modelSubNode, Element 
serviceElement) {
+            super(modelSubNode, serviceElement);
             this.serviceNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("service-name"));
             this.resultMapNameAcsr = 
FlexibleMapAccessor.getInstance(serviceElement.getAttribute("result-map"));
-            if (this.resultMapNameAcsr.isEmpty()) this.resultMapNameAcsr = 
FlexibleMapAccessor.getInstance(serviceElement.getAttribute("result-map-name"));
             this.autoFieldMapExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("auto-field-map"));
             this.resultMapListNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-list"));
-            if (this.resultMapListNameExdr.isEmpty()) 
this.resultMapListNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-list-name"));
-            if (this.resultMapListNameExdr.isEmpty()) 
this.resultMapListNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-list-iterator-name"));
             this.resultMapValueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-value"));
-            if (this.resultMapValueNameExdr.isEmpty()) 
this.resultMapValueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("result-map-value-name"));
             this.valueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("value"));
-            if (this.valueNameExdr.isEmpty()) this.valueNameExdr = 
FlexibleStringExpander.getInstance(serviceElement.getAttribute("value-name"));
             this.fieldMap = EntityFinderUtil.makeFieldMap(serviceElement);
         }
 
         @Override
+        public void accept(ModelActionVisitor visitor) {
+            visitor.visit(this);
+        }
+
+        public FlexibleStringExpander getAutoFieldMapExdr() {
+            return autoFieldMapExdr;
+        }
+
+        public Map<FlexibleMapAccessor<Object>, Object> getFieldMap() {
+            return fieldMap;
+        }
+
+        public FlexibleStringExpander getResultMapListNameExdr() {
+            return resultMapListNameExdr;
+        }
+
+        public FlexibleMapAccessor<Map<String, Object>> getResultMapNameAcsr() 
{
+            return resultMapNameAcsr;
+        }
+
+        public FlexibleStringExpander getResultMapValueNameExdr() {
+            return resultMapValueNameExdr;
+        }
+
+        public FlexibleStringExpander getServiceNameExdr() {
+            return serviceNameExdr;
+        }
+
+        public FlexibleStringExpander getValueNameExdr() {
+            return valueNameExdr;
+        }
+
+        @Override
         public void runAction(Map<String, Object> context) {
             String serviceNameExpanded = 
this.serviceNameExdr.expandString(context);
             if (UtilValidate.isEmpty(serviceNameExpanded)) {
                 throw new IllegalArgumentException("Service name was empty, 
expanded from: " + this.serviceNameExdr.getOriginal());
             }
-
             String autoFieldMapString = 
this.autoFieldMapExdr.expandString(context);
             boolean autoFieldMapBool = !"false".equals(autoFieldMapString);
-
             try {
                 Map<String, Object> serviceContext = null;
                 if (autoFieldMapBool) {
-                    serviceContext = 
this.modelTree.getDispatcher().getDispatchContext().makeValidContext(serviceNameExpanded,
 ModelService.IN_PARAM, context);
+                    serviceContext = 
WidgetWorker.getDispatcher(context).getDispatchContext()
+                            .makeValidContext(serviceNameExpanded, 
ModelService.IN_PARAM, context);
                 } else {
                     serviceContext = new HashMap<String, Object>();
                 }
-
                 if (this.fieldMap != null) {
                     EntityFinderUtil.expandFieldMapToContext(this.fieldMap, 
context, serviceContext);
                 }
-
-                Map<String, Object> result = 
this.modelTree.getDispatcher().runSync(serviceNameExpanded, serviceContext);
-
+                Map<String, Object> result = 
WidgetWorker.getDispatcher(context).runSync(serviceNameExpanded, 
serviceContext);
                 if (!this.resultMapNameAcsr.isEmpty()) {
                     this.resultMapNameAcsr.put(context, result);
-                    String queryString = (String)result.get("queryString");
+                    String queryString = (String) result.get("queryString");
                     context.put("queryString", queryString);
                     context.put("queryStringMap", 
result.get("queryStringMap"));
                     if (UtilValidate.isNotEmpty(queryString)) {
@@ -217,17 +429,16 @@ public abstract class ModelTreeAction ex
                 //String resultMapListIteratorName = 
resultMapListIteratorNameExdr.expandString(context);
                 String resultMapValueName = 
resultMapValueNameExdr.expandString(context);
                 String valueName = valueNameExdr.expandString(context);
-
-                if (this.modelSubNode != null) {
+                if (this.getModelSubNode() != null) {
                     //ListIterator iter = null;
                     if (UtilValidate.isNotEmpty(resultMapListName)) {
                         List<? extends Map<String, ? extends Object>> lst = 
UtilGenerics.checkList(result.get(resultMapListName));
                         if (lst != null) {
                             if (lst instanceof ListIterator<?>) {
                                 ListIterator<? extends Map<String, ? extends 
Object>> listIt = UtilGenerics.cast(lst);
-                                this.modelSubNode.setListIterator(listIt);
+                                this.getModelSubNode().setListIterator(listIt, 
context);
                             } else {
-                                
this.modelSubNode.setListIterator(lst.listIterator());
+                                
this.getModelSubNode().setListIterator(lst.listIterator(), context);
                             }
                         }
                     }
@@ -247,100 +458,5 @@ public abstract class ModelTreeAction ex
                 throw new IllegalArgumentException(errMsg);
             }
         }
-
-        @Override
-        public void accept(ModelActionVisitor visitor) {
-            visitor.visit(this);
-        }
-    }
-
-    public static class EntityAnd extends ModelTreeAction {
-        protected ByAndFinder finder;
-        String listName;
-
-        public EntityAnd(ModelTree.ModelNode.ModelSubNode modelSubNode, 
Element entityAndElement) {
-            super (modelSubNode, entityAndElement);
-            boolean useCache = 
"true".equalsIgnoreCase(entityAndElement.getAttribute("use-cache"));
-            Document ownerDoc = entityAndElement.getOwnerDocument();
-            if (!useCache) UtilXml.addChildElement(entityAndElement, 
"use-iterator", ownerDoc);
-
-            this.listName = 
UtilFormatOut.checkEmpty(entityAndElement.getAttribute("list"), 
entityAndElement.getAttribute("list-name"));
-            if (UtilValidate.isEmpty(this.listName)) this.listName = 
"_LIST_ITERATOR_";
-            entityAndElement.setAttribute("list-name", this.listName);
-
-            finder = new ByAndFinder(entityAndElement);
-        }
-
-        @Override
-        public void runAction(Map<String, Object> context) {
-            try {
-                context.put(this.listName, null);
-                finder.runFind(context, this.modelTree.getDelegator());
-                Object obj = context.get(this.listName);
-                if (obj != null && (obj instanceof EntityListIterator || obj 
instanceof ListIterator<?>)) {
-                    ListIterator<? extends Map<String, ? extends Object>> 
listIt = UtilGenerics.cast(obj);
-                    this.modelSubNode.setListIterator(listIt);
-                } else {
-                    if (obj instanceof List<?>) {
-                        List<? extends Map<String, ? extends Object>> list = 
UtilGenerics.checkList(obj);
-                        this.modelSubNode.setListIterator(list.listIterator());
-                    }
-                }
-            } catch (GeneralException e) {
-                String errMsg = "Error doing entity query by condition: " + 
e.toString();
-                Debug.logError(e, errMsg, module);
-                throw new IllegalArgumentException(errMsg);
-            }
-        }
-
-        @Override
-        public void accept(ModelActionVisitor visitor) {
-            visitor.visit(this);
-        }
-    }
-
-    public static class EntityCondition extends ModelTreeAction {
-        ByConditionFinder finder;
-        String listName;
-
-        public EntityCondition(ModelTree.ModelNode.ModelSubNode modelSubNode, 
Element entityConditionElement) {
-            super (modelSubNode, entityConditionElement);
-            Document ownerDoc = entityConditionElement.getOwnerDocument();
-            boolean useCache = 
"true".equalsIgnoreCase(entityConditionElement.getAttribute("use-cache"));
-            if (!useCache) UtilXml.addChildElement(entityConditionElement, 
"use-iterator", ownerDoc);
-
-            this.listName = 
UtilFormatOut.checkEmpty(entityConditionElement.getAttribute("list"), 
entityConditionElement.getAttribute("list-name"));
-            if (UtilValidate.isEmpty(this.listName)) this.listName = 
"_LIST_ITERATOR_";
-            entityConditionElement.setAttribute("list-name", this.listName);
-
-            finder = new ByConditionFinder(entityConditionElement);
-        }
-
-        @Override
-        public void runAction(Map<String, Object> context) {
-            try {
-                context.put(this.listName, null);
-                finder.runFind(context, this.modelTree.getDelegator());
-                Object obj = context.get(this.listName);
-                if (obj != null && (obj instanceof EntityListIterator || obj 
instanceof ListIterator<?>)) {
-                    ListIterator<? extends Map<String, ? extends Object>> 
listIt = UtilGenerics.cast(obj);
-                    this.modelSubNode.setListIterator(listIt);
-                } else {
-                    if (obj instanceof List<?>) {
-                        List<? extends Map<String, ? extends Object>> list = 
UtilGenerics.cast(obj);
-                        this.modelSubNode.setListIterator(list.listIterator());
-                    }
-                }
-            } catch (GeneralException e) {
-                String errMsg = "Error doing entity query by condition: " + 
e.toString();
-                Debug.logError(e, errMsg, module);
-                throw new IllegalArgumentException(errMsg);
-            }
-        }
-
-        @Override
-        public void accept(ModelActionVisitor visitor) {
-            visitor.visit(this);
-        }
     }
 }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/ModelTreeCondition.java
 Mon Jan  5 08:50:30 2015
@@ -18,447 +18,19 @@
  
*******************************************************************************/
 package org.ofbiz.widget.tree;
 
-import java.lang.reflect.Method;
-import java.util.ArrayList;
-import java.util.LinkedList;
-import java.util.List;
-import java.util.Locale;
-import java.util.Map;
-import java.util.TimeZone;
-
-import org.apache.oro.text.regex.MalformedPatternException;
-import org.apache.oro.text.regex.Pattern;
-import org.apache.oro.text.regex.PatternMatcher;
-import org.apache.oro.text.regex.Perl5Matcher;
-import org.ofbiz.base.util.Debug;
-import org.ofbiz.base.util.GeneralException;
-import org.ofbiz.base.util.ObjectType;
-import org.ofbiz.base.util.PatternFactory;
-import org.ofbiz.base.util.UtilValidate;
-import org.ofbiz.base.util.UtilXml;
-import org.ofbiz.base.util.collections.FlexibleMapAccessor;
-import org.ofbiz.base.util.string.FlexibleStringExpander;
-import org.ofbiz.entity.GenericValue;
-import org.ofbiz.entityext.permission.EntityPermissionChecker;
-import org.ofbiz.minilang.operation.BaseCompare;
-import org.ofbiz.security.Security;
+import org.ofbiz.widget.ModelWidgetCondition;
 import org.w3c.dom.Element;
 
 /**
- * Widget Library - Screen model condition class
+ * Models the &lt;condition&gt; element.
+ * 
+ * @see <code>widget-tree.xsd</code>
  */
-public class ModelTreeCondition {
+@SuppressWarnings("serial")
+public class ModelTreeCondition extends ModelWidgetCondition {
     public static final String module = ModelTreeCondition.class.getName();
 
-    protected ModelTree modelTree;
-    protected TreeCondition rootCondition;
-
     public ModelTreeCondition(ModelTree modelTree, Element conditionElement) {
-        this.modelTree = modelTree;
-        Element firstChildElement = 
UtilXml.firstChildElement(conditionElement);
-        this.rootCondition = readCondition(modelTree, firstChildElement);
-    }
-
-    public boolean eval(Map<String, ? extends Object> context) {
-        if (rootCondition == null) {
-            return true;
-        }
-        return rootCondition.eval(context);
-    }
-
-    public static abstract class TreeCondition {
-        protected ModelTree modelTree;
-
-        public TreeCondition(ModelTree modelTree, Element conditionElement) {
-            this.modelTree = modelTree;
-        }
-
-        public abstract boolean eval(Map<String, ? extends Object> context);
-    }
-
-    public static List<TreeCondition> readSubConditions(ModelTree modelTree, 
Element conditionElement) {
-        List<TreeCondition> condList = new ArrayList<TreeCondition>();
-        for (Element subElement: UtilXml.childElementList(conditionElement)) {
-            condList.add(readCondition(modelTree, subElement));
-        }
-        return condList;
-    }
-
-    public static TreeCondition readCondition(ModelTree modelTree, Element 
conditionElement) {
-        if (conditionElement == null) {
-            return null;
-        }
-        if ("and".equals(conditionElement.getNodeName())) {
-            return new And(modelTree, conditionElement);
-        } else if ("xor".equals(conditionElement.getNodeName())) {
-            return new Xor(modelTree, conditionElement);
-        } else if ("or".equals(conditionElement.getNodeName())) {
-            return new Or(modelTree, conditionElement);
-        } else if ("not".equals(conditionElement.getNodeName())) {
-            return new Not(modelTree, conditionElement);
-        } else if ("if-has-permission".equals(conditionElement.getNodeName())) 
{
-            return new IfHasPermission(modelTree, conditionElement);
-        } else if 
("if-validate-method".equals(conditionElement.getNodeName())) {
-            return new IfValidateMethod(modelTree, conditionElement);
-        } else if ("if-compare".equals(conditionElement.getNodeName())) {
-            return new IfCompare(modelTree, conditionElement);
-        } else if ("if-compare-field".equals(conditionElement.getNodeName())) {
-            return new IfCompareField(modelTree, conditionElement);
-        } else if ("if-regexp".equals(conditionElement.getNodeName())) {
-            return new IfRegexp(modelTree, conditionElement);
-        } else if ("if-empty".equals(conditionElement.getNodeName())) {
-            return new IfEmpty(modelTree, conditionElement);
-        } else if 
("if-entity-permission".equals(conditionElement.getNodeName())) {
-            return new IfEntityPermission(modelTree, conditionElement);
-        } else {
-            throw new IllegalArgumentException("Condition element not 
supported with name: " + conditionElement.getNodeName());
-        }
-    }
-
-    public static class And extends TreeCondition {
-        protected List<? extends TreeCondition> subConditions;
-
-        public And(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.subConditions = readSubConditions(modelTree, condElement);
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            // return false for the first one in the list that is false, basic 
and algo
-            for (TreeCondition subCondition: subConditions) {
-                if (!subCondition.eval(context)) {
-                    return false;
-                }
-            }
-            return true;
-        }
-    }
-
-    public static class Xor extends TreeCondition {
-        protected List<? extends TreeCondition> subConditions;
-
-        public Xor(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.subConditions = readSubConditions(modelTree, condElement);
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            // if more than one is true stop immediately and return false; if 
all are false return false; if only one is true return true
-            boolean foundOneTrue = false;
-            for (TreeCondition subCondition: subConditions) {
-                if (subCondition.eval(context)) {
-                    if (foundOneTrue) {
-                        // now found two true, so return false
-                        return false;
-                    } else {
-                        foundOneTrue = true;
-                    }
-                }
-            }
-            return foundOneTrue;
-        }
-    }
-
-    public static class Or extends TreeCondition {
-        protected List<? extends TreeCondition> subConditions;
-
-        public Or(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.subConditions = readSubConditions(modelTree, condElement);
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            // return true for the first one in the list that is true, basic 
or algo
-            for (TreeCondition subCondition: subConditions) {
-                if (subCondition.eval(context)) {
-                    return true;
-                }
-            }
-            return false;
-        }
-    }
-
-    public static class Not extends TreeCondition {
-        protected TreeCondition subCondition;
-
-        public Not(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            Element firstChildElement = UtilXml.firstChildElement(condElement);
-            this.subCondition = readCondition(modelTree, firstChildElement);
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            return !this.subCondition.eval(context);
-        }
-    }
-
-    public static class IfHasPermission extends TreeCondition {
-        protected FlexibleStringExpander permissionExdr;
-        protected FlexibleStringExpander actionExdr;
-
-        public IfHasPermission(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.permissionExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("permission"));
-            this.actionExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("action"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            // if no user is logged in, treat as if the user does not have 
permission
-            GenericValue userLogin = (GenericValue) context.get("userLogin");
-            if (userLogin != null) {
-                String permission = permissionExdr.expandString(context);
-                String action = actionExdr.expandString(context);
-                Security security = (Security) context.get("security");
-                if (UtilValidate.isNotEmpty(action)) {
-                    // run hasEntityPermission
-                    if (security.hasEntityPermission(permission, action, 
userLogin)) {
-                        return true;
-                    }
-                } else {
-                    // run hasPermission
-                    if (security.hasPermission(permission, userLogin)) {
-                        return true;
-                    }
-                }
-            }
-            return false;
-        }
-    }
-
-    public static class IfValidateMethod extends TreeCondition {
-        protected FlexibleMapAccessor<Object> fieldAcsr;
-        protected FlexibleStringExpander methodExdr;
-        protected FlexibleStringExpander classExdr;
-
-        public IfValidateMethod(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field"));
-            if (this.fieldAcsr.isEmpty()) this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field-name"));
-            this.methodExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("method"));
-            this.classExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("class"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            String methodName = this.methodExdr.expandString(context);
-            String className = this.classExdr.expandString(context);
-
-            Object fieldVal = this.fieldAcsr.get(context);
-            String fieldString = null;
-            if (fieldVal != null) {
-                try {
-                    fieldString = (String) 
ObjectType.simpleTypeConvert(fieldVal, "String", null, (TimeZone) 
context.get("timeZone"), (Locale) context.get("locale"), true);
-                } catch (GeneralException e) {
-                    Debug.logError(e, "Could not convert object to String, 
using empty String", module);
-                }
-            }
-
-            // always use an empty string by default
-            if (fieldString == null) fieldString = "";
-
-            Class<?>[] paramTypes = new Class[] {String.class};
-            Object[] params = new Object[] {fieldString};
-
-            Class<?> valClass;
-            try {
-                valClass = ObjectType.loadClass(className);
-            } catch (ClassNotFoundException cnfe) {
-                Debug.logError("Could not find validation class: " + 
className, module);
-                return false;
-            }
-
-            Method valMethod;
-            try {
-                valMethod = valClass.getMethod(methodName, paramTypes);
-            } catch (NoSuchMethodException cnfe) {
-                Debug.logError("Could not find validation method: " + 
methodName + " of class " + className, module);
-                return false;
-            }
-
-            Boolean resultBool = Boolean.FALSE;
-            try {
-                resultBool = (Boolean) valMethod.invoke(null, params);
-            } catch (Exception e) {
-                Debug.logError(e, "Error in IfValidationMethod " + methodName 
+ " of class " + className + ", defaulting to false ", module);
-            }
-
-            return resultBool.booleanValue();
-        }
-    }
-
-    public static class IfCompare extends TreeCondition {
-        protected FlexibleMapAccessor<Object> fieldAcsr;
-        protected FlexibleStringExpander valueExdr;
-
-        protected String operator;
-        protected String type;
-        protected FlexibleStringExpander formatExdr;
-
-        public IfCompare(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field"));
-            if (this.fieldAcsr.isEmpty()) this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field-name"));
-            this.valueExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("value"));
-
-            this.operator = condElement.getAttribute("operator");
-            this.type = condElement.getAttribute("type");
-
-            this.formatExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("format"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            String value = this.valueExdr.expandString(context);
-            String format = this.formatExdr.expandString(context);
-
-            Object fieldVal = this.fieldAcsr.get(context);
-
-            // always use an empty string by default
-            if (fieldVal == null) {
-                fieldVal = "";
-            }
-
-            List<Object> messages = new LinkedList<Object>();
-            Boolean resultBool = BaseCompare.doRealCompare(fieldVal, value, 
operator, type, format, messages, null, null, true);
-            if (messages.size() > 0) {
-                messages.add(0, "Error with comparison in if-compare between 
field [" + fieldAcsr.toString() + "] with value [" + fieldVal + "] and value [" 
+ value + "] with operator [" + operator + "] and type [" + type + "]: ");
-
-                StringBuilder fullString = new StringBuilder();
-                for (Object message: messages) {
-                    fullString.append((String) message);
-                }
-                Debug.logWarning(fullString.toString(), module);
-
-                throw new IllegalArgumentException(fullString.toString());
-            }
-
-            return resultBool.booleanValue();
-        }
-    }
-
-    public static class IfCompareField extends TreeCondition {
-        protected FlexibleMapAccessor<Object> fieldAcsr;
-        protected FlexibleMapAccessor<Object> toFieldAcsr;
-
-        protected String operator;
-        protected String type;
-        protected FlexibleStringExpander formatExdr;
-
-        public IfCompareField(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field"));
-            if (this.fieldAcsr.isEmpty()) this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field-name"));
-            this.toFieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("to-field"));
-            if (this.toFieldAcsr.isEmpty()) this.toFieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("to-field-name"));
-
-            this.operator = condElement.getAttribute("operator");
-            this.type = condElement.getAttribute("type");
-
-            this.formatExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("format"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            String format = this.formatExdr.expandString(context);
-
-            Object fieldVal = this.fieldAcsr.get(context);
-            Object toFieldVal = this.toFieldAcsr.get(context);
-
-            // always use an empty string by default
-            if (fieldVal == null) {
-                fieldVal = "";
-            }
-
-            List<Object> messages = new LinkedList<Object>();
-            Boolean resultBool = BaseCompare.doRealCompare(fieldVal, 
toFieldVal, operator, type, format, messages, null, null, false);
-            if (messages.size() > 0) {
-                messages.add(0, "Error with comparison in if-compare-field 
between field [" + fieldAcsr.toString() + "] with value [" + fieldVal + "] and 
to-field [" + toFieldVal.toString() + "] with value [" + toFieldVal + "] with 
operator [" + operator + "] and type [" + type + "]: ");
-
-                StringBuilder fullString = new StringBuilder();
-                for (Object message: messages) {
-                    fullString.append((String) message);
-                }
-                Debug.logWarning(fullString.toString(), module);
-
-                throw new IllegalArgumentException(fullString.toString());
-            }
-
-            return resultBool.booleanValue();
-        }
-    }
-
-    public static class IfRegexp extends TreeCondition {
-        protected FlexibleMapAccessor<Object> fieldAcsr;
-        protected FlexibleStringExpander exprExdr;
-
-        public IfRegexp(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field"));
-            if (this.fieldAcsr.isEmpty()) this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field-name"));
-            this.exprExdr = 
FlexibleStringExpander.getInstance(condElement.getAttribute("expr"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            Object fieldVal = this.fieldAcsr.get(context);
-            String expr = this.exprExdr.expandString(context);
-            Pattern pattern = null;
-
-            try {
-                pattern = PatternFactory.createOrGetPerl5CompiledPattern(expr, 
true);
-            } catch (MalformedPatternException e) {
-                String errMsg = "Error in evaluation in if-regexp in screen: " 
+ e.toString();
-                Debug.logError(e, errMsg, module);
-                throw new IllegalArgumentException(errMsg);
-            }
-
-            String fieldString = null;
-            try {
-                fieldString = (String) ObjectType.simpleTypeConvert(fieldVal, 
"String", null, (TimeZone) context.get("timeZone"), (Locale) 
context.get("locale"), true);
-            } catch (GeneralException e) {
-                Debug.logError(e, "Could not convert object to String, using 
empty String", module);
-            }
-            // always use an empty string by default
-            if (fieldString == null) fieldString = "";
-
-            PatternMatcher matcher = new Perl5Matcher();
-            return matcher.matches(fieldString, pattern);
-        }
-    }
-
-    public static class IfEmpty extends TreeCondition {
-        protected FlexibleMapAccessor<Object> fieldAcsr;
-
-        public IfEmpty(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field"));
-            if (this.fieldAcsr.isEmpty()) this.fieldAcsr = 
FlexibleMapAccessor.getInstance(condElement.getAttribute("field-name"));
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-            Object fieldVal = this.fieldAcsr.get(context);
-            return ObjectType.isEmpty(fieldVal);
-        }
-    }
-    public static class IfEntityPermission extends TreeCondition {
-        protected EntityPermissionChecker permissionChecker;
-
-        public IfEntityPermission(ModelTree modelTree, Element condElement) {
-            super (modelTree, condElement);
-            this.permissionChecker = new EntityPermissionChecker(condElement);
-        }
-
-        @Override
-        public boolean eval(Map<String, ? extends Object> context) {
-
-            boolean passed = permissionChecker.runPermissionCheck(context);
-            return passed;
-        }
+        super(ModelWidgetCondition.DEFAULT_CONDITION_FACTORY, modelTree, 
conditionElement);
     }
 }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/TreeFactory.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/TreeFactory.java?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/TreeFactory.java
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/tree/TreeFactory.java
 Mon Jan  5 08:50:30 2015
@@ -78,8 +78,7 @@ public class TreeFactory {
             // read document and construct ModelTree for each tree element
             Element rootElement = treeFileDoc.getDocumentElement();
             for (Element treeElement: UtilXml.childElementList(rootElement, 
"tree")) {
-                ModelTree modelTree = new ModelTree(treeElement, delegator, 
dispatcher);
-                modelTree.setTreeLocation(treeLocation);
+                ModelTree modelTree = new ModelTree(treeElement, treeLocation);
                 modelTreeMap.put(modelTree.getName(), modelTree);
             }
         }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/EditMaint.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/EditMaint.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/EditMaint.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/EditMaint.groovy
 Mon Jan  5 08:50:30 2015
@@ -29,7 +29,7 @@ maintHistSeqId = parameters.maintHistSeq
 workEffortId = parameters.workEffortId;
 
 if (!maintHistSeqId && workEffortId) {
-    fixedAssetMaint = 
EntityUtil.getFirst(delegator.findList("FixedAssetMaint", 
EntityCondition.makeCondition([scheduleWorkEffortId : workEffortId]), null, 
null, null, false));
+    fixedAssetMaint = from("FixedAssetMaint").where("scheduleWorkEffortId", 
workEffortId).queryFirst();
     if (fixedAssetMaint) {
         parameters.fixedAssetId = fixedAssetMaint.fixedAssetId;
         parameters.maintHistSeqId = fixedAssetMaint.maintHistSeqId;

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/PrintFixedAssetMaint.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/PrintFixedAssetMaint.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/PrintFixedAssetMaint.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/assetmaint/PrintFixedAssetMaint.groovy
 Mon Jan  5 08:50:30 2015
@@ -23,7 +23,7 @@ import org.ofbiz.entity.condition.*;
 facility = fixedAsset.getRelatedOne("LocatedAtFacility", false);
 context.locatedAtFacility = facility;
 
-fixedAssetIdents = delegator.findList("FixedAssetIdent", 
EntityCondition.makeCondition([fixedAssetId : fixedAssetId]), null, null, null, 
false);
+fixedAssetIdents = from("FixedAssetIdent").where("fixedAssetId", 
fixedAssetId).queryList();
 fixedAssetIdentValue = "";
 if (fixedAssetIdents) {
     fixedAssetIdents.each { ident ->
@@ -46,13 +46,13 @@ if (intervalUom) {
 instanceOfProductId = fixedAsset.instanceOfProductId;
 productMaintSeqId = fixedAssetMaint.productMaintSeqId;
 if (productMaintSeqId) {
-    productMaint = delegator.findOne("ProductMaint", [productId : 
instanceOfProductId, productMaintSeqId : productMaintSeqId], false);
+    productMaint = from("ProductMaint").where("productId", 
instanceOfProductId, "productMaintSeqId", productMaintSeqId).queryOne();
     context.productMaintName = productMaint.maintName;
 }
 
 productMaintTypeId = fixedAssetMaint.productMaintTypeId;
 if (productMaintTypeId) {
-    productMaintType = delegator.findOne("ProductMaintType", 
[productMaintTypeId : productMaintTypeId], false);
+    productMaintType = from("ProductMaintType").where("productMaintTypeId", 
productMaintTypeId).queryOne();
     if (productMaintType) {
         productMaintTypeDesc = productMaintType.description;
         context.productMaintTypeDesc = productMaintTypeDesc;
@@ -62,7 +62,7 @@ if (productMaintTypeId) {
 intervalMeterTypeId = fixedAssetMaint.intervalMeterTypeId;
 productMeterTypeDesc = "";
 if (intervalMeterTypeId) {
-    productMeterType = delegator.findOne("ProductMeterType", 
[productMeterTypeId : intervalMeterTypeId], false);
+    productMeterType = from("ProductMeterType").where("productMeterTypeId", 
intervalMeterTypeId).queryOne();
     productMeterTypeDesc  = productMeterType.description;
 }
 context.productMeterTypeDesc = productMeterTypeDesc;

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/workeffort/EditWorkEfforts.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/workeffort/EditWorkEfforts.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/workeffort/EditWorkEfforts.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/assetmaint/webapp/assetmaint/WEB-INF/actions/workeffort/EditWorkEfforts.groovy
 Mon Jan  5 08:50:30 2015
@@ -44,16 +44,16 @@ fixedAsset = null;
 rootWorkEffortId = null;
 
 if (workEffortId) {
-    workEffort = delegator.findOne("WorkEffort", [workEffortId : 
workEffortId], false);
+    workEffort = from("WorkEffort").where("workEffortId", 
workEffortId).queryOne();
     if (workEffort) {
         if (!fixedAssetId) {
             fixedAssetId = workEffort.fixedAssetId;
         }
         // If this is a child workeffort, locate the "root" workeffort
-        parentWorkEffort = 
EntityUtil.getFirst(delegator.findList("WorkEffortAssoc", 
EntityCondition.makeCondition([workEffortIdTo : workEffortId]), null, null, 
null, false));
+        parentWorkEffort = from("WorkEffortAssoc").where("workEffortIdTo", 
workEffortId).queryFirst();
         while (parentWorkEffort) {
             rootWorkEffortId = parentWorkEffort.workEffortIdFrom;
-            parentWorkEffort = 
EntityUtil.getFirst(delegator.findList("WorkEffortAssoc", 
EntityCondition.makeCondition([workEffortIdTo : rootWorkEffortId]), null, null, 
null, false));
+            parentWorkEffort = from("WorkEffortAssoc").where("workEffortIdTo", 
rootWorkEffortId).queryFirst();
         }
     }
 }
@@ -63,7 +63,7 @@ if (!rootWorkEffortId) {
 }
 
 if (rootWorkEffortId) {
-    fixedAssetMaint = 
EntityUtil.getFirst(delegator.findList("FixedAssetMaint", 
EntityCondition.makeCondition([scheduleWorkEffortId : rootWorkEffortId]), null, 
null, null, false));
+    fixedAssetMaint = from("FixedAssetMaint").where("scheduleWorkEffortId", 
rootWorkEffortId).queryFirst();
     if (fixedAssetMaint) {
         maintHistSeqId = fixedAssetMaint.maintHistSeqId;
         if (!fixedAssetId) {
@@ -73,7 +73,7 @@ if (rootWorkEffortId) {
 }
 
 if (fixedAssetId) {
-    fixedAsset = delegator.findOne("FixedAsset", [fixedAssetId : 
fixedAssetId], false);
+    fixedAsset = from("FixedAsset").where("fixedAssetId", 
fixedAssetId).queryOne();
 }
 
 context.fixedAssetMaint = fixedAssetMaint;

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/bi/webapp/bi/WEB-INF/actions/reportbuilder/RunStarSchemaQuery.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/bi/webapp/bi/WEB-INF/actions/reportbuilder/RunStarSchemaQuery.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/bi/webapp/bi/WEB-INF/actions/reportbuilder/RunStarSchemaQuery.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/bi/webapp/bi/WEB-INF/actions/reportbuilder/RunStarSchemaQuery.groovy
 Mon Jan  5 08:50:30 2015
@@ -41,21 +41,7 @@ selectedFieldList.each { selectedField -
   columnNames.add(selectedField.selectedFieldName);
 }
 context.columnNames = columnNames;
-List conditionList = null;
-EntityConditionList condition =  null;
-List orderByFields = null;
-EntityFindOptions findOptions = null;
-
 List records = FastList.newInstance();
-
-//conditionList.add(...);
-//condition =  EntityCondition.makeCondition(conditionList, 
EntityOperator.AND);
-
-orderByFields = null;
-
-findOptions = new EntityFindOptions();
-findOptions.setDistinct(false);
-
-records = delegator.findList(starSchemaName, condition, context.columnNames, 
orderByFields, findOptions, false);
+records = 
select(context.columnNames).from(starSchemaName).distinct(false).queryList();
 
 context.records = records;

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/src/org/ofbiz/ebay/ProductsExportToEbay.java
 Mon Jan  5 08:50:30 2015
@@ -34,6 +34,7 @@ import javolution.util.FastMap;
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.StringUtil;
+import org.ofbiz.base.util.UtilCodec;
 import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilMisc;
 import org.ofbiz.base.util.UtilProperties;
@@ -179,7 +180,7 @@ public class ProductsExportToEbay {
             Delegator delegator = dctx.getDelegator();
             String webSiteUrl = (String)context.get("webSiteUrl");
 
-            StringUtil.SimpleEncoder encoder = StringUtil.getEncoder("xml");
+            UtilCodec.SimpleEncoder encoder = UtilCodec.getEncoder("xml");
 
             // Get the list of products to be exported to eBay
             try {

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/EbayAdvancedSearch.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/EbayAdvancedSearch.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/EbayAdvancedSearch.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/EbayAdvancedSearch.groovy
 Mon Jan  5 08:50:30 2015
@@ -31,12 +31,12 @@ if (parameters.productStoreId) {
 } else {
     productStoreId = ProductStoreWorker.getProductStoreId(request);
 }
-ebayConfigList = delegator.findList("EbayConfig", null, null, null, null, 
false);
+ebayConfigList = from("EbayConfig").queryList();
 if (productStoreId) {
     productStoreCatalogs = CatalogWorker.getStoreCatalogs(delegator, 
productStoreId);
     if (productStoreCatalogs) {
         productStoreCatalogs.each { productStoreCatalog ->
-            prodCatalog = delegator.findOne("ProdCatalog", [prodCatalogId : 
productStoreCatalog.prodCatalogId], true);
+            prodCatalog = from("ProdCatalog").where("prodCatalogId", 
productStoreCatalog.prodCatalogId).cache(true).queryOne();
             prodCatalogList.add(prodCatalog);
         }
     }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/ProductsExportToEbay.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/ProductsExportToEbay.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/ProductsExportToEbay.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebay/webapp/ebay/WEB-INF/actions/find/ProductsExportToEbay.groovy
 Mon Jan  5 08:50:30 2015
@@ -24,9 +24,9 @@ webSiteList = [];
 webSite = null;
 if (parameters.productStoreId) {
     productStoreId = parameters.productStoreId;
-    webSiteList = delegator.findList("WebSite", 
EntityCondition.makeCondition("productStoreId", EntityOperator.EQUALS, 
productStoreId), null, null, null, false);
+    webSiteList = from("WebSite").where("productStoreId", 
productStoreId).queryList();
     if (parameters.webSiteId) {
-        webSite = delegator.findOne("WebSite", ["webSiteId" : 
parameters.webSiteId], true);
+        webSite = from("WebSite").where("webSiteId", 
parameters.webSiteId).cache(true).queryOne();
         context.selectedWebSiteId = parameters.webSiteId;
     } else if (webSiteList) {
         webSite = EntityUtil.getFirst(webSiteList);
@@ -42,7 +42,7 @@ if (parameters.productStoreId) {
     }
     context.countryCode = countryCode;
     if (webSite) {
-        eBayConfig = delegator.findOne("EbayConfig", [productStoreId : 
productStoreId], false);
+        eBayConfig = from("EbayConfig").where("productStoreId", 
productStoreId).queryOne();
         context.customXml = eBayConfig.customXml;
         context.webSiteUrl = webSite.getString("standardContentPrefix");
         
@@ -51,7 +51,7 @@ if (parameters.productStoreId) {
         userLogin = parameters.userLogin;
         
         if (productStoreId) {
-            results = dispatcher.runSync("getEbayCategories", [categoryCode : 
categoryCode, userLogin : userLogin, productStoreId : productStoreId]);
+            results = runService('getEbayCategories', [categoryCode : 
categoryCode, userLogin : userLogin, productStoreId : productStoreId]);
         }
         
         if (results.categories) {

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/automationPreferences/GetEbayJobsandbox.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/automationPreferences/GetEbayJobsandbox.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/automationPreferences/GetEbayJobsandbox.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/automationPreferences/GetEbayJobsandbox.groovy
 Mon Jan  5 08:50:30 2015
@@ -19,7 +19,7 @@
 
 import org.ofbiz.base.util.*;
 
-jobSandboxs = delegator.findByAnd("JobSandbox", 
UtilMisc.toMap("authUserLoginId", userLoginId), null, false);
+jobSandboxs = from("JobSandbox").where("authUserLoginId", 
userLoginId).queryList();
 job = null
 jobId = null;
 if(jobSandboxs) {

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/email/GetProductStoreEmailTemplate.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/email/GetProductStoreEmailTemplate.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/email/GetProductStoreEmailTemplate.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/email/GetProductStoreEmailTemplate.groovy
 Mon Jan  5 08:50:30 2015
@@ -20,10 +20,10 @@
 import org.ofbiz.base.util.*;
 
 contentId = null;
-contentRoles = delegator.findByAnd("ContentRole", UtilMisc.toMap("partyId", 
partyId, "roleTypeId", "OWNER"), null, false);
+contentRoles = from("ContentRole").where("partyId", partyId, "roleTypeId", 
"OWNER").queryList();
 if (contentRoles.size() != 0) {
     contentRoles.each { contentRole->
-        contents = delegator.findByAnd("Content", UtilMisc.toMap("contentId", 
contentRole.getString("contentId"), "ownerContentId", emailType), null, false);
+        contents = from("Content").where("contentId", 
contentRole.getString("contentId"), "ownerContentId", emailType).queryList();
         if (contents.size() != 0) {
             if (emailType.equals(contents.get(0).getString("ownerContentId"))) 
{
                 contentId = contents.get(0).getString("contentId");

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/feedback/FeedbackList.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/feedback/FeedbackList.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/feedback/FeedbackList.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/feedback/FeedbackList.groovy
 Mon Jan  5 08:50:30 2015
@@ -25,12 +25,9 @@ import java.util.Map;
 import javolution.util.FastMap;
 
 partyId = null
-inMap = FastMap.newInstance();
-inMap.put("productStoreId", parameters.productStoreId);
-inMap.put("userLogin", context.get("userLogin"));
-resultUser = dispatcher.runSync("getEbayStoreUser", inMap);
+resultUser = runService('getEbayStoreUser', ["productStoreId": 
parameters.productStoreId, "userLogin": context.get("userLogin")]);
 ownerUser = resultUser.get("userLoginId");
-userLogin = delegator.findOne("UserLogin", UtilMisc.toMap("userLoginId", 
ownerUser), false);
+userLogin = from("UserLogin").where("userLoginId", ownerUser).queryOne();
 if (userLogin) {
     partyId = userLogin.get("partyId");
 }
@@ -55,23 +52,22 @@ if (fromDate && thruDate) {
 } else if (!fromDate && thruDate) {
     
expr.add(EntityCondition.makeCondition("createdDate",EntityOperator.LESS_THAN, 
UtilDateTime.getDayEnd(Timestamp.valueOf(thruDate + " 23:59:59.999"))));
 }
-contentRoles = delegator.findByAnd("ContentRole", 
UtilMisc.toMap("roleTypeId","OWNER", "partyId", partyId), null, false);
+contentRoles = from("ContentRole").where("roleTypeId","OWNER", "partyId", 
partyId).queryList();
 contentIds = [];
 contentRoles.each{ content ->
     contentIds.add(content.getString("contentId"));
 }
 expr.add(EntityCondition.makeCondition("contentId", EntityOperator.IN, 
contentIds));
-cond = EntityCondition.makeCondition(expr, EntityOperator.AND);
-contents = delegator.findList("Content", cond, null, null, null, false);
+contents = from("Content").where(expr).queryList();
 
 recentFeedbackList = [];
 ownerUser = null;
 commentator = null;
 contents.each{ content ->
-    commentatorContents = delegator.findByAnd("ContentRole", 
UtilMisc.toMap("contentId",content.contentId, "roleTypeId","COMMENTATOR"), 
null, false);
+    commentatorContents = 
from("ContentRole").where("contentId",content.contentId, 
"roleTypeId","COMMENTATOR").queryList();
     if(commentatorContents){
         commentatorPartyId = commentatorContents.get(0).get("partyId");
-        commentatorUsers = delegator.findByAnd("UserLogin", 
UtilMisc.toMap("partyId", commentatorPartyId), null, false);
+        commentatorUsers = from("UserLogin").where("partyId", 
commentatorPartyId).queryList();
         if(commentatorUsers){
             commentator = commentatorUsers.get(0).get("userLoginId");
         }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/CheckOrderStatus.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/CheckOrderStatus.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/CheckOrderStatus.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/CheckOrderStatus.groovy
 Mon Jan  5 08:50:30 2015
@@ -19,7 +19,7 @@
 import org.ofbiz.entity.util.EntityUtil;
 
 context.importStatus = "NOT_IMPORT";
-orderHeaders = delegator.findByAnd("OrderHeader", [externalId : externalId], 
null, false);
+orderHeaders = from("OrderHeader").where("externalId", externalId).queryList();
 if (orderHeaders.size() > 0) {
     orderHeader = EntityUtil.getFirst(orderHeaders);
     context.orderId = orderHeader.get("orderId");

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/OrderListPrepare.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/OrderListPrepare.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/OrderListPrepare.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/OrderListPrepare.groovy
 Mon Jan  5 08:50:30 2015
@@ -28,7 +28,7 @@ if (orderList) {
     for (orderCount = 0; orderCount < orderList.size(); orderCount++) {
         orderItem = orderList[orderCount];
         orderId = null;
-        orderHeaders = delegator.findByAnd("OrderHeader", [externalId : 
orderItem.("externalId")], null, false);
+        orderHeaders = from("OrderHeader").where("externalId", 
orderItem.("externalId")).queryList();
         if (orderHeaders.size() > 0) {
             orderHeader = EntityUtil.getFirst(orderHeaders);
             orderId = orderHeader.get("orderId").toString();
@@ -44,7 +44,7 @@ if (orderList) {
             item = items[itemCount];
             title = null;
             if (!(item.get("title"))) {
-                product = delegator.findOne("Product", [productId : 
item.get("productId")], true);
+                product = from("Product").where("productId", 
item.get("productId")).cache(true).queryOne();
                 title = product.get("internalName");
             }
             orderMap = FastMap.newInstance();

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/PrepareProductListing.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/PrepareProductListing.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/PrepareProductListing.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/PrepareProductListing.groovy
 Mon Jan  5 08:50:30 2015
@@ -64,7 +64,7 @@
          content = [:];
          item = addItem.getItem();
          productId = item.getSKU();
-         product = delegator.findOne("Product", [productId : productId], true);
+         product = from("Product").where("productId", 
productId).cache(true).queryOne();
          contentWrapper = new ProductContentWrapper(product, request);
          content.productContentWrapper = contentWrapper;
          content.product = product;
@@ -94,7 +94,7 @@
          }
          context.isProductId = productId;
          // get product default price form product price 
-         productPrices = 
delegator.findByAnd("ProductPrice",["productId":productId,"productPricePurposeId":"EBAY"],
 null, false);
+         productPrices = from("ProductPrice").where("productId", productId, 
"productPricePurposeId", "EBAY").queryList();
          if (productPrices) {
              context.productPrices = productPrices;
          }

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/RetrieveStoreOptions.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/RetrieveStoreOptions.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/RetrieveStoreOptions.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/RetrieveStoreOptions.groovy
 Mon Jan  5 08:50:30 2015
@@ -26,7 +26,7 @@ if (parameters.ebayStore) {
 if (productStoreId != null) {
     flag = null;
     storeBasicThemes = null;
-    resultsBasicThemes = 
dispatcher.runSync("retrieveBasicThemeArray",["productStoreId":productStoreId, 
"userLogin": userLogin]);
+    resultsBasicThemes = 
runService('retrieveBasicThemeArray',["productStoreId":productStoreId, 
"userLogin": userLogin]);
     if(resultsBasicThemes){
         storeBasicThemes = resultsBasicThemes.get("storeThemeList");
         //check what kind of theme?
@@ -41,7 +41,7 @@ if (productStoreId != null) {
     }
     storeAdvanceThemes = null;
     storeAdvancedThemeColorOptList = null;
-    resultsAdvanceThemes = 
dispatcher.runSync("retrieveAdvancedThemeArray",["productStoreId":productStoreId,
 "userLogin": userLogin]);
+    resultsAdvanceThemes = 
runService('retrieveAdvancedThemeArray',["productStoreId":productStoreId, 
"userLogin": userLogin]);
     if (resultsAdvanceThemes) {
         storeAdvanceThemes = resultsAdvanceThemes.get("storeThemeList");
         storeAdvancedThemeColorOptList = 
resultsAdvanceThemes.get("storeAdvancedThemeColorOptList");
@@ -56,7 +56,7 @@ if (productStoreId != null) {
             }
         }
     }
-    resultsFontTheme = 
dispatcher.runSync("retrieveStoreFontTheme",["productStoreId":productStoreId, 
"userLogin": userLogin]);
+    resultsFontTheme = 
runService('retrieveStoreFontTheme',["productStoreId":productStoreId, 
"userLogin": userLogin]);
     if (resultsFontTheme) {
         storeFontTheme = resultsFontTheme.get("advanceFontTheme");
         context.put("storeFontTheme",storeFontTheme);

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/StoreAccount.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/StoreAccount.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/StoreAccount.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/webapp/ebaystore/WEB-INF/actions/store/StoreAccount.groovy
 Mon Jan  5 08:50:30 2015
@@ -22,8 +22,8 @@ import javolution.util.FastList;
 import javolution.util.FastMap;
 
 results =  FastList.newInstance();
-ebayAccountList = 
delegator.findByAnd("PartyRoleAndPartyDetail",["roleTypeId":"EBAY_ACCOUNT"], 
null, false);
-productStoreRoles = 
delegator.findByAnd("ProductStoreRole",["roleTypeId":"EBAY_ACCOUNT"], null, 
false);
+ebayAccountList = from("PartyRoleAndPartyDetail").where("roleTypeId", 
"EBAY_ACCOUNT").queryList();
+productStoreRoles = from("ProductStoreRole").where("roleTypeId", 
"EBAY_ACCOUNT").queryList();
 
 if (productStoreRoles != null && ebayAccountList != null) {
     ebayAccountList.each{ebayAccount->

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/widget/EbayAccountForms.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/widget/EbayAccountForms.xml?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/widget/EbayAccountForms.xml
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ebaystore/widget/EbayAccountForms.xml
 Mon Jan  5 08:50:30 2015
@@ -55,7 +55,7 @@ under the License.
     <form name="RecentFeedback" type="list" list-name="recentFeedbackList"
         odd-row-style="alternate-row" header-row-style="header-row-2" 
default-table-style="basic-table hover-bar">
         <field name="contentId" title="Feedback Id"><display/></field>
-        <field name="dataResourceId" title="Comment Text">
+        <field name="dataResourceId" 
title="${uiLabelMap.ContentDataResourceId}" title="Comment Text">
             <display-entity entity-name="ElectronicText" 
key-field-name="dataResourceId" description="${textData}"/>
         </field>
         <field name="commentator" title="Commentator"><display/></field>

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/config/EcommerceUiLabels.xml
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/config/EcommerceUiLabels.xml?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/config/EcommerceUiLabels.xml
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/config/EcommerceUiLabels.xml
 Mon Jan  5 08:50:30 2015
@@ -1759,6 +1759,9 @@
         <value xml:lang="zh">最近浏览</value>
         <value xml:lang="zh_TW">最近看過</value>
     </property>
+    <property key="EcommerceLayeredNavigation">
+        <value xml:lang="en">Layered Navigation</value>
+    </property>
     <property key="EcommerceLength">
         <value xml:lang="da">Længde</value>
         <value xml:lang="de">Länge</value>

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/email/ContactListVerifyEmail.ftl
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/email/ContactListVerifyEmail.ftl?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/email/ContactListVerifyEmail.ftl
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/email/ContactListVerifyEmail.ftl
 Mon Jan  5 08:50:30 2015
@@ -34,7 +34,7 @@ under the License.
 <p>We have received a request for subscription to the 
${contactList.contactListName} contact list.</p>
 <p>To complete your subscription click the on the following link:</p>
 
-<#assign verifyUrl = 
baseEcommerceSecureUrl+'updateContactListPartyNoUserLogin?contactListId='+contactListParty.contactListId+'&amp;partyId='+contactListParty.partyId+'&amp;fromDate='+contactListParty.fromDate+'&amp;statusId=CLPT_ACCEPTED&amp;optInVerifyCode='+contactListPartyStatus.optInVerifyCode+'&amp;baseLocation='+baseLocation!>
+<#assign verifyUrl = 
baseEcommerceSecureUrl+'/'+'updateContactListPartyNoUserLogin?contactListId='+contactListParty.contactListId+'&amp;partyId='+contactListParty.partyId+'&amp;fromDate='+contactListParty.fromDate+'&amp;statusId=CLPT_ACCEPTED&amp;optInVerifyCode='+contactListPartyStatus.optInVerifyCode+'&amp;baseLocation='+baseLocation!>
 <#if (contactListParty.preferredContactMechId)??>
     <#assign verifyUrl= 
verifyUrl+"&amp;preferredContactMechId="+contactListParty.preferredContactMechId>
 </#if>

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/survey/minisurvey.ftl
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/survey/minisurvey.ftl?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/survey/minisurvey.ftl
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/templates/survey/minisurvey.ftl
 Mon Jan  5 08:50:30 2015
@@ -61,8 +61,8 @@ under the License.
               <#if surveyQuestionAndAppl.requiredField?default("N") != "Y">
                 <option value=""></option>
               </#if>
-              <option <#if "Y" == 
selectedOption>selected="selected"</#if>>Y</option>
-              <option <#if "N" == 
selectedOption>selected="selected"</#if>>N</option>
+              <option value="Y" <#if "Y" == 
selectedOption>selected="selected"</#if>>Y</option>
+              <option value="N" <#if "N" == 
selectedOption>selected="selected"</#if>>N</option>
             </select>
           <#elseif surveyQuestionAndAppl.surveyQuestionTypeId == "TEXTAREA">
             <textarea class="textAreaBox" cols="40" rows="5" 
name="answers_${surveyQuestionAndAppl.surveyQuestionId}">${(answer.textResponse)!}</textarea>

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/cart/ShowCart.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/cart/ShowCart.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/cart/ShowCart.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/cart/ShowCart.groovy
 Mon Jan  5 08:50:30 2015
@@ -34,20 +34,18 @@ context.productStore = ProductStoreWorke
 
 if (parameters.add_product_id) { // check if a parameter is passed
     add_product_id = parameters.add_product_id;
-    product = delegator.findOne("Product", [productId : add_product_id], true);
+    product = from("Product").where("productId", 
add_product_id).cache(true).queryOne();
     context.product = product;
 }
 
 // get all the possible gift wrap options
-allgiftWraps = delegator.findByAnd("ProductFeature", [productFeatureTypeId : 
"GIFT_WRAP"], ["defaultSequenceNum"], false);
+allgiftWraps = from("ProductFeature").where("productFeatureTypeId", 
"GIFT_WRAP").orderBy("defaultSequenceNum").queryList();
 context.allgiftWraps = allgiftWraps;
 
 // get the shopping lists for the logged in user
 if (userLogin) {
-    exprList = [EntityCondition.makeCondition("partyId", 
EntityOperator.EQUALS, userLogin.partyId),
-                EntityCondition.makeCondition("listName", 
EntityOperator.NOT_EQUAL, "auto-save")];
-    condition = EntityCondition.makeCondition(exprList, EntityOperator.AND);
-    allShoppingLists = delegator.findList("ShoppingList", condition, null, 
["listName"], null, false);
+    allShoppingLists = 
from("ShoppingList").where(EntityCondition.makeCondition("partyId", 
EntityOperator.EQUALS, userLogin.partyId),
+                EntityCondition.makeCondition("listName", 
EntityOperator.NOT_EQUAL, "auto-save")).orderBy("listName").queryList();
     context.shoppingLists = allShoppingLists;
 }
 
@@ -70,7 +68,7 @@ if(shoppingCartItems) {
             }
             context.parentProductId = parentProductId;
         }
-        productCategoryMembers = delegator.findList("ProductCategoryMember", 
EntityCondition.makeCondition("productId", EntityOperator.EQUALS, 
parentProductId), null, null, null, false);
+        productCategoryMembers = 
from("ProductCategoryMember").where("productId", parentProductId).queryList();
         if (productCategoryMembers) {
             productCategoryMember = 
EntityUtil.getFirst(productCategoryMembers);
             productCategory = 
productCategoryMember.getRelatedOne("ProductCategory", false);

Modified: 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/catalog/LayeredNavigation.groovy
URL: 
http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/catalog/LayeredNavigation.groovy?rev=1649482&r1=1649481&r2=1649482&view=diff
==============================================================================
--- 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/catalog/LayeredNavigation.groovy
 (original)
+++ 
ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/catalog/LayeredNavigation.groovy
 Mon Jan  5 08:50:30 2015
@@ -30,7 +30,7 @@ if (!searchCategoryId) {
     searchCategoryId = context.productCategoryId;
 }
 if (searchCategoryId) {
-    currentSearchCategory = delegator.findOne("ProductCategory", 
[productCategoryId: searchCategoryId], false);
+    currentSearchCategory = from("ProductCategory").where("productCategoryId", 
searchCategoryId).queryOne();
     CategoryWorker.getRelatedCategories(request, "subCategoryList", 
searchCategoryId, false);
     subCategoryList = request.getAttribute("subCategoryList");
     CategoryContentWrapper categoryContentWrapper = new 
CategoryContentWrapper(currentSearchCategory, request);
@@ -39,7 +39,7 @@ if (searchCategoryId) {
 }
 productCategoryId = context.productCategoryId;
 if (productCategoryId)  {
-   context.productCategory = delegator.findOne("ProductCategory", 
[productCategoryId: productCategoryId], false);
+   context.productCategory = 
from("ProductCategory").where("productCategoryId", 
productCategoryId).queryOne();
    parameters.SEARCH_CATEGORY_ID = productCategoryId;
 }
 
@@ -56,8 +56,7 @@ context.index = ProductSearchSession.get
 searchConstraintList = 
ProductSearchSession.getProductSearchOptions(session).getConstraintList();
 
 if (searchCategoryId) {
-    productCategoryRollups = delegator.findByAnd("ProductCategoryRollup", 
[productCategoryId: searchCategoryId], null, false);
-    productCategoryRollups = EntityUtil.filterByDate(productCategoryRollups);
+    productCategoryRollups = 
from("ProductCategoryRollup").where("productCategoryId", 
searchCategoryId).filterByDate().queryList();
     previousCategoryId = null;
     if (productCategoryRollups) {
         for (GenericValue categoryRollup : productCategoryRollups) {
@@ -91,7 +90,7 @@ if (subCategoryList) {
 
 context.showColors = true;
 colors = ProductSearchSession.listCountByFeatureForType("COLOR", session, 
delegator);
-colorFeatureType = delegator.findOne("ProductFeatureType", 
[productFeatureTypeId: "COLOR"], false);
+colorFeatureType = from("ProductFeatureType").where("productFeatureTypeId", 
"COLOR").queryOne();
 if (colors) {
     colors.each { color ->
         featureConstraint = new 
ProductSearch.FeatureConstraint(color.productFeatureId, false);


Reply via email to