1 19 20 26 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor; 27 28 import java.util.ArrayList ; 29 import java.util.Collection ; 30 import java.util.List ; 31 import java.util.Set ; 32 33 import org.netbeans.modules.xml.wsdl.model.Definitions; 34 import org.netbeans.modules.xml.wsdl.model.ExtensibilityElement; 35 import org.netbeans.modules.xml.wsdl.ui.cookies.AddChildWSDLElementCookie; 36 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElements; 37 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ExtensibilityElementNewTypesFactory; 38 import org.openide.util.NbBundle; 39 import org.openide.util.datatransfer.NewType; 40 41 46 public class ExtensibilityElementsFolderNode extends FolderNode { 47 48 private Definitions mDef = null; 49 private Set <String > mSpecialTargetNamespaces; 50 51 52 public ExtensibilityElementsFolderNode(Definitions element) { 53 super(new ExtensibilityElementsFolderChildren(element), 54 element, ExtensibilityElement.class); 55 mDef = element; 56 this.setDisplayName(NbBundle. 57 getMessage(ExtensibilityElementsFolderNode.class, 58 "EXTENSIBILITY_ELEMENTS_FOLDER_NODE_NAME")); 59 getLookupContents().add(new AddChildWSDLElementCookie(element)); 60 this.addNodeListener(new WSDLNodeListener(this)); 61 } 62 63 public ExtensibilityElementsFolderNode(Definitions element, Set <String > specialTargetNamespaces) { 64 super(new ExtensibilityElementsFolderChildren(element, specialTargetNamespaces), 65 element, ExtensibilityElement.class); 66 mDef = element; 67 mSpecialTargetNamespaces = specialTargetNamespaces; 68 this.setDisplayName(NbBundle. 69 getMessage(ExtensibilityElementsFolderNode.class, 70 "EXTENSIBILITY_ELEMENTS_FOLDER_NODE_NAME")); 71 getLookupContents().add(new AddChildWSDLElementCookie(element)); 72 this.addNodeListener(new WSDLNodeListener(this)); 73 } 74 75 76 @Override 77 public final NewType[] getNewTypes() { 78 if (isEditable()) { 79 if (mSpecialTargetNamespaces != null && mSpecialTargetNamespaces.size() > 0) { 82 return new ExtensibilityElementNewTypesFactory(WSDLExtensibilityElements.ELEMENT_DEFINITIONS, 83 mSpecialTargetNamespaces.toArray(new String [mSpecialTargetNamespaces.size()])).getNewTypes(mDef); 84 } 85 return new ExtensibilityElementNewTypesFactory(WSDLExtensibilityElements.ELEMENT_DEFINITIONS).getNewTypes(mDef); 86 } 87 return new NewType[] {}; 88 } 89 90 91 public Object getWSDLConstruct() { 92 return mDef; 93 } 94 95 public static final class ExtensibilityElementsFolderChildren extends GenericWSDLComponentChildren { 96 private Set <String > specialTargetNS; 97 98 public ExtensibilityElementsFolderChildren(Definitions definitions, Set <String > specialTargetNamespaces) { 99 super(definitions); 100 specialTargetNS = specialTargetNamespaces; 101 } 102 public ExtensibilityElementsFolderChildren(Definitions definitions) { 103 super(definitions); 104 } 105 106 @Override 107 protected Collection getKeys() { 108 Definitions def = (Definitions) getWSDLComponent(); 109 110 List <ExtensibilityElement> list = def.getExtensibilityElements(); 111 if (specialTargetNS == null) return list; 112 113 List <ExtensibilityElement> finalList = new ArrayList <ExtensibilityElement>(); 114 if (list != null) { 115 for (ExtensibilityElement element : list) { 116 if (specialTargetNS.contains(element.getQName().getNamespaceURI())) { 117 continue; 118 } 119 finalList.add(element); 120 } 121 } 122 return finalList; 123 } 124 } 125 126 @Override 127 public Class getType() { 128 return ExtensibilityElement.class; 129 } 130 } 131 132 | Popular Tags |