1 19 20 package org.netbeans.modules.xml.schema.ui.basic; 21 22 import java.awt.Image ; 23 import javax.swing.Icon ; 24 import javax.swing.ImageIcon ; 25 import org.netbeans.modules.xml.schema.model.SchemaComponent; 26 import org.netbeans.modules.xml.schema.model.SchemaModel; 27 import org.netbeans.modules.xml.schema.ui.basic.SchemaSettings.ViewMode; 28 import org.netbeans.modules.xml.schema.ui.basic.search.AttributeNameSearchProvider; 29 import org.netbeans.modules.xml.schema.ui.basic.search.AttributeValueSearchProvider; 30 import org.netbeans.modules.xml.schema.ui.basic.search.ComponentNameSearchProvider; 31 import org.netbeans.modules.xml.schema.ui.basic.search.ComponentTypeSearchProvider; 32 import org.netbeans.modules.xml.schema.ui.basic.search.NameSpaceSearchProvider; 33 import org.netbeans.modules.xml.xam.Component; 34 import org.netbeans.modules.xml.xam.ui.category.AbstractCategory; 35 import org.openide.util.Lookup; 36 import org.openide.util.NbBundle; 37 import org.openide.util.Utilities; 38 import org.openide.util.lookup.Lookups; 39 import org.openide.util.lookup.ProxyLookup; 40 41 46 public class SchemaTreeCategory extends AbstractCategory { 47 48 private SchemaModel schemaModel; 49 50 private SchemaTreeView component; 51 52 private Lookup lookup; 53 54 60 public SchemaTreeCategory(SchemaModel model, Lookup lookup) { 61 this.schemaModel = model; 62 Object [] searchers = new Object [] { 63 new ComponentNameSearchProvider(model, this), 64 new ComponentTypeSearchProvider(model, this), 65 new AttributeNameSearchProvider(model, this), 66 new AttributeValueSearchProvider(model, this), 67 new NameSpaceSearchProvider(model, this), 68 }; 71 this.lookup = new ProxyLookup(new Lookup[] { 72 lookup, 73 Lookups.fixed(searchers) 74 }); 75 } 76 77 public void componentHidden() { 78 } 79 80 public void componentShown() { 81 initComponents(); 82 SchemaSettings.getDefault().setViewMode(ViewMode.TREE); 83 } 84 85 public java.awt.Component getComponent() { 86 initComponents(); 87 return component; 88 } 89 90 public String getDescription() { 91 return NbBundle.getMessage(SchemaTreeCategory.class, 92 "HINT_SchemaCategory_Tree"); 93 } 94 95 public Icon getIcon() { 96 String url = NbBundle.getMessage(SchemaTreeCategory.class, 97 "IMG_SchemaCategory_Tree"); 98 Image img = Utilities.loadImage(url); 99 return new ImageIcon (img); 100 } 101 102 public Lookup getLookup() { 103 return lookup; 104 } 105 106 public String getTitle() { 107 return NbBundle.getMessage(SchemaTreeCategory.class, 108 "LBL_SchemaCategory_Tree"); 109 } 110 111 114 private void initComponents() { 115 if (component == null) { 116 component = new SchemaTreeView(schemaModel, 117 SchemaTreeView.ViewType.CATEGORIZED, getLookup()); 118 } 119 } 120 121 public void showComponent(Component comp) { 122 if (comp instanceof SchemaComponent) { 123 component.showComponent((SchemaComponent)comp); 124 } 125 } 126 } 127 | Popular Tags |