What's the point of CommonEmptyHeader?

It's definied in CommonUiLabels.xml as:

<property key="CommonEmptyHeader">
    <!-- do not  remove this! -->
    <value xml:lang="en" xml:space="preserve"> </value>
</property>

It is just a simple space (0x20)

It is used ~500 times in forms as a title in a field definition

Example:

<form name="EditPerson" type="single" target="updatePerson"
  ...
  <field name="cancelLink" title="${uiLabelMap.CommonEmptyHeader}"

    <hyperlink target="${donePage}" also-hidden="false"
      description="${uiLabelMap.CommonCancelDone}">
      <parameter param-name="partyId"/>
    </hyperlink>
  </field>
</form>


This is a button which should have no label, but if the title attribute
is empty then the name attribute is used as label.

Why not just put a space (" ") into the title attribute - still a hack,
but exactly same result a using CommonEmptyHeader without the need using
CommonEmptyHeader.

The real solution is of course not to display a label if the title
attribute is empty.

Christian

Adrian Crum schrieb:
> The bad thing about this change is that it is not necessary. This change
> hides a problem - it does not solve it. I mentioned that in the Jira issue.
> 
> The method is supposed to pretty-print an XML document, and if you turn
> off space removal, the indentation will be wrong. In other words, it
> will not be pretty.
> 
> -1 on this change in any version.
> 
> -Adrian
> 
> On 5/16/2012 2:25 AM, Scott Gray wrote:
>> I see in your subsequent commits that you encountered the problems
>> caused by this type of change.
>>
>> They're also a pretty good indication that once again you didn't
>> compile or test before back-porting, I'm not sure what I can do to
>> make the need for this any clearer to you.  Please remember your
>> responsibilities as a committer.
>>
>> Regards
>> Scott
>>
>> On 16/05/2012, at 1:17 PM, Scott Gray wrote:
>>
>>> You've changed the signature on the UtilXml methods, that should not
>>> be done and especially not be back-ported to the branches.  Even in
>>> the trunk the correct thing to do is to add a new method with the new
>>> signature and then (if needed) deprecate the old method.  Obviously
>>> deprecation shouldn't be back-ported.
>>>
>>> There's nothing new in this comment Jacques, the general rule of
>>> thumb is never change a method signature unless it is private.
>>>
>>> Regards
>>> Scott
>>>
>>> On 16/05/2012, at 7:11 AM, jler...@apache.org wrote:
>>>
>>>> Author: jleroux
>>>> Date: Tue May 15 19:11:13 2012
>>>> New Revision: 1338836
>>>>
>>>> URL: http://svn.apache.org/viewvc?rev=1338836&view=rev
>>>> Log:
>>>> "Applied fix from trunk for revision: 1338831" (conflict in
>>>> CommonUiLabels.xml handled by hand)
>>>> ------------------------------------------------------------------------
>>>>
>>>> r1338831 | jleroux | 2012-05-15 21:03:26 +0200 (mar., 15 mai 2012) |
>>>> 14 lines
>>>>
>>>> Fixes https://issues.apache.org/jira/browse/OFBIZ-4652 "The Label
>>>> Manager is wrongly overriding CommonEmptyHeader"
>>>> * Adds a keepSpace boolean to UtilXml.writeXmlDocument(), this
>>>> allows to use xsl:preserve-space into UtilXml.createOutputTransformer()
>>>> * Uses it into SaveLabelsToXmlFile.saveLabelsToXmlFile()
>>>> * Adds some French labels into CommonUiLabels.xml using Labels
>>>> Manager to test the new functionality
>>>> * Adds the xml:space attribute into the valueType complexType
>>>> * Adds the ofbiz-properties.xsd schema into the base-catalog.xml
>>>>
>>>> I got an issue when 1st trying to commit:
>>>> Commit failed (details follow):
>>>> While preparing
>>>> 'D:\workspace\ofbizClean\framework\common\config\CommonUiLabels.xml'
>>>> for commit
>>>> Inconsistent line ending style
>>>>
>>>> So I forced the EOLs to my locale platform value (Win XP)
>>>> ------------------------------------------------------------------------
>>>>
>>>> 
>>>>
>>>> Modified:
>>>>    ofbiz/branches/release12.04/   (props changed)
>>>>    ofbiz/branches/release12.04/framework/base/dtd/base-catalog.xml
>>>>    ofbiz/branches/release12.04/framework/base/dtd/ofbiz-properties.xsd
>>>>   
>>>> ofbiz/branches/release12.04/framework/base/src/org/ofbiz/base/util/UtilXml.java
>>>>
>>>>   
>>>> ofbiz/branches/release12.04/framework/common/config/CommonUiLabels.xml
>>>>   
>>>> ofbiz/branches/release12.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
>>>>
>>>>
>>>> Propchange: ofbiz/branches/release12.04/
>>>> ------------------------------------------------------------------------------
>>>>
>>>> Merged /ofbiz/trunk:r1338831
>>>>
>>>> Modified:
>>>> ofbiz/branches/release12.04/framework/base/dtd/base-catalog.xml
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/base/dtd/base-catalog.xml?rev=1338836&r1=1338835&r2=1338836&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> --- ofbiz/branches/release12.04/framework/base/dtd/base-catalog.xml
>>>> (original)
>>>> +++ ofbiz/branches/release12.04/framework/base/dtd/base-catalog.xml
>>>> Tue May 15 19:11:13 2012
>>>> @@ -29,4 +29,5 @@ under the License.
>>>>     <system systemId="http://ofbiz.apache.org/dtds/jndi-config.xsd";
>>>> uri="jndi-config.xsd"/>
>>>>     <system
>>>> systemId="http://ofbiz.apache.org/dtds/ofbiz-component.xsd";
>>>> uri="ofbiz-component.xsd"/>
>>>>     <system
>>>> systemId="http://ofbiz.apache.org/dtds/ofbiz-containers.xsd";
>>>> uri="ofbiz-containers.xsd"/>
>>>> +<system
>>>> systemId="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd";
>>>> uri="ofbiz-properties.xsd"/>
>>>> </catalog>
>>>>
>>>> Modified:
>>>> ofbiz/branches/release12.04/framework/base/dtd/ofbiz-properties.xsd
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/base/dtd/ofbiz-properties.xsd?rev=1338836&r1=1338835&r2=1338836&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/branches/release12.04/framework/base/dtd/ofbiz-properties.xsd
>>>> (original)
>>>> +++
>>>> ofbiz/branches/release12.04/framework/base/dtd/ofbiz-properties.xsd
>>>> Tue May 15 19:11:13 2012
>>>> @@ -42,6 +42,7 @@ under the License.
>>>>         <xs:simpleContent>
>>>>             <xs:extension base="xs:string">
>>>>                 <xs:attribute ref="xml:lang"/>
>>>> +<xs:attribute ref="xml:space"/>
>>>>             </xs:extension>
>>>>         </xs:simpleContent>
>>>>     </xs:complexType>
>>>>
>>>> Modified:
>>>> ofbiz/branches/release12.04/framework/base/src/org/ofbiz/base/util/UtilXml.java
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/base/src/org/ofbiz/base/util/UtilXml.java?rev=1338836&r1=1338835&r2=1338836&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/branches/release12.04/framework/base/src/org/ofbiz/base/util/UtilXml.java
>>>> (original)
>>>> +++
>>>> ofbiz/branches/release12.04/framework/base/src/org/ofbiz/base/util/UtilXml.java
>>>> Tue May 15 19:11:13 2012
>>>> @@ -158,20 +158,26 @@ public class UtilXml {
>>>>
>>>>     // ----- TrAX Methods ----------------- //
>>>>
>>>> -    /** Creates a JAXP TrAX Transformer suitable for
>>>> pretty-printing an
>>>> -     * XML document. This method is provided as an alternative to the
>>>> -     *
>>>> deprecated<code>org.apache.xml.serialize.OutputFormat</code>  class.
>>>> -     * @param encoding Optional encoding, defaults to UTF-8
>>>> -     * @param omitXmlDeclaration If<code>true</code>  the xml
>>>> declaration
>>>> -     * will be omitted from the output
>>>> -     * @param indent If<code>true</code>, the output will be indented
>>>> -     * @param indentAmount If<code>indent</code>  is<code>true</code>,
>>>> -     * the number of spaces to indent. Default is 4.
>>>> +    /**
>>>> +     * Creates a JAXP TrAX Transformer suitable for pretty-printing
>>>> an XML document. This method is provided as an alternative to the
>>>> deprecated
>>>> +     *<code>org.apache.xml.serialize.OutputFormat</code>  class.
>>>> +     *
>>>> +     * @param encoding
>>>> +     *            Optional encoding, defaults to UTF-8
>>>> +     * @param omitXmlDeclaration
>>>> +     *            If<code>true</code>  the xml declaration will be
>>>> omitted from the output
>>>> +     * @param indent
>>>> +     *            If<code>true</code>, the output will be indented
>>>> +     * @param indentAmount
>>>> +     *            If<code>indent</code>  is<code>true</code>, the
>>>> number of spaces to indent. Default is 4.
>>>> +     * @param keepSpace
>>>> +     *            If<code>true</code>  spaces are preserved, else
>>>> striped
>>>>      * @return A<code>Transformer</code>  instance
>>>>      * @see<a
>>>> href="http://java.sun.com/javase/6/docs/api/javax/xml/transform/package-summary.html";>JAXP
>>>> TrAX</a>
>>>>      * @throws TransformerConfigurationException
>>>>      */
>>>> -    public static Transformer createOutputTransformer(String
>>>> encoding, boolean omitXmlDeclaration, boolean indent, int
>>>> indentAmount) throws TransformerConfigurationException {
>>>> +    public static Transformer createOutputTransformer(String
>>>> encoding, boolean omitXmlDeclaration, boolean indent, int
>>>> indentAmount, boolean keepSpace)
>>>> +            throws TransformerConfigurationException {
>>>>         StringBuilder sb = new StringBuilder();
>>>>         sb.append("<?xml version=\"1.0\" encoding=\"UTF-8\"?>\n");
>>>>         sb.append("<xsl:stylesheet
>>>> xmlns:xsl=\"http://www.w3.org/1999/XSL/Transform\";
>>>> xmlns:xalan=\"http://xml.apache.org/xslt\"; version=\"1.0\">\n");
>>>> @@ -189,7 +195,11 @@ public class UtilXml {
>>>>             sb.append(indentAmount<= 0 ? 4 : indentAmount);
>>>>             sb.append("\"");
>>>>         }
>>>> -        sb.append("/>\n<xsl:strip-space elements=\"*\"/>\n");
>>>> +        if (keepSpace) {
>>>> +            sb.append("/>\n<xsl:preserve-space elements=\"*\"/>\n");
>>>> +        } else {
>>>> +            sb.append("/>\n<xsl:strip-space elements=\"*\"/>\n");
>>>> +        }
>>>>         sb.append("<xsl:template match=\"@*|node()\">\n");
>>>>         sb.append("<xsl:copy><xsl:apply-templates
>>>> select=\"@*|node()\"/></xsl:copy>\n");
>>>>         sb.append("</xsl:template>\n</xsl:stylesheet>\n");
>>>> @@ -212,21 +222,29 @@ public class UtilXml {
>>>>         transformer.transform(source, result);
>>>>     }
>>>>
>>>> -    /** Serializes a DOM<code>Node</code>  to
>>>> an<code>OutputStream</code>
>>>> -     * using JAXP TrAX.
>>>> -     * @param node The<code>Node</code>  to serialize
>>>> -     * @param os The<code>OutputStream</code>  to serialize to
>>>> -     * @param encoding Optional encoding, defaults to UTF-8
>>>> -     * @param omitXmlDeclaration If<code>true</code>  the xml
>>>> declaration
>>>> -     * will be omitted from the output
>>>> -     * @param indent If<code>true</code>, the output will be indented
>>>> -     * @param indentAmount If<code>indent</code>  is<code>true</code>,
>>>> -     * the number of spaces to indent. Default is 4.
>>>> +    /**
>>>> +     * Serializes a DOM<code>Node</code>  to
>>>> an<code>OutputStream</code>  using JAXP TrAX.
>>>> +     *
>>>> +     * @param node
>>>> +     *            The<code>Node</code>  to serialize
>>>> +     * @param os
>>>> +     *            The<code>OutputStream</code>  to serialize to
>>>> +     * @param encoding
>>>> +     *            Optional encoding, defaults to UTF-8
>>>> +     * @param omitXmlDeclaration
>>>> +     *            If<code>true</code>  the xml declaration will be
>>>> omitted from the output
>>>> +     * @param keepSpace
>>>> +     *            If<code>true</code>  spaces are preserved, else
>>>> striped
>>>> +     * @param indent
>>>> +     *            If<code>true</code>, the output will be indented
>>>> +     * @param indentAmount
>>>> +     *            If<code>indent</code>  is<code>true</code>, the
>>>> number of spaces to indent. Default is 4.
>>>>      * @see<a
>>>> href="http://java.sun.com/javase/6/docs/api/javax/xml/transform/package-summary.html";>JAXP
>>>> TrAX</a>
>>>>      * @throws TransformerException
>>>>      */
>>>> -    public static void writeXmlDocument(Node node, OutputStream os,
>>>> String encoding, boolean omitXmlDeclaration, boolean indent, int
>>>> indentAmount) throws TransformerException {
>>>> -        Transformer transformer = createOutputTransformer(encoding,
>>>> omitXmlDeclaration, indent, indentAmount);
>>>> +    public static void writeXmlDocument(Node node, OutputStream os,
>>>> String encoding, boolean omitXmlDeclaration, boolean indent, int
>>>> indentAmount,
>>>> +            boolean keepSpace) throws TransformerException {
>>>> +        Transformer transformer = createOutputTransformer(encoding,
>>>> omitXmlDeclaration, indent, indentAmount, keepSpace);
>>>>         transformDomDocument(transformer, node, os);
>>>>     }
>>>>
>>>> @@ -325,9 +343,9 @@ public class UtilXml {
>>>>             return;
>>>>         }
>>>>         // OutputFormat defaults are: indent on, indent = 4, include
>>>> XML declaration,
>>>> -        // charset = UTF-8, line width = 72
>>>> +        // charset = UTF-8, line width = 72, strip spaces
>>>>         try {
>>>> -            writeXmlDocument(node, os, "UTF-8", false, true, 4);
>>>> +            writeXmlDocument(node, os, "UTF-8", false, true, 4,
>>>> false);
>>>>         } catch (TransformerException e) {
>>>>             // Wrapping this exception for backwards compatibility
>>>>             throw new IOException(e.getMessage());
>>>>
>>>> Modified:
>>>> ofbiz/branches/release12.04/framework/common/config/CommonUiLabels.xml
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/common/config/CommonUiLabels.xml?rev=1338836&r1=1338835&r2=1338836&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/branches/release12.04/framework/common/config/CommonUiLabels.xml
>>>> (original)
>>>> +++
>>>> ofbiz/branches/release12.04/framework/common/config/CommonUiLabels.xml
>>>> Tue May 15 19:11:13 2012
>>>> @@ -8,6 +8,7 @@
>>>>     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,
>>>> @@ -17,13 +18,13 @@
>>>>     specific language governing permissions and limitations
>>>>     under the License.
>>>> -->
>>>> -<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";>
>>>> +<resource xmlns:xsi="http://www.w3.org/2001/XMLSchema-instance";
>>>> xsi:noNamespaceSchemaLocation="http://ofbiz.apache.org/dtds/ofbiz-properties.xsd";>
>>>>
>>>>     <property key="AP">
>>>>         <value xml:lang="de">Kreditoren</value>
>>>>         <value xml:lang="en">AP</value>
>>>>         <value xml:lang="es">Compras</value>
>>>>         <value xml:lang="fr">Cpt. fourn.</value>
>>>> -<value xml:lang="hi_IN">लेखा देय</value>
>>>> +<value xml:lang="hi-IN">लेखा देय</value>
>>>>         <value xml:lang="it">AP</value>
>>>>         <value xml:lang="nl">Schulden</value>
>>>>         <value xml:lang="pt_BR">Contas a pagar</value>
>>>> @@ -127,6 +128,7 @@
>>>>     <property key="CommonAbort">
>>>>         <value xml:lang="en">Abort</value>
>>>>         <value xml:lang="es">Cancelar</value>
>>>> +<value xml:lang="fr">Abandonner</value>
>>>>         <value xml:lang="vi">Hủy</value>
>>>>     </property>
>>>>     <property key="CommonAccepted">
>>>> @@ -413,6 +415,7 @@
>>>>         <value xml:lang="de">Die Adresse wurde nicht gefunden.</value>
>>>>         <value xml:lang="en">Address not found.</value>
>>>>         <value xml:lang="es">Dirección no encontrada.</value>
>>>> +<value xml:lang="fr">Adresse inconnue</value>
>>>>         <value xml:lang="vi">Không tìm thấy địa chỉ</value>
>>>>     </property>
>>>>     <property key="CommonAddresses">
>>>> @@ -2770,7 +2773,8 @@
>>>>         <value xml:lang="zh_TW">電子郵件</value>
>>>>     </property>
>>>>     <property key="CommonEmptyHeader">
>>>> -<value xml:lang="en" xml:space="preserve">  </value><!-- do not 
>>>> remove this! -->
>>>> +<!-- do not  remove this! -->
>>>> +<value xml:lang="en" xml:space="preserve">  </value>
>>>>     </property>
>>>>     <property key="CommonEnable">
>>>>         <value xml:lang="en">Enable</value>
>>>> @@ -11081,6 +11085,31 @@
>>>>         <value xml:lang="zh">有效日期</value>
>>>>         <value xml:lang="zh_TW">有效日</value>
>>>>     </property>
>>>> +<property key="FormFieldTitle_expireButton">
>>>> +<value xml:lang="ar">نهاية الصلاحية</value>
>>>> +<value xml:lang="cs">Vypršet</value>
>>>> +<value xml:lang="de">Ablaufen</value>
>>>> +<value xml:lang="en">Expire</value>
>>>> +<value xml:lang="es">Expiración</value>
>>>> +<value xml:lang="fr">Invalider</value>
>>>> +<value xml:lang="hi-IN">निश्वासन</value>
>>>> +<value xml:lang="it">Scade</value>
>>>> +<value xml:lang="nl">Maak verlopen</value>
>>>> +<value xml:lang="pt">Expirar</value>
>>>> +<value xml:lang="pt-PT">Terminar</value>
>>>> +<value xml:lang="ro">Expira</value>
>>>> +<value xml:lang="ru">Прекратить</value>
>>>> +<value xml:lang="th">หมดเขต</value>
>>>> +<value xml:lang="vi">Hết hạn</value>
>>>> +<value xml:lang="zh">过期</value>
>>>> +<value xml:lang="zh-CN">过期</value>
>>>> +<value xml:lang="zh-TW">過期</value>
>>>> +</property>
>>>> +<property key="FormFieldTitle_extDevicePurposeActionId">
>>>> +<value xml:lang="en">External Device Purpose Action Id</value>
>>>> +<value xml:lang="es">Código acción dispositivo externo</value>
>>>> +<value xml:lang="fr">Obj. de l'action</value>
>>>> +</property>
>>>>     <property key="FormFieldTitle_externalDeviceId">
>>>>         <value xml:lang="en">External Device Id</value>
>>>>         <value xml:lang="es">Código dispositivo externo</value>
>>>> @@ -11091,11 +11120,6 @@
>>>>         <value xml:lang="es">Código tipo dispositivo externo</value>
>>>>         <value xml:lang="fr">Type de Mat. Externe</value>
>>>>     </property>
>>>> -<property key="FormFieldTitle_extDevicePurposeActionId">
>>>> -<value xml:lang="en">External Device Purpose Action Id</value>
>>>> -<value xml:lang="es">Código acción dispositivo externo</value>
>>>> -<value xml:lang="fr">Obj. de l'action</value>
>>>> -</property>
>>>>     <property key="FormFieldTitle_fromDate">
>>>>         <value xml:lang="ar">تاريخ البدء</value>
>>>>         <value xml:lang="de">Von Datum</value>
>>>>
>>>> Modified:
>>>> ofbiz/branches/release12.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
>>>>
>>>> URL:
>>>> http://svn.apache.org/viewvc/ofbiz/branches/release12.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java?rev=1338836&r1=1338835&r2=1338836&view=diff
>>>>
>>>> ==============================================================================
>>>>
>>>> ---
>>>> ofbiz/branches/release12.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
>>>> (original)
>>>> +++
>>>> ofbiz/branches/release12.04/framework/webtools/src/org/ofbiz/webtools/labelmanager/SaveLabelsToXmlFile.java
>>>> Tue May 15 19:11:13 2012
>>>> @@ -34,10 +34,8 @@ import org.ofbiz.base.util.UtilPropertie
>>>> import org.ofbiz.base.util.UtilValidate;
>>>> import org.ofbiz.base.util.UtilXml;
>>>> import org.ofbiz.base.util.cache.UtilCache;
>>>> -
>>>> import org.ofbiz.service.DispatchContext;
>>>> import org.ofbiz.service.ServiceUtil;
>>>> -
>>>> import org.w3c.dom.Comment;
>>>> import org.w3c.dom.Document;
>>>> import org.w3c.dom.Element;
>>>> @@ -151,7 +149,7 @@ public class SaveLabelsToXmlFile {
>>>>                         if (apacheLicenseText != null) {
>>>>                             fos.write(apacheLicenseText.getBytes());
>>>>                         }
>>>> -                        UtilXml.writeXmlDocument(resourceElem, fos,
>>>> "UTF-8", !(apacheLicenseText == null), true, 4);
>>>> +                        UtilXml.writeXmlDocument(resourceElem, fos,
>>>> "UTF-8", !(apacheLicenseText == null), true, 4, true);
>>>>                     } finally {
>>>>                         fos.close();
>>>>                         // clear cache to see immediately the new
>>>> labels and
>>>>
>>>>
> 

Reply via email to