1 19 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor.extension.bpel; 20 21 import java.beans.PropertyEditor ; 22 import java.util.ArrayList ; 23 import java.util.Collection ; 24 import java.util.List ; 25 26 import javax.xml.namespace.QName ; 27 28 import org.netbeans.modules.xml.wsdl.model.ExtensibilityElement; 29 import org.netbeans.modules.xml.wsdl.model.WSDLModel; 30 import org.netbeans.modules.xml.wsdl.model.extensions.bpel.BPELQName; 31 import org.netbeans.modules.xml.wsdl.ui.api.property.ComboBoxPropertyEditor; 32 import org.netbeans.modules.xml.wsdl.ui.api.property.ExtensibilityElementPropertyAdapter; 33 import org.netbeans.modules.xml.wsdl.ui.netbeans.module.Utility; 34 import org.netbeans.modules.xml.xam.ui.XAMUtils; 35 import org.openide.nodes.PropertySupport; 36 37 public class PropertyNameProperty extends PropertySupport.Reflection { 38 39 private static QName propertyQName = BPELQName.PROPERTY.getQName(); 40 41 ExtensibilityElementPropertyAdapter adapter; 42 43 public PropertyNameProperty(ExtensibilityElementPropertyAdapter instance, Class valueType, String getter, String setter) throws NoSuchMethodException { 44 super(instance, valueType, getter, setter); 45 adapter = instance; 46 } 47 48 49 @Override 50 public PropertyEditor getPropertyEditor() { 51 ArrayList <String > list = new ArrayList <String >(); 52 list.add(""); 53 WSDLModel model = adapter.getExtensibilityElement().getModel(); 54 addToPropertyList(list, model); 55 56 Collection <WSDLModel> importedModels = Utility.getImportedDocuments(model); 58 for (WSDLModel imp : importedModels ) { 59 addToPropertyList(list, imp); 60 } 61 62 return new ComboBoxPropertyEditor(list.toArray(new String [list.size()])); 63 } 64 65 private void addToPropertyList(List <String > propertyList, WSDLModel model) { 66 List <ExtensibilityElement> ees = model.getDefinitions().getExtensibilityElements(); 67 String prefix = Utility.getNamespacePrefix(model.getDefinitions().getTargetNamespace(), 68 adapter.getExtensibilityElement()); 69 for (ExtensibilityElement ee : ees) { 70 if (propertyQName.equals(ee.getQName())) { 71 propertyList.add(prefix + ":" + ee.getAttribute("name")); 72 } 73 } 74 } 75 76 @Override 77 public boolean canWrite() { 78 return XAMUtils.isWritable(adapter.getExtensibilityElement().getModel()); 79 } 80 81 } 82 | Popular Tags |