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?