Here is a custom localized selectItem creator from enums.
Assumes you have a resource bundle configured in faces config.

It also expects values for each Enum Value.

If you have this enum:

package com.exampe;

public enum Example {
   EXAMPLE
}

Then the appropriate entry in the message bundle would be:

com.example.Example.EXAMPLE=example


public static List<SelectItem> createSelectItemsFromEnum(FacesContext context, Class<? extends Enum> value) {
       List<SelectItem> list = new ArrayList<SelectItem>();
       Application a = context.getApplication();
       String msgBundle = a.getMessageBundle();
       Locale locale = context.getViewRoot().getLocale();
       ResourceBundle rb = ResourceBundle.getBundle(msgBundle, locale);

       Set<? extends Enum> set = EnumSet.allOf(value);
       if (set != null && set.size() > 0) {
           for (Enum e : set) {
               String name = value.getName() + "." + e.name();
               list.add(new SelectItem(e, rb.getString(name)));
           }
       }

       return list;
   }

I have also a Converter that uses the same method from and to Enums if you'd like that. That is needed if you use standard components.

- Erlend

Cagatay Civici wrote:
Hi,

Sandbox15 has an enumconverter too.

http://svn.apache.org/viewvc/myfaces/tomahawk/trunk/sandbox15/core/src/main/java/org/apache/myfaces/custom/converter/enumeration/EnumConverter.java?view=markup

Cagatay

On 5/22/07, *Andrew Robinson* <[EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:

    If you use jboss seam there is support for an enum converter and
    enum-select item components that do just what you are looking for.

    On 5/22/07, [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>
    < [EMAIL PROTECTED] <mailto:[EMAIL PROTECTED]>> wrote:
    >
    > Hi,
    >
    > What's the best way generate UISelectItems from an enumerated
    type? I'd like
    > to populate a UISelectOne-based component with enumerated type
    values and
    > back the component with an enumerated type variable instance.
    This seems
    > like it should be a common pattern in JSF with JDK 1.5+. In
    fact, I'm a
    > little surprised we can't specify an enumerated type (or
    variable of an
    > enumerated type) for f:selectItems.
    >
    > Thanks for any replies,
    > Eric
    >
    >  _________________________
    >
    >  CONFIDENTIALITY NOTICE
    >
    >  The information contained in this e-mail message is intended
    only for the
    > exclusive use of the individual or entity named above and may
    contain
    > information that is privileged, confidential or exempt from
    disclosure under
    > applicable law. If the reader of this message is not the
    intended recipient,
    > or the employee or agent responsible for delivery of the message
    to the
    > intended recipient, you are hereby notified that any dissemination,
    > distribution or copying of this communication is strictly
    prohibited. If you
    > have received this communication in error, please notify the sender
    > immediately by e-mail and delete the material from any
    computer.  Thank you.
    >



Reply via email to