1 19 20 28 package org.netbeans.modules.xml.wsdl.ui.view.treeeditor; 29 30 import java.util.Collection ; 31 import java.util.Collections ; 32 33 import javax.swing.SwingUtilities ; 34 35 import org.netbeans.modules.xml.wsdl.model.WSDLComponent; 36 import org.netbeans.modules.xml.xam.Component; 37 import org.netbeans.modules.xml.xam.ComponentEvent; 38 import org.netbeans.modules.xml.xam.ComponentListener; 39 import org.openide.nodes.Children; 40 41 42 46 public abstract class AbstractChildren extends Children.Keys implements ComponentListener { 47 48 49 private WSDLComponent mElement; 50 51 52 53 public AbstractChildren(WSDLComponent wsdlComponent) { 54 this.mElement = wsdlComponent; 55 mElement.getModel().addComponentListener(this); 56 } 57 58 public WSDLComponent getWSDLComponent() { 59 return this.mElement; 60 } 61 62 protected void refreshChildren() { 63 } 64 65 66 public void childrenAdded(ComponentEvent evt) { 67 if(!isSameAsMyWSDLElement((Component) evt.getSource())) { 68 return; 69 } 70 71 Runnable run = new Runnable () { 72 public void run() { 73 refreshChildren(); 74 } 75 }; 76 77 SwingUtilities.invokeLater(run); 78 79 80 } 81 82 public void childrenDeleted(ComponentEvent evt) { 83 if(!isSameAsMyWSDLElement((Component) evt.getSource())) { 84 return; 85 } 86 removeChild(evt.getSource()); 87 88 } 89 90 public void valueChanged(ComponentEvent evt) { 91 if(!isSameAsMyWSDLElement((Component) evt.getSource())) { 92 return; 93 } 94 Runnable run = new Runnable () { 95 public void run() { 96 refreshChildren(); 97 } 98 }; 99 100 SwingUtilities.invokeLater(run); 101 } 102 103 104 private void removeChild(Object key) { 105 Runnable run = new Runnable () { 106 public void run() { 107 refreshChildren(); 108 } 109 }; 110 111 SwingUtilities.invokeLater(run); 112 113 } 114 115 protected void addNotify() { 116 super.addNotify(); 117 refreshChildren(); 118 } 119 120 protected void removeNotify() { 121 super.removeNotify(); 122 super.nodes.clear(); 123 refresh(); 124 } 125 126 132 protected boolean isSameAsMyWSDLElement(Component node) { 133 if(node != null && node.equals(getWSDLComponent())) { 134 return true; 135 } 136 137 138 return false; 139 } 140 141 142 protected Collection getKeys() { 143 return Collections.EMPTY_LIST; 144 } 145 146 147 } 148 | Popular Tags |