1 19 20 26 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor; 27 28 import java.awt.Image ; 29 import java.util.ArrayList ; 30 import java.util.Arrays ; 31 import java.util.List ; 32 import java.util.logging.Level ; 33 34 import javax.xml.namespace.QName ; 35 36 import org.netbeans.modules.xml.wsdl.model.BindingFault; 37 import org.netbeans.modules.xml.wsdl.model.WSDLComponent; 38 import org.netbeans.modules.xml.wsdl.ui.api.property.PropertyAdapter; 39 import org.netbeans.modules.xml.wsdl.ui.commands.NamedPropertyAdapter; 40 import org.netbeans.modules.xml.wsdl.ui.extensibility.model.WSDLExtensibilityElements; 41 import org.netbeans.modules.xml.wsdl.ui.view.property.BaseAttributeProperty; 42 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.DocumentationNewType; 43 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ExtensibilityElementNewTypesFactory; 44 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.NewTypesFactory; 45 import org.openide.ErrorManager; 46 import org.openide.nodes.Node; 47 import org.openide.util.NbBundle; 48 import org.openide.util.Utilities; 49 import org.openide.util.datatransfer.NewType; 50 51 52 58 public class BindingOperationFaultNode extends WSDLExtensibilityElementNode { 59 60 private BindingFault mWSDLConstruct; 61 62 private BindingOperationFaultPropertyAdapter mPropertyAdapter = null; 63 64 private static Image ICON = Utilities.loadImage 65 ("org/netbeans/modules/xml/wsdl/ui/view/resources/bindingfault.png"); 66 67 public BindingOperationFaultNode(BindingFault wsdlConstruct) { 68 super(new GenericWSDLComponentChildren(wsdlConstruct), wsdlConstruct, new BindingOperationFaultNewTypesFactory()); 69 mWSDLConstruct = wsdlConstruct; 70 71 72 this.mPropertyAdapter = new BindingOperationFaultPropertyAdapter(); 73 super.setNamedPropertyAdapter(this.mPropertyAdapter); 74 } 75 76 @Override 77 public String getNameInLayer() { 78 return WSDLExtensibilityElements.ELEMENT_BINDING_OPERATION_FAULT; 79 } 80 81 @Override 82 public Image getIcon(int type) { 83 return ICON; 84 } 85 86 @Override 87 public Image getOpenedIcon(int type) { 88 return ICON; 89 } 90 91 @Override 92 protected Node.Property createAttributeProperty(QName attrQName) { 93 Node.Property attrValueProperty = null; 94 try { 95 String attrName = attrQName.getLocalPart(); 96 if(attrName.equals(NAME_PROP)) { attrValueProperty = createNameProperty(); 100 101 } else { 102 attrValueProperty = super.createAttributeProperty(attrQName); 103 } 104 105 } catch(Exception ex) { 106 mLogger.log(Level.SEVERE, "failed to create property sheet for "+ getWSDLComponent(), ex); 107 ErrorManager.getDefault().notify(ex); 108 } 109 return attrValueProperty; 110 } 111 112 @Override 113 protected List <Node.Property> createAlwaysPresentAttributeProperty() throws Exception { 114 ArrayList <Node.Property> alwaysPresentAttrProperties = new ArrayList <Node.Property>(); 115 alwaysPresentAttrProperties.add(createNameProperty()); 116 117 return alwaysPresentAttrProperties; 118 } 119 120 121 private Node.Property createNameProperty() throws NoSuchMethodException { 122 Node.Property attrValueProperty; 123 attrValueProperty = new BaseAttributeProperty(mPropertyAdapter, 124 String .class, NAME_PROP); 125 attrValueProperty.setName(NbBundle.getMessage(BindingOperationFaultNode.class, "PROP_NAME_DISPLAYNAME")); 126 attrValueProperty.setShortDescription(NbBundle.getMessage(BindingOperationFaultNode.class, "BINDINGOPERATIONFAULT_NAME_DESCRIPTION")); 127 128 return attrValueProperty; 129 } 130 131 132 133 134 135 public class BindingOperationFaultPropertyAdapter extends PropertyAdapter implements NamedPropertyAdapter { 136 137 public BindingOperationFaultPropertyAdapter() { 138 super(getWSDLComponent()); 139 } 140 141 public void setName(String name) { 142 getWSDLComponent().getModel().startTransaction(); 143 ((BindingFault) getWSDLComponent()).setName(name); 144 getWSDLComponent().getModel().endTransaction(); 145 } 146 147 public String getName() { 148 if(mWSDLConstruct.getName() == null) { 149 return ""; 150 } 151 152 return mWSDLConstruct.getName(); 153 } 154 155 156 } 157 158 public static final class BindingOperationFaultNewTypesFactory implements NewTypesFactory{ 159 160 public NewType[] getNewTypes(WSDLComponent def) { 161 ArrayList <NewType> list = new ArrayList <NewType>(); 162 if (def.getDocumentation() == null) { 163 list.add(new DocumentationNewType(def)); 164 } 165 166 list.addAll(Arrays.asList(new ExtensibilityElementNewTypesFactory(WSDLExtensibilityElements.ELEMENT_BINDING_OPERATION_FAULT).getNewTypes(def))); 167 return list.toArray(new NewType[]{}); 168 } 169 } 170 171 @Override 172 public String getTypeDisplayName() { 173 return NbBundle.getMessage(BindingOperationFaultNode.class, "LBL_BindingFaultNode_TypeDisplayName"); 174 } 175 } 176 177 178 | Popular Tags |