Skip to content
Snippets Groups Projects
Commit 7b03c825 authored by Katy Saintin's avatar Katy Saintin
Browse files

Manage ToolTip on Tree

parent bd43b04c
No related branches found
No related tags found
No related merge requests found
......@@ -34,6 +34,8 @@ import org.eclipse.swt.graphics.Rectangle;
import org.eclipse.swt.layout.FillLayout;
import org.eclipse.swt.widgets.Composite;
import org.eclipse.swt.widgets.Display;
import org.eclipse.swt.widgets.Event;
import org.eclipse.swt.widgets.Listener;
import org.eclipse.swt.widgets.Shell;
import org.eclipse.swt.widgets.TreeItem;
......@@ -74,11 +76,34 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
@Override
protected org.eclipse.swt.widgets.Tree initControl(int childStyle) {
org.eclipse.swt.widgets.Tree tree = new org.eclipse.swt.widgets.Tree(this, childStyle);
final org.eclipse.swt.widgets.Tree tree = new org.eclipse.swt.widgets.Tree(this, childStyle);
tree.addSelectionListener(this);
tree.addListener(SWT.MouseMove, new Listener() {
public void handleEvent(Event event) {
ITreeNode treeNode = getTreeNode(event.x, event.y);
if (treeNode != null) {
tree.setToolTipText(treeNode.getToolTip());
} else {
tree.setToolTipText(null);
}
}
});
return tree;
}
private ITreeNode getTreeNode(int x, int y) {
ITreeNode treeNode = null;
if ((getControl() != null) && !getControl().isDisposed()) {
org.eclipse.swt.widgets.Tree tree = getControl();
Point point = new Point(x, y);
TreeItem item = tree.getItem(point);
if (item != null) {
treeNode = TreeNodeTool.findTreeNodeForTreeItem(item, rootNode);
}
}
return treeNode;
}
@Override
public ITreeNode getRootNode() {
return rootNode;
......@@ -94,7 +119,6 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
if (!getControl().isDisposed()) {
// remove all nodes to keep a single root, as swt allows multiple roots
getControl().removeAll();
TreeNodeTool.createRootTreeNode(getControl(), aRootNode);
rootNode = aRootNode;
}
......@@ -126,14 +150,12 @@ public class Tree extends CometeComposite<org.eclipse.swt.widgets.Tree> implemen
@Override
public void run() {
if (!getControl().isDisposed()) {
// remove all nodes to keep a single root, as swt allows multiple roots
TreeItem parentItem = getControl().getParentItem();
if (parentItem != null) {
parentItem.setExpanded(expend);
TreeItem topItem = getControl().getTopItem();
if (topItem != null) {
topItem.setExpanded(expend);
}
}
}
});
}
}
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment