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/config/ExampleEntityLabels.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml?rev=938844&r1=938843&r2=938844&view=diff ============================================================================== --- ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml (original) +++ ofbiz/trunk/framework/example/config/ExampleEntityLabels.xml Wed Apr 28 10:02:57 2010 @@ -90,6 +90,10 @@ <value xml:lang="th">รหัสà¸à¸±à¸§à¸à¸¢à¹à¸²à¸à¸à¸£à¸°à¹à¸ ภà¸à¹à¸²à¹à¸¡à¹à¸¡à¸µà¸à¸²à¸£à¸à¸³à¸«à¸à¸à¸£à¸«à¸±à¸ª à¸à¸°à¸à¹à¸à¸à¸¡à¸µà¸à¸²à¸£à¸ªà¸£à¹à¸²à¸à¸à¸¶à¹à¸à¸à¸±à¸à¹à¸¡à¸±à¸à¸´</value> <value xml:lang="zh">ä¸ä¸ªå¯ä¸çæ ·ä¾ç±»ååºå·ãå¦æä½ æ²¡ææå®ä¸ä¸ªæ è¯ï¼é£ä¹ä¼èªå¨çæä¸ä¸ª</value> </property> + <property key="FieldDescription.Example.exampleTypeId"> + <value xml:lang="en">The type of Example.</value> + <value xml:lang="fr">Le type de l'exemple.</value> + </property> <property key="FieldDescription.amount"> <value xml:lang="de">Betrag</value> <value xml:lang="en">Amount</value> Modified: ofbiz/trunk/framework/example/entitydef/entitymodel.xml URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/example/entitydef/entitymodel.xml?rev=938844&r1=938843&r2=938844&view=diff ============================================================================== --- ofbiz/trunk/framework/example/entitydef/entitymodel.xml (original) +++ ofbiz/trunk/framework/example/entitydef/entitymodel.xml Wed Apr 28 10:02:57 2010 @@ -43,7 +43,9 @@ under the License. <entity entity-name="Example" package-name="org.ofbiz.example.example" - title="Example Entity"> + title="Example Entity" + default-resource-name="ExampleEntityLabels" + > <field name="exampleId" type="id-ne"><description>primary sequenced ID</description></field> <field name="exampleTypeId" type="id-ne"></field> <field name="statusId" type="id-ne"></field> 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"/> Modified: ofbiz/trunk/framework/widget/config/widget.properties URL: http://svn.apache.org/viewvc/ofbiz/trunk/framework/widget/config/widget.properties?rev=938844&r1=938843&r2=938844&view=diff ============================================================================== --- ofbiz/trunk/framework/widget/config/widget.properties (original) +++ ofbiz/trunk/framework/widget/config/widget.properties Wed Apr 28 10:02:57 2010 @@ -38,6 +38,9 @@ widget.lookup.showDescription=Y # Default text find field's option widget.form.defaultTextFindOption=contains +# Controls whether to display help text tooltips for form field titles +widget.form.displayhelpText=Y + # Controls the initial results display in Find screens. If set to Y, the # search result list will be populated when the Find screen first appears. # If set to N, the search result list will be empty when the Find screen 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"); + Locale locale = (Locale)context.get("locale"); + String entityName = modelFormField.getEntityName(); + String fieldName = modelFormField.getFieldName(); + String helpText = UtilHelpText.getHelp(entityName, fieldName, delegator, locale); + + 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) { + + 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> <#macro renderSingleFormFieldTitle></#macro> |
Free forum by Nabble | Edit this page |