[ 
https://issues.apache.org/jira/browse/WICKET-1157?page=com.atlassian.jira.plugin.system.issuetabpanels:comment-tabpanel&focusedCommentId=12776574#action_12776574
 ] 

Martin Makundi commented on WICKET-1157:
----------------------------------------

I reommend you ditch the DropDOwnChoice and instead provide a 
EnumChoiceRenderer:

public class TypeChoiceRenderer<T> implements IChoiceRenderer<T> {
        /**  */
        private static final long serialVersionUID = 1L;
        
        private final Component component;
        
        /**
         * 
   */
  public TypeChoiceRenderer() {
    this((Component) null);
  }

        /**
   * @param component
   */
  public TypeChoiceRenderer(Component component) {
    this.component = component;
  }

  /**
         * @param arg0 
         * @return Object
         * @see 
org.apache.wicket.markup.html.form.IChoiceRenderer#getDisplayValue(java.lang.Object)
         */
        public String getDisplayValue(T arg0) {
    return toDisplayValue(component, arg0);
        }


  /**
   * @param arg0
   * @return String
   */
  public static String toDisplayValue(Object arg0) {
    return toDisplayValue(null, arg0, false);
  }

  /**
   * @param component 
   * @param arg0
   * @return String
   */
  public static String toDisplayValue(Component component, Object arg0) {
    return toDisplayValue(component, arg0, true);
  }
        
  /**
   * @param component 
         * @param arg0
   * @param escape 
   * @return String
   */
  public static String toDisplayValue(Component component, Object arg0, boolean 
escape) {
    // Tässä muodostetaan lokalisoinnin avain
          String propertyKey = toPropertyKey(arg0);
    // Tässä haetaan lokalisoitu arvo
          String localizedProperty = 
MarkupUtils.getLocalizer().getString(propertyKey, component);
          if (!escape) {
            return localizedProperty;
          }
    // Tässä palautetaan lokalisoitu arvo
                return Strings.escapeMarkup(localizedProperty).toString();
  }

  /**
   * @param arg0
   * @return String
   */
  public static String toPropertyKey(Object arg0) {
    return (arg0 != null) ? (arg0.getClass().getSimpleName() + "." + arg0) : 
null;
  }

        /**
         * @param arg0 
         * @param arg1 
         * @return String
         * @see 
org.apache.wicket.markup.html.form.IChoiceRenderer#getIdValue(java.lang.Object, 
int)
         */
        public String getIdValue(T arg0, int arg1) {
                return getIdValue(arg0);
        }

  /**
   * @param object
   * @return String
   */
  public static String getIdValue(Object object) {
    return object.toString();
  }
}

> Generic internationalization for Enums
> --------------------------------------
>
>                 Key: WICKET-1157
>                 URL: https://issues.apache.org/jira/browse/WICKET-1157
>             Project: Wicket
>          Issue Type: New Feature
>          Components: wicket
>    Affects Versions: 1.4-M1
>            Reporter: Bruno Borges
>             Fix For: 1.5-M1
>
>         Attachments: EnumDropDownChoice.java, EnumLabel.java, Enums.patch
>
>
> Support internationalization for Enums for any Component in the future 
> (Wicket's Java 5+ version). I attached two components that does this 
> independently. But maybe it would be a good idea  to abstract this.

-- 
This message is automatically generated by JIRA.
-
You can reply to this email to add a comment to the issue online.

Reply via email to