svn commit: r1639927 [1/3] - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: artifact/ fo/ form/ html/ text/ xml/

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

svn commit: r1639927 [1/3] - in /ofbiz/trunk/framework/widget/src/org/ofbiz/widget: artifact/ fo/ form/ html/ text/ xml/

adrianc
Author: adrianc
Date: Sat Nov 15 21:33:51 2014
New Revision: 1639927

URL: http://svn.apache.org/r1639927
Log:
ModelFormField.java refactor:

1. Extract FieldInfo class to a separate file.
2. Make FieldInfo thread-safe.
3. Modify FieldInfo subclasses so they include a thread-safe copy method.

This commit fixes a major flaw in the original design. When a widget form is extended, the original design would copy the child FieldInfo state to the parent FieldInfo - so the parent FieldInfo referenced the child form instead of the parent form. With this commit, parent FieldInfo instances  are copied as new instances to the child form - so the parent FieldInfo instances remain unchanged.

Added:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FieldInfo.java
Modified:
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/fo/FoFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/html/HtmlFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/text/TextFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/xml/XmlFormRenderer.java

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java?rev=1639927&r1=1639926&r2=1639927&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/artifact/ArtifactInfoGatherer.java Sat Nov 15 21:33:51 2014
@@ -37,6 +37,7 @@ import org.ofbiz.widget.ModelWidgetActio
 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;
@@ -51,7 +52,7 @@ import org.ofbiz.widget.form.ModelFormFi
 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.FieldInfo;
+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;
@@ -245,8 +246,8 @@ public final class ArtifactInfoGatherer
             if (modelFormField.getFieldInfo() instanceof ModelFormField.DisplayEntityField) {
                 infoContext.addEntityName(((ModelFormField.DisplayEntityField) modelFormField.getFieldInfo()).getEntityName());
             }
