svn commit: r908894 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelFormField.java templates/htmlFormMacroLibrary.ftl

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

svn commit: r908894 - in /ofbiz/trunk/framework/widget: dtd/widget-form.xsd src/org/ofbiz/widget/form/MacroFormRenderer.java src/org/ofbiz/widget/form/ModelFormField.java templates/htmlFormMacroLibrary.ftl

erwan
Author: erwan
Date: Thu Feb 11 09:27:01 2010
New Revision: 908894

URL: http://svn.apache.org/viewvc?rev=908894&view=rev
Log:
Adding a new field type in forms' display so we can display an image and keep a list's consistency

Example :
<field name="displayProduct" use-when="!&quot;foo&quot;.equals(productId)">
  <hyperlink target="EditProduct" image-location="/images/next.gif" also-hidden="false"/>
</field>
<field name="displayProduct" use-when="&quot;Cap&quot;.equals(productId)">                                                                                                                                                                        
  <display type="image" image-location="/images/ofbiz.ico"/>
</field>

Modified:
    ofbiz/trunk/framework/widget/dtd/widget-form.xsd
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl

Modified: ofbiz/trunk/framework/widget/dtd/widget-form.xsd
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/dtd/widget-form.xsd?rev=908894&r1=908893&r2=908894&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/dtd/widget-form.xsd (original)
+++ ofbiz/trunk/framework/widget/dtd/widget-form.xsd Thu Feb 11 09:27:01 2010
@@ -664,12 +664,18 @@
                     <xs:enumeration value="date-time">
                         <xs:annotation><xs:documentation>Display only the date and hours:minutes part of a timestamp field</xs:documentation></xs:annotation>
                     </xs:enumeration>
+                    <xs:enumeration value="image">
+                        <xs:annotation><xs:documentation>Display the image specified in image-location</xs:documentation></xs:annotation>
+                    </xs:enumeration>
                 </xs:restriction>
             </xs:simpleType>
         </xs:attribute>
         <xs:attribute type="xs:string" name="currency">
             <xs:annotation><xs:documentation>Specifies the currency uom ID used to format context value, should generally use the ${} syntax to retrieve value.</xs:documentation></xs:annotation>
         </xs:attribute>
+        <xs:attribute type="xs:string" name="image-location">
+            <xs:annotation><xs:documentation>Specifies the image to display.</xs:documentation></xs:annotation>
+        </xs:attribute>
     </xs:attributeGroup>
     <xs:element name="display-entity" substitutionGroup="AllFields">
         <xs:annotation><xs:documentation>This is just like display but looks up a description using the Entity Engine; note that if also-hidden is true then it uses the key as the value, not the shown description.</xs:documentation></xs:annotation>

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=908894&r1=908893&r2=908894&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 Thu Feb 11 09:27:01 2010
@@ -180,6 +180,8 @@
             idName += "_" + modelForm.getRowCount();
         }
         String description = displayField.getDescription(context);
+        String type = displayField.getType();
+        String imageLocation = displayField.getImageLocation();
         description = encode(description, modelFormField, context);
 
         ModelFormField.InPlaceEditor inPlaceEditor = displayField.getInPlaceEditor();
@@ -187,7 +189,11 @@
 
         StringWriter sr = new StringWriter();
         sr.append("<@renderDisplayField ");
-        sr.append("idName=\"");
+        sr.append("type=\"");
+        sr.append(type);
+        sr.append("\" imageLocation=\"");
+        sr.append(imageLocation);
+        sr.append("\" idName=\"");
         sr.append(idName);
         sr.append("\" description=\"");
         sr.append(description);

Modified: ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java?rev=908894&r1=908893&r2=908894&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java (original)
+++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/ModelFormField.java Thu Feb 11 09:27:01 2010
@@ -2035,6 +2035,7 @@
         protected boolean alsoHidden = true;
         protected FlexibleStringExpander description;
         protected String type;  // matches type of field, currently text or currency
+        protected String imageLocation;
         protected FlexibleStringExpander currency;
         protected FlexibleStringExpander date;
         protected InPlaceEditor inPlaceEditor;
@@ -2054,6 +2055,7 @@
         public DisplayField(Element element, ModelFormField modelFormField) {
             super(element, modelFormField);
             this.type = element.getAttribute("type");
+            this.imageLocation = element.getAttribute("image-location");
             this.setCurrency(element.getAttribute("currency"));
             this.setDescription(element.getAttribute("description"));
             this.setDate(element.getAttribute("date"));
@@ -2073,6 +2075,13 @@
         public boolean getAlsoHidden() {
             return alsoHidden;
         }
+        public String getType(){
+         return this.type;
+        }
+
+        public String getImageLocation(){
+         return this.imageLocation;
+        }
 
         public String getDescription(Map<String, Object> context) {
             String retVal = null;

Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=908894&r1=908893&r2=908894&view=diff
==============================================================================
--- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
+++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Thu Feb 11 09:27:01 2010
@@ -23,22 +23,27 @@
     </#if>
 </#macro>
 
-<#macro renderDisplayField idName description class alert inPlaceEditorUrl="" inPlaceEditorParams="">
-    <#if inPlaceEditorUrl?has_content || class?has_content || alert=="true">
-        <span <#if idName?has_content>id="${idName}"</#if> <@renderClass class alert />><#t/>
-    </#if>
-    <#if description?has_content>
-        ${description?replace("\n", "<br/>")}<#t/>
+<#macro renderDisplayField type imageLocation idName description class alert inPlaceEditorUrl="" inPlaceEditorParams="">
+    <#if type?has_content && type=="image">
+        <img src="${imageLocation}"><#lt/>
     <#else>
-        &nbsp;<#t/>
-    </#if>
-    <#if inPlaceEditorUrl?has_content || class?has_content || alert=="true">
-        </span><#lt/>
-    </#if>
-    <#if inPlaceEditorUrl?has_content && idName?has_content>
-        <script language="JavaScript" type="text/javascript"><#lt/>
-        ajaxInPlaceEditDisplayField('${idName}', '${inPlaceEditorUrl}', ${inPlaceEditorParams});<#lt/>
-        </script><#lt/>
+        <#if inPlaceEditorUrl?has_content || class?has_content || alert=="true">
+            <span <#if idName?has_content>id="${idName}"</#if> <@renderClass class alert />><#t/>
+        </#if>
+        
+        <#if description?has_content>
+            ${description?replace("\n", "<br/>")}<#t/>
+        <#else>
+            &nbsp;<#t/>
+        </#if>
+        <#if inPlaceEditorUrl?has_content || class?has_content || alert=="true">
+            </span><#lt/>
+        </#if>
+        <#if inPlaceEditorUrl?has_content && idName?has_content>
+            <script language="JavaScript" type="text/javascript"><#lt/>
+            ajaxInPlaceEditDisplayField('${idName}', '${inPlaceEditorUrl}', ${inPlaceEditorParams});<#lt/>
+            </script><#lt/>
+        </#if>
     </#if>
 </#macro>
 <#macro renderHyperlinkField></#macro>