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: }