1 19 20 28 29 package org.netbeans.modules.xml.schema.refactoring.query.views; 30 31 import java.awt.BorderLayout ; 32 import java.awt.Dimension ; 33 import java.awt.event.ComponentAdapter ; 34 import java.awt.event.ComponentEvent ; 35 import java.beans.PropertyChangeEvent ; 36 import java.beans.PropertyChangeListener ; 37 import javax.swing.JComponent ; 38 import javax.swing.JPanel ; 39 import javax.swing.KeyStroke ; 40 import javax.swing.SwingUtilities ; 41 import javax.swing.tree.TreeSelectionModel ; 42 import org.netbeans.modules.xml.refactoring.ui.util.AnalysisUtilities; 43 import org.openide.explorer.ExplorerManager; 44 import org.openide.explorer.view.BeanTreeView; 45 import org.openide.nodes.Children; 46 import org.openide.nodes.Node; 47 import org.openide.windows.TopComponent; 48 import org.netbeans.modules.xml.schema.refactoring.SchemaUIHelper.FilteredSchemaNode; 49 50 54 public class ResultsPanel extends JPanel implements ExplorerManager.Provider, 55 PropertyChangeListener { 56 57 private ExplorerManager explorerManager; 58 private static final long serialVersionUID = 1L; 59 private TView treeView; 60 61 public ResultsPanel(Node root) { 62 super(); 63 initialize(root); 64 } 65 66 67 private void initialize(Node root) { 68 explorerManager = new ExplorerManager(); 70 removeAll(); 71 setPreferredSize(new Dimension (200,200)); 72 setLayout(new BorderLayout ()); 73 treeView=new TView(); 74 treeView.setSelectionMode(TreeSelectionModel.SINGLE_TREE_SELECTION); 75 treeView.setRootVisible(true); 76 treeView.setDefaultActionAllowed(true); 77 Object key = "org.openide.actions.PopupAction"; 78 KeyStroke ks = KeyStroke.getKeyStroke("shift F10"); 79 treeView.getInputMap(JComponent.WHEN_ANCESTOR_OF_FOCUSED_COMPONENT).put(ks, key); 80 81 add(treeView,BorderLayout.CENTER); 82 explorerManager.setRootContext(root); 83 explorerManager.addPropertyChangeListener(this); 84 85 addComponentListener(new ComponentAdapter (){ 86 public void componentResized(ComponentEvent e) { 87 removeComponentListener(this); 92 int rh = treeView.getRowHeight(); 93 Node root = explorerManager.getRootContext(); 94 int count = getRowCount(root); 95 Node[] catNodes = root.getChildren().getNodes(); 99 for (int i = 0; i < catNodes.length;i++) { 100 treeView.expandNode(catNodes[i]); 101 } 102 } 104 }); 105 106 } 107 108 private int getRowCount(Node root){ 109 int count = 0; 110 if (root != null){ 111 count++; 112 } 113 else return count; 114 Children children = root.getChildren(); 115 if (children != null){ 116 Node[] catNodes = children.getNodes(); 117 for (Node n:catNodes){ 118 count++; 119 Children unusedCh = n.getChildren(); 120 if (unusedCh != null){ 121 count += unusedCh.getNodesCount(); 122 } 123 } 124 } 125 return count; 126 } 127 128 129 130 public ExplorerManager getExplorerManager() { 134 return explorerManager; 135 } 136 137 138 139 public void propertyChange(PropertyChangeEvent evt){ 143 if(ExplorerManager.PROP_SELECTED_NODES.equals(evt.getPropertyName())){ 144 Node[] selNodes = (Node[]) evt.getNewValue(); 145 TopComponent parent = (TopComponent)SwingUtilities. 146 getAncestorOfClass(TopComponent.class,treeView); 147 if (parent != null){ 148 parent.setActivatedNodes(selNodes); 149 } 150 } 151 } 153 154 public class TView extends BeanTreeView{ 155 public static final long serialVersionUID = 1L; 156 157 public TView(){ 158 super(); 159 } 160 161 public int getRowHeight() { 162 return tree.getRowHeight(); 163 } 164 } 165 } 166 167 168 | Popular Tags |