You are viewing a plain text version of this content. The canonical link for it is here.
Posted to commits@wicket.apache.org by "Martin Makundi (JIRA)" <ji...@apache.org> on 2009/11/11 19:56:39 UTC

[jira] Commented: (WICKET-1157) Generic internationalization for Enums

    [ 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.