1 19 20 package org.netbeans.modules.xml.schema.ui.nodes.schema; 21 22 import org.netbeans.modules.xml.schema.model.AttributeReference; 23 import org.netbeans.modules.xml.schema.model.GlobalAttribute; 24 import org.netbeans.modules.xml.schema.model.SchemaComponentReference; 25 import org.netbeans.modules.xml.schema.ui.nodes.*; 26 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.BaseSchemaProperty; 27 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.DefaultProperty; 28 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.FixedProperty; 29 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.GlobalReferenceProperty; 30 import org.openide.nodes.Children; 31 import org.openide.nodes.Node; 32 import org.openide.nodes.Sheet; 33 import org.openide.util.NbBundle; 34 38 public class AttributeReferenceNode extends SchemaComponentNode<AttributeReference> 39 { 40 private static final String NAME = "attribute"; 41 45 public AttributeReferenceNode(SchemaUIContext context, 46 SchemaComponentReference<AttributeReference> reference, 47 Children children) { 48 super(context,reference,children); 49 50 setIconBaseWithExtension( 51 "org/netbeans/modules/xml/schema/ui/nodes/resources/"+ 52 "attribute_reference.png"); 53 } 54 55 56 60 @Override 61 public String getTypeDisplayName() { 62 return NbBundle.getMessage(LocalAttributeNode.class, 63 "LBL_AttributeReferenceNode_TypeDisplayName"); } 65 66 @Override 67 protected Sheet createSheet() { 68 Sheet sheet = super.createSheet(); 69 Sheet.Set set = sheet.get(Sheet.PROPERTIES); 70 try { 71 73 Node.Property fixedProp = new FixedProperty( 75 getReference().get(), NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Fixed_DisplayName"), NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Fixed_ShortDescription") ); 79 set.put(new SchemaModelFlushWrapper(getReference().get(),fixedProp)); 80 81 Node.Property defaultProp = new DefaultProperty( 83 getReference().get(), NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Default_DisplayName"), NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Default_ShortDescription") ); 87 set.put(new SchemaModelFlushWrapper(getReference().get(),defaultProp)); 88 89 Node.Property useProp = new BaseSchemaProperty( 91 getReference().get(), AttributeReference.Use.class, AttributeReference.USE_PROPERTY, NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Use_DisplayName"), NbBundle.getMessage(AttributeReferenceNode.class,"PROP_Use_ShortDescription"), LocalAttributeNode.UseEditor.class); 97 set.put(new SchemaModelFlushWrapper(getReference().get(),useProp)); 98 99 Node.Property refProp = new GlobalReferenceProperty<GlobalAttribute>( 101 getReference().get(), 102 AttributeReference.REF_PROPERTY, 103 NbBundle.getMessage(AttributeReferenceNode.class, 104 "PROP_Reference_DisplayName"), NbBundle.getMessage(AttributeReferenceNode.class, 106 "HINT_Attribute_Reference"), getTypeDisplayName(), NbBundle.getMessage(AttributeReferenceNode.class, 109 "LBL_GlobalAttributeNode_TypeDisplayName"), GlobalAttribute.class 111 ); 112 set.put(new SchemaModelFlushWrapper(getReference().get(), refProp)); 113 114 set.remove(GlobalAttribute.NAME_PROPERTY); 116 } catch (NoSuchMethodException nsme) { 117 assert false : "properties should be defined"; 118 } 119 120 return sheet; 121 } 122 123 @Override 124 protected GlobalAttribute getSuperDefinition() 125 { 126 AttributeReference sc = getReference().get(); 127 GlobalAttribute gt = null; 128 if(sc.getRef()!=null) 129 gt = sc.getRef().get(); 130 return gt; 131 } 132 133 137 public String getHtmlDisplayName() 138 { 139 String decoration=" (->)"; 140 String name = getDefaultDisplayName()+" <font color='#999999'>"+decoration+"</font>"; 141 return applyHighlights(name); 142 } 143 144 148 protected void updateDisplayName() 149 { 150 GlobalAttribute ref = getSuperDefinition(); 151 String name = ref==null?null:ref.getName(); 152 if(name==null||name.equals("")) 153 name = NAME; 154 setDisplayName(name); 155 } 156 157 } 158 | Popular Tags |