1 19 20 package org.netbeans.modules.xml.wsdl.ui.wsdl.nodes; 21 22 import java.awt.Image ; 23 import java.util.ArrayList ; 24 import java.util.Collections ; 25 import java.util.List ; 26 27 import org.netbeans.modules.xml.schema.model.GlobalSimpleType; 28 import org.netbeans.modules.xml.schema.model.SchemaComponent; 29 import org.netbeans.modules.xml.schema.model.SchemaModel; 30 import org.netbeans.modules.xml.schema.model.SchemaModelFactory; 31 import org.netbeans.modules.xml.schema.ui.nodes.categorized.CategorizedSchemaNodeFactory; 32 import org.netbeans.modules.xml.schema.ui.nodes.categorized.PrimitiveSimpleType; 33 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.FolderNode; 34 import org.openide.nodes.AbstractNode; 35 import org.openide.nodes.Children; 36 import org.openide.nodes.FilterNode; 37 import org.openide.nodes.Node; 38 import org.openide.util.Lookup; 39 import org.openide.util.NbBundle; 40 import org.openide.util.Utilities; 41 42 43 44 49 public class BuiltInTypeFolderNode extends AbstractNode { 50 51 private static final Image ICON = Utilities.loadImage 52 ("org/netbeans/modules/xml/wsdl/ui/view/resources/simpleType_badge.png"); 53 54 55 public BuiltInTypeFolderNode() { 56 super(new BuiltInTypeNodeChildren(SchemaModelFactory.getDefault().getPrimitiveTypesModel())); 57 this.setName(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 58 this.setDisplayName(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 59 this.setShortDescription(NbBundle.getMessage(BuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 60 61 } 62 63 @Override 64 public Image getIcon(int type) { 65 Image icon = FolderNode.FolderIcon.getClosedIcon(); 66 return Utilities.mergeImages(icon, ICON, 8, 8); 67 } 68 69 @Override 70 public Image getOpenedIcon(int type) { 71 Image icon = FolderNode.FolderIcon.getOpenedIcon(); 72 return Utilities.mergeImages(icon, ICON, 8, 8); 73 } 74 75 public static class BuiltInTypeNodeChildren extends Children.Keys { 76 SchemaModel model = null; 77 78 BuiltInTypeNodeChildren(SchemaModel model) { 79 this.model = model; 80 } 81 82 @Override 83 protected Node[] createNodes(Object key) { 84 List <Class <? extends SchemaComponent>> filters = new ArrayList <Class <? extends SchemaComponent>>(); 85 filters.add(PrimitiveSimpleType.class); 86 CategorizedSchemaNodeFactory factory = new CategorizedSchemaNodeFactory( 87 model, filters, Lookup.EMPTY); 88 Node node = factory.createNode((GlobalSimpleType) key); 89 return new Node[] { new ChildLessNode(node) }; 90 } 91 92 93 @Override 94 protected void addNotify() { 95 resetKeys(); 96 } 97 98 @Override 99 protected void removeNotify() { 100 this.setKeys(Collections.EMPTY_SET); 101 102 } 103 104 @SuppressWarnings ("unchecked") 105 private void resetKeys() { 106 ArrayList keys = new ArrayList (); 107 keys.addAll(model.getSchema().getSimpleTypes()); 108 this.setKeys(keys); 109 } 110 111 @Override 112 public boolean remove(final Node[] arr) { 113 return super.remove(arr); 114 } 115 } 116 117 private static class ChildLessNode extends FilterNode { 118 119 public ChildLessNode(Node node) { 120 super(node, Children.LEAF); 121 } 122 } 123 } 124 125 | Popular Tags |