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.Schema; 28 import org.netbeans.modules.xml.schema.model.SchemaComponent; 29 import org.netbeans.modules.xml.schema.model.SchemaModelFactory; 30 import org.netbeans.modules.xml.schema.ui.nodes.categorized.CategorizedSchemaNodeFactory; 31 import org.netbeans.modules.xml.schema.ui.nodes.categorized.PrimitiveSimpleType; 32 import org.netbeans.modules.xml.wsdl.ui.view.treeeditor.FolderNode; 33 import org.openide.nodes.AbstractNode; 34 import org.openide.nodes.Children; 35 import org.openide.nodes.Node; 36 import org.openide.util.Lookup; 37 import org.openide.util.NbBundle; 38 import org.openide.util.Utilities; 39 40 41 42 47 public class XSDBuiltInTypeFolderNode extends AbstractNode { 48 49 private static final Image ICON = Utilities.loadImage 50 ("org/netbeans/modules/xml/wsdl/ui/view/resources/simpleType_badge.png"); 51 52 53 public XSDBuiltInTypeFolderNode() { 54 super(new XSDBuiltInTypeNodeChildren()); 55 this.setName(NbBundle.getMessage(XSDBuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 56 this.setDisplayName(NbBundle.getMessage(XSDBuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 57 this.setShortDescription(NbBundle.getMessage(XSDBuiltInTypeFolderNode.class, "BUILTIN_SCHEMATYPE_NAME")); 58 59 } 60 61 @Override 62 public Image getIcon(int type) { 63 Image icon = FolderNode.FolderIcon.getClosedIcon(); 64 return Utilities.mergeImages(icon, ICON, 8, 8); 65 } 66 67 @Override 68 public Image getOpenedIcon(int type) { 69 Image icon = FolderNode.FolderIcon.getOpenedIcon(); 70 return Utilities.mergeImages(icon, ICON, 8, 8); 71 } 72 73 public static class XSDBuiltInTypeNodeChildren extends Children.Keys { 74 75 @Override 76 protected Node[] createNodes(Object key) { 77 List <Class <? extends SchemaComponent>> filters = new ArrayList <Class <? extends SchemaComponent>>(); 78 filters.add(PrimitiveSimpleType.class); 79 CategorizedSchemaNodeFactory factory = new CategorizedSchemaNodeFactory( 80 ((Schema)key).getModel(), filters, Lookup.EMPTY); 81 Node node = factory.createNode((Schema) key); 82 return new Node[] { node }; 83 } 84 85 86 @Override 87 protected void addNotify() { 88 resetKeys(); 89 } 90 91 @Override 92 protected void removeNotify() { 93 this.setKeys(Collections.EMPTY_SET); 94 95 } 96 97 @SuppressWarnings ("unchecked") 98 private void resetKeys() { 99 ArrayList keys = new ArrayList (); 100 keys.add(SchemaModelFactory.getDefault().getPrimitiveTypesModel().getSchema()); 101 this.setKeys(keys); 102 } 103 104 @Override 105 public boolean remove(final Node[] arr) { 106 return super.remove(arr); 107 } 108 } 109 } 110 111 | Popular Tags |