001package horstmann.ch08_umleditor;
002import java.beans.PropertyEditorSupport;
003
004/**
005   A property editor for enumerated types.
006 */
007@SuppressWarnings("all")
008public class EnumEditor extends PropertyEditorSupport
009{
010        /**
011      Constructs a property editor for an enumerated type
012      @param cl the class object for the enumerated type
013         */
014        public EnumEditor(Class cl)
015        {
016                this.cl = cl;
017        }
018
019        public String[] getTags()
020        {
021                try
022                {
023                        Object[] values = (Object[]) cl.getMethod("values").invoke(null);
024                        String[] result = new String[values.length];
025                        for (int i = 0; i < values.length; i++)
026                                result[i] = values[i].toString();
027                        return result;
028                }
029                catch (Exception ex)
030                {
031                        return null;
032                }
033        }
034
035        public String getAsText()
036        {
037                return getValue().toString();
038        }
039
040        public void setAsText(String s)
041        {
042                setValue(Enum.valueOf(cl, s));
043        }
044
045        private Class cl;
046}