1 19 20 28 29 package org.netbeans.modules.xml.schema.abe.nodes; 30 31 import java.awt.Image ; 32 import java.util.List ; 33 import org.netbeans.modules.xml.axi.AXIDocument; 34 import org.netbeans.modules.xml.axi.AXIModel; 35 import org.netbeans.modules.xml.schema.model.SchemaModelReference; 36 import org.openide.nodes.AbstractNode; 37 import org.openide.nodes.Children; 38 import org.openide.nodes.Node; 39 import org.openide.util.NbBundle; 40 41 45 public class ReferencedSchemasNode extends AbstractNode { 46 47 50 public ReferencedSchemasNode(ABEUIContext context, 51 AXIDocument doc, List <Class > childFilters) { 52 super(new ReferencedSchemas(context, doc, childFilters)); 53 setName(NbBundle.getMessage(ReferencedSchemasNode.class, 54 "LBL_CategoryNode_ReferencedSchemasNode")); 55 } 56 57 public boolean canRename() { 58 return false; 59 } 60 61 public boolean canDestroy() { 62 return false; 63 } 64 65 public boolean canCut() { 66 return false; 67 } 68 69 public boolean canCopy() { 70 return false; 71 } 72 73 public Image getOpenedIcon(int i) { 74 return org.netbeans.modules.xml.schema.ui.nodes.categorized. 75 CategorizedChildren.getBadgedFolderIcon(i, SchemaModelReference.class); 76 } 77 78 public Image getIcon(int i) { 79 return org.netbeans.modules.xml.schema.ui.nodes.categorized. 80 CategorizedChildren.getOpenedBadgedFolderIcon(i, SchemaModelReference.class); 81 } 82 83 private static class ReferencedSchemas extends Children.Keys { 84 ReferencedSchemas(ABEUIContext context, 85 AXIDocument doc, List <Class > childFilters) { 86 super(); 87 this.context = context; 88 this.doc = doc; 89 this.childFilters = childFilters; 90 } 91 protected Node[] createNodes(Object key) { 92 if(key instanceof AXIModel) { 93 Node node = null; 94 AXIDocument refDoc = ((AXIModel)key).getRoot(); 95 if(isIncludedSchema(refDoc)) { 96 node = new IncludeNode(context, refDoc, childFilters); 97 } else { 98 node = new ImportNode(context, refDoc, childFilters); 99 } 100 return new Node[] {node}; 101 } 102 assert false; 103 return new Node[]{}; 104 } 105 106 protected void addNotify() { 107 setKeys(doc.getModel().getReferencedModels()); 108 } 109 110 private boolean isIncludedSchema(AXIDocument thisDoc) { 111 AXIDocument original = context.getModel().getRoot(); 112 if(original.getTargetNamespace().equals(thisDoc.getTargetNamespace())) { 113 return true; 114 } 115 116 return false; 117 } 118 119 private AXIDocument doc; 120 private ABEUIContext context; 121 private List <Class > childFilters; 122 } 123 } 124 | Popular Tags |