1 16 package org.apache.log4j.lf5.viewer.categoryexplorer; 17 18 import javax.swing.*; 19 import javax.swing.tree.DefaultTreeCellEditor ; 20 import javax.swing.tree.TreePath ; 21 import java.awt.*; 22 import java.awt.event.MouseEvent ; 23 import java.util.EventObject ; 24 25 31 32 34 public class CategoryImmediateEditor extends DefaultTreeCellEditor { 35 39 private CategoryNodeRenderer renderer; 43 protected Icon editingIcon = null; 44 45 49 public CategoryImmediateEditor(JTree tree, 53 CategoryNodeRenderer renderer, 54 CategoryNodeEditor editor) { 55 super(tree, renderer, editor); 56 this.renderer = renderer; 57 renderer.setIcon(null); 58 renderer.setLeafIcon(null); 59 renderer.setOpenIcon(null); 60 renderer.setClosedIcon(null); 61 62 super.editingIcon = null; 63 } 64 65 public boolean shouldSelectCell(EventObject e) { 69 boolean rv = false; 71 if (e instanceof MouseEvent ) { 72 MouseEvent me = (MouseEvent ) e; 73 TreePath path = tree.getPathForLocation(me.getX(), 74 me.getY()); 75 CategoryNode node = (CategoryNode) 76 path.getLastPathComponent(); 77 78 rv = node.isLeaf() ; 79 } 80 return rv; 81 } 82 83 public boolean inCheckBoxHitRegion(MouseEvent e) { 84 TreePath path = tree.getPathForLocation(e.getX(), 85 e.getY()); 86 if (path == null) { 87 return false; 88 } 89 CategoryNode node = (CategoryNode) path.getLastPathComponent(); 90 boolean rv = false; 91 92 if (true) { 93 96 Rectangle bounds = tree.getRowBounds(lastRow); 97 Dimension checkBoxOffset = 98 renderer.getCheckBoxOffset(); 99 100 bounds.translate(offset + checkBoxOffset.width, 101 checkBoxOffset.height); 102 103 rv = bounds.contains(e.getPoint()); 104 } 105 return true; 106 } 107 108 112 protected boolean canEditImmediately(EventObject e) { 113 boolean rv = false; 114 115 if (e instanceof MouseEvent ) { 116 MouseEvent me = (MouseEvent ) e; 117 rv = inCheckBoxHitRegion(me); 118 } 119 120 return rv; 121 } 122 123 protected void determineOffset(JTree tree, Object value, 124 boolean isSelected, boolean expanded, 125 boolean leaf, int row) { 126 offset = 0; 128 } 129 130 134 138 } 139 140 141 142 143 144 145 | Popular Tags |