svn commit: r1662488 [5/6] - in /ofbiz/branches/release14.12: applications/content/src/org/ofbiz/content/cms/ applications/content/src/org/ofbiz/content/content/ applications/content/src/org/ofbiz/content/data/ applications/content/src/org/ofbiz/conten...

Previous Topic Next Topic
 
classic Classic list List threaded Threaded
1 message Options
Reply | Threaded
Open this post in threaded view
|

svn commit: r1662488 [5/6] - in /ofbiz/branches/release14.12: applications/content/src/org/ofbiz/content/cms/ applications/content/src/org/ofbiz/content/content/ applications/content/src/org/ofbiz/content/data/ applications/content/src/org/ofbiz/conten...

adrianc
Added: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelGrid.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelGrid.java?rev=1662488&view=auto
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelGrid.java (added)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelGrid.java Thu Feb 26 16:16:11 2015
@@ -0,0 +1,100 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.widget.model;
+
+import java.util.List;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.entity.model.ModelReader;
+import org.ofbiz.service.DispatchContext;
+import org.w3c.dom.Element;
+
+/**
+ * Models the <grid> element.
+ *
+ * @see <code>widget-form.xsd</code>
+ */
+@SuppressWarnings("serial")
+public class ModelGrid extends ModelForm {
+
+    /*
+     * ----------------------------------------------------------------------- *
+     *                     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. All behavior should be contained in model visitors.
+     *
+     * 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 = ModelGrid.class.getName();
+
+    /** XML Constructor */
+    public ModelGrid(Element formElement, String formLocation, ModelReader entityModelReader, DispatchContext dispatchContext) {
+        super(formElement, formLocation, entityModelReader, dispatchContext, "list");
+    }
+
+    @Override
+    public void accept(ModelWidgetVisitor visitor) throws Exception {
+        visitor.visit(this);
+    }
+
+    protected ModelForm getParentModel(Element gridElement, ModelReader entityModelReader, DispatchContext dispatchContext) {
+        ModelForm parentModel = null;
+        String parentResource = gridElement.getAttribute("extends-resource");
+        String parentGrid = gridElement.getAttribute("extends");
+        if (!parentGrid.isEmpty()) {
+            // check if we have a resource name
+            if (!parentResource.isEmpty()) {
+                try {
+                    parentModel = GridFactory.getGridFromLocation(parentResource, parentGrid, entityModelReader, dispatchContext);
+                } catch (Exception e) {
+                    Debug.logError(e, "Failed to load parent grid definition '" + parentGrid + "' at resource '" + parentResource
+                            + "'", module);
+                }
+            } else if (!parentGrid.equals(gridElement.getAttribute("name"))) {
+                // try to find a grid definition in the same file
+                Element rootElement = gridElement.getOwnerDocument().getDocumentElement();
+                List<? extends Element> gridElements = UtilXml.childElementList(rootElement, "grid");
+                if (gridElements.isEmpty()) {
+                    // Backwards compatibility - look for form definitions
+                    gridElements = UtilXml.childElementList(rootElement, "form");
+                }
+                for (Element parentElement : gridElements) {
+                    if (parentElement.getAttribute("name").equals(parentGrid)) {
+                        parentModel = GridFactory.createModelGrid(parentElement, entityModelReader, dispatchContext,
+                                parentResource, parentGrid);
+                        break;
+                    }
+                }
+                if (parentModel == null) {
+                    Debug.logError("Failed to find parent grid definition '" + parentGrid + "' in same document.", module);
+                }
+            } else {
+                Debug.logError("Recursive grid definition found for '" + gridElement.getAttribute("name") + ".'", module);
+            }
+        }
+        return parentModel;
+    }
+}

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelMenuItem.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelMenuItem.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelMenuItem.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelMenuItem.java Thu Feb 26 16:16:11 2015
@@ -540,7 +540,7 @@ public class ModelMenuItem extends Model
             parameterList.add(new Parameter("parentPortalPageId", portalPage.getString("parentPortalPageId"), false));
             String target = "showPortalPage";
             if (parentMenuItem.link != null) {
-                target= "";
+                target = parentMenuItem.link.getTargetExdr().getOriginal();
             }
             this.link = new Link(portalPage, parameterList, target, locale);
         }

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelScreenWidget.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelScreenWidget.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelScreenWidget.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelScreenWidget.java Thu Feb 26 16:16:11 2015
@@ -1046,9 +1046,9 @@ public abstract class ModelScreenWidget
                 }
                 UtilGenerics.<MapStack<String>>cast(context).push();
             }
-            ModelForm modelForm = getModelForm(context);
-            FormRenderer renderer = new FormRenderer(modelForm, formStringRenderer);
             try {
+                ModelForm modelForm = getModelForm(context);
+                FormRenderer renderer = new FormRenderer(modelForm, formStringRenderer);
                 renderer.render(writer, context);
             } catch (Exception e) {
                 String errMsg = "Error rendering included form named [" + getName() + "] at location [" + this.getLocation(context) + "]: " + e.toString();
@@ -1061,12 +1061,97 @@ public abstract class ModelScreenWidget
             }
         }
 
