1 19 20 package org.netbeans.modules.xml.schema.ui.nodes.categorized; 21 22 import java.beans.PropertyChangeEvent ; 23 import java.beans.PropertyChangeListener ; 24 import java.text.MessageFormat ; 25 import org.openide.nodes.FilterNode; 26 import org.openide.nodes.Node; 27 28 32 public class DecoratedDisplayNameFilterNode extends FilterNode 33 { 34 38 public DecoratedDisplayNameFilterNode(final Node original, 39 String template, String initialName) 40 { 41 super(original); 42 43 this.template=template; 44 45 disableDelegation( 47 FilterNode.DELEGATE_GET_DISPLAY_NAME | 48 FilterNode.DELEGATE_SET_DISPLAY_NAME); 49 50 setDecoratedDisplayName(initialName); 51 52 original.addPropertyChangeListener( 55 new PropertyChangeListener () 56 { 57 public void propertyChange(PropertyChangeEvent event) 58 { 59 if (event.getSource()==original && 60 event.getPropertyName().equals( 61 Node.PROP_DISPLAY_NAME)) 62 { 63 setDecoratedDisplayName((String )event.getNewValue()); 64 } 65 } 66 }); 67 } 68 69 70 74 public String getTemplate() 75 { 76 return template; 77 } 78 79 80 84 public void setTemplate(String value) 85 { 86 template=value; 87 setDecoratedDisplayName(lastName); 88 } 89 90 91 95 public void setDecoratedDisplayName(String name) 96 { 97 setDisplayName(MessageFormat.format(getTemplate(),name)); 98 lastName=name; 99 } 100 101 102 103 104 108 private String template; 109 private transient String lastName; 110 } 111 | Popular Tags |