1 19 20 package org.netbeans.modules.xml.wsdl.ui.view.grapheditor.widget; 21 22 import java.io.IOException ; 23 import java.util.ArrayList ; 24 import java.util.Collections ; 25 import java.util.List ; 26 import java.util.ListIterator ; 27 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.BindingAndServiceNewType; 28 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.BindingNewType; 29 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.DocumentationNewType; 30 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ExtensibilityElementChildNewType; 31 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ImportSchemaNewType; 32 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ImportWSDLNewType; 33 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ServiceNewType; 34 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.newtype.ServicePortNewType; 35 import org.openide.nodes.FilterNode; 36 import org.openide.nodes.Node; 37 import org.openide.util.datatransfer.NewType; 38 39 44 public class WidgetFilterNode extends FilterNode { 45 46 private AbstractWidget widget; 47 48 53 public WidgetFilterNode(Node original) { 54 super(original); 55 } 56 57 public WidgetFilterNode(Node original, AbstractWidget widget) { 58 this(original); 59 this.widget = widget; 60 } 61 62 @Override 63 public NewType[] getNewTypes() { 64 NewType[] types = super.getNewTypes(); 65 List <NewType> list = new ArrayList <NewType>(); 66 Collections.addAll(list, types); 67 updateNewTypes(list); 68 return list.toArray(new NewType[list.size()]); 69 } 70 71 81 protected void updateNewTypes(List <NewType> types) { 82 ListIterator <NewType> liter = types.listIterator(); 83 while (liter.hasNext()) { 84 NewType type = liter.next(); 85 if (type instanceof BindingNewType || 86 type instanceof BindingAndServiceNewType || 87 type instanceof DocumentationNewType || 88 type instanceof ExtensibilityElementChildNewType || 89 type instanceof ImportSchemaNewType || 90 type instanceof ImportWSDLNewType || 91 type instanceof ServiceNewType || 92 type instanceof ServicePortNewType) { 93 liter.remove(); 94 } 95 } 96 } 97 98 @Override 99 public void destroy() throws IOException { 100 if (widget != null) { 101 widget.deleteComponent(); 102 } 103 super.destroy(); 104 105 } 106 } 107 | Popular Tags |