KickJava   Java API By Example, From Geeks To Geeks.

Java > Open Source Codes > org > netbeans > modules > java > ui > nodes > editors > TypeParameterArrayEditor


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.netbeans.modules.java.ui.nodes.editors;
21
22 import org.netbeans.jmi.javamodel.TypeParameter;
23 import org.netbeans.jmi.javamodel.JavaModelPackage;
24 import org.netbeans.modules.javacore.internalapi.JavaMetamodel;
25 import org.netbeans.modules.java.ui.nodes.elements.ElementNode;
26 import org.openide.ErrorManager;
27 import org.openide.explorer.propertysheet.ExPropertyEditor;
28 import org.openide.explorer.propertysheet.PropertyEnv;
29
30 import javax.jmi.reflect.JmiException;
31 import java.beans.PropertyEditorSupport JavaDoc;
32
33 /** Property editor for array of {@link org.netbeans.jmi.javamodel.TypeParameter} class
34  *
35  * @author Jan Pokorsky
36  */

37 public final class TypeParameterArrayEditor extends PropertyEditorSupport JavaDoc implements ExPropertyEditor {
38     
39     private JavaModelPackage model;
40     
41     public String JavaDoc getAsText() {
42         TypeParameter[] tps = (TypeParameter[]) getValue();
43         StringBuffer JavaDoc text = new StringBuffer JavaDoc();
44         
45         try {
46             JavaMetamodel.getDefaultRepository().beginTrans(false);
47             try {
48                 for (int i = 0; i < tps.length; i++) {
49                     TypeParameter tp = tps[i];
50                     if (i > 0) {
51                         text.append(", "); // NOI18N
52
}
53                     text.append(param2String(tp));
54                 }
55             } finally {
56                 JavaMetamodel.getDefaultRepository().endTrans();
57             }
58         } catch (JmiException e) {
59             ErrorManager.getDefault().notify(e);
60         }
61         return text.toString();
62     }
63
64     public void setAsText(String JavaDoc text) throws IllegalArgumentException JavaDoc {
65         throw new UnsupportedOperationException JavaDoc();
66     }
67
68     public boolean supportsCustomEditor() {
69         return false;
70     }
71
72     public static String JavaDoc params2String(TypeParameter[] params, String JavaDoc delimiter) {
73         StringBuffer JavaDoc buf = new StringBuffer JavaDoc(30);
74         for (int i = 0; i < params.length; i++) {
75             if (i > 0)
76                 buf.append(delimiter); // NOI18N
77
buf.append(param2String(params[i]));
78         }
79         return buf.toString();
80     }
81     
82     private static String JavaDoc param2String(TypeParameter tp) {
83         int start = tp.getStartOffset();
84         int end = tp.getEndOffset();
85         return tp.getResource().getSourceText().substring(start, end);
86     }
87     
88     public void attachEnv(PropertyEnv env) {
89         model = ElementNode.getModel(env.getFeatureDescriptor());
90     }
91 }
92
Popular Tags