    01: import java.beans.PropertyEditorSupport;
    02:
    03: /**
    04:    A helper class for showing names of objects in a property
    05:    sheet that allows the user to pick one of a finite set of
    06:    named values.
    07: */
    08: public class PropertySelector extends PropertyEditorSupport
    09: {
    10:    /**
    11:       Constructs a selector that correlates names and objects.
    12:       @param n the strings to display in a combo box
    13:       @param v the corresponding object values
    14:    */
    15:    PropertySelector(String[] n, Object[] v)
    16:    {
    17:       names = n;
    18:       values = v;
    19:    }
    20:
    21:    public String[] getTags()
    22:    {
    23:       return names;
    24:    }
    25:
    26:    public String getAsText()
    27:    {
    28:       for (int i = 0; i < values.length; i++)
    29:          if (getValue().equals(values[i])) return names[i];
    30:       return null;
    31:    }
    32:
    33:    public void setAsText(String s)
    34:    {
    35:       for (int i = 0; i < names.length; i++)
    36:          if (s.equals(names[i])) setValue(values[i]);
    37:    }
    38:
    39:    private String[] names;
    40:    private Object[] values;
    41: }