1 19 20 package org.netbeans.modules.java.ui.nodes.elements; 21 22 import org.openide.nodes.Children; 23 import org.openide.nodes.Sheet; 24 import org.openide.util.datatransfer.NewType; 25 import org.openide.src.ElementProperties; 26 import org.netbeans.jmi.javamodel.AnnotationType; 27 28 import java.util.Map ; 29 import java.util.HashMap ; 30 31 35 public final class AnnotationTypeNode extends ElementNode { 36 37 private static final Map mapAttributeName; 38 39 static { 40 mapAttributeName = new HashMap (); 41 mapAttributeName.put(PROP_MODIFIERS, PROP_MODIFIERS); 42 mapAttributeName.put(ElementProperties.PROP_NAME, ElementProperties.PROP_NAME); 43 } 44 45 public AnnotationTypeNode(AnnotationType element, Children children, boolean writeable) { 46 super(element, children, writeable); 47 setElementFormat0(getElementFormatProperty()); 48 } 49 50 protected String resolveIconBase() { 51 return IconStrings.ANNOTATION_TYPE; 52 } 53 54 protected ElementFormat getElementFormatProperty() { 55 return getSourceOptions().getAnnTypeElementFormat(); 56 } 57 58 protected ElementFormat getHintElementFormat() { 59 return getSourceOptions().getAnnTypeElementLongFormat(); 60 } 61 62 protected Map getAttributeNameMap() { 63 return mapAttributeName; 64 } 65 66 public NewType[] getNewTypes() { 67 if (writeable) { 68 return SourceEditSupport.createInterfaceNewTypes(getAnnotationType()); 69 } else { 70 return super.getNewTypes(); 71 } 72 } 73 74 protected Sheet createSheet() { 75 Sheet s = Sheet.createDefault(); 76 Sheet.Set ps = s.get(Sheet.PROPERTIES); 77 ps.put(createModifiersProperty(writeable)); 78 ps.put(createNameProperty(getAnnotationType())); 79 return s; 80 } 81 82 private AnnotationType getAnnotationType() { 83 return (AnnotationType) this.element; 84 } 85 } 86 | Popular Tags |