1 19 20 package org.netbeans.modules.xml.wsdl.ui.view; 21 22 import java.io.IOException ; 23 import java.util.Map ; 24 import org.netbeans.modules.xml.wsdl.model.Import; 25 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 26 import org.netbeans.modules.xml.wsdl.ui.actions.NameGenerator; 27 import org.netbeans.modules.xml.xam.Model; 28 import org.netbeans.modules.xml.xam.dom.AbstractDocumentComponent; 29 import org.netbeans.modules.xml.xam.ui.customizer.ExternalReferenceDecorator; 30 import org.netbeans.modules.xml.xam.ui.customizer.ExternalReferenceCustomizer; 31 import org.openide.util.HelpCtx; 32 33 39 public class ImportWSDLCustomizer extends ExternalReferenceCustomizer<Import> { 40 private static final long serialVersionUID = 1L; 41 private ExternalReferenceDecorator decorator; 42 43 48 public ImportWSDLCustomizer(Import _import) { 49 super(_import, null); 50 } 51 52 @Override 53 public void applyChanges() throws IOException { 54 super.applyChanges(); 55 Import _import = (Import) getModelComponent(); 56 if (isLocationChanged()) { 57 _import.setLocation(getEditedLocation()); 59 } 60 61 String namespace = getEditedNamespace(); 62 if (mustNamespaceDiffer() && isNamespaceChanged()) { 63 _import.setNamespace(namespace); 65 } 66 67 WSDLModel model = (WSDLModel) getModelComponent().getModel(); 68 if (mustNamespaceDiffer() && isPrefixChanged()) { 69 String prefix = getEditedPrefix(); 71 if (prefix.length() > 0) { 72 AbstractDocumentComponent def = 75 (AbstractDocumentComponent) model.getDefinitions(); 76 def.addPrefix(prefix, namespace); 77 } 78 } 79 } 80 81 protected String getReferenceLocation() { 82 Import _import = (Import) getModelComponent(); 83 return _import.getLocation(); 84 } 85 86 protected String getNamespace() { 87 Import _import = (Import) getModelComponent(); 88 return _import.getNamespace(); 89 } 90 91 protected String getPrefix() { 92 Import _import = (Import) getModelComponent(); 93 String namespace = _import.getNamespace(); 94 WSDLModel model = (WSDLModel) getModelComponent().getModel(); 95 AbstractDocumentComponent def = 96 (AbstractDocumentComponent) model.getDefinitions(); 97 Map <String , String > prefixMap = def.getPrefixes(); 98 for (Map.Entry <String , String > entry : prefixMap.entrySet()) { 99 if (entry.getValue().equals(namespace)) { 100 return entry.getKey(); 101 } 102 } 103 return null; 113 } 114 115 public HelpCtx getHelpCtx() { 116 return new HelpCtx(ImportWSDLCustomizer.class); 117 } 118 119 protected String getTargetNamespace(Model model) { 120 return ((WSDLModel) model).getDefinitions().getTargetNamespace(); 121 } 122 123 protected Map <String , String > getPrefixes(Model model) { 124 WSDLModel wm = (WSDLModel) model; 125 AbstractDocumentComponent def = 126 (AbstractDocumentComponent) wm.getDefinitions(); 127 return def.getPrefixes(); 128 } 129 130 protected ExternalReferenceDecorator getNodeDecorator() { 131 if (decorator == null) { 132 decorator = new WSDLReferenceDecorator(this); 133 } 134 return decorator; 135 } 136 137 protected String generatePrefix() { 138 WSDLModel model = (WSDLModel) getModelComponent().getModel(); 139 return NameGenerator.getInstance().generateNamespacePrefix(null, model); 140 } 141 142 public boolean mustNamespaceDiffer() { 143 return true; 144 } 145 } 146 | Popular Tags |