I don't know if you need wicket api to reach your objective:

    public enum MapType {
        UNDEFINED, ROADMAP, MOBILE, SATELITE, TERRAIN, HYBRID;
        public String toKeyword()
        {
            return toString().toLowerCase();
        }

        public String verbose()
        {
            return "verb" + this.toString();
        }

        public static MapType fromKeyword(final String keyword)
        {
            return Enum.valueOf(MapType.class, keyword.toUpperCase());
        }
    }

On Wed, Sep 30, 2009 at 11:22 AM, Matthias Keller
<matthias.kel...@ergon.ch>wrote:

> Hi Petr
>
> We use a custom EnumConverter for that. It can be added to the application
> like so:
>   @Override
>   protected IConverterLocator newConverterLocator () {
>       ConverterLocator converterLocator = (ConverterLocator)
> super.newConverterLocator();
>       converterLocator.set(MyEnum.class, new EnumConverter());
>   }
>
> EnumConverter:
> ...
> public String convertToString (Object value, Locale locale) {
>       return EnumUtils.getEnumFromResources((Enum<?>) value,
> value.toString());
>   }
> ...
>
>
> Then the following helper method looks the enum up in the string
> resources...
>   /**
>    * Tries to resolve a given Enum instance against the resources.
>    * The following keys are searched for in the resources:<br/>
>    * <b><i>If the enum is defined as a top-level enum:</i></b>
>    * <ul>
>    *  <li>package.EnumClassName.ENUMNAME</li>
>    *  <li>EnumClassName.ENUMNAME</li>
>    * </ul>
>    * <b><i>If the enum is defined inside another class:</i></b>
>    * <ul>
>    *  <li>package.SomeClass$EnumClassName.ENUMNAME</li>
>    *  <li>package.SomeClass.EnumClassName.ENUMNAME</li>
>    *  <li>SomeClass.EnumClassName.ENUMNAME</li>
>    *  <li>EnumClassName.ENUMNAME</li>
>    * </ul>
>    * If no resource could be found, the specified defaultValue is returned.
>    *
>    * @param enu The Enum instance
>    * @param defaultValue The default value in case no resource string was
> found
>    * @return The matching resource string or <tt>defaultValue</tt> if there
> was no match
>    */
>   public static String getEnumFromResources (Enum<?> enu, String
> defaultValue) {
>
>       final Localizer loc =
> WebApplication.get().getResourceSettings().getLocalizer();
>       List<String> keyList = new ArrayList<String>();
>       keyList.add(enu.getClass().getName());
>       keyList.add(enu.getClass().getCanonicalName());
>       if (enu.getClass().getDeclaringClass() != null) {
>
> keyList.add(enu.getClass().getDeclaringClass().getSimpleName()+"."+enu.getClass().getSimpleName());
>       }
>       keyList.add(enu.getClass().getSimpleName());
>
>       for (String key : keyList) {
>           // The empty string needs to be used here because null is being
> treated as 'not found',
>           // thus might result in a warning string being returned.
>           String res = loc.getString(key+"."+enu.name(), null, "");
>           if (!"".equals(res)) {
>               return res;
>           }
>       }
>       return defaultValue;
>
>   }
>
> Petr Fejfar wrote:
>
>> Hi all,
>>
>> I have an enum type e.g.
>>
>> public enum MapType
>>    UNDEFINED,ROADMAP,MOBILE,SATELITE,TERRAIN,HYBRID;
>>
>>    public static String toKeyword(MapType mapType) {
>>        switch (mapType) {
>>          case ROADMAP:
>>              return "roadmap";
>>              ...
>>
>>    public static MapType fromKeyword(final String keyword) {
>>        final String kw = keyword.toLowerCase();
>>        if (kw.equals("roadmap"))
>>            return ROADMAP;
>>        else if ...
>>
>>
>>
>> and I'd like to localize a verbal representation of particular elements
>> which I could share throughout Wicket application in many places.
>> i.e. I need something like this:
>>
>>    public static String verbose(MapType mapType) {
>>        switch (mapType) {
>>          case ROADMAP:
>>              return getString("verbROADMAP");
>>              ...
>>
>>
>> What is a preferred/recommended way to localize it?
>>
>>
>> Thanks, Petr
>>
>> ---------------------------------------------------------------------
>> To unsubscribe, e-mail: users-unsubscr...@wicket.apache.org
>> For additional commands, e-mail: users-h...@wicket.apache.org
>>
>>
>>
>
>


-- 
Pedro Henrique Oliveira dos Santos

Reply via email to