You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@ofbiz.apache.org by jl...@apache.org on 2015/01/19 12:50:31 UTC

svn commit: r1652969 [4/5] - in /ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23: ./ applications/accounting/script/org/ofbiz/accounting/cost/ applications/accounting/script/org/ofbiz/accounting/fixedasset/ applications/accounting/script/org/o...

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-menu.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-menu.xsd?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-menu.xsd (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-menu.xsd Mon Jan 19 11:50:29 2015
@@ -158,167 +158,7 @@ under the License.
             </xs:attribute>
         </xs:complexType>
     </xs:element>
-    <xs:element name="image">
-        <xs:complexType mixed="true">
-            <xs:attribute type="xs:string" name="src" />
-            <xs:attribute type="xs:string" name="id" />
-            <xs:attribute type="xs:string" name="style" />
-            <xs:attribute type="xs:string" name="width" />
-            <xs:attribute type="xs:string" name="height" />
-            <xs:attribute type="xs:string" name="border" />
-            <xs:attribute name="url-mode" default="content">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="ofbiz" />
-                        <xs:enumeration value="content" />
-                        <xs:enumeration value="raw" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="link">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element minOccurs="0" ref="auto-parameters-service"/>
-                <xs:element minOccurs="0" ref="auto-parameters-entity"/>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
-                <xs:element minOccurs="0" ref="image" />
-            </xs:sequence>
-            <xs:attribute type="xs:string" name="text" />
-            <xs:attribute type="xs:string" name="id" />
-            <xs:attribute type="xs:string" name="style" />
-            <xs:attribute type="xs:string" name="name" />
-            <xs:attribute type="xs:string" name="target" />
-            <xs:attribute type="xs:string" name="target-window" />
-            <xs:attribute type="xs:string" name="prefix" />
-            <xs:attribute name="link-type" default="auto">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="auto">
-                            <xs:annotation>
-                                <xs:documentation>If selected the hidden-form type will be used if the url-mode is intra-app and the request specified has an event, otherwise the anchor type will be used.</xs:documentation>
-                            </xs:annotation>
-                        </xs:enumeration>
-                        <xs:enumeration value="anchor" />
-                        <xs:enumeration value="hidden-form" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="url-mode" default="intra-app">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="intra-app" />
-                        <xs:enumeration value="inter-app" />
-                        <xs:enumeration value="content" />
-                        <xs:enumeration value="plain" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="full-path" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="secure" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="encode" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="request-confirmation" default="false">
-                <xs:annotation>
-                    <xs:documentation>If true then the user is presented with a dialog box requesting confirmation prior to proceeding</xs:documentation>
-                </xs:annotation>
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="confirmation-message" type="xs:string">
-                <xs:annotation>
-                    <xs:documentation>The message displayed when request-confirm is set to true</xs:documentation>
-                </xs:annotation>
-            </xs:attribute>
-            <xs:attribute name="parameters-map" type="xs:string" />
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="parameter">
-        <xs:complexType>
-            <xs:attribute type="xs:string" name="param-name" use="required" />
-            <xs:attribute type="xs:string" name="from-field" />
-            <xs:attribute type="xs:string" name="value" />
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="auto-parameters-service">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="exclude"/>
-            </xs:sequence>
-            <xs:attribute name="service-name" type="xs:string" use="required">
-                 <xs:annotation>
-                     <xs:documentation>The service name used to resolve parameters. Flexible string allowed.</xs:documentation>
-                 </xs:annotation>
-            </xs:attribute>
-            <xs:attribute name="send-if-empty" default="true">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true"/>
-                        <xs:enumeration value="false"/>
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="auto-parameters-entity">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="exclude"/>
-            </xs:sequence>
-            <xs:attribute name="entity-name" type="xs:string">
-                 <xs:annotation>
-                     <xs:documentation>The entity name used to resolve parameters. If empty try use menu defaultEntityName attribute. Flexible string allowed.</xs:documentation>
-                 </xs:annotation>
-            </xs:attribute>
-            <xs:attribute name="include" default="pk">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="pk"/>
-                        <xs:enumeration value="nonpk"/>
-                        <xs:enumeration value="all"/>
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="send-if-empty" default="true">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true"/>
-                        <xs:enumeration value="false"/>
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="exclude">
-        <xs:complexType>
-            <xs:attribute name="field-name" type="xs:string" use="required"/>
-        </xs:complexType>
-    </xs:element>
+    <xs:element name="link" type="link"/>
 
     <xs:element name="actions">
         <xs:complexType>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-screen.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-screen.xsd?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-screen.xsd (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-screen.xsd Mon Jan 19 11:50:29 2015
@@ -304,78 +304,7 @@ under the License.
             <xs:attribute type="xs:string" name="style" />
         </xs:complexType>
     </xs:element>
-    <xs:element name="link" substitutionGroup="AllWidgets">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element minOccurs="0" ref="auto-parameters-service" />
-                <xs:element minOccurs="0" ref="auto-parameters-entity" />
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
-                <xs:element minOccurs="0" ref="image" />
-            </xs:sequence>
-            <xs:attribute type="xs:string" name="text" />
-            <xs:attribute type="xs:string" name="id" />
-            <xs:attribute type="xs:string" name="style" />
-            <xs:attribute type="xs:string" name="target" />
-            <xs:attribute type="xs:string" name="name" />
-            <xs:attribute type="xs:string" name="target-window" />
-            <xs:attribute type="xs:string" name="prefix" />
-            <xs:attribute type="xs:string" name="width" />
-            <xs:attribute type="xs:string" name="height" />
-            <xs:attribute name="link-type" default="auto">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="auto">
-                            <xs:annotation>
-                                <xs:documentation>
-                                    If selected the hidden-form type will be used if the url-mode is intra-app
-                                    and the request specified has an event, otherwise the anchor type will be used,
-                                    except if the ajax-window mode is specified.
-                                </xs:documentation>
-                            </xs:annotation>
-                        </xs:enumeration>
-                        <xs:enumeration value="anchor" />
-                        <xs:enumeration value="hidden-form" />
-                        <!-- FIXME: This is not a link type. It indicates the target window should be a popup dialog. -->
-                        <xs:enumeration value="ajax-window" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="url-mode" default="intra-app">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="intra-app" />
-                        <xs:enumeration value="inter-app" />
-                        <xs:enumeration value="content" />
-                        <xs:enumeration value="plain" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="full-path" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="secure" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="encode" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-        </xs:complexType>
-    </xs:element>
+    <xs:element name="link" type="link" substitutionGroup="AllWidgets"/>
 
     <xs:element name="screenlet" substitutionGroup="AllWidgets">
         <xs:complexType>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-tree.xsd
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-tree.xsd?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-tree.xsd (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/dtd/widget-tree.xsd Mon Jan 19 11:50:29 2015
@@ -127,82 +127,7 @@ under the License.
             <xs:attribute type="xs:string" name="style" />
         </xs:complexType>
     </xs:element>
-    <xs:element name="link">
-        <xs:complexType>
-            <xs:sequence>
-                <xs:element minOccurs="0" maxOccurs="unbounded" ref="parameter" />
-                <xs:element minOccurs="0" ref="image" />
-            </xs:sequence>
-            <xs:attribute type="xs:string" name="text" />
-            <xs:attribute type="xs:string" name="id" />
-            <xs:attribute type="xs:string" name="style" />
-            <xs:attribute type="xs:string" name="name" />
-            <xs:attribute type="xs:string" name="title" />
-            <xs:attribute type="xs:string" name="target" />
-            <xs:attribute type="xs:string" name="target-window" />
-            <xs:attribute type="xs:string" name="prefix" />
-            <xs:attribute name="url-mode" default="intra-app">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="intra-app" />
-                        <xs:enumeration value="inter-app" />
-                        <xs:enumeration value="content" />
-                        <xs:enumeration value="plain" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="full-path" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="secure" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-            <xs:attribute name="encode" default="false">
-                <xs:simpleType>
-                    <xs:restriction base="xs:token">
-                        <xs:enumeration value="true" />
-                        <xs:enumeration value="false" />
-                    </xs:restriction>
-                </xs:simpleType>
-            </xs:attribute>
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="parameter">
-        <xs:complexType>
-            <xs:attribute type="xs:string" name="param-name" use="required" />
-            <xs:attribute type="xs:string" name="from-field" />
-            <xs:attribute type="xs:string" name="value" />
-        </xs:complexType>
-    </xs:element>
-    <xs:element name="image">
-        <xs:complexType mixed="true">
-        <xs:attribute type="xs:string" name="src"/>
-        <xs:attribute type="xs:string" name="id"/>
-        <xs:attribute type="xs:string" name="style"/>
-        <xs:attribute type="xs:string" name="width"/>
-        <xs:attribute type="xs:string" name="height"/>
-        <xs:attribute type="xs:string" name="border"/>
-        <xs:attribute name="url-mode" default="content">
-            <xs:simpleType>
-                <xs:restriction base="xs:token">
-                    <xs:enumeration value="ofbiz"/>
-                    <xs:enumeration value="content"/>
-                    <xs:enumeration value="raw"/>
-                </xs:restriction>
-            </xs:simpleType>
-        </xs:attribute>
-        </xs:complexType>
-    </xs:element>
+    <xs:element name="link" type="link"/>
     <xs:element name="actions">
         <xs:complexType>
             <xs:sequence>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetFactory.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetFactory.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetFactory.java Mon Jan 19 11:50:29 2015
@@ -29,9 +29,9 @@ import java.util.concurrent.ConcurrentHa
 import org.ofbiz.base.util.Assert;
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilGenerics;
-import org.ofbiz.widget.screen.IterateSectionWidget;
-import org.ofbiz.widget.screen.ModelScreen;
-import org.ofbiz.widget.screen.ModelScreenWidget;
+import org.ofbiz.widget.model.IterateSectionWidget;
+import org.ofbiz.widget.model.ModelScreen;
+import org.ofbiz.widget.model.ModelScreenWidget;
 import org.w3c.dom.Element;
 
 /**

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetWorker.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetWorker.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetWorker.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/WidgetWorker.java Mon Jan 19 11:50:29 2015
@@ -20,16 +20,9 @@ package org.ofbiz.widget;
 
 import java.io.IOException;
 import java.io.StringWriter;
-import java.math.BigDecimal;
 import java.net.URLEncoder;
 import java.nio.charset.Charset;
-import java.text.DateFormat;
-import java.util.ArrayList;
-import java.util.HashMap;
-import java.util.Iterator;
-import java.util.List;
 import java.util.Map;
-import java.util.TimeZone;
 
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
@@ -37,33 +30,23 @@ import javax.servlet.http.HttpServletRes
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.UtilCodec;
-import org.ofbiz.base.util.UtilDateTime;
 import org.ofbiz.base.util.UtilGenerics;
 import org.ofbiz.base.util.UtilHttp;
 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.Delegator;
-import org.ofbiz.entity.model.ModelEntity;
-import org.ofbiz.entity.model.ModelField;
-import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
-import org.ofbiz.service.ModelParam;
-import org.ofbiz.service.ModelService;
 import org.ofbiz.webapp.control.ConfigXMLReader;
 import org.ofbiz.webapp.control.RequestHandler;
 import org.ofbiz.webapp.control.WebAppConfigurationException;
 import org.ofbiz.webapp.taglib.ContentUrlTag;
-import org.ofbiz.widget.form.ModelForm;
-import org.ofbiz.widget.form.ModelFormField;
-import org.w3c.dom.Element;
+import org.ofbiz.widget.model.ModelForm;
+import org.ofbiz.widget.model.ModelFormField;
 
-public class WidgetWorker {
+public final class WidgetWorker {
 
     public static final String module = WidgetWorker.class.getName();
 
-    public WidgetWorker () {}
+    private WidgetWorker () {}
 
     public static void buildHyperlinkUrl(Appendable externalWriter, String target, String targetType, Map<String, String> parameterMap,
             String prefix, boolean fullPath, boolean secure, boolean encode, HttpServletRequest request, HttpServletResponse response, Map<String, Object> context) throws IOException {
@@ -329,202 +312,6 @@ public class WidgetWorker {
             return formName + modelForm.getItemIndexSeparator() + modelFormField.getName();
         }
     }
-
-    /**
-     * Models the &lt;parameter&gt; element.
-     * 
-     * @see <code>widget-form.xsd</code>
-     */
-    public static class Parameter {
-        protected String name;
-        protected FlexibleStringExpander value;
-        protected FlexibleMapAccessor<Object> fromField;
-
-        public Parameter(Element element) {
-            this.name = element.getAttribute("param-name");
-            this.value = UtilValidate.isNotEmpty(element.getAttribute("value")) ? FlexibleStringExpander.getInstance(element.getAttribute("value")) : null;
-            this.fromField = UtilValidate.isNotEmpty(element.getAttribute("from-field")) ? FlexibleMapAccessor.getInstance(element.getAttribute("from-field")) : null;
-        }
-
-        public Parameter(String paramName, String paramValue, boolean isField) {
-            this.name = paramName;
-            if (isField) {
-                this.fromField = FlexibleMapAccessor.getInstance(paramValue);
-            } else {
-                this.value = FlexibleStringExpander.getInstance(paramValue);
-            }
-        }
-
-        public String getName() {
-            return name;
-        }
-
-        public String getValue(Map<String, Object> context) {
-            if (this.value != null) {
-                return this.value.expandString(context);
-            }
-
-            Object retVal = null;
-            if (this.fromField != null && this.fromField.get(context) != null) {
-                retVal = this.fromField.get(context);
-            } else {
-                retVal = context.get(this.name);
-            }
-
-            if (retVal != null) {
-                TimeZone timeZone = (TimeZone) context.get("timeZone");
-                if (timeZone == null) timeZone = TimeZone.getDefault();
-
-                String returnValue = null;
-                // format string based on the user's time zone (not locale because these are parameters)
-                if (retVal instanceof Double || retVal instanceof Float || retVal instanceof BigDecimal) {
-                    returnValue = retVal.toString();
-                } else if (retVal instanceof java.sql.Date) {
-                    DateFormat df = UtilDateTime.toDateFormat(UtilDateTime.DATE_FORMAT, timeZone, null);
-                    returnValue = df.format((java.util.Date) retVal);
-                } else if (retVal instanceof java.sql.Time) {
-                    DateFormat df = UtilDateTime.toTimeFormat(UtilDateTime.TIME_FORMAT, timeZone, null);
-                    returnValue = df.format((java.util.Date) retVal);
-                } else if (retVal instanceof java.sql.Timestamp) {
-                    DateFormat df = UtilDateTime.toDateTimeFormat(UtilDateTime.DATE_TIME_FORMAT, timeZone, null);
-                    returnValue = df.format((java.util.Date) retVal);
-                } else if (retVal instanceof java.util.Date) {
-                    DateFormat df = UtilDateTime.toDateTimeFormat("EEE MMM dd hh:mm:ss z yyyy", timeZone, null);
-                    returnValue = df.format((java.util.Date) retVal);
-                } else {
-                    returnValue = retVal.toString();
-                }
-                return returnValue;
-            } else {
-                return null;
-            }
-        }
-    }
-
-    public static class AutoServiceParameters {
-        private String serviceName;
-        List<String> excludeList = new ArrayList<String>();
-        boolean includePk;
-        boolean includeNonPk;
-        boolean sendIfEmpty;
-        public AutoServiceParameters(Element autoElement){
-            serviceName = UtilXml.checkEmpty(autoElement.getAttribute("service-name"));
-            sendIfEmpty = "true".equals(autoElement.getAttribute("send-if-empty"));
-            List<? extends Element> excludes = UtilXml.childElementList(autoElement, "exclude");
-            if (excludes != null) {
-                for (Element exclude: excludes) {
-                    if (UtilValidate.isNotEmpty(exclude.getAttribute("field-name"))) {
-                        excludeList.add(exclude.getAttribute("field-name"));
-                    }
-                }
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        public Map<String, String> getParametersMap(Map<String, Object> context, String defaultServiceName) {
-            Map<String, String> autServiceParams = new HashMap<String, String>();
-            LocalDispatcher dispatcher = (LocalDispatcher) context.get("dispatcher");
-            if (dispatcher == null) {
-                Debug.logError("We can not append auto service Parameters since we could not find dispatcher in the current context", module);
-                return autServiceParams;
-            }
-            if (UtilValidate.isEmpty(serviceName)) serviceName = defaultServiceName;
-            FlexibleStringExpander toExpand = FlexibleStringExpander.getInstance(serviceName);
-            ModelService service = null;
-            try {
-                service = dispatcher.getDispatchContext().getModelService(toExpand.toString());
-            } catch (GenericServiceException e) {
-                Debug.logError("Resolve service throw an error : " + e, module);
-            }
-            if (service == null) {
-                Debug.logError("We can not append auto service Parameters since we could not find service with name [" + serviceName + "]", module);
-                return autServiceParams;
-            }
-
-            Iterator<ModelParam> paramsIter = service.getInModelParamList().iterator();
-            if (paramsIter != null) {
-                while (paramsIter.hasNext()) {
-                    ModelParam param = paramsIter.next();
-                    if (param.getInternal()) continue;
-                    String paramName = param.getName();
-                    FlexibleMapAccessor<Object> fma = FlexibleMapAccessor.getInstance(paramName);
-                    if (!excludeList.contains(paramName)) {
-                        Object flexibleValue = fma.get(context);
-                        if (UtilValidate.isEmpty(flexibleValue) && context.containsKey("parameters")) {
-                            flexibleValue = fma.get((Map<String, ? extends Object>) context.get("parameters"));
-                        }
-                        if (UtilValidate.isNotEmpty(flexibleValue) || sendIfEmpty) {
-                            autServiceParams.put(paramName, String.valueOf(flexibleValue));
-                        }
-                    }
-                }
-            }
-            return autServiceParams;
-        }
-    }
-
-    public static class AutoEntityParameters {
-        private String entityName;
-        private String includeType;
-        List<String> excludeList = new ArrayList<String>();
-        boolean includePk;
-        boolean includeNonPk;
-        boolean sendIfEmpty;
-        public AutoEntityParameters(Element autoElement){
-            entityName = UtilXml.checkEmpty(autoElement.getAttribute("entity-name"));
-            sendIfEmpty = "true".equals(autoElement.getAttribute("send-if-empty"));
-            includeType = UtilXml.checkEmpty(autoElement.getAttribute("include"));
-            includePk = "pk".equals(includeType) || "all".equals(includeType);
-            includeNonPk = "nonpk".equals(includeType) || "all".equals(includeType);
-            List<? extends Element> excludes = UtilXml.childElementList(autoElement, "exclude");
-            if (excludes != null) {
-                for (Element exclude: excludes) {
-                    if (UtilValidate.isNotEmpty(exclude.getAttribute("field-name"))) {
-                        excludeList.add(exclude.getAttribute("field-name"));
-                    }
-                }
-            }
-        }
-
-        @SuppressWarnings("unchecked")
-        public Map<String, String> getParametersMap(Map<String, Object> context, String defaultEntityName) {
-            Map<String, String> autEntityParams = new HashMap<String, String>();
-            Delegator delegator = (Delegator) context.get("delegator");
-            if (delegator == null) {
-                Debug.logError("We can not append auto entity Parameters since we could not find delegator in the current context", module);
-                return autEntityParams;
-            }
-            if (UtilValidate.isEmpty(entityName)) entityName = defaultEntityName;
-            FlexibleStringExpander toExpand = FlexibleStringExpander.getInstance(entityName);
-            ModelEntity entity = delegator.getModelEntity(toExpand.expandString(context));
-            if (entity == null) {
-                Debug.logError("We can not append auto entity Parameters since we could not find entity with name [" + entityName + "]", module);
-                return autEntityParams;
-            }
-
-            Iterator<ModelField> fieldsIter = entity.getFieldsIterator();
-            if (fieldsIter != null) {
-                while (fieldsIter.hasNext()) {
-                    ModelField field = fieldsIter.next();
-                    String fieldName = field.getName();
-                    FlexibleMapAccessor<Object> fma = FlexibleMapAccessor.getInstance(fieldName);
-                    boolean shouldExclude = excludeList.contains(fieldName);
-                    if ((!shouldExclude) && (!field.getIsAutoCreatedInternal())
-                            && ((field.getIsPk() && includePk) || (!field.getIsPk() && includeNonPk))) {
-                        Object flexibleValue = fma.get(context);
-                        if (UtilValidate.isEmpty(flexibleValue) && context.containsKey("parameters")) {
-                            flexibleValue = fma.get((Map<String, Object>) context.get("parameters"));
-                        }
-                        if (UtilValidate.isNotEmpty(flexibleValue) || sendIfEmpty) {
-                            autEntityParams.put(fieldName, String.valueOf(flexibleValue));
-                        }
-                    }
-                }
-            }
-            return autEntityParams;
-        }
-    }
-
     public static String determineAutoLinkType(String linkType, String target, String targetType, HttpServletRequest request) {
         if ("auto".equals(linkType)) {
             if ("intra-app".equals(targetType)) {

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java Mon Jan 19 11:50:29 2015
@@ -23,83 +23,83 @@ import java.util.Set;
 import org.ofbiz.base.util.GeneralException;
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.webapp.control.ConfigXMLReader;
-import org.ofbiz.widget.ModelActionVisitor;
-import org.ofbiz.widget.ModelFieldVisitor;
-import org.ofbiz.widget.ModelWidgetAction;
-import org.ofbiz.widget.ModelWidgetAction.EntityAnd;
-import org.ofbiz.widget.ModelWidgetAction.EntityCondition;
-import org.ofbiz.widget.ModelWidgetAction.EntityOne;
-import org.ofbiz.widget.ModelWidgetAction.GetRelated;
-import org.ofbiz.widget.ModelWidgetAction.GetRelatedOne;
-import org.ofbiz.widget.ModelWidgetAction.PropertyMap;
-import org.ofbiz.widget.ModelWidgetAction.PropertyToField;
-import org.ofbiz.widget.ModelWidgetAction.Script;
-import org.ofbiz.widget.ModelWidgetAction.Service;
-import org.ofbiz.widget.ModelWidgetAction.SetField;
-import org.ofbiz.widget.ModelWidgetVisitor;
-import org.ofbiz.widget.form.FieldInfo;
-import org.ofbiz.widget.form.ModelForm;
-import org.ofbiz.widget.form.ModelForm.AltTarget;
-import org.ofbiz.widget.form.ModelForm.AutoFieldsEntity;
-import org.ofbiz.widget.form.ModelForm.AutoFieldsService;
-import org.ofbiz.widget.form.ModelFormAction;
-import org.ofbiz.widget.form.ModelFormAction.CallParentActions;
-import org.ofbiz.widget.form.ModelFormField;
-import org.ofbiz.widget.form.ModelFormField.CheckField;
-import org.ofbiz.widget.form.ModelFormField.ContainerField;
-import org.ofbiz.widget.form.ModelFormField.DateFindField;
-import org.ofbiz.widget.form.ModelFormField.DateTimeField;
-import org.ofbiz.widget.form.ModelFormField.DisplayEntityField;
-import org.ofbiz.widget.form.ModelFormField.DisplayField;
-import org.ofbiz.widget.form.ModelFormField.DropDownField;
-import org.ofbiz.widget.form.ModelFormField.FieldInfoWithOptions;
-import org.ofbiz.widget.form.ModelFormField.FileField;
-import org.ofbiz.widget.form.ModelFormField.HiddenField;
-import org.ofbiz.widget.form.ModelFormField.HyperlinkField;
-import org.ofbiz.widget.form.ModelFormField.IgnoredField;
-import org.ofbiz.widget.form.ModelFormField.ImageField;
-import org.ofbiz.widget.form.ModelFormField.LookupField;
-import org.ofbiz.widget.form.ModelFormField.PasswordField;
-import org.ofbiz.widget.form.ModelFormField.RadioField;
-import org.ofbiz.widget.form.ModelFormField.RangeFindField;
-import org.ofbiz.widget.form.ModelFormField.ResetField;
-import org.ofbiz.widget.form.ModelFormField.SubmitField;
-import org.ofbiz.widget.form.ModelFormField.TextField;
-import org.ofbiz.widget.form.ModelFormField.TextFindField;
-import org.ofbiz.widget.form.ModelFormField.TextareaField;
-import org.ofbiz.widget.menu.ModelMenu;
-import org.ofbiz.widget.menu.ModelMenuAction;
-import org.ofbiz.widget.menu.ModelMenuItem;
-import org.ofbiz.widget.screen.HtmlWidget;
-import org.ofbiz.widget.screen.HtmlWidget.HtmlTemplate;
-import org.ofbiz.widget.screen.HtmlWidget.HtmlTemplateDecorator;
-import org.ofbiz.widget.screen.HtmlWidget.HtmlTemplateDecoratorSection;
-import org.ofbiz.widget.screen.IterateSectionWidget;
-import org.ofbiz.widget.screen.ModelScreen;
-import org.ofbiz.widget.screen.ModelScreenWidget;
-import org.ofbiz.widget.screen.ModelScreenWidget.Column;
-import org.ofbiz.widget.screen.ModelScreenWidget.ColumnContainer;
-import org.ofbiz.widget.screen.ModelScreenWidget.Container;
-import org.ofbiz.widget.screen.ModelScreenWidget.Content;
-import org.ofbiz.widget.screen.ModelScreenWidget.DecoratorScreen;
-import org.ofbiz.widget.screen.ModelScreenWidget.DecoratorSection;
-import org.ofbiz.widget.screen.ModelScreenWidget.DecoratorSectionInclude;
-import org.ofbiz.widget.screen.ModelScreenWidget.Form;
-import org.ofbiz.widget.screen.ModelScreenWidget.HorizontalSeparator;
-import org.ofbiz.widget.screen.ModelScreenWidget.Image;
-import org.ofbiz.widget.screen.ModelScreenWidget.IncludeScreen;
-import org.ofbiz.widget.screen.ModelScreenWidget.Label;
-import org.ofbiz.widget.screen.ModelScreenWidget.Link;
-import org.ofbiz.widget.screen.ModelScreenWidget.Menu;
-import org.ofbiz.widget.screen.ModelScreenWidget.PlatformSpecific;
-import org.ofbiz.widget.screen.ModelScreenWidget.PortalPage;
-import org.ofbiz.widget.screen.ModelScreenWidget.Screenlet;
-import org.ofbiz.widget.screen.ModelScreenWidget.Section;
-import org.ofbiz.widget.screen.ModelScreenWidget.Tree;
-import org.ofbiz.widget.tree.ModelTree;
-import org.ofbiz.widget.tree.ModelTree.ModelNode;
-import org.ofbiz.widget.tree.ModelTree.ModelNode.ModelSubNode;
-import org.ofbiz.widget.tree.ModelTreeAction;
+import org.ofbiz.widget.model.AbstractModelAction.EntityAnd;
+import org.ofbiz.widget.model.AbstractModelAction.EntityCondition;
+import org.ofbiz.widget.model.AbstractModelAction.EntityOne;
+import org.ofbiz.widget.model.AbstractModelAction.GetRelated;
+import org.ofbiz.widget.model.AbstractModelAction.GetRelatedOne;
+import org.ofbiz.widget.model.AbstractModelAction.PropertyMap;
+import org.ofbiz.widget.model.AbstractModelAction.PropertyToField;
+import org.ofbiz.widget.model.AbstractModelAction.Script;
+import org.ofbiz.widget.model.AbstractModelAction.Service;
+import org.ofbiz.widget.model.AbstractModelAction.SetField;
+import org.ofbiz.widget.model.FieldInfo;
+import org.ofbiz.widget.model.HtmlWidget;
+import org.ofbiz.widget.model.HtmlWidget.HtmlTemplate;
+import org.ofbiz.widget.model.HtmlWidget.HtmlTemplateDecorator;
+import org.ofbiz.widget.model.HtmlWidget.HtmlTemplateDecoratorSection;
+import org.ofbiz.widget.model.IterateSectionWidget;
+import org.ofbiz.widget.model.ModelAction;
+import org.ofbiz.widget.model.ModelActionVisitor;
+import org.ofbiz.widget.model.ModelFieldVisitor;
+import org.ofbiz.widget.model.ModelForm;
+import org.ofbiz.widget.model.ModelForm.AltTarget;
+import org.ofbiz.widget.model.ModelForm.AutoFieldsEntity;
+import org.ofbiz.widget.model.ModelForm.AutoFieldsService;
+import org.ofbiz.widget.model.ModelFormAction;
+import org.ofbiz.widget.model.ModelFormAction.CallParentActions;
+import org.ofbiz.widget.model.ModelFormField;
+import org.ofbiz.widget.model.ModelFormField.CheckField;
+import org.ofbiz.widget.model.ModelFormField.ContainerField;
+import org.ofbiz.widget.model.ModelFormField.DateFindField;
+import org.ofbiz.widget.model.ModelFormField.DateTimeField;
+import org.ofbiz.widget.model.ModelFormField.DisplayEntityField;
+import org.ofbiz.widget.model.ModelFormField.DisplayField;
+import org.ofbiz.widget.model.ModelFormField.DropDownField;
+import org.ofbiz.widget.model.ModelFormField.FieldInfoWithOptions;
+import org.ofbiz.widget.model.ModelFormField.FileField;
+import org.ofbiz.widget.model.ModelFormField.HiddenField;
+import org.ofbiz.widget.model.ModelFormField.HyperlinkField;
+import org.ofbiz.widget.model.ModelFormField.IgnoredField;
+import org.ofbiz.widget.model.ModelFormField.ImageField;
+import org.ofbiz.widget.model.ModelFormField.LookupField;
+import org.ofbiz.widget.model.ModelFormField.PasswordField;
+import org.ofbiz.widget.model.ModelFormField.RadioField;
+import org.ofbiz.widget.model.ModelFormField.RangeFindField;
+import org.ofbiz.widget.model.ModelFormField.ResetField;
+import org.ofbiz.widget.model.ModelFormField.SubmitField;
+import org.ofbiz.widget.model.ModelFormField.TextField;
+import org.ofbiz.widget.model.ModelFormField.TextFindField;
+import org.ofbiz.widget.model.ModelFormField.TextareaField;
+import org.ofbiz.widget.model.ModelMenu;
+import org.ofbiz.widget.model.ModelMenuAction;
+import org.ofbiz.widget.model.ModelMenuItem;
+import org.ofbiz.widget.model.ModelScreen;
+import org.ofbiz.widget.model.ModelScreenWidget;
+import org.ofbiz.widget.model.ModelScreenWidget.Column;
+import org.ofbiz.widget.model.ModelScreenWidget.ColumnContainer;
+import org.ofbiz.widget.model.ModelScreenWidget.Container;
+import org.ofbiz.widget.model.ModelScreenWidget.Content;
+import org.ofbiz.widget.model.ModelScreenWidget.DecoratorScreen;
+import org.ofbiz.widget.model.ModelScreenWidget.DecoratorSection;
+import org.ofbiz.widget.model.ModelScreenWidget.DecoratorSectionInclude;
+import org.ofbiz.widget.model.ModelScreenWidget.Form;
+import org.ofbiz.widget.model.ModelScreenWidget.HorizontalSeparator;
+import org.ofbiz.widget.model.ModelScreenWidget.IncludeScreen;
+import org.ofbiz.widget.model.ModelScreenWidget.Label;
+import org.ofbiz.widget.model.ModelScreenWidget.Menu;
+import org.ofbiz.widget.model.ModelScreenWidget.PlatformSpecific;
+import org.ofbiz.widget.model.ModelScreenWidget.PortalPage;
+import org.ofbiz.widget.model.ModelScreenWidget.ScreenImage;
+import org.ofbiz.widget.model.ModelScreenWidget.ScreenLink;
+import org.ofbiz.widget.model.ModelScreenWidget.Screenlet;
+import org.ofbiz.widget.model.ModelScreenWidget.Section;
+import org.ofbiz.widget.model.ModelScreenWidget.Tree;
+import org.ofbiz.widget.model.ModelTree;
+import org.ofbiz.widget.model.ModelTree.ModelNode;
+import org.ofbiz.widget.model.ModelTree.ModelNode.ModelSubNode;
+import org.ofbiz.widget.model.ModelTreeAction;
+import org.ofbiz.widget.model.ModelWidgetVisitor;
 
 /**
  * An object that gathers artifact information from screen widgets.
@@ -113,58 +113,88 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(CallParentActions callParentActions) {
+    public void visit(CallParentActions callParentActions) throws Exception {
     }
 
     @Override
-    public void visit(EntityAnd entityAnd) {
-        infoContext.addEntityName(entityAnd.getFinder().getEntityName());
+    public void visit(Column column) throws Exception {
     }
 
     @Override
-    public void visit(EntityCondition entityCondition) {
-        infoContext.addEntityName(entityCondition.getFinder().getEntityName());
+    public void visit(ColumnContainer columnContainer) throws Exception {
+        for (Column column : columnContainer.getColumns()) {
+            for (ModelScreenWidget widget : column.getSubWidgets()) {
+                widget.accept(this);
+            }
+        }
     }
 
     @Override
-    public void visit(EntityOne entityOne) {
-        infoContext.addEntityName(entityOne.getFinder().getEntityName());
+    public void visit(Container container) throws Exception {
+        for (ModelScreenWidget widget : container.getSubWidgets()) {
+            widget.accept(this);
+        }
     }
 
     @Override
-    public void visit(GetRelated getRelated) {
-        infoContext.addEntityName(getRelated.getRelationName());
+    public void visit(Content content) throws Exception {
+        infoContext.addEntityName("Content");
+        if (!content.getDataResourceId().isEmpty()) {
+            infoContext.addEntityName("DataResource");
+        }
     }
 
     @Override
-    public void visit(GetRelatedOne getRelatedOne) {
-        infoContext.addEntityName(getRelatedOne.getRelationName());
+    public void visit(DecoratorScreen decoratorScreen) throws Exception {
+        for (ModelScreenWidget section : decoratorScreen.getSectionMap().values()) {
+            section.accept(this);
+        }
     }
 
     @Override
-    public void visit(PropertyMap propertyMap) {
+    public void visit(DecoratorSection decoratorSection) throws Exception {
+        for (ModelScreenWidget widget : decoratorSection.getSubWidgets()) {
+            widget.accept(this);
+        }
     }
 
     @Override
-    public void visit(PropertyToField propertyToField) {
+    public void visit(DecoratorSectionInclude decoratorSectionInclude) throws Exception {
     }
 
     @Override
-    public void visit(Script script) {
+    public void visit(EntityAnd entityAnd) throws Exception {
+        infoContext.addEntityName(entityAnd.getFinder().getEntityName());
     }
 
     @Override
-    public void visit(Service service) {
-        infoContext.addServiceName(service.getServiceNameExdr().getOriginal());
-        // TODO: Look for entityName in performFind service call
+    public void visit(EntityCondition entityCondition) throws Exception {
+        infoContext.addEntityName(entityCondition.getFinder().getEntityName());
     }
 
     @Override
-    public void visit(SetField setField) {
+    public void visit(EntityOne entityOne) throws Exception {
+        infoContext.addEntityName(entityOne.getFinder().getEntityName());
     }
 
     @Override
-    public void visit(HtmlWidget htmlWidget) throws Exception {
+    public void visit(Form form) throws Exception {
+        String formLocation = form.getLocation().concat("#").concat(form.getName());
+        infoContext.addFormLocation(formLocation);
+    }
+
+    @Override
+    public void visit(GetRelated getRelated) throws Exception {
+        infoContext.addEntityName(getRelated.getRelationName());
+    }
+
+    @Override
+    public void visit(GetRelatedOne getRelatedOne) throws Exception {
+        infoContext.addEntityName(getRelatedOne.getRelationName());
+    }
+
+    @Override
+    public void visit(HorizontalSeparator horizontalSeparator) throws Exception {
     }
 
     @Override
@@ -180,6 +210,14 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
+    public void visit(HtmlWidget htmlWidget) throws Exception {
+    }
+
+    @Override
+    public void visit(IncludeScreen includeScreen) throws Exception {
+    }
+
+    @Override
     public void visit(IterateSectionWidget iterateSectionWidget) throws Exception {
         for (Section section : iterateSectionWidget.getSectionList()) {
             section.accept(this);
@@ -187,14 +225,22 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
+    public void visit(Label label) throws Exception {
+    }
+
+    @Override
+    public void visit(Menu menu) throws Exception {
+    }
+
+    @Override
     public void visit(ModelForm modelForm) throws Exception {
         if (modelForm.getActions() != null) {
-            for (ModelWidgetAction action : modelForm.getActions()) {
+            for (ModelAction action : modelForm.getActions()) {
                 action.accept(this);
             }
         }
         if (modelForm.getRowActions() != null) {
-            for (ModelWidgetAction action : modelForm.getRowActions()) {
+            for (ModelAction action : modelForm.getRowActions()) {
                 action.accept(this);
             }
         }
@@ -265,7 +311,7 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(ModelFormAction.Service service) {
+    public void visit(ModelFormAction.Service service) throws Exception {
         infoContext.addServiceName(service.getServiceName());
         // TODO: Look for entityName in performFind service call
     }
@@ -275,7 +321,7 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(ModelMenuAction.SetField setField) {
+    public void visit(ModelMenuAction.SetField setField) throws Exception {
     }
 
     @Override
@@ -283,6 +329,10 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
+    public void visit(ModelNode modelNode) throws Exception {
+    }
+
+    @Override
     public void visit(ModelScreen modelScreen) throws Exception {
         String screenLocation = modelScreen.getSourceLocation().concat("#").concat(modelScreen.getName());
         infoContext.addScreenLocation(screenLocation);
@@ -290,71 +340,58 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(ColumnContainer columnContainer) throws Exception {
-        for (Column column : columnContainer.getColumns()) {
-            for (ModelScreenWidget widget : column.getSubWidgets()) {
-                widget.accept(this);
-            }
-        }
+    public void visit(ModelSubNode modelSubNode) throws Exception {
     }
 
     @Override
-    public void visit(Container container) throws Exception {
-        for (ModelScreenWidget widget : container.getSubWidgets()) {
-            widget.accept(this);
-        }
+    public void visit(ModelTree modelTree) throws Exception {
     }
 
     @Override
-    public void visit(Content content) throws Exception {
-        infoContext.addEntityName("Content");
-        if (!content.getDataResourceId().isEmpty()) {
-            infoContext.addEntityName("DataResource");
-        }
+    public void visit(ModelTreeAction.EntityAnd entityAnd) throws Exception {
     }
 
     @Override
-    public void visit(DecoratorScreen decoratorScreen) throws Exception {
-        for (ModelScreenWidget section : decoratorScreen.getSectionMap().values()) {
-            section.accept(this);
-        }
+    public void visit(ModelTreeAction.EntityCondition entityCondition) throws Exception {
     }
 
     @Override
-    public void visit(DecoratorSection decoratorSection) throws Exception {
-        for (ModelScreenWidget widget : decoratorSection.getSubWidgets()) {
-            widget.accept(this);
-        }
+    public void visit(ModelTreeAction.Script script) throws Exception {
     }
 
     @Override
-    public void visit(DecoratorSectionInclude decoratorSectionInclude) throws Exception {
+    public void visit(ModelTreeAction.Service service) throws Exception {
     }
 
     @Override
-    public void visit(Form form) throws Exception {
-        String formLocation = form.getLocation().concat("#").concat(form.getName());
-        infoContext.addFormLocation(formLocation);
+    public void visit(PlatformSpecific platformSpecific) throws Exception {
     }
 
     @Override
-    public void visit(HorizontalSeparator horizontalSeparator) throws Exception {
+    public void visit(PortalPage portalPage) throws Exception {
     }
 
     @Override
-    public void visit(Image image) throws Exception {
+    public void visit(PropertyMap propertyMap) throws Exception {
     }
 
     @Override
-    public void visit(IncludeScreen includeScreen) throws Exception {
+    public void visit(PropertyToField propertyToField) throws Exception {
     }
 
     @Override
-    public void visit(Label label) throws Exception {
+    public void visit(ScreenImage image) throws Exception {
     }
 
     @Override
-    public void visit(Link link) throws Exception {
+    public void visit(Screenlet screenlet) throws Exception {
+        for (ModelScreenWidget widget : screenlet.getSubWidgets()) {
+            widget.accept(this);
+        }
+    }
+
+    @Override
+    public void visit(ScreenLink link) throws Exception {
         String target = link.getTarget(null);
         String urlMode = link.getUrlMode();
         try {
@@ -370,27 +407,12 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(Menu menu) throws Exception {
-    }
-
-    @Override
-    public void visit(PlatformSpecific platformSpecific) throws Exception {
-    }
-
-    @Override
-    public void visit(PortalPage portalPage) throws Exception {
-    }
-
-    @Override
-    public void visit(Screenlet screenlet) throws Exception {
-        for (ModelScreenWidget widget : screenlet.getSubWidgets()) {
-            widget.accept(this);
-        }
+    public void visit(Script script) throws Exception {
     }
 
     @Override
     public void visit(Section section) throws Exception {
-        for (ModelWidgetAction action : section.getActions()) {
+        for (ModelAction action : section.getActions()) {
             action.accept(this);
         }
         for (ModelScreenWidget subWidget : section.getSubWidgets()) {
@@ -402,35 +424,17 @@ public final class ArtifactInfoGatherer
     }
 
     @Override
-    public void visit(Tree tree) throws Exception {
-    }
-
-    @Override
-    public void visit(ModelTree modelTree) throws Exception {
-    }
-
-    @Override
-    public void visit(ModelNode modelNode) throws Exception {
-    }
-
-    @Override
-    public void visit(ModelSubNode modelSubNode) throws Exception {
-    }
-
-    @Override
-    public void visit(ModelTreeAction.EntityAnd entityAnd) {
-    }
-
-    @Override
-    public void visit(ModelTreeAction.EntityCondition entityCondition) {
+    public void visit(Service service) throws Exception {
+        infoContext.addServiceName(service.getServiceNameExdr().getOriginal());
+        // TODO: Look for entityName in performFind service call
     }
 
     @Override
-    public void visit(ModelTreeAction.Script script) {
+    public void visit(SetField setField) throws Exception {
     }
 
     @Override
-    public void visit(ModelTreeAction.Service service) {
+    public void visit(Tree tree) throws Exception {
     }
 
     private class FieldInfoGatherer implements ModelFieldVisitor {
@@ -469,7 +473,7 @@ public final class ArtifactInfoGatherer
         public void visit(DisplayEntityField displayField) {
             if (displayField.getSubHyperlink() != null) {
                 String target = displayField.getSubHyperlink().getTarget(null);
-                String urlMode = displayField.getSubHyperlink().getTargetType();
+                String urlMode = displayField.getSubHyperlink().getUrlMode();
                 addRequestLocations(target, urlMode);
             }
         }
@@ -482,7 +486,7 @@ public final class ArtifactInfoGatherer
         public void visit(DropDownField dropDownField) {
             if (dropDownField.getSubHyperlink() != null) {
                 String target = dropDownField.getSubHyperlink().getTarget(null);
-                String urlMode = dropDownField.getSubHyperlink().getTargetType();
+                String urlMode = dropDownField.getSubHyperlink().getUrlMode();
                 addRequestLocations(target, urlMode);
             }
         }
@@ -491,7 +495,7 @@ public final class ArtifactInfoGatherer
         public void visit(FileField textField) {
             if (textField.getSubHyperlink() != null) {
                 String target = textField.getSubHyperlink().getTarget(null);
-                String urlMode = textField.getSubHyperlink().getTargetType();
+                String urlMode = textField.getSubHyperlink().getUrlMode();
                 addRequestLocations(target, urlMode);
             }
         }
@@ -503,7 +507,7 @@ public final class ArtifactInfoGatherer
         @Override
         public void visit(HyperlinkField hyperlinkField) {
             String target = hyperlinkField.getTarget(null);
-            String urlMode = hyperlinkField.getTargetType();
+            String urlMode = hyperlinkField.getUrlMode();
             addRequestLocations(target, urlMode);
         }
 
@@ -515,7 +519,7 @@ public final class ArtifactInfoGatherer
         public void visit(ImageField imageField) {
             if (imageField.getSubHyperlink() != null) {
                 String target = imageField.getSubHyperlink().getTarget(null);
-                String urlMode = imageField.getSubHyperlink().getTargetType();
+                String urlMode = imageField.getSubHyperlink().getUrlMode();
                 addRequestLocations(target, urlMode);
             }
         }

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/framework/widget/templates/htmlFormMacroLibrary.ftl Mon Jan 19 11:50:29 2015
@@ -617,7 +617,7 @@ Parameter: initiallyCollapsed, Not used.
 Parameter: lastViewName, String, optional - If the ajaxEnabled parameter is true, the contents of lastViewName will be appended to the Ajax URL.
 -->
 <#macro renderLookupField name formName fieldFormName className="" alert="false" value="" size="" maxlength="" id="" event="" action="" readonly=false autocomplete="" descriptionFieldName="" targetParameterIter="" imgSrc="" ajaxUrl="" ajaxEnabled=javaScriptEnabled presentation="layer" width="" height="" position="" fadeBackground="true" clearText="" showDescription="" initiallyCollapsed="" lastViewName="main" >
-  <#if Static["org.ofbiz.widget.ModelWidget"].widgetBoundaryCommentsEnabled(context)>
+  <#if Static["org.ofbiz.widget.model.ModelWidget"].widgetBoundaryCommentsEnabled(context)>
   <!-- @renderLookupField -->
   </#if>
   <#if (!ajaxUrl?has_content) && ajaxEnabled?has_content && ajaxEnabled>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java Mon Jan 19 11:50:29 2015
@@ -27,7 +27,7 @@ import javax.xml.parsers.ParserConfigura
 import org.eclipse.birt.report.engine.api.IReportEngine;
 import org.ofbiz.base.location.FlexibleLocation;
 import org.ofbiz.base.util.Debug;
-import org.ofbiz.widget.screen.ScreenFactory;
+import org.ofbiz.widget.model.ScreenFactory;
 import org.xml.sax.SAXException;
 
 /**

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java Mon Jan 19 11:50:29 2015
@@ -52,8 +52,8 @@ import org.ofbiz.security.Security;
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.widget.html.HtmlScreenRenderer;
-import org.ofbiz.widget.screen.ScreenRenderer;
+import org.ofbiz.widget.renderer.ScreenRenderer;
+import org.ofbiz.widget.renderer.html.HtmlScreenRenderer;
 import org.xml.sax.SAXException;
 
 public class BirtEmailServices {

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/webapp/birt/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/webapp/birt/WEB-INF/web.xml?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/webapp/birt/WEB-INF/web.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/birt/webapp/birt/WEB-INF/web.xml Mon Jan 19 11:50:29 2015
@@ -39,7 +39,7 @@ under the License.
     <context-param>
         <param-name>widgetVerbose</param-name>
         <param-value>false</param-value>
-        <description>Enable widget boundary comments. See org.ofbiz.widget.ModelWidget.widgetBoundaryCommentsEnabled().</description>
+        <description>Enable widget boundary comments. See org.ofbiz.widget.model.ModelWidget.widgetBoundaryCommentsEnabled().</description>
     </context-param>
     <context-param>
         <param-name>compressHTML</param-name>

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=1652969&r1=1652968&r2=1652969&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 19 11:50:29 2015
@@ -5159,4 +5159,7 @@
         <value xml:lang="zh">浏览询价</value>
         <value xml:lang="zh-TW">檢視報價</value>
     </property>
+    <property key="ThankYouForContactingUs">
+        <value xml:lang="en">Thank You for contacting us.</value>
+    </property>
 </resource>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/script/org/ofbiz/ecommerce/customer/CustomerEvents.xml Mon Jan 19 11:50:29 2015
@@ -1308,10 +1308,10 @@ under the License.
                 <set field="parameters.contactMechIdFrom" from-field="contact.contactMechId"/>
             </else>
         </if-empty>
-        <set-service-fields service-name="createCommunicationEventWithoutPermission" to-map="newComm" map="parameters"/>
-        <set field="newComm.partyIdFrom" from-field="parameters.partyId"/>
-        <call-service service-name="createCommunicationEventWithoutPermission" in-map-name="newComm">
-            <default-message property="CommonGenericServiceSuccessMessage" resource="CommonUiLabels"></default-message>
+        <set-service-fields service-name="sendContactUsEmailToCompany" to-map="newComm" map="parameters"/>
+        <set field="newComm.emailType" value="CONT_NOTI_EMAIL"/>
+        <call-service service-name="sendContactUsEmailToCompany" in-map-name="newComm">
+            <default-message property="ThankYouForContactingUs" resource="EcommerceUiLabels"></default-message>
         </call-service>
     </simple-method>
     <simple-method method-name="fromSetSessionLocale" 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.base.util.collections.LifoSet;
 
 import javax.servlet.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy Mon Jan 19 11:50:29 2015
@@ -27,7 +27,7 @@ import org.ofbiz.base.util.Debug
 import org.ofbiz.base.util.UtilHttp
 import org.ofbiz.content.search.SearchWorker
 import org.ofbiz.product.feature.ParametricSearch
-import org.ofbiz.widget.html.HtmlFormWrapper
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper
 import org.apache.lucene.search.*
 import org.apache.lucene.index.DirectoryReader
 import org.apache.lucene.store.Directory

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy Mon Jan 19 11:50:29 2015
@@ -31,8 +31,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.entity.model.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy Mon Jan 19 11:50:29 2015
@@ -23,8 +23,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.data.DataResourceWorker;
 import org.ofbiz.webapp.ftl.FreeMarkerViewHandler;
 import org.ofbiz.content.content.ContentWorker;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy Mon Jan 19 11:50:29 2015
@@ -31,8 +31,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.ContentManagementWorker;
 
 import javax.servlet.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy Mon Jan 19 11:50:29 2015
@@ -31,8 +31,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.entity.model.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy Mon Jan 19 11:50:29 2015
@@ -33,8 +33,8 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
+import org.ofbiz.widget.model.*;
 import org.ofbiz.content.data.DataResourceWorker;
 
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy Mon Jan 19 11:50:29 2015
@@ -22,8 +22,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.data.DataResourceWorker;
 import org.ofbiz.webapp.ftl.FreeMarkerViewHandler;
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.entity.model.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy Mon Jan 19 11:50:29 2015
@@ -22,8 +22,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.data.DataResourceWorker;
 import org.ofbiz.webapp.ftl.FreeMarkerViewHandler;
 import org.ofbiz.content.content.ContentWorker;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.content.PermissionRecorder;
 import org.ofbiz.content.ContentManagementWorker;
 

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
 import org.ofbiz.webapp.website.WebSiteWorker;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.entity.model.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.content.PermissionRecorder;
 
 import javax.servlet.*;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.content.content.ContentWorker;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.securityext.login.*;
 import org.ofbiz.common.*;
 import org.ofbiz.content.content.ContentWorker;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy Mon Jan 19 11:50:29 2015
@@ -32,8 +32,7 @@ import org.ofbiz.entity.*;
 import org.ofbiz.security.*;
 import org.ofbiz.service.*;
 import org.ofbiz.entity.model.*;
-import org.ofbiz.widget.html.*;
-import org.ofbiz.widget.form.*;
+import org.ofbiz.widget.renderer.html.HtmlFormWrapper;
 import org.ofbiz.content.ContentManagementWorker;
 import org.ofbiz.content.content.ContentWorker;
 import org.ofbiz.base.util.collections.LifoSet;

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Mon Jan 19 11:50:29 2015
@@ -33,9 +33,9 @@ under the License.
 
     <handler name="jsp" type="view" class="org.ofbiz.ecommerce.webapp.view.JspViewHandler"/>
     <handler name="http" type="view" class="org.ofbiz.webapp.view.HttpViewHandler"/>
-    <handler name="screen" type="view" class="org.ofbiz.widget.screen.MacroScreenViewHandler"/>
+    <handler name="screen" type="view" class="org.ofbiz.widget.renderer.macro.MacroScreenViewHandler"/>
     <handler name="simplecontent" type="view" class="org.ofbiz.content.view.SimpleContentViewHandler"/>
-    <handler name="screenfop" type="view" class="org.ofbiz.widget.screen.ScreenFopViewHandler"/>
+    <handler name="screenfop" type="view" class="org.ofbiz.widget.renderer.fo.ScreenFopViewHandler"/>
 
     <!-- Events run from here for the first hit in a visit -->
     <firstvisit>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/customer/miniSignUpForContactList.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/customer/miniSignUpForContactList.ftl?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/customer/miniSignUpForContactList.ftl (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/customer/miniSignUpForContactList.ftl Mon Jan 19 11:50:29 2015
@@ -65,7 +65,8 @@ under the License.
             <@contactList publicEmailContactLists=publicEmailContactLists/>
           </div>
           <div>
-            <select name="preferredContactMechId" class="selectBox">
+            <label for="preferredContactMechId">${uiLabelMap.CommonEmail} *</label>
+            <select id="preferredContactMechId" name="preferredContactMechId" class="selectBox">
               <#list partyAndContactMechList as partyAndContactMech>
                 <option value="${partyAndContactMech.contactMechId}"><#if partyAndContactMech.infoString?has_content>${partyAndContactMech.infoString}<#elseif partyAndContactMech.tnContactNumber?has_content>${partyAndContactMech.tnCountryCode!}-${partyAndContactMech.tnAreaCode!}-${partyAndContactMech.tnContactNumber}<#elseif partyAndContactMech.paAddress1?has_content>${partyAndContactMech.paAddress1}, ${partyAndContactMech.paAddress2!}, ${partyAndContactMech.paCity!}, ${partyAndContactMech.paStateProvinceGeoId!}, ${partyAndContactMech.paPostalCode!}, ${partyAndContactMech.paPostalCodeExt!} ${partyAndContactMech.paCountryGeoId!}</#if></option>
               </#list>
@@ -95,7 +96,8 @@ under the License.
           <@contactList publicEmailContactLists=publicEmailContactLists/>
         </div>
         <div>
-          <input name="email" class="inputBox" type="text"/>
+          <label for="email">${uiLabelMap.CommonEmail} *</label>
+          <input id="email" name="email" class="required" type="text"/>
         </div>
         <div>
           <input type="submit" value="${uiLabelMap.EcommerceSubscribe}"/>

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/order/checkoutshippingoptions.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/order/checkoutshippingoptions.ftl?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/order/checkoutshippingoptions.ftl (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/ecommerce/webapp/ecommerce/order/checkoutshippingoptions.ftl Mon Jan 19 11:50:29 2015
@@ -59,6 +59,7 @@ function submitForm(form, mode, value) {
 </script>
 
 <form method="post" name="checkoutInfoForm" style="margin:0;">
+  <fieldset>
     <input type="hidden" name="checkoutpage" value="shippingoptions"/>
 
     <div class="screenlet" style="height: 100%;">
@@ -187,6 +188,7 @@ function submitForm(form, mode, value) {
             </table>
         </div>
     </div>
+  </fieldset>
 </form>
 
 <table width="100%">

Modified: ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java?rev=1652969&r1=1652968&r2=1652969&view=diff
==============================================================================
--- ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java (original)
+++ ofbiz/branches/OFBIZ-5312-ofbiz-ecommerce-seo-2013-10-23/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java Mon Jan 19 11:50:29 2015
@@ -49,8 +49,8 @@ import org.ofbiz.base.util.GeneralExcept
 import org.ofbiz.service.DispatchContext;
 import org.ofbiz.service.ServiceUtil;
 import org.ofbiz.webapp.view.ApacheFopWorker;
-import org.ofbiz.widget.html.HtmlScreenRenderer;
-import org.ofbiz.widget.screen.ScreenRenderer;
+import org.ofbiz.widget.renderer.ScreenRenderer;
+import org.ofbiz.widget.renderer.html.HtmlScreenRenderer;
 import org.xml.sax.SAXException;
 
 public class ExamplePrintServices {