1 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 ; 32 33 37 public final class TypeParameterArrayEditor extends PropertyEditorSupport implements ExPropertyEditor { 38 39 private JavaModelPackage model; 40 41 public String getAsText() { 42 TypeParameter[] tps = (TypeParameter[]) getValue(); 43 StringBuffer text = new StringBuffer (); 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(", "); } 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 text) throws IllegalArgumentException { 65 throw new UnsupportedOperationException (); 66 } 67 68 public boolean supportsCustomEditor() { 69 return false; 70 } 71 72 public static String params2String(TypeParameter[] params, String delimiter) { 73 StringBuffer buf = new StringBuffer (30); 74 for (int i = 0; i < params.length; i++) { 75 if (i > 0) 76 buf.append(delimiter); buf.append(param2String(params[i])); 78 } 79 return buf.toString(); 80 } 81 82 private static String 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 |