Inline

Regards
Scott

On 28/04/2010, at 10:02 PM, jler...@apache.org wrote:

> Author: jleroux
> Date: Wed Apr 28 10:02:57 2010
> New Revision: 938844
> 
> URL: http://svn.apache.org/viewvc?rev=938844&view=rev
> Log:
> A slightly modified patch from Chris Snow "Provide better user help" 
> (https://issues.apache.org/jira/browse/OFBIZ-3702) - OFBIZ-3702
> 
> Provides help by hovering over the field label. See Example for... an example 
> :o) And also 
> https://issues.apache.org/jira/secure/attachment/12442717/fieldLabelTooltip2.png
> 
> Added:
>    ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java   
> (with props)
> Modified:
>    ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml
>    ofbiz/trunk/framework/example/entitydef/entitymodel.xml
>    ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
>    ofbiz/trunk/framework/widget/config/widget.properties
>    
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/MacroFormRenderer.java
>    ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
> 
> Modified: ofbiz/trunk/framework/example/widget/example/ExampleForms.xml
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/widget/example/ExampleForms.xml?rev=938844&r1=938843&r2=938844&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/example/widget/example/ExampleForms.xml (original)
> +++ ofbiz/trunk/framework/example/widget/example/ExampleForms.xml Wed Apr 28 
> 10:02:57 2010
> @@ -101,7 +101,7 @@ under the License.
>         </actions>
>         <alt-target use-when="example==null" target="createExample"/>
>         <auto-fields-service service-name="updateExample"/>
> -        <field use-when="example!=null" name="exampleId" 
> title="${uiLabelMap.ExampleExampleId}" 
> tooltip="${uiLabelMap.CommonNotModifRecreat}"><display/></field>
> +        <field use-when="example!=null" name="exampleId" 
> title="${uiLabelMap.ExampleExampleId}" 
> tooltip="${uiLabelMap.CommonNotModifRecreat}" 
> entity-name="Example"><display/></field>
>         <field use-when="example==null @and exampleId==null" name="exampleId" 
> title="${uiLabelMap.ExampleExampleId}"><ignored/></field>
>         <field use-when="example==null @and exampleId!=null" name="exampleId" 
> title="${uiLabelMap.ExampleExampleId}"><display 
> description="${uiLabelMap.CommonCannotBeFound}: [${exampleId}]" 
> also-hidden="false"/></field>
>         <field name="exampleTypeId" title="${uiLabelMap.CommonType}" 
> id-name="exampleTypeId">
> @@ -112,12 +112,12 @@ under the License.
>                 </entity-options>
>             </drop-down>
>         </field>
> -        <field name="statusId" use-when="example==null" 
> title="${uiLabelMap.CommonStatus}">
> +        <field name="statusId" use-when="example==null" 
> title="${uiLabelMap.CommonStatus}" entity-name="Example">
>             <drop-down allow-empty="false">
>                 <entity-options entity-name="ExampleStatusItem" 
> description="${description}"/>
>             </drop-down>
>         </field>
> -        <field name="statusId" use-when="example!=null" 
> title="${uiLabelMap.CommonStatus}">
> +        <field name="statusId" use-when="example!=null" 
> title="${uiLabelMap.CommonStatus}" entity-name="Example">
>             <drop-down allow-empty="false" 
> current-description="${currentStatus.description}">
>                 <entity-options entity-name="StatusValidChangeToDetail" 
> key-field-name="statusIdTo" description="${transitionName} (${description})">
>                     <entity-constraint name="statusId" 
> env-name="example.statusId"/>

There is a field on the form element that can be used instead of setting these 
entity names individually

> 
> 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=938844&r1=938843&r2=938844&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 
> Wed Apr 28 10:02:57 2010
> @@ -48,6 +48,7 @@ import org.ofbiz.base.util.UtilPropertie
> import org.ofbiz.base.util.UtilValidate;
> import org.ofbiz.base.util.string.FlexibleStringExpander;
> import org.ofbiz.base.util.template.FreeMarkerWorker;
> +import org.ofbiz.entity.Delegator;
> import org.ofbiz.webapp.control.RequestHandler;
> import org.ofbiz.webapp.taglib.ContentUrlTag;
> import org.ofbiz.widget.ModelWidget;
> @@ -1202,11 +1203,23 @@ public class MacroFormRenderer implement
>                     style = requiredStyle;
>                 }
>             }
> +            Delegator delegator = 
> (Delegator)request.getAttribute("delegator");

Should be modelForm.getDelegator();
Ideally the form renderer wouldn't be dependent on an HttpServletRequest object 
at all

> +            Locale locale = (Locale)context.get("locale");
> +            String entityName = modelFormField.getEntityName();
> +            String fieldName = modelFormField.getFieldName();
> +            String helpText = UtilHelpText.getHelp(entityName, fieldName, 
> delegator, locale);

