Michael Dukaczewski created TAP5-2439:
-----------------------------------------

             Summary: Inconsistent label keys in message catalog for enums
                 Key: TAP5-2439
                 URL: https://issues.apache.org/jira/browse/TAP5-2439
             Project: Tapestry 5
          Issue Type: Bug
          Components: tapestry-core
    Affects Versions: 5.4
            Reporter: Michael Dukaczewski
            Priority: Minor


When customizing the label of an enum that is defined inside a class two 
different key in the message catalog are needed.

Example, given the following class:

public class Address {
  public enum Honorific {MR, MRS, MISS, DR}
  [...]
}

Two entries per value in the message catalog are needed to get a consistent 
output:

Honorific.MR=Mr.
Address$Honorific.MR=Mr.

The problem is that there are two different methods in TapestryInternalUtils to 
get a label for an enum:

TapestryInternalUtils.getLabelForEnum(Messages messages, String prefix, Enum 
value)
TapestryInternalUtils.getLabelForEnum(Messages messages, Enum value)

The former is called by EnumSelectModel, where the latter is used by 
PropertyDisplayBlocks.
Although the second method calls the first, but here the prefix is generated by 
TapestryInternalUtils.lastTerm(). In the other callings of the first method, 
Class.toSimpleName() is used, which does not produce the same result.

I think the best solution would be to remove the method with 3 arguments 
completely, because there is no meaningful use for it. All labels for an enum 
should be generated consistent in the same way.



--
This message was sent by Atlassian JIRA
(v6.3.4#6332)

Reply via email to