1 19 20 package org.netbeans.modules.xml.wsdl.ui.api.property; 21 22 import java.awt.Component ; 23 import java.beans.FeatureDescriptor ; 24 import java.beans.PropertyChangeEvent ; 25 import java.beans.PropertyChangeListener ; 26 import java.beans.PropertyEditorSupport ; 27 28 import org.openide.explorer.propertysheet.ExPropertyEditor; 29 import org.openide.explorer.propertysheet.PropertyEnv; 30 31 36 public class PartsSelectorPropertyEditor extends PropertyEditorSupport implements ExPropertyEditor, PropertyChangeListener { 37 38 39 protected static final String PROP_NAME = "parts"; 41 42 private PropertyEnv env; 43 44 private String [] parts; 45 private String [] selectedPartNames; 46 47 public PartsSelectorPropertyEditor(String [] parts, String spaceSeperatedPartNames) { 48 this.parts = parts; 49 selectedPartNames = spaceSeperatedPartNames.split(" "); 50 } 51 52 57 public void attachEnv(PropertyEnv ev) { 58 this.env = ev; 59 FeatureDescriptor desc = env.getFeatureDescriptor(); 60 desc.setValue("canEditAsText", Boolean.FALSE); } 63 64 65 66 67 70 @Override 71 public String getAsText() { 72 if (getValue() == null) return ""; 73 return super.getAsText(); 74 } 75 76 77 @Override 78 public String [] getTags() { 79 return null; 80 } 81 82 83 @Override 84 public boolean supportsCustomEditor () { 85 return true; 86 } 87 88 89 @Override 90 public Component getCustomEditor () { 91 PartsSelectorPanel editor = new PartsSelectorPanel(parts, selectedPartNames, env); 92 editor.addPropertyChangeListener(PROP_NAME, this); 93 return editor; 94 } 95 99 public void propertyChange(PropertyChangeEvent evt) { 100 setValue(evt.getNewValue()); 101 } 102 } 103 104 | Popular Tags |