1 19 20 package org.netbeans.modules.xml.schema.ui.nodes.schema; 21 22 import java.awt.datatransfer.Transferable ; 23 import java.lang.reflect.InvocationTargetException ; 24 import java.util.List ; 25 import org.openide.nodes.Children; 26 import org.openide.nodes.Node; 27 import org.openide.nodes.Sheet; 28 import org.openide.util.NbBundle; 29 30 import org.netbeans.modules.xml.schema.model.Schema; 32 import org.netbeans.modules.xml.schema.model.SchemaComponentReference; 33 import org.netbeans.modules.xml.schema.model.Form; 34 import org.netbeans.modules.xml.schema.ui.basic.editors.FormPropertyEditor; 35 import org.netbeans.modules.xml.schema.ui.basic.editors.StringEditor; 36 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.BaseSchemaProperty; 37 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.DerivationTypeProperty; 38 import org.netbeans.modules.xml.schema.ui.nodes.schema.properties.NamespaceProperty; 39 import org.netbeans.modules.xml.schema.ui.nodes.*; 40 41 45 public class SchemaNode extends SchemaComponentNode<Schema> 46 { 47 51 public SchemaNode(SchemaUIContext context, 52 SchemaComponentReference<Schema> reference, 53 Children children) 54 { 55 super(context,reference,children); 56 57 setIconBaseWithExtension( 58 "org/netbeans/modules/xml/schema/core/resources/"+ 59 "Schema_File.png"); 60 } 61 62 63 67 protected void updateDisplayName() 68 { 69 String name = getReference().get().getTargetNamespace(); 70 if (name == null) { 71 name = NbBundle.getMessage(SchemaNode.class, 72 "LBL_SchemaNode_NoTargetNamespace"); 73 } 74 75 setDisplayName(name); 76 } 77 78 79 83 @Override 84 public String getTypeDisplayName() 85 { 86 return NbBundle.getMessage(SchemaNode.class, 87 "LBL_SchemaNode_TypeDisplayName"); } 89 90 @Override 91 protected Sheet createSheet() 92 { 93 Sheet sheet = super.createSheet(); 94 Sheet.Set props = sheet.get(Sheet.PROPERTIES); 95 if (props == null) { 96 props = Sheet.createPropertiesSet(); 97 sheet.put(props); 98 } 99 try { 100 Node.Property attrFormProp = new BaseSchemaProperty( 102 getReference().get(), Form.class, Schema.ATTRIBUTE_FORM_DEFAULT_PROPERTY, NbBundle.getMessage(SchemaNode.class,"PROP_AttributeFormDefault_DisplayName"), NbBundle.getMessage(SchemaNode.class,"PROP_AttributeFormDefault_ShortDescription"), FormPropertyEditor.SchemaFormPropertyEditor.class); props.put(new SchemaModelFlushWrapper(getReference().get(),attrFormProp)); 109 110 Node.Property elemFormProp = new BaseSchemaProperty( 112 getReference().get(), Form.class, Schema.ELEMENT_FORM_DEFAULT_PROPERTY, NbBundle.getMessage(SchemaNode.class,"PROP_ElementFormDefault_DisplayName"), NbBundle.getMessage(SchemaNode.class,"PROP_ElementFormDefault_ShortDescription"), FormPropertyEditor.SchemaFormPropertyEditor.class); props.put(new SchemaModelFlushWrapper(getReference().get(),elemFormProp)); 119 120 Node.Property blockDefaultProp = new DerivationTypeProperty( 122 getReference().get(), 123 Schema.BLOCK_DEFAULT_PROPERTY, 124 NbBundle.getMessage(SchemaNode.class,"PROP_BlockDefault_DisplayName"), NbBundle.getMessage(SchemaNode.class,"HINT_BlockDefault_ShortDesc"), getTypeDisplayName() 127 ); 128 props.put(new SchemaModelFlushWrapper(getReference().get(), blockDefaultProp)); 129 130 Node.Property finalDefaultProp = new DerivationTypeProperty( 132 getReference().get(), 133 Schema.FINAL_DEFAULT_PROPERTY, 134 NbBundle.getMessage(SchemaNode.class,"PROP_FinalDefault_DisplayName"), NbBundle.getMessage(SchemaNode.class,"HINT_FinalDefault_ShortDesc"), getTypeDisplayName() 137 ); 138 props.put(new SchemaModelFlushWrapper(getReference().get(), finalDefaultProp)); 139 140 Node.Property versionProp = new BaseSchemaProperty( 142 getReference().get(), 143 String .class, 144 Schema.VERSION_PROPERTY, 145 NbBundle.getMessage(SchemaNode.class,"PROP_Version_DisplayName"), NbBundle.getMessage(SchemaNode.class,"PROP_Version_ShortDescription"), StringEditor.class 148 ); 149 props.put(new SchemaModelFlushWrapper(getReference().get(), versionProp)); 150 151 Node.Property tnsProp = new NamespaceProperty( 153 getReference().get(), 154 Schema.TARGET_NAMESPACE_PROPERTY, 155 NbBundle.getMessage(SchemaNode.class,"PROP_TargetNamespace_DisplayName"), NbBundle.getMessage(SchemaNode.class,"PROP_TargetNamespace_ShortDescription"), getTypeDisplayName() ) { 159 public void setValue(Object o) throws IllegalAccessException , InvocationTargetException { 160 if(o instanceof String && "".equals(o)) { 161 super.setValue(null); 162 } else super.setValue(o); 163 } 164 }; 165 props.put(new SchemaModelFlushWrapper(getReference().get(), tnsProp)); 166 } catch (NoSuchMethodException nsme) { 167 assert false : "properties should be defined"; 168 } 169 170 return sheet; 177 } 178 179 @Override 180 protected void createPasteTypes(Transferable transferable, List list) { 181 list.clear(); 183 } 184 185 @Override 186 public boolean canCut() { 187 return false; 188 } 189 190 @Override 191 public boolean canCopy() { 192 return false; 193 } 194 } 195 | Popular Tags |