1 19 20 package org.netbeans.modules.xml.schema.abe.nodes; 21 22 import java.util.ArrayList ; 23 import java.util.List ; 24 import org.netbeans.modules.xml.axi.AXIComponent; 25 import org.netbeans.modules.xml.axi.AXIDocument; 26 import org.netbeans.modules.xml.axi.AXIModel; 27 import org.netbeans.modules.xml.axi.AbstractElement; 28 import org.netbeans.modules.xml.axi.AnyElement; 29 import org.netbeans.modules.xml.axi.Attribute; 30 import org.netbeans.modules.xml.axi.ContentModel; 31 import org.netbeans.modules.xml.axi.datatype.CustomDatatype; 32 import org.netbeans.modules.xml.axi.datatype.Datatype; 33 import org.openide.nodes.Children; 34 import org.openide.nodes.Node; 35 import org.openide.util.Lookup; 36 37 41 public class ABENodeFactory<T extends AXIComponent> extends Object 42 { 43 47 public ABENodeFactory(AXIModel model, Lookup lookup) 48 { 49 super(); 50 context=createContext(model,lookup); 51 } 52 53 57 protected ABEUIContext createContext(AXIModel model, Lookup lookup) 58 { 59 return new ABEUIContext(model,this,lookup); 60 } 61 62 63 68 public ABEUIContext getContext() 69 { 70 return context; 71 } 72 73 79 public Node createRootNode() 80 { 81 return createRootNode(null); 82 } 83 84 90 public Node createRootNode(List <Class > filterTypes) 91 { 92 return new CategorizedDocumentNode(context, 93 context.getModel().getRoot(), filterTypes); 94 } 95 96 97 98 102 106 public Node createNode( 107 Node parent, AXIComponent component) 108 { 109 if(component instanceof AnyElement) 110 return new AnyElementNode((AnyElement) component); 111 else if(component instanceof AbstractElement) 112 return new ElementNode((AbstractElement) component); 113 else if(component instanceof ContentModel) 114 return new ContentModelNode((ContentModel) component); 115 else if(component instanceof Attribute) 116 return new AttributeNode((Attribute) component); 117 return null; 118 } 119 120 121 125 public Node createNode( 126 Node parent, Datatype component) 127 { 128 if(component instanceof CustomDatatype) 129 return new CustomDatatypeNode((CustomDatatype) component); 130 else 131 return new DatatypeNode(component); 132 133 } 134 135 136 137 159 public Children createChildren( 160 Node parent, AXIComponent component) 161 { 162 return Children.LEAF; 163 } 164 165 169 private ABEUIContext context; 170 } 171 | Popular Tags |