+        public ModelForm getModelForm(Map<String, Object> context) throws IOException, SAXException, ParserConfigurationException {
+            String name = this.getName(context);
+            String location = this.getLocation(context);
+            return FormFactory.getFormFromLocation(location, name, getModelScreen().getDelegator(context).getModelReader(),
+                    getModelScreen().getDispatcher(context).getDispatchContext());
+        }
+
+        public String getName(Map<String, Object> context) {
+            return this.nameExdr.expandString(context);
+        }
+
+        public String getLocation() {
+            return locationExdr.getOriginal();
+        }
+
+        public String getLocation(Map<String, Object> context) {
+            return this.locationExdr.expandString(context);
+        }
+
+        public boolean shareScope(Map<String, Object> context) {
+            String shareScopeString = this.shareScopeExdr.expandString(context);
+            // defaults to false, so anything but true is false
+            return "true".equals(shareScopeString);
+        }
+
+        @Override
+        public void accept(ModelWidgetVisitor visitor) throws Exception {
+            visitor.visit(this);
+        }
+
+        public FlexibleStringExpander getNameExdr() {
+            return nameExdr;
+        }
+
+        public FlexibleStringExpander getLocationExdr() {
+            return locationExdr;
+        }
+
+        public FlexibleStringExpander getShareScopeExdr() {
+            return shareScopeExdr;
+        }
+    }
+
+    public static final class Grid extends ModelScreenWidget {
+        public static final String TAG_NAME = "include-grid";
+        private final FlexibleStringExpander nameExdr;
+        private final FlexibleStringExpander locationExdr;
+        private final FlexibleStringExpander shareScopeExdr;
+
+        public Grid(ModelScreen modelScreen, Element formElement) {
+            super(modelScreen, formElement);
+            this.nameExdr = FlexibleStringExpander.getInstance(formElement.getAttribute("name"));
+            this.locationExdr = FlexibleStringExpander.getInstance(formElement.getAttribute("location"));
+            this.shareScopeExdr = FlexibleStringExpander.getInstance(formElement.getAttribute("share-scope"));
+        }
+
+        @Override
+        public void renderWidgetString(Appendable writer, Map<String, Object> context, ScreenStringRenderer screenStringRenderer) {
+            // Output format might not support forms, so make form rendering optional.
+            FormStringRenderer formStringRenderer = (FormStringRenderer) context.get("formStringRenderer");
+            if (formStringRenderer == null) {
+                Debug.logVerbose("FormStringRenderer instance not found in rendering context, form not rendered.", module);
+                return;
+            }
+            boolean protectScope = !shareScope(context);
+            if (protectScope) {
+                if (!(context instanceof MapStack<?>)) {
+                    context = MapStack.create(context);
+                }
+                UtilGenerics.<MapStack<String>>cast(context).push();
+            }
+            ModelForm modelForm = getModelForm(context);
+            FormRenderer renderer = new FormRenderer(modelForm, formStringRenderer);
+            try {
+                renderer.render(writer, context);
+            } catch (Exception e) {
+                String errMsg = "Error rendering included grid named [" + getName() + "] at location [" + this.getLocation(context) + "]: " + e.toString();
+                Debug.logError(e, errMsg, module);
+                throw new RuntimeException(errMsg + e);
+            }
+            if (protectScope) {
+                UtilGenerics.<MapStack<String>>cast(context).pop();
+            }
+        }
+
         public ModelForm getModelForm(Map<String, Object> context) {
             ModelForm modelForm = null;
             String name = this.getName(context);
             String location = this.getLocation(context);
             try {
-                modelForm = FormFactory.getFormFromLocation(location, name, getModelScreen().getDelegator(context).getModelReader(), getModelScreen().getDispatcher(context).getDispatchContext());
+                modelForm = GridFactory.getGridFromLocation(location, name, getModelScreen().getDelegator(context).getModelReader(), getModelScreen().getDispatcher(context).getDispatchContext());
             } catch (Exception e) {
                 String errMsg = "Error rendering included form named [" + name + "] at location [" + location + "]: ";
                 Debug.logError(e, errMsg, module);
@@ -1109,7 +1194,6 @@ public abstract class ModelScreenWidget
         public FlexibleStringExpander getShareScopeExdr() {
             return shareScopeExdr;
         }
-
     }
 
     public static final class Tree extends ModelScreenWidget {

Added: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelSingleForm.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelSingleForm.java?rev=1662488&view=auto
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelSingleForm.java (added)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelSingleForm.java Thu Feb 26 16:16:11 2015
@@ -0,0 +1,99 @@
+/*******************************************************************************
+ * Licensed to the Apache Software Foundation (ASF) under one
+ * or more contributor license agreements.  See the NOTICE file
+ * distributed with this work for additional information
+ * regarding copyright ownership.  The ASF licenses this file
+ * to you under the Apache License, Version 2.0 (the
+ * "License"); you may not use this file except in compliance
+ * with the License.  You may obtain a copy of the License at
+ *
+ * http://www.apache.org/licenses/LICENSE-2.0
+ *
+ * Unless required by applicable law or agreed to in writing,
+ * software distributed under the License is distributed on an
+ * "AS IS" BASIS, WITHOUT WARRANTIES OR CONDITIONS OF ANY
+ * KIND, either express or implied.  See the License for the
+ * specific language governing permissions and limitations
+ * under the License.
+ *******************************************************************************/
+package org.ofbiz.widget.model;
+
+import java.util.List;
+
+import org.ofbiz.base.util.Debug;
+import org.ofbiz.base.util.UtilXml;
+import org.ofbiz.entity.model.ModelReader;
+import org.ofbiz.service.DispatchContext;
+import org.w3c.dom.Element;
+
+/**
+ * Models the &lt;form&gt; element.
+ *
+ * @see <code>widget-form.xsd</code>
+ */
+@SuppressWarnings("serial")
+public class ModelSingleForm extends ModelForm {
+
+    /*
+     * ----------------------------------------------------------------------- *
+     *                     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. All behavior should be contained in model visitors.
+     *
+     * 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 = ModelSingleForm.class.getName();
+
+    /** XML Constructor */
+    public ModelSingleForm(Element formElement, String formLocation, ModelReader entityModelReader,
+            DispatchContext dispatchContext) {
+        super(formElement, formLocation, entityModelReader, dispatchContext, "single");
+    }
+
+    @Override
+    public void accept(ModelWidgetVisitor visitor) throws Exception {
+        visitor.visit(this);
+    }
+
+    protected ModelForm getParentModel(Element formElement, ModelReader entityModelReader, DispatchContext dispatchContext) {
+        ModelForm parent = null;
+        String parentResource = formElement.getAttribute("extends-resource");
+        String parentForm = formElement.getAttribute("extends");
+        if (!parentForm.isEmpty()) {
+            // check if we have a resource name
+            if (!parentResource.isEmpty()) {
+                try {
+                    parent = FormFactory.getFormFromLocation(parentResource, parentForm, entityModelReader, dispatchContext);
+                } catch (Exception e) {
+                    Debug.logError(e, "Failed to load parent form definition '" + parentForm + "' at resource '" + parentResource
+                            + "'", module);
+                }
+            } else if (!parentForm.equals(formElement.getAttribute("name"))) {
+                // try to find a form definition in the same file
+                Element rootElement = formElement.getOwnerDocument().getDocumentElement();
+                List<? extends Element> formElements = UtilXml.childElementList(rootElement, "form");
+                //Uncomment below to add support for abstract forms
+                //formElements.addAll(UtilXml.childElementList(rootElement, "abstract-form"));
+                for (Element parentElement : formElements) {
+                    if (parentElement.getAttribute("name").equals(parentForm)) {
+                        parent = FormFactory.createModelForm(parentElement, entityModelReader, dispatchContext, parentResource,
+                                parentForm);
+                        break;
+                    }
+                }
+                if (parent == null) {
+                    Debug.logError("Failed to find parent form definition '" + parentForm + "' in same document.", module);
+                }
+            } else {
+                Debug.logError("Recursive form definition found for '" + formElement.getAttribute("name") + ".'", module);
+            }
+        }
+        return parent;
+    }
+}

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelWidgetVisitor.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelWidgetVisitor.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelWidgetVisitor.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/ModelWidgetVisitor.java Thu Feb 26 16:16:11 2015
@@ -18,7 +18,6 @@
  *******************************************************************************/
 package org.ofbiz.widget.model;
 
-import org.ofbiz.widget.model.HtmlWidget;
 
 /**
  *  A <code>ModelWidget</code> visitor.
@@ -35,7 +34,9 @@ public interface ModelWidgetVisitor {
 
     void visit(IterateSectionWidget iterateSectionWidget) throws Exception;
 
-    void visit(ModelForm modelForm) throws Exception;
+    void visit(ModelSingleForm modelForm) throws Exception;
+
+    void visit(ModelGrid modelGrid) throws Exception;
 
     void visit(ModelMenu modelMenu) throws Exception;
 
@@ -57,6 +58,8 @@ public interface ModelWidgetVisitor {
 
     void visit(ModelScreenWidget.Form form) throws Exception;
 
+    void visit(ModelScreenWidget.Grid grid) throws Exception;
+
     void visit(ModelScreenWidget.HorizontalSeparator horizontalSeparator) throws Exception;
 
     void visit(ModelScreenWidget.ScreenImage image) throws Exception;

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetFieldVisitor.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetFieldVisitor.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetFieldVisitor.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetFieldVisitor.java Thu Feb 26 16:16:11 2015
@@ -335,42 +335,44 @@ public class XmlWidgetFieldVisitor exten
     }
 
     private void visitModelField(ModelFormField modelField) throws Exception {
-        writer.append("<field");
-        visitAttribute("name", modelField.getName());
-        visitAttribute("action", modelField.getAction());
-        visitAttribute("attribute-name", modelField.getAttributeName());
-        visitAttribute("encode-output", modelField.getEncodeOutput());
-        visitAttribute("entity-name", modelField.getEntityName());
-        visitAttribute("entry-name", modelField.getEntryName());
-        visitAttribute("event", modelField.getEvent());
-        visitAttribute("field-name", modelField.getFieldName());
-        visitAttribute("header-link", modelField.getHeaderLink());
-        visitAttribute("header-link-style", modelField.getHeaderLinkStyle());
-        visitAttribute("id-name", modelField.getIdName());
-        visitAttribute("map-name", modelField.getMapName());
-        visitAttribute("parameter-name", modelField.getParameterName());
-        visitAttribute("position", modelField.getPosition());
-        visitAttribute("red-when", modelField.getRedWhen());
-        visitAttribute("required-field", modelField.getRequiredField());
-        visitAttribute("required-field-style", modelField.getRequiredFieldStyle());
-        visitAttribute("separate-column", modelField.getSeparateColumn());
-        visitAttribute("service-name", modelField.getServiceName());
-        visitAttribute("sort-field", modelField.getSortField());
-        visitAttribute("sort-field-asc-style", modelField.getSortFieldAscStyle());
-        visitAttribute("sort-field-desc-style", modelField.getSortFieldDescStyle());
-        visitAttribute("sort-field-help-text", modelField.getSortFieldHelpText());
-        visitAttribute("sort-field-style", modelField.getSortFieldStyle());
-        visitAttribute("title", modelField.getTitle());
-        visitAttribute("title-area-style", modelField.getTitleAreaStyle());
-        visitAttribute("title-style", modelField.getTitleStyle());
-        visitAttribute("tooltip", modelField.getTooltip());
-        visitAttribute("tooltip-style", modelField.getTooltipStyle());
-        visitAttribute("use-when", modelField.getUseWhen());
-        visitAttribute("widget-area-style", modelField.getWidgetAreaStyle());
-        visitAttribute("widget-style", modelField.getWidgetStyle());
-        writer.append(">");
-        visitUpdateAreas(modelField.getOnChangeUpdateAreas());
-        visitUpdateAreas(modelField.getOnClickUpdateAreas());
+        if (modelField != null) {
+            writer.append("<field");
+            visitAttribute("name", modelField.getName());
+            visitAttribute("action", modelField.getAction());
+            visitAttribute("attribute-name", modelField.getAttributeName());
+            visitAttribute("encode-output", modelField.getEncodeOutput());
+            visitAttribute("entity-name", modelField.getEntityName());
+            visitAttribute("entry-name", modelField.getEntryName());
+            visitAttribute("event", modelField.getEvent());
+            visitAttribute("field-name", modelField.getFieldName());
+            visitAttribute("header-link", modelField.getHeaderLink());
+            visitAttribute("header-link-style", modelField.getHeaderLinkStyle());
+            visitAttribute("id-name", modelField.getIdName());
+            visitAttribute("map-name", modelField.getMapName());
+            visitAttribute("parameter-name", modelField.getParameterName());
+            visitAttribute("position", modelField.getPosition());
+            visitAttribute("red-when", modelField.getRedWhen());
+            visitAttribute("required-field", modelField.getRequiredField());
+            visitAttribute("required-field-style", modelField.getRequiredFieldStyle());
+            visitAttribute("separate-column", modelField.getSeparateColumn());
+            visitAttribute("service-name", modelField.getServiceName());
+            visitAttribute("sort-field", modelField.getSortField());
+            visitAttribute("sort-field-asc-style", modelField.getSortFieldAscStyle());
+            visitAttribute("sort-field-desc-style", modelField.getSortFieldDescStyle());
+            visitAttribute("sort-field-help-text", modelField.getSortFieldHelpText());
+            visitAttribute("sort-field-style", modelField.getSortFieldStyle());
+            visitAttribute("title", modelField.getTitle());
+            visitAttribute("title-area-style", modelField.getTitleAreaStyle());
+            visitAttribute("title-style", modelField.getTitleStyle());
+            visitAttribute("tooltip", modelField.getTooltip());
+            visitAttribute("tooltip-style", modelField.getTooltipStyle());
+            visitAttribute("use-when", modelField.getUseWhen());
+            visitAttribute("widget-area-style", modelField.getWidgetAreaStyle());
+            visitAttribute("widget-style", modelField.getWidgetStyle());
+            writer.append(">");
+            visitUpdateAreas(modelField.getOnChangeUpdateAreas());
+            visitUpdateAreas(modelField.getOnClickUpdateAreas());
+        }
     }
 
     private void visitSubHyperlink(SubHyperlink hyperlink) throws Exception {

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetVisitor.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetVisitor.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetVisitor.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/model/XmlWidgetVisitor.java Thu Feb 26 16:16:11 2015
@@ -32,6 +32,7 @@ import org.ofbiz.widget.model.ModelScree
 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.Grid;
 import org.ofbiz.widget.model.ModelScreenWidget.HorizontalSeparator;
 import org.ofbiz.widget.model.ModelScreenWidget.IncludeScreen;
 import org.ofbiz.widget.model.ModelScreenWidget.Label;
@@ -236,114 +237,29 @@ public class XmlWidgetVisitor extends Xm
     }
 
     @Override
-    public void visit(ModelForm modelForm) throws Exception {
+    public void visit(ModelSingleForm modelForm) throws Exception {
         writer.append("<form");
-        visitModelWidget(modelForm);
-        if (modelForm.getParentModelForm() != null) {
-            visitAttribute("extends", modelForm.getParentModelForm().getName());
-            visitAttribute("extends-resource", modelForm.getParentModelForm().getFormLocation());
-        }
-        visitAttribute("view-size", modelForm.getDefaultViewSize());
-        visitAttribute("type", modelForm.getType());
-        visitAttribute("target", modelForm.getTarget());
-        visitAttribute("id", modelForm.getContainerId());
-        visitAttribute("style", modelForm.getContainerStyle());
-        visitAttribute("title", modelForm.getTitle());
-        visitAttribute("tooltip", modelForm.getTooltip());
-        visitAttribute("list-name", modelForm.getListName());
-        visitAttribute("list-entry-name", modelForm.getListEntryName());
-        visitAttribute("default-entity-name", modelForm.getDefaultEntityName());
-        visitAttribute("default-service-name", modelForm.getDefaultServiceName());
-        visitAttribute("form-title-area-style", modelForm.getFormTitleAreaStyle());
-        visitAttribute("form-widget-area-style", modelForm.getFormWidgetAreaStyle());
-        visitAttribute("default-title-area-style", modelForm.getDefaultTitleAreaStyle());
-        visitAttribute("default-widget-area-style", modelForm.getDefaultWidgetAreaStyle());
-        visitAttribute("odd-row-style", modelForm.getOddRowStyle());
-        visitAttribute("even-row-style", modelForm.getEvenRowStyle());
-        visitAttribute("default-table-style", modelForm.getDefaultTableStyle());
-        visitAttribute("header-row-style", modelForm.getHeaderRowStyle());
-        visitAttribute("default-title-style", modelForm.getDefaultTitleStyle());
-        visitAttribute("default-widget-style", modelForm.getDefaultWidgetStyle());
-        visitAttribute("default-tooltip-style", modelForm.getDefaultTooltipStyle());
-        visitAttribute("item-index-separator", modelForm.getItemIndexSeparator());
-        visitAttribute("separate-columns", modelForm.getSeparateColumns());
-        visitAttribute("group-columns", modelForm.getGroupColumns());
-        visitAttribute("target-type", modelForm.getTargetType());
-        visitAttribute("default-map-name", modelForm.getDefaultMapName());
-        visitAttribute("target-window", modelForm.getTargetWindow());
-        visitAttribute("hide-header", modelForm.getHideHeader());
-        visitAttribute("client-autocomplete-fields", modelForm.getClientAutocompleteFields());
-        visitAttribute("paginate-target", modelForm.getPaginateTarget());
-        visitAttribute("sort-field-parameter-name", modelForm.getSortFieldParameterName());
-        visitAttribute("default-required-field-style", modelForm.getDefaultRequiredFieldStyle());
-        visitAttribute("default-sort-field-style", modelForm.getDefaultSortFieldStyle());
-        visitAttribute("default-sort-field-asc-style", modelForm.getDefaultSortFieldAscStyle());
-        visitAttribute("default-sort-field-desc-style", modelForm.getDefaultSortFieldDescStyle());
-        visitAttribute("paginate-target-anchor", modelForm.getPaginateTargetAnchor());
-        visitAttribute("paginate-index-field", modelForm.getPaginateIndexField());
-        visitAttribute("paginate-size-field", modelForm.getPaginateSizeField());
-        visitAttribute("override-list-size", modelForm.getOverrideListSize());
-        visitAttribute("paginate-first-label", modelForm.getPaginateFirstLabel());
-        visitAttribute("paginate-previous-label", modelForm.getPaginatePreviousLabel());
-        visitAttribute("paginate-next-label", modelForm.getPaginateNextLabel());
-        visitAttribute("paginate-last-label", modelForm.getPaginateLastLabel());
-        visitAttribute("paginate-viewsize-label", modelForm.getPaginateViewSizeLabel());
-        visitAttribute("paginate-style", modelForm.getPaginateStyle());
-        visitAttribute("paginate", modelForm.getPaginate());
-        visitAttribute("skip-start", modelForm.getSkipStart());
-        visitAttribute("skip-end", modelForm.getSkipEnd());
-        visitAttribute("use-row-submit", modelForm.getUseRowSubmit());
-        visitAttribute("row-count", modelForm.getRowCount());
-        visitAttribute("focus-field-name", modelForm.getFocusFieldName());
-        writer.append(">");
-        if (!modelForm.getActions().isEmpty()) {
-            writer.append("<actions>");
-            visitActions(modelForm.getActions());
-            writer.append("</actions>");
-        }
-        if (!modelForm.getRowActions().isEmpty()) {
-            writer.append("<row-actions>");
-            visitActions(modelForm.getRowActions());
-            writer.append("</row-actions>");
-        }
-        for (ModelForm.AltRowStyle rowStyle : modelForm.getAltRowStyles()) {
-            writer.append("<alt-row-style");
-            visitAttribute("use-when", rowStyle.useWhen);
-            visitAttribute("style", rowStyle.style);
-            writer.append("/>");
-        }
-        for (ModelForm.AltTarget target : modelForm.getAltTargets()) {
-            writer.append("<alt-target");
-            visitAttribute("use-when", target.useWhen);
-            visitAttribute("target", target.targetExdr);
-            writer.append("/>");
-        }
-        for (ModelForm.AutoFieldsService service : modelForm.getAutoFieldsServices()) {
-            writer.append("<auto-fields-service");
-            visitAttribute("service-name", service.serviceName);
-            visitAttribute("map-name", service.mapName);
-            visitAttribute("default-field-type", service.defaultFieldType);
-            visitAttribute("default-position", service.defaultPosition);
-            writer.append("/>");
-        }
-        for (ModelForm.AutoFieldsEntity entity : modelForm.getAutoFieldsEntities()) {
-            writer.append("<auto-fields-entity");
-            visitAttribute("entity-name", entity.entityName);
-            visitAttribute("map-name", entity.mapName);
-            visitAttribute("default-field-type", entity.defaultFieldType);
-            visitAttribute("default-position", entity.defaultPosition);
-            writer.append("/>");
-        }
-        for (ModelFormField field : modelForm.getFieldList()) {
-            field.getFieldInfo().accept(fieldVisitor);
-        }
-        visitUpdateAreas(modelForm.getOnPaginateUpdateAreas());
-        visitUpdateAreas(modelForm.getOnSortColumnUpdateAreas());
-        visitUpdateAreas(modelForm.getOnSubmitUpdateAreas());
+        visitModelForm(modelForm);
         writer.append("</form>");
     }
 
     @Override
+    public void visit(ModelGrid modelGrid) throws Exception {
+        writer.append("<grid");
+        visitModelForm(modelGrid);
+        writer.append("</grid>");
+    }
+
+    @Override
+    public void visit(Grid grid) throws Exception {
+        writer.append("<include-grid");
+        visitModelWidget(grid);
+        visitAttribute("location", grid.getLocationExdr());
+        visitAttribute("share-scope", grid.getShareScopeExdr());
+        writer.append("/>");
+    }
+
+    @Override
     public void visit(ModelMenu modelMenu) throws Exception {
         writer.append("<menu");
         visitModelWidget(modelMenu);
@@ -623,6 +539,111 @@ public class XmlWidgetVisitor extends Xm
         }
     }
 
+    public void visitModelForm(ModelForm modelForm) throws Exception {
+        visitModelWidget(modelForm);
+        if (modelForm.getParentModelForm() != null) {
+            visitAttribute("extends", modelForm.getParentModelForm().getName());
+            visitAttribute("extends-resource", modelForm.getParentModelForm().getFormLocation());
+        }
+        visitAttribute("view-size", modelForm.getDefaultViewSize());
+        visitAttribute("type", modelForm.getType());
+        visitAttribute("target", modelForm.getTarget());
+        visitAttribute("id", modelForm.getContainerId());
+        visitAttribute("style", modelForm.getContainerStyle());
+        visitAttribute("title", modelForm.getTitle());
+        visitAttribute("tooltip", modelForm.getTooltip());
+        visitAttribute("list-name", modelForm.getListName());
+        visitAttribute("list-entry-name", modelForm.getListEntryName());
+        visitAttribute("default-entity-name", modelForm.getDefaultEntityName());
+        visitAttribute("default-service-name", modelForm.getDefaultServiceName());
+        visitAttribute("form-title-area-style", modelForm.getFormTitleAreaStyle());
+        visitAttribute("form-widget-area-style", modelForm.getFormWidgetAreaStyle());
+        visitAttribute("default-title-area-style", modelForm.getDefaultTitleAreaStyle());
+        visitAttribute("default-widget-area-style", modelForm.getDefaultWidgetAreaStyle());
+        visitAttribute("odd-row-style", modelForm.getOddRowStyle());
+        visitAttribute("even-row-style", modelForm.getEvenRowStyle());
+        visitAttribute("default-table-style", modelForm.getDefaultTableStyle());
+        visitAttribute("header-row-style", modelForm.getHeaderRowStyle());
+        visitAttribute("default-title-style", modelForm.getDefaultTitleStyle());
+        visitAttribute("default-widget-style", modelForm.getDefaultWidgetStyle());
+        visitAttribute("default-tooltip-style", modelForm.getDefaultTooltipStyle());
+        visitAttribute("item-index-separator", modelForm.getItemIndexSeparator());
+        visitAttribute("separate-columns", modelForm.getSeparateColumns());
+        visitAttribute("group-columns", modelForm.getGroupColumns());
+        visitAttribute("target-type", modelForm.getTargetType());
+        visitAttribute("default-map-name", modelForm.getDefaultMapName());
+        visitAttribute("target-window", modelForm.getTargetWindow());
+        visitAttribute("hide-header", modelForm.getHideHeader());
+        visitAttribute("client-autocomplete-fields", modelForm.getClientAutocompleteFields());
+        visitAttribute("paginate-target", modelForm.getPaginateTarget());
+        visitAttribute("sort-field-parameter-name", modelForm.getSortFieldParameterName());
+        visitAttribute("default-required-field-style", modelForm.getDefaultRequiredFieldStyle());
+        visitAttribute("default-sort-field-style", modelForm.getDefaultSortFieldStyle());
+        visitAttribute("default-sort-field-asc-style", modelForm.getDefaultSortFieldAscStyle());
+        visitAttribute("default-sort-field-desc-style", modelForm.getDefaultSortFieldDescStyle());
+        visitAttribute("paginate-target-anchor", modelForm.getPaginateTargetAnchor());
+        visitAttribute("paginate-index-field", modelForm.getPaginateIndexField());
+        visitAttribute("paginate-size-field", modelForm.getPaginateSizeField());
+        visitAttribute("override-list-size", modelForm.getOverrideListSize());
+        visitAttribute("paginate-first-label", modelForm.getPaginateFirstLabel());
+        visitAttribute("paginate-previous-label", modelForm.getPaginatePreviousLabel());
+        visitAttribute("paginate-next-label", modelForm.getPaginateNextLabel());
+        visitAttribute("paginate-last-label", modelForm.getPaginateLastLabel());
+        visitAttribute("paginate-viewsize-label", modelForm.getPaginateViewSizeLabel());
+        visitAttribute("paginate-style", modelForm.getPaginateStyle());
+        visitAttribute("paginate", modelForm.getPaginate());
+        visitAttribute("skip-start", modelForm.getSkipStart());
+        visitAttribute("skip-end", modelForm.getSkipEnd());
+        visitAttribute("use-row-submit", modelForm.getUseRowSubmit());
+        visitAttribute("row-count", modelForm.getRowCount());
+        visitAttribute("focus-field-name", modelForm.getFocusFieldName());
+        writer.append(">");
+        if (!modelForm.getActions().isEmpty()) {
+            writer.append("<actions>");
+            visitActions(modelForm.getActions());
+            writer.append("</actions>");
+        }
+        if (!modelForm.getRowActions().isEmpty()) {
+            writer.append("<row-actions>");
+            visitActions(modelForm.getRowActions());
+            writer.append("</row-actions>");
+        }
+        for (ModelForm.AltRowStyle rowStyle : modelForm.getAltRowStyles()) {
+            writer.append("<alt-row-style");
+            visitAttribute("use-when", rowStyle.useWhen);
+            visitAttribute("style", rowStyle.style);
+            writer.append("/>");
+        }
+        for (ModelForm.AltTarget target : modelForm.getAltTargets()) {
+            writer.append("<alt-target");
+            visitAttribute("use-when", target.useWhen);
+            visitAttribute("target", target.targetExdr);
+            writer.append("/>");
+        }
+        for (ModelForm.AutoFieldsService service : modelForm.getAutoFieldsServices()) {
+            writer.append("<auto-fields-service");
+            visitAttribute("service-name", service.serviceName);
+            visitAttribute("map-name", service.mapName);
+            visitAttribute("default-field-type", service.defaultFieldType);
+            visitAttribute("default-position", service.defaultPosition);
+            writer.append("/>");
+        }
+        for (ModelForm.AutoFieldsEntity entity : modelForm.getAutoFieldsEntities()) {
+            writer.append("<auto-fields-entity");
+            visitAttribute("entity-name", entity.entityName);
+            visitAttribute("map-name", entity.mapName);
+            visitAttribute("default-field-type", entity.defaultFieldType);
+            visitAttribute("default-position", entity.defaultPosition);
+            writer.append("/>");
+        }
+        for (ModelFormField field : modelForm.getFieldList()) {
+            field.getFieldInfo().accept(fieldVisitor);
+        }
+        visitUpdateAreas(modelForm.getOnPaginateUpdateAreas());
+        visitUpdateAreas(modelForm.getOnSortColumnUpdateAreas());
+        visitUpdateAreas(modelForm.getOnSubmitUpdateAreas());
+    }
+
     private void visitSubWidgets(Collection<? extends ModelWidget> subWidgets) throws Exception {
         for (ModelWidget subWidget : subWidgets) {
             subWidget.accept(this);

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormRenderer.java Thu Feb 26 16:16:11 2015
@@ -44,7 +44,7 @@ import org.ofbiz.entity.util.EntityListI
 import org.ofbiz.widget.WidgetWorker;
 import org.ofbiz.widget.model.AbstractModelAction;
 import org.ofbiz.widget.model.FieldInfo;
-import org.ofbiz.widget.model.ModelForm;
+import org.ofbiz.widget.model.*;
 import org.ofbiz.widget.model.ModelForm.FieldGroup;
 import org.ofbiz.widget.model.ModelForm.FieldGroupBase;
 import org.ofbiz.widget.model.ModelFormField;
@@ -214,7 +214,7 @@ public class FormRenderer {
     }
 
     /**
-     * Renders this form to a String, i.e. in a text format, as defined with the
+     * Renders this form to a writer, as defined with the
      * FormStringRenderer implementation.
      *
      * @param writer The Writer that the form text will be written to
@@ -227,7 +227,7 @@ public class FormRenderer {
     public void render(Appendable writer, Map<String, Object> context)
             throws Exception {
         //  increment the paginator, only for list and multi forms
-        if ("list".equals(modelForm.getType()) || "multi".equals(modelForm.getType())) {
+        if (modelForm instanceof ModelGrid) {
             WidgetWorker.incrementPaginatorNumber(context);
         }
 
@@ -237,8 +237,8 @@ public class FormRenderer {
 
         modelForm.runFormActions(context);
 
-        // if this is a list form, don't useRequestParameters
-        if ("list".equals(modelForm.getType()) || "multi".equals(modelForm.getType())) {
+        // if this is a list form, don't use Request Parameters
+        if (modelForm instanceof ModelGrid) {
             context.put("useRequestParameters", Boolean.FALSE);
         }
 

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/FormStringRenderer.java Thu Feb 26 16:16:11 2015
@@ -25,7 +25,7 @@ import org.ofbiz.widget.model.ModelForm;
 import org.ofbiz.widget.model.ModelFormField;
 
 /**
- * Widget Library - Form String Renderer interface.
+ * Widget Library - Form/Grid renderer.
  */
 public interface FormStringRenderer {
     public void renderDisplayField(Appendable writer, Map<String, Object> context, ModelFormField.DisplayField displayField) throws IOException;

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/html/HtmlScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/html/HtmlScreenRenderer.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/html/HtmlScreenRenderer.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/html/HtmlScreenRenderer.java Thu Feb 26 16:16:11 2015
@@ -28,6 +28,7 @@ import java.util.Map;
 import javax.servlet.ServletContext;
 import javax.servlet.http.HttpServletRequest;
 import javax.servlet.http.HttpServletResponse;
+import javax.xml.parsers.ParserConfigurationException;
 
 import org.ofbiz.base.util.Debug;
 import org.ofbiz.base.util.GeneralException;
@@ -65,6 +66,7 @@ import org.ofbiz.widget.renderer.FormStr
 import org.ofbiz.widget.renderer.MenuStringRenderer;
 import org.ofbiz.widget.renderer.Paginator;
 import org.ofbiz.widget.renderer.ScreenStringRenderer;
+import org.xml.sax.SAXException;
 
 /**
  * Widget Library - HTML Form Renderer implementation
@@ -290,7 +292,12 @@ public class HtmlScreenRenderer extends
     protected void renderScreenletPaginateMenu(Appendable writer, Map<String, Object> context, Form form) throws IOException {
         HttpServletResponse response = (HttpServletResponse) context.get("response");
         HttpServletRequest request = (HttpServletRequest) context.get("request");
-        ModelForm modelForm = form.getModelForm(context);
+        ModelForm modelForm;
+        try {
+            modelForm = form.getModelForm(context);
+        } catch (Exception e) {
+            throw new IOException(e);
+        }
         modelForm.runFormActions(context);
         Paginator.preparePager(modelForm, context);
         String targetService = modelForm.getPaginateTarget(context);

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroFormRenderer.java Thu Feb 26 16:16:11 2015
@@ -81,6 +81,7 @@ import org.ofbiz.widget.model.ModelFormF
 import org.ofbiz.widget.model.ModelFormField.TextareaField;
 import org.ofbiz.widget.model.ModelFormFieldBuilder;
 import org.ofbiz.widget.model.ModelScreenWidget;
+import org.ofbiz.widget.model.ModelSingleForm;
 import org.ofbiz.widget.model.ModelWidget;
 import org.ofbiz.widget.renderer.FormRenderer;
 import org.ofbiz.widget.renderer.FormStringRenderer;
@@ -157,12 +158,6 @@ public final class MacroFormRenderer imp
         return environment;
     }
 
-    private void appendWhitespace(Appendable writer) throws IOException {
-        // appending line ends for now, but this could be replaced with a simple space or something
-        writer.append("\r\n");
-        //writer.append(' ');
-    }
-
     private String encode(String value, ModelFormField modelFormField, Map<String, Object> context) {
         if (UtilValidate.isEmpty(value)) {
             return value;
@@ -1303,7 +1298,11 @@ public final class MacroFormRenderer imp
 
     public void renderFormOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
         this.widgetCommentsEnabled = ModelWidget.widgetBoundaryCommentsEnabled(context);
-        renderBeginningBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        if (modelForm instanceof ModelSingleForm) {
+            renderBeginningBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        } else {
+            renderBeginningBoundaryComment(writer, "Grid Widget - Grid Element", modelForm);
+        }
         String targetType = modelForm.getTargetType();
         String targ = modelForm.getTarget(context, targetType);
         StringBuilder linkUrl = new StringBuilder();
@@ -1378,7 +1377,11 @@ public final class MacroFormRenderer imp
         sr.append(hasRequiredField);
         sr.append("\" />");
         executeMacro(writer, sr.toString());
-        renderEndingBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        if (modelForm instanceof ModelSingleForm) {
+            renderEndingBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        } else {
+            renderEndingBoundaryComment(writer, "Grid Widget - Grid Element", modelForm);
+        }
     }
 
     public void renderMultiFormClose(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
@@ -1408,9 +1411,12 @@ public final class MacroFormRenderer imp
         Appendable postMultiFormWriter = wholeFormContext != null ? (Appendable) wholeFormContext.get("postMultiFormWriter") : null;
         if (postMultiFormWriter != null) {
             writer.append(postMultiFormWriter.toString());
-            appendWhitespace(writer);
         }
-        renderEndingBoundaryComment(writer, "Form Widget - Form Element (Multi)", modelForm);
+        if (modelForm instanceof ModelSingleForm) {
+            renderEndingBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        } else {
+            renderEndingBoundaryComment(writer, "Grid Widget - Grid Element", modelForm);
+        }
     }
 
     public void renderFormatListWrapperOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
@@ -1424,7 +1430,11 @@ public final class MacroFormRenderer imp
         }
         String queryString = UtilHttp.urlEncodeArgs(inputFields);
         context.put("_QBESTRING_", queryString);
-        renderBeginningBoundaryComment(writer, "Form Widget", modelForm);
+        if (modelForm instanceof ModelSingleForm) {
+            renderBeginningBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        } else {
+            renderBeginningBoundaryComment(writer, "Grid Widget - Grid Element", modelForm);
+        }
         if (this.renderPagination) {
             this.renderNextPrev(writer, context, modelForm);
         }
@@ -1477,7 +1487,11 @@ public final class MacroFormRenderer imp
         if (this.renderPagination) {
             this.renderNextPrev(writer, context, modelForm);
         }
-        renderEndingBoundaryComment(writer, "Form Widget - Formal List Wrapper", modelForm);
+        if (modelForm instanceof ModelSingleForm) {
+            renderEndingBoundaryComment(writer, "Form Widget - Form Element", modelForm);
+        } else {
+            renderEndingBoundaryComment(writer, "Grid Widget - Grid Element", modelForm);
+        }
     }
 
     public void renderFormatHeaderRowOpen(Appendable writer, Map<String, Object> context, ModelForm modelForm) throws IOException {
@@ -2918,7 +2932,7 @@ public final class MacroFormRenderer imp
             writer.append(' ');
             makeHyperlinkByType(writer, subHyperlink.getLinkType(), subHyperlink.getStyle(context), subHyperlink.getUrlMode(),
                     subHyperlink.getTarget(context), subHyperlink.getParameterMap(context), subHyperlink.getDescription(context),
-                    subHyperlink.getTargetWindow(context), null, subHyperlink.getModelFormField(), this.request, this.response,
+                    subHyperlink.getTargetWindow(context), "", subHyperlink.getModelFormField(), this.request, this.response,
                     context);
         }
     }

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenRenderer.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenRenderer.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenRenderer.java Thu Feb 26 16:16:11 2015
@@ -684,7 +684,12 @@ public class MacroScreenRenderer impleme
     protected void renderScreenletPaginateMenu(Appendable writer, Map<String, Object> context, ModelScreenWidget.Form form) throws IOException {
         HttpServletResponse response = (HttpServletResponse) context.get("response");
         HttpServletRequest request = (HttpServletRequest) context.get("request");
-        ModelForm modelForm = form.getModelForm(context);
+        ModelForm modelForm;
+        try {
+            modelForm = form.getModelForm(context);
+        } catch (Exception e) {
+            throw new IOException(e);
+        }
         modelForm.runFormActions(context);
         Paginator.preparePager(modelForm, context);
         String targetService = modelForm.getPaginateTarget(context);

Modified: ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java?rev=1662488&r1=1652852&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java (original)
+++ ofbiz/branches/release14.12/framework/widget/src/org/ofbiz/widget/renderer/macro/MacroScreenViewHandler.java Thu Feb 26 16:16:11 2015
@@ -112,12 +112,18 @@ public class MacroScreenViewHandler exte
         }
         ScreenStringRenderer screenStringRenderer = new MacroScreenRenderer(UtilProperties.getPropertyValue("widget", getName()
                 + ".name"), screenMacroLibraryPath);
-        FormStringRenderer formStringRenderer = new MacroFormRenderer(formMacroLibraryPath, request, response);
-        context.put("formStringRenderer", formStringRenderer);
-        TreeStringRenderer treeStringRenderer = new MacroTreeRenderer(treeMacroLibraryPath, writer);
-        context.put("treeStringRenderer", treeStringRenderer);
-        MenuStringRenderer menuStringRenderer = new MacroMenuRenderer(menuMacroLibraryPath, request, response);
-        context.put("menuStringRenderer", menuStringRenderer);
+        if (!formMacroLibraryPath.isEmpty()) {
+            FormStringRenderer formStringRenderer = new MacroFormRenderer(formMacroLibraryPath, request, response);
+            context.put("formStringRenderer", formStringRenderer);
+        }
+        if (!treeMacroLibraryPath.isEmpty()) {
+            TreeStringRenderer treeStringRenderer = new MacroTreeRenderer(treeMacroLibraryPath, writer);
+            context.put("treeStringRenderer", treeStringRenderer);
+        }
+        if (!menuMacroLibraryPath.isEmpty()) {
+            MenuStringRenderer menuStringRenderer = new MacroMenuRenderer(menuMacroLibraryPath, request, response);
+            context.put("menuStringRenderer", menuStringRenderer);
+        }
         return screenStringRenderer;
     }
 

Modified: ofbiz/branches/release14.12/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/branches/release14.12/framework/widget/templates/htmlFormMacroLibrary.ftl Thu Feb 26 16:16:11 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/release14.12/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java (original)
+++ ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/BirtFactory.java Thu Feb 26 16:16:11 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/release14.12/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java (original)
+++ ofbiz/branches/release14.12/specialpurpose/birt/src/org/ofbiz/birt/email/BirtEmailServices.java Thu Feb 26 16:16:11 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/release14.12/specialpurpose/birt/webapp/birt/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/birt/webapp/birt/WEB-INF/web.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/birt/webapp/birt/WEB-INF/web.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/birt/webapp/birt/WEB-INF/web.xml Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Mrv.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/content/Search.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentAddPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ContentPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/CurrentValPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/EditAddPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/FormPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/HtmlAreaPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/NodeTrailPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/OwnerContentPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PermPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/PubInit.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/RespondPermAndPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ResponsePrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/forum/ViewPrep.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/actions/includes/MruAdd.groovy Thu Feb 26 16:16:11 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/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/ecommerce/webapp/ecommerce/WEB-INF/controller.xml Thu Feb 26 16:16:11 2015
@@ -33,9 +33,9 @@ under the License.
 
     <handler name="jsp" type="view" class="org.ofbiz.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/release14.12/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java (original)
+++ ofbiz/branches/release14.12/specialpurpose/example/src/org/ofbiz/example/ExamplePrintServices.java Thu Feb 26 16:16:11 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 {

Modified: ofbiz/branches/release14.12/specialpurpose/googlecheckout/script/org/ofbiz/googleCheckout/PrepareXMLTemplate.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/googlecheckout/script/org/ofbiz/googleCheckout/PrepareXMLTemplate.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/googlecheckout/script/org/ofbiz/googleCheckout/PrepareXMLTemplate.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/googlecheckout/script/org/ofbiz/googleCheckout/PrepareXMLTemplate.xml Thu Feb 26 16:16:11 2015
@@ -102,18 +102,18 @@
         <set field="xscreenContext.sendInitialAuthDetails" from-field="sendInitialAuthDetails"/>
         <set field="xscreenContext.shoppingCart" from-field="parameters.shoppingCart"/>
         <!-- create string renderer -->
-        <create-object class-name="org.ofbiz.widget.html.HtmlScreenRenderer" field="xhtmlStringRenderer"></create-object>
+        <create-object class-name="org.ofbiz.widget.renderer.html.HtmlScreenRenderer" field="xhtmlStringRenderer"></create-object>
         <!-- create screen renderer -->
-        <create-object class-name="org.ofbiz.widget.screen.ScreenRenderer" field="screens">
+        <create-object class-name="org.ofbiz.widget.renderer.ScreenRenderer" field="screens">
             <field field="XMLWriter" type="java.lang.Appendable"/>
             <field field="xscreenContext" type="org.ofbiz.base.util.collections.MapStack"/>
-            <field field="xhtmlStringRenderer" type="org.ofbiz.widget.screen.ScreenStringRenderer"/>
+            <field field="xhtmlStringRenderer" type="org.ofbiz.widget.renderer.ScreenStringRenderer"/>
         </create-object>
         <set field="xscreenContext.screens" from-field="screens"/>
-        <create-object class-name="org.ofbiz.widget.screen.ScreenRenderer" field="xscreens">
+        <create-object class-name="org.ofbiz.widget.renderer.ScreenRenderer" field="xscreens">
             <field field="XMLWriter" type="java.lang.Appendable"/>
             <field field="xscreenContext" type="org.ofbiz.base.util.collections.MapStack"/>
-            <field field="xhtmlStringRenderer" type="org.ofbiz.widget.screen.ScreenStringRenderer"/>
+            <field field="xhtmlStringRenderer" type="org.ofbiz.widget.renderer.ScreenStringRenderer"/>
         </create-object>
         <!-- get uri -->
         <property-to-field resource="googleCheckout" property="xmlTemplateUri" field="screenUri"/>

Modified: ofbiz/branches/release14.12/specialpurpose/googlecheckout/webapp/googlecheckout/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/googlecheckout/webapp/googlecheckout/WEB-INF/web.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/googlecheckout/webapp/googlecheckout/WEB-INF/web.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/googlecheckout/webapp/googlecheckout/WEB-INF/web.xml Thu Feb 26 16:16:11 2015
@@ -46,7 +46,7 @@
     <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/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java (original)
+++ ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisServices.java Thu Feb 26 16:16:11 2015
@@ -63,9 +63,9 @@ import org.ofbiz.service.DispatchContext
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.widget.fo.FoFormRenderer;
-import org.ofbiz.widget.html.HtmlScreenRenderer;
-import org.ofbiz.widget.screen.ScreenRenderer;
+import org.ofbiz.widget.renderer.ScreenRenderer;
+import org.ofbiz.widget.renderer.fo.FoFormRenderer;
+import org.ofbiz.widget.renderer.html.HtmlScreenRenderer;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 import org.xml.sax.SAXException;

Modified: ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java (original)
+++ ofbiz/branches/release14.12/specialpurpose/oagis/src/org/ofbiz/oagis/OagisShipmentServices.java Thu Feb 26 16:16:11 2015
@@ -61,9 +61,9 @@ import org.ofbiz.service.DispatchContext
 import org.ofbiz.service.GenericServiceException;
 import org.ofbiz.service.LocalDispatcher;
 import org.ofbiz.service.ServiceUtil;
-import org.ofbiz.widget.fo.FoFormRenderer;
-import org.ofbiz.widget.html.HtmlScreenRenderer;
-import org.ofbiz.widget.screen.ScreenRenderer;
+import org.ofbiz.widget.renderer.ScreenRenderer;
+import org.ofbiz.widget.renderer.fo.FoFormRenderer;
+import org.ofbiz.widget.renderer.html.HtmlScreenRenderer;
 import org.w3c.dom.Document;
 import org.w3c.dom.Element;
 

Modified: ofbiz/branches/release14.12/specialpurpose/scrum/webapp/demotest/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/scrum/webapp/demotest/WEB-INF/web.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/scrum/webapp/demotest/WEB-INF/web.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/scrum/webapp/demotest/WEB-INF/web.xml Thu Feb 26 16:16:11 2015
@@ -46,7 +46,7 @@ under the License.
         <param-name>widgetVerbose</param-name>
         <param-value>false</param-value>
         <description>Enable widget boundary comments. See
-            org.ofbiz.widget.ModelWidget.widgetBoundaryCommentsEnabled().
+            org.ofbiz.widget.model.ModelWidget.widgetBoundaryCommentsEnabled().
         </description>
     </context-param>
     <context-param>

Modified: ofbiz/branches/release14.12/specialpurpose/scrum/webapp/scrum/WEB-INF/web.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/scrum/webapp/scrum/WEB-INF/web.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/scrum/webapp/scrum/WEB-INF/web.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/scrum/webapp/scrum/WEB-INF/web.xml Thu Feb 26 16:16:11 2015
@@ -38,7 +38,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/release14.12/specialpurpose/webpos/webapp/webpos/WEB-INF/controller.xml
URL: http://svn.apache.org/viewvc/ofbiz/branches/release14.12/specialpurpose/webpos/webapp/webpos/WEB-INF/controller.xml?rev=1662488&r1=1662487&r2=1662488&view=diff
==============================================================================
--- ofbiz/branches/release14.12/specialpurpose/webpos/webapp/webpos/WEB-INF/controller.xml (original)
+++ ofbiz/branches/release14.12/specialpurpose/webpos/webapp/webpos/WEB-INF/controller.xml Thu Feb 26 16:16:11 2015
@@ -28,7 +28,7 @@
     <handler name="simple" type="request" class="org.ofbiz.webapp.event.SimpleEventHandler"/>
     <handler name="groovy" type="request" class="org.ofbiz.webapp.event.GroovyEventHandler"/>    
     <handler name="jsp" type="view" class="org.ofbiz.webapp.view.JspViewHandler"/>
-    <handler name="screen" type="view" class="org.ofbiz.widget.screen.MacroScreenViewHandler"/>
+    <handler name="screen" type="view" class="org.ofbiz.widget.renderer.macro.MacroScreenViewHandler"/>
     
     <!-- Events run from here for the first hit in a visit -->
     <firstvisit>