Retrieving the help text before checking the property?

> +            
> +            String displayHelpText = 
> UtilProperties.getPropertyValue("widget.properties", 
> "widget.form.displayhelpText");
> +            
>             StringWriter sr = new StringWriter();
>             sr.append("<@renderFieldTitle ");
>             sr.append(" style=\"");
>             sr.append(style);
> -            sr.append("\" title=\"");
> +            if ("Y".equals(displayHelpText)) {
> +                sr.append("\" fieldHelpText=\"");
> +                sr.append(FreeMarkerWorker.encodeDoubleQuotes(helpText));
> +            }
> +            sr.append("\" fieldTitle=\"");
>             sr.append(sb.toString());
>             sr.append("\" />");
>             executeMacro(writer, sr.toString());
> 
> Added: 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java?rev=938844&view=auto
> ==============================================================================
> --- ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java 
> (added)
> +++ ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java 
> Wed Apr 28 10:02:57 2010
> @@ -0,0 +1,56 @@
> +package org.ofbiz.widget.form;
> +
> +import java.util.Locale;
> +
> +import org.ofbiz.base.util.Debug;
> +import org.ofbiz.base.util.UtilProperties;
> +import org.ofbiz.base.util.UtilValidate;
> +import org.ofbiz.entity.Delegator;
> +import org.ofbiz.entity.GenericEntityException;
> +import org.ofbiz.entity.model.ModelEntity;
> +import org.ofbiz.entity.model.ModelReader;
> +
> +/**
> + * Util for working with Help Text
> + */
> +public class UtilHelpText {
> +
> +    public static final String module = UtilHelpText.class.getName();
> +
> +    /**
> +     * Find the help text associated with an entity field.
> +     * 
> +     * @param entityName the entity name
> +     * @param fieldName the field name
> +     * @param delegator the delegator
> +     * @param locale the locale
> +     * @return the help text, or the resource propertyName if no help text 
> exists
> +     */
> +    public static String getHelp(final String entityName, final String 
> fieldName, final Delegator delegator, final Locale locale) {

Bad method name choice

> +
> +        if (UtilValidate.isEmpty(entityName)) {
> +            Debug.logWarning("entityName [" + entityName + "] is empty", 
> module);
> +            return "";
> +        }
> +        if (UtilValidate.isEmpty(fieldName)) {
> +            Debug.logWarning("fieldName [" + fieldName + "] is empty", 
> module);
> +            return "";
> +        }
> +        ModelReader reader = delegator.getModelReader();
> +        ModelEntity entity = null;
> +        try {
> +            if (!reader.getEntityNames().contains(entityName)) {
> +                Debug.logWarning("couldn't find entityName [" + entityName + 
> "]", module);
> +                return "";
> +            }
> +            entity = reader.getModelEntity(entityName);
> +        } catch (GenericEntityException e) {
> +            Debug.logError(e, "Error getting help text for entity=" + 
> entityName + " field " + fieldName, module);
> +            return "";
> +        }
> +        String entityResourceName = entity.getDefaultResourceName();
> +        String messageId = "FieldDescription." + entityName + "." + 
> fieldName;
> +        String fieldDescription = 
> UtilProperties.getMessage(entityResourceName, messageId, locale);
> +        return fieldDescription;
> +    }
> +}
> \ No newline at end of file
> 
> Propchange: 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:eol-style = native
> 
> Propchange: 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:keywords = Date Rev Author URL Id
> 
> Propchange: 
> ofbiz/trunk/framework/widget/src/org/ofbiz/widget/form/UtilHelpText.java
> ------------------------------------------------------------------------------
>    svn:mime-type = text/plain
> 
> Modified: ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl
> URL: 
> http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl?rev=938844&r1=938843&r2=938844&view=diff
> ==============================================================================
> --- ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl (original)
> +++ ofbiz/trunk/framework/widget/templates/htmlFormMacroLibrary.ftl Wed Apr 
> 28 10:02:57 2010
> @@ -205,14 +205,20 @@ ${item.description}</span>
> 
> <#macro renderIgnoredField></#macro>
> 
> -<#macro renderFieldTitle style title>
> +<#macro renderFieldTitle style fieldTitle fieldHelpText="">
> +    <#if fieldHelpText?has_content>
> +        <span title="${fieldHelpText}"><#t/>
> +    </#if>
>     <#if style?has_content>
>         <span class="${style}"><#t/>
>     </#if>
> -    ${title}<#t/>
> +    ${fieldTitle}<#t/>
>     <#if style?has_content>
> -        </span><#lt/>
> +        </span><#t/>
>     </#if>
> +    <#if fieldHelpText?has_content>
> +        </span><#t/>
> +    </#if>    
> </#macro>

What about the other macro libraries?

Attachment: smime.p7s
Description: S/MIME cryptographic signature

Reply via email to