-            if (modelFormField.getFieldInfo() instanceof ModelFormField.FieldInfoWithOptions) {
-                for (ModelFormField.OptionSource optionSource : ((ModelFormField.FieldInfoWithOptions) modelFormField
+            if (modelFormField.getFieldInfo() instanceof FieldInfoWithOptions) {
+                for (ModelFormField.OptionSource optionSource : ((FieldInfoWithOptions) modelFormField
                         .getFieldInfo()).getOptionSources()) {
                     if (optionSource instanceof ModelFormField.EntityOptions) {
                         infoContext.addEntityName(((ModelFormField.EntityOptions) optionSource).getEntityName());

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/fo/FoFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/fo/FoFormRenderer.java?rev=1639927&r1=1639926&r2=1639927&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/fo/FoFormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/fo/FoFormRenderer.java Sat Nov 15 21:33:51 2014
@@ -29,6 +29,7 @@ import org.ofbiz.base.util.UtilFormatOut
 import org.ofbiz.base.util.UtilValidate;
 import org.ofbiz.widget.ModelWidget;
 import org.ofbiz.widget.WidgetWorker;
+import org.ofbiz.widget.form.FieldInfo;
 import org.ofbiz.widget.form.FormStringRenderer;
 import org.ofbiz.widget.form.ModelForm;
 import org.ofbiz.widget.form.ModelFormField;
@@ -38,6 +39,7 @@ import org.ofbiz.widget.form.ModelFormFi
 import org.ofbiz.widget.form.ModelFormField.DateTimeField;
 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;
@@ -124,7 +126,7 @@ public class FoFormRenderer extends Html
             if (UtilValidate.isNotEmpty(explicitDescription)) {
                 this.makeBlockString(writer, modelFormField.getWidgetStyle(), explicitDescription);
             } else {
-                this.makeBlockString(writer, modelFormField.getWidgetStyle(), ModelFormField.FieldInfoWithOptions.getDescriptionForOptionKey(currentValue, allOptionValues));
+                this.makeBlockString(writer, modelFormField.getWidgetStyle(), FieldInfoWithOptions.getDescriptionForOptionKey(currentValue, allOptionValues));
             }
         } else {
             boolean optionSelected = false;
@@ -196,7 +198,7 @@ public class FoFormRenderer extends Html
         List<ModelFormField> childFieldList = modelForm.getFieldList();
         for (ModelFormField childField : childFieldList) {
             int childFieldType = childField.getFieldInfo().getFieldType();
-            if (childFieldType == ModelFormField.FieldInfo.HIDDEN || childFieldType == ModelFormField.FieldInfo.IGNORED) {
+            if (childFieldType == FieldInfo.HIDDEN || childFieldType == FieldInfo.IGNORED) {
                 continue;
             }
             writer.append("<fo:table-column");

Added: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FieldInfo.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FieldInfo.java?rev=1639927&view=auto
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FieldInfo.java (added)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FieldInfo.java Sat Nov 15 21:33:51 2014
@@ -0,0 +1,135 @@
+/*******************************************************************************
+ * 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.form;
+
+import java.io.IOException;
+import java.util.Collections;
+import java.util.HashMap;
+import java.util.Map;
+
+import org.ofbiz.widget.ModelFieldVisitor;
+import org.w3c.dom.Element;
+
+/**
+ * Form field abstract class.
+ */
+public abstract class FieldInfo {
+
+    public static final String module = FieldInfo.class.getName();
+    public static final int DISPLAY = 1;
+    public static final int HYPERLINK = 2;
+    public static final int TEXT = 3;
+    public static final int TEXTAREA = 4;
+    public static final int DATE_TIME = 5;
+    public static final int DROP_DOWN = 6;
+    public static final int CHECK = 7;
+    public static final int RADIO = 8;
+    public static final int SUBMIT = 9;
+    public static final int RESET = 10;
+    public static final int HIDDEN = 11;
+    public static final int IGNORED = 12;
+    public static final int TEXTQBE = 13;
+    public static final int DATEQBE = 14;
+    public static final int RANGEQBE = 15;
+    public static final int LOOKUP = 16;
+    public static final int FILE = 17;
+    public static final int PASSWORD = 18;
+    public static final int IMAGE = 19;
+    public static final int DISPLAY_ENTITY = 20;
+    // the numbering here represents the priority of the source;
+    //when setting a new fieldInfo on a modelFormField it will only set
+    //the new one if the fieldSource is less than or equal to the existing
+    //fieldSource, which should always be passed as one of the following...
+    public static final int SOURCE_EXPLICIT = 1;
+    public static final int SOURCE_AUTO_ENTITY = 2;
+    public static final int SOURCE_AUTO_SERVICE = 3;
+    private static Map<String, Integer> fieldTypeByName = createFieldTypeMap();
+
+    private static Map<String, Integer> createFieldTypeMap() {
+        Map<String, Integer> fieldTypeByName = new HashMap<String, Integer>();
+        fieldTypeByName.put("display", Integer.valueOf(1));
+        fieldTypeByName.put("hyperlink", Integer.valueOf(2));
+        fieldTypeByName.put("text", Integer.valueOf(3));
+        fieldTypeByName.put("textarea", Integer.valueOf(4));
+        fieldTypeByName.put("date-time", Integer.valueOf(5));
+        fieldTypeByName.put("drop-down", Integer.valueOf(6));
+        fieldTypeByName.put("check", Integer.valueOf(7));
+        fieldTypeByName.put("radio", Integer.valueOf(8));
+        fieldTypeByName.put("submit", Integer.valueOf(9));
+        fieldTypeByName.put("reset", Integer.valueOf(10));
+        fieldTypeByName.put("hidden", Integer.valueOf(11));
+        fieldTypeByName.put("ignored", Integer.valueOf(12));
+        fieldTypeByName.put("text-find", Integer.valueOf(13));
+        fieldTypeByName.put("date-find", Integer.valueOf(14));
+        fieldTypeByName.put("range-find", Integer.valueOf(15));
+        fieldTypeByName.put("lookup", Integer.valueOf(16));
+        fieldTypeByName.put("file", Integer.valueOf(17));
+        fieldTypeByName.put("password", Integer.valueOf(18));
+        fieldTypeByName.put("image", Integer.valueOf(19));
+        fieldTypeByName.put("display-entity", Integer.valueOf(20));
+        fieldTypeByName.put("container", Integer.valueOf(21));
+        return Collections.unmodifiableMap(fieldTypeByName);
+    }
+
+    public static int findFieldTypeFromName(String name) {
+        Integer fieldTypeInt = FieldInfo.fieldTypeByName.get(name);
+        if (fieldTypeInt != null) {
+            return fieldTypeInt;
+        } else {
+            throw new IllegalArgumentException("Could not get fieldType for field type name " + name);
+        }
+    }
+
+    private final int fieldType;
+    private final int fieldSource;
+    private final ModelFormField modelFormField;
+
+    /** XML Constructor */
+    protected FieldInfo(Element element, ModelFormField modelFormField) {
+        this.fieldSource = FieldInfo.SOURCE_EXPLICIT;
+        this.fieldType = findFieldTypeFromName(element.getTagName());
+        this.modelFormField = modelFormField;
+    }
+
+    /** Value Constructor */
+    protected FieldInfo(int fieldSource, int fieldType, ModelFormField modelFormField) {
+        this.fieldType = fieldType;
+        this.fieldSource = fieldSource;
+        this.modelFormField = modelFormField;
+    }
+
+    public abstract void accept(ModelFieldVisitor visitor);
+
+    public abstract FieldInfo copy(ModelFormField modelFormField);
+
+    public int getFieldSource() {
+        return fieldSource;
+    }
+
+    public int getFieldType() {
+        return fieldType;
+    }
+
+    public ModelFormField getModelFormField() {
+        return modelFormField;
+    }
+
+    public abstract void renderFieldString(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer)
+            throws IOException;
+}

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java?rev=1639927&r1=1639926&r2=1639927&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/FormRenderer.java Sat Nov 15 21:33:51 2014
@@ -122,12 +122,12 @@ public class FormRenderer {
             if (position != -1 && modelFormField.getPosition() != position) {
                 continue;
             }
-            ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+            FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
             // render hidden/ignored field widget
             switch (fieldInfo.getFieldType()) {
-            case ModelFormField.FieldInfo.HIDDEN:
-            case ModelFormField.FieldInfo.IGNORED:
+            case FieldInfo.HIDDEN:
+            case FieldInfo.IGNORED:
                 if (modelFormField.shouldUse(context)) {
                     hiddenIgnoredFieldList.add(modelFormField);
                     if (alreadyRendered != null)
@@ -135,8 +135,8 @@ public class FormRenderer {
                 }
                 break;
 
-            case ModelFormField.FieldInfo.DISPLAY:
-            case ModelFormField.FieldInfo.DISPLAY_ENTITY:
+            case FieldInfo.DISPLAY:
+            case FieldInfo.DISPLAY_ENTITY:
                 ModelFormField.DisplayField displayField = (ModelFormField.DisplayField) fieldInfo;
                 if (displayField.getAlsoHidden() && modelFormField.shouldUse(context)) {
                     hiddenIgnoredFieldList.add(modelFormField);
@@ -144,7 +144,7 @@ public class FormRenderer {
                 }
                 break;
 
-            case ModelFormField.FieldInfo.HYPERLINK:
+            case FieldInfo.HYPERLINK:
                 ModelFormField.HyperlinkField hyperlinkField = (ModelFormField.HyperlinkField) fieldInfo;
                 if (hyperlinkField.getAlsoHidden() && modelFormField.shouldUse(context)) {
                     hiddenIgnoredFieldList.add(modelFormField);
@@ -236,7 +236,7 @@ public class FormRenderer {
             if (curPos > positions) {
                 positions = curPos;
             }
-            ModelFormField.FieldInfo currentFieldInfo = modelFormField.getFieldInfo();
+            FieldInfo currentFieldInfo = modelFormField.getFieldInfo();
             if (currentFieldInfo != null) {
                 ModelFormField fieldInfoFormField = currentFieldInfo.getModelFormField();
                 if (fieldInfoFormField != null) {
@@ -317,7 +317,7 @@ public class FormRenderer {
             // will be rendered as columns after it
             boolean inputFieldFound = false;
             for (ModelFormField modelFormField : mainFieldList) {
-                ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
                 // if the field's title is explicitly set to "" (title="") then
                 // the header is not created for it; this is useful for position list
@@ -328,14 +328,14 @@ public class FormRenderer {
                     continue;
                 }
                 // don't do any header for hidden or ignored fields
-                if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                        || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                        || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                     continue;
                 }
 
-                if (fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY
-                        && fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY_ENTITY
-                        && fieldInfo.getFieldType() != ModelFormField.FieldInfo.HYPERLINK) {
+                if (fieldInfo.getFieldType() != FieldInfo.DISPLAY
+                        && fieldInfo.getFieldType() != FieldInfo.DISPLAY_ENTITY
+                        && fieldInfo.getFieldType() != FieldInfo.HYPERLINK) {
                     inputFieldFound = true;
                     continue;
                 }
@@ -351,18 +351,18 @@ public class FormRenderer {
 
             // prepare the combined title for the column that will contain the form/input fields
             for (ModelFormField modelFormField : mainFieldList) {
-                ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
                 // don't do any header for hidden or ignored fields
-                if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                        || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                        || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                     continue;
                 }
 
                 // skip all of the display/hyperlink fields
-                if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.DISPLAY
-                        || fieldInfo.getFieldType() == ModelFormField.FieldInfo.DISPLAY_ENTITY
-                        || fieldInfo.getFieldType() == ModelFormField.FieldInfo.HYPERLINK) {
+                if (fieldInfo.getFieldType() == FieldInfo.DISPLAY
+                        || fieldInfo.getFieldType() == FieldInfo.DISPLAY_ENTITY
+                        || fieldInfo.getFieldType() == FieldInfo.HYPERLINK) {
                     continue;
                 }
 
@@ -461,9 +461,9 @@ public class FormRenderer {
                         ModelFormField modelFormField = mainFieldListIter.next();
 
                         // don't do any header for hidden or ignored fields
-                        ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
-                        if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                        FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                        if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                                || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                             continue;
                         }
 
@@ -489,18 +489,18 @@ public class FormRenderer {
     private void renderHiddenIgnoredFields(Appendable writer, Map<String, Object> context, FormStringRenderer formStringRenderer,
             List<ModelFormField> fieldList) throws IOException {
         for (ModelFormField modelFormField : fieldList) {
-            ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+            FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
             // render hidden/ignored field widget
             switch (fieldInfo.getFieldType()) {
-            case ModelFormField.FieldInfo.HIDDEN:
-            case ModelFormField.FieldInfo.IGNORED:
+            case FieldInfo.HIDDEN:
+            case FieldInfo.IGNORED:
                 modelFormField.renderFieldString(writer, context, formStringRenderer);
                 break;
 
-            case ModelFormField.FieldInfo.DISPLAY:
-            case ModelFormField.FieldInfo.DISPLAY_ENTITY:
-            case ModelFormField.FieldInfo.HYPERLINK:
+            case FieldInfo.DISPLAY:
+            case FieldInfo.DISPLAY_ENTITY:
+            case FieldInfo.HYPERLINK:
                 formStringRenderer.renderHiddenField(writer, context, modelFormField, modelFormField.getEntry(context));
                 break;
             }
@@ -631,9 +631,9 @@ public class FormRenderer {
                 ModelFormField modelFormField = mainFieldIter.next();
 
                 // don't do any header for hidden or ignored fields inside this loop
-                ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
-                if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                        || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                        || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                     continue;
                 }
 
@@ -795,17 +795,17 @@ public class FormRenderer {
                     int currentPosition = 1;
                     while (innerDisplayHyperlinkFieldIter.hasNext()) {
                         ModelFormField modelFormField = innerDisplayHyperlinkFieldIter.next();
-                        ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                        FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
                         // don't do any header for hidden or ignored fields
-                        if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                        if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                                || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                             continue;
                         }
 
-                        if (fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY
-                                && fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY_ENTITY
-                                && fieldInfo.getFieldType() != ModelFormField.FieldInfo.HYPERLINK) {
+                        if (fieldInfo.getFieldType() != FieldInfo.DISPLAY
+                                && fieldInfo.getFieldType() != FieldInfo.DISPLAY_ENTITY
+                                && fieldInfo.getFieldType() != FieldInfo.HYPERLINK) {
                             // okay, now do the form cell
                             break;
                         }
@@ -821,18 +821,18 @@ public class FormRenderer {
                     Iterator<ModelFormField> innerFormFieldIter = fieldListByPosition.iterator();
                     while (innerFormFieldIter.hasNext()) {
                         ModelFormField modelFormField = innerFormFieldIter.next();
-                        ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                        FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
                         // don't do any header for hidden or ignored fields
-                        if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                        if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                                || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                             continue;
                         }
 
                         // skip all of the display/hyperlink fields
-                        if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.DISPLAY
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.DISPLAY_ENTITY
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.HYPERLINK) {
+                        if (fieldInfo.getFieldType() == FieldInfo.DISPLAY
+                                || fieldInfo.getFieldType() == FieldInfo.DISPLAY_ENTITY
+                                || fieldInfo.getFieldType() == FieldInfo.HYPERLINK) {
                             continue;
                         }
 
@@ -846,18 +846,18 @@ public class FormRenderer {
                     }
                     while (innerDisplayHyperlinkFieldIter.hasNext()) {
                         ModelFormField modelFormField = innerDisplayHyperlinkFieldIter.next();
-                        ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+                        FieldInfo fieldInfo = modelFormField.getFieldInfo();
 
                         // don't do any header for hidden or ignored fields
-                        if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                                || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+                        if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                                || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                             continue;
                         }
 
                         // skip all non-display and non-hyperlink fields
-                        if (fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY
-                                && fieldInfo.getFieldType() != ModelFormField.FieldInfo.DISPLAY_ENTITY
-                                && fieldInfo.getFieldType() != ModelFormField.FieldInfo.HYPERLINK) {
+                        if (fieldInfo.getFieldType() != FieldInfo.DISPLAY
+                                && fieldInfo.getFieldType() != FieldInfo.DISPLAY_ENTITY
+                                && fieldInfo.getFieldType() != FieldInfo.HYPERLINK) {
                             continue;
                         }
 
@@ -1087,9 +1087,9 @@ public class FormRenderer {
                 }
             }
 
-            ModelFormField.FieldInfo fieldInfo = currentFormField.getFieldInfo();
-            if (fieldInfo.getFieldType() == ModelFormField.FieldInfo.HIDDEN
-                    || fieldInfo.getFieldType() == ModelFormField.FieldInfo.IGNORED) {
+            FieldInfo fieldInfo = currentFormField.getFieldInfo();
+            if (fieldInfo.getFieldType() == FieldInfo.HIDDEN
+                    || fieldInfo.getFieldType() == FieldInfo.IGNORED) {
                 continue;
             }
             if (alreadyRendered.contains(currentFormField.getName())) {
@@ -1158,8 +1158,8 @@ public class FormRenderer {
             formStringRenderer.renderFormatFieldRowTitleCellOpen(writer, context, currentFormField);
 
             // render title (unless this is a submit or a reset field)
-            if (fieldInfo.getFieldType() != ModelFormField.FieldInfo.SUBMIT
-                    && fieldInfo.getFieldType() != ModelFormField.FieldInfo.RESET) {
+            if (fieldInfo.getFieldType() != FieldInfo.SUBMIT
+                    && fieldInfo.getFieldType() != FieldInfo.RESET) {
                 formStringRenderer.renderFieldTitle(writer, context, currentFormField);
             } else {
                 formStringRenderer.renderFormatEmptySpace(writer, context, modelForm);

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java?rev=1639927&r1=1639926&r2=1639927&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java Sat Nov 15 21:33:51 2014
@@ -60,6 +60,7 @@ import org.ofbiz.widget.form.ModelFormFi
 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;
@@ -779,7 +780,7 @@ public final class MacroFormRenderer imp
         }
         explicitDescription = (currentDescription != null ? currentDescription : dropDownField.getCurrentDescription(context));
         if (UtilValidate.isEmpty(explicitDescription)) {
-            explicitDescription = (ModelFormField.FieldInfoWithOptions.getDescriptionForOptionKey(currentValue, allOptionValues));
+            explicitDescription = (FieldInfoWithOptions.getDescriptionForOptionKey(currentValue, allOptionValues));
         }
         if (textSize > 0 && UtilValidate.isNotEmpty(explicitDescription) && explicitDescription.length() > textSize) {
             explicitDescription = explicitDescription.substring(0, textSize - 8) + "..." + explicitDescription.substring(explicitDescription.length() - 5);
@@ -1418,7 +1419,7 @@ public final class MacroFormRenderer imp
         List<String> fieldNameList = new LinkedList<String>();
         for (ModelFormField childField : childFieldList) {
             int childFieldType = childField.getFieldInfo().getFieldType();
-            if (childFieldType == ModelFormField.FieldInfo.HIDDEN || childFieldType == ModelFormField.FieldInfo.IGNORED) {
+            if (childFieldType == FieldInfo.HIDDEN || childFieldType == FieldInfo.IGNORED) {
                 continue;
             }
             String areaStyle = childField.getTitleAreaStyle();

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java?rev=1639927&r1=1639926&r2=1639927&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelForm.java Sat Nov 15 21:33:51 2014
@@ -749,7 +749,7 @@ public class ModelForm extends ModelWidg
         String thisType = this.getType();
         for (Element fieldElement : UtilXml.childElementList(formElement, "field")) {
             ModelFormField modelFormField = new ModelFormField(fieldElement, this, entityModelReader, dispatchContext);
-            ModelFormField.FieldInfo fieldInfo = modelFormField.getFieldInfo();
+            FieldInfo fieldInfo = modelFormField.getFieldInfo();
             if (thisType.equals("multi") && fieldInfo instanceof ModelFormField.SubmitField) {
                 multiSubmitFields.add(modelFormField);
             } else {