1 19 20 26 package org.netbeans.modules.xml.wsdl.ui.api.property; 27 28 import java.awt.Component ; 29 import java.beans.FeatureDescriptor ; 30 import java.beans.PropertyChangeEvent ; 31 import java.beans.PropertyChangeListener ; 32 import java.beans.PropertyEditorSupport ; 33 34 import org.netbeans.modules.xml.xam.ui.XAMUtils; 35 import org.openide.explorer.propertysheet.ExPropertyEditor; 36 import org.openide.explorer.propertysheet.PropertyEnv; 37 38 39 40 46 public class ElementOrTypeOrMessagePartPropertyEditor extends PropertyEditorSupport 47 implements ExPropertyEditor, PropertyChangeListener { 48 49 50 static final String PROP_NAME = "ElementOrType"; 52 53 private PropertyEnv mEnv; 54 55 private ElementOrTypeOrMessagePartProvider mElementOrTypeOrMessagePartProvider; 56 57 58 public ElementOrTypeOrMessagePartPropertyEditor(ElementOrTypeOrMessagePartProvider elementOrTypeProvider) { 59 this.mElementOrTypeOrMessagePartProvider = elementOrTypeProvider; 60 } 61 62 67 public void attachEnv(PropertyEnv env) { 68 this.mEnv = env; 69 FeatureDescriptor desc = env.getFeatureDescriptor(); 70 desc.setValue("canEditAsText", Boolean.FALSE); } 73 74 75 76 77 78 @Override 79 public String [] getTags() { 80 return null; 81 } 82 83 84 @Override 85 public boolean supportsCustomEditor () { 86 return XAMUtils.isWritable(mElementOrTypeOrMessagePartProvider.getModel()); 87 } 88 89 90 @Override 91 public Component getCustomEditor () { 92 ElementOrTypeOrMessagePartPropertyPanel editor = new ElementOrTypeOrMessagePartPropertyPanel(mElementOrTypeOrMessagePartProvider, this.mEnv); 93 editor.addPropertyChangeListener(PROP_NAME, this); 94 return editor; 95 } 96 100 public void propertyChange(PropertyChangeEvent evt) { 101 setValue(evt.getNewValue()); 102 } 103 } 104 105 106 | Popular Tags |