KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > openide > explorer > propertysheet > EnumPropertyEditor


1 /*
2  * The contents of this file are subject to the terms of the Common Development
3  * and Distribution License (the License). You may not use this file except in
4  * compliance with the License.
5  *
6  * You can obtain a copy of the License at http://www.netbeans.org/cddl.html
7  * or http://www.netbeans.org/cddl.txt.
8  *
9  * When distributing Covered Code, include this CDDL Header Notice in each file
10  * and include the License file at http://www.netbeans.org/cddl.txt.
11  * If applicable, add the following below the CDDL Header, with the fields
12  * enclosed by brackets [] replaced by your own identifying information:
13  * "Portions Copyrighted [year] [name of copyright owner]"
14  *
15  * The Original Software is NetBeans. The Initial Developer of the Original
16  * Software is Sun Microsystems, Inc. Portions Copyright 1997-2006 Sun
17  * Microsystems, Inc. All Rights Reserved.
18  */

19
20 package org.openide.explorer.propertysheet;
21
22 import java.beans.PropertyEditorSupport JavaDoc;
23
24 /**
25  * Property editor for enumeration types.
26  * @author Jesse Glick
27  */

28 final class EnumPropertyEditor extends PropertyEditorSupport JavaDoc {
29
30     private final Class JavaDoc<? extends Enum JavaDoc> c;
31
32     public EnumPropertyEditor(Class JavaDoc<? extends Enum JavaDoc> c) {
33         this.c = c;
34     }
35
36     public String JavaDoc[] getTags() {
37         try {
38             Object JavaDoc[] values = (Object JavaDoc[]) c.getMethod("values").invoke(null); // NOI18N
39
String JavaDoc[] tags = new String JavaDoc[values.length];
40             for (int i = 0; i < values.length; i++) {
41                 tags[i] = values[i].toString();
42             }
43             return tags;
44         } catch (Exception JavaDoc x) {
45             throw new AssertionError JavaDoc(x);
46         }
47     }
48
49     public String JavaDoc getAsText() {
50         Object JavaDoc o = getValue();
51         return o != null ? o.toString() : "";
52     }
53
54     @SuppressWarnings JavaDoc("unchecked")
55     public void setAsText(String JavaDoc text) throws IllegalArgumentException JavaDoc {
56         if (text.length() > 0) {
57             setValue(Enum.valueOf(c, text));
58         } else {
59             setValue(null);
60         }
61     }
62
63     public String JavaDoc getJavaInitializationString() {
64         Enum JavaDoc e = (Enum JavaDoc) getValue();
65         return e != null ? c.getName().replace('$', '.') + '.' + e.name() : "null"; // NOI18N
66
}
67
68 }
69
Popular Tags