1 19 20 28 29 package org.netbeans.modules.xml.schema.ui.nodes.categorized; 30 31 import java.awt.Image ; 32 import org.openide.nodes.AbstractNode; 33 import org.openide.nodes.Children; 34 import org.openide.nodes.Node; 35 import org.openide.util.NbBundle; 36 import org.netbeans.modules.xml.schema.model.GlobalSimpleType; 37 import org.netbeans.modules.xml.schema.model.SchemaModelFactory; 38 import org.netbeans.modules.xml.schema.ui.nodes.SchemaUIContext; 39 import org.openide.filesystems.FileObject; 40 import org.openide.filesystems.Repository; 41 import org.openide.loaders.DataObject; 42 import org.openide.loaders.DataObjectNotFoundException; 43 import org.openide.util.Utilities; 44 import org.openide.util.lookup.InstanceContent; 45 46 50 public class PrimitiveSimpleTypesNode extends AbstractNode 51 { 52 53 public PrimitiveSimpleTypesNode(SchemaUIContext context) 54 { 55 super(new TypesChildren(context)); 56 setIconBaseWithExtension( 57 "org/netbeans/modules/xml/schema/ui/nodes/resources/"+ 58 "folder_with_elementBadge.png"); 59 setName(NbBundle.getMessage(CategoryNode.class, 60 "LBL_CategoryNode_PrimitiveSimpleTypes")); 61 } 62 63 private Node getFolderNode() { 64 FileObject fo = 65 Repository.getDefault().getDefaultFileSystem().getRoot(); 66 Node n = null; 67 try { 68 DataObject dobj = DataObject.find(fo); 69 n = dobj.getNodeDelegate(); 70 } catch (DataObjectNotFoundException ex) { 71 } 74 75 return n; 76 } 77 78 @Override 79 public Image getIcon(int type) { 80 Node n = getFolderNode(); 81 Image i = super.getIcon(type); 82 if (n != null) { 83 i = n.getIcon(type); 84 } 85 return badgeImage(i); 86 } 87 88 @Override 89 public Image getOpenedIcon(int type) { 90 Node n = getFolderNode(); 91 Image i = super.getOpenedIcon(type); 92 if (n != null) { 93 i = n.getOpenedIcon(type); 94 } 95 return badgeImage(i); 96 } 97 98 private Image badgeImage(Image main) { 99 Image badgeImage = Utilities.loadImage("org/netbeans/modules/xml/schema/ui/nodes/resources/simpleType_badge.png"); return Utilities.mergeImages(main, badgeImage, 8, 8); 101 } 102 103 public boolean canRename() 104 { 105 return false; 106 } 107 108 public boolean canDestroy() 109 { 110 return false; 111 } 112 113 public boolean canCut() 114 { 115 return false; 116 } 117 118 public boolean canCopy() 119 { 120 return false; 121 } 122 123 public static class TypesChildren extends Children.Keys 124 { 125 TypesChildren(SchemaUIContext context) { 126 super(); 127 this.context = context; 128 } 129 protected Node[] createNodes(Object key) 130 { 131 if(key instanceof GlobalSimpleType) 132 { 133 Node node = context.getFactory().createNode((GlobalSimpleType)key); 134 return new Node[] {new TypeNode(node)}; 135 } 136 assert false; 137 return new Node[]{}; 138 } 139 140 protected void addNotify() 141 { 142 setKeys(SchemaModelFactory.getDefault().getPrimitiveTypesModel(). 143 getSchema().getSimpleTypes()); 144 } 145 146 private SchemaUIContext context; 147 } 148 149 public static class TypeNode extends ReadOnlySchemaComponentNode { 150 151 private TypeNode(Node original) 152 { 153 super(original, Children.LEAF, new InstanceContent()); 154 final String details = NbBundle.getMessage( 155 PrimitiveSimpleTypesNode.class,"MSG_"+getOriginal().getName()); 156 setShortDescription(details); 157 } 158 159 public String getHtmlDisplayName() 160 { 161 return getDefaultDisplayName(); 162 } 163 164 } 165 166 } 167 | Popular Tags |