1 11 12 package org.eclipse.pde.internal.ui.editor.outline; 13 14 import org.eclipse.jface.viewers.TreeViewer; 15 import org.eclipse.swt.events.MouseEvent; 16 import org.eclipse.swt.events.MouseMoveListener; 17 import org.eclipse.swt.graphics.Point; 18 import org.eclipse.swt.widgets.Item; 19 import org.eclipse.swt.widgets.Tree; 20 import org.eclipse.swt.widgets.TreeItem; 21 22 26 public class QuickOutlineMouseMoveListener implements MouseMoveListener { 27 28 private TreeItem fLastItem; 29 30 private TreeViewer fTreeViewer; 31 32 35 public QuickOutlineMouseMoveListener(TreeViewer treeViewer) { 36 fLastItem = null; 37 fTreeViewer = treeViewer; 38 } 39 40 43 public void mouseMove(MouseEvent e) { 44 Tree tree = fTreeViewer.getTree(); 45 if (tree.equals(e.getSource())) { 46 Object o= tree.getItem(new Point(e.x, e.y)); 47 if (o instanceof TreeItem) { 48 if (!o.equals(fLastItem)) { 49 fLastItem= (TreeItem)o; 50 tree.setSelection(new TreeItem[] { fLastItem }); 51 } else if (e.y < tree.getItemHeight() / 4) { 52 Point p= tree.toDisplay(e.x, e.y); 54 Item item= fTreeViewer.scrollUp(p.x, p.y); 55 if (item instanceof TreeItem) { 56 fLastItem= (TreeItem)item; 57 tree.setSelection(new TreeItem[] { fLastItem }); 58 } 59 } else if (e.y > tree.getBounds().height - tree.getItemHeight() / 4) { 60 Point p= tree.toDisplay(e.x, e.y); 62 Item item= fTreeViewer.scrollDown(p.x, p.y); 63 if (item instanceof TreeItem) { 64 fLastItem= (TreeItem)item; 65 tree.setSelection(new TreeItem[] { fLastItem }); 66 } 67 } 68 } 69 } 70 } 71 72 } 73 | Popular Tags |