10.6. Handling Tree Events

Problem

You need to know when the user selects an item in a tree widget.

Solution

Add a new listener to the Tree widget, using the addListener or addSelectionListener methods.

Discussion

As an example, we’ll add a listener to the tree developed in the previous recipe. We’ll also add a text widget to display the user’s selection, as shown in Example 10-3.

Example 10-3. SWT trees

package org.cookbook.ch10;

import org.eclipse.swt.*;
import org.eclipse.swt.widgets.*;

public class TreeClass
{

    public static void main(String[] args)
    {
        Display display = new Display( );
        Shell shell = new Shell(display);
        shell.setText("Tree Example");

        final Text text = new Text(shell, SWT.BORDER);
         text.setBounds(0, 270, 290, 25);

        final Tree tree = new Tree(shell, SWT.BORDER | SWT.V_SCROLL | 
             SWT.H_SCROLL);
        tree.setSize(290, 260);
        shell.setSize(300, 330);

        for (int loopIndex0 = 0; loopIndex0 < 10; loopIndex0++)
        {
            TreeItem treeItem0 = new TreeItem(tree, 0);
            treeItem0.setText("Level 0 Item " + loopIndex0);
            for (int loopIndex1 = 0; loopIndex1 < 10; loopIndex1++)
            {
                TreeItem treeItem1 = new TreeItem(treeItem0, 0);
                treeItem1.setText("Level 1 Item " + loopIndex1);
                for (int loopIndex2 = 0; loopIndex2 < 10; loopIndex2++)
                {
                    TreeItem treeItem2 = new TreeItem(treeItem1, 0);
                    treeItem2.setText("Level 2 Item " + loopIndex2);
                }
            }
        }

        tree.addListener(SWT.Selection, new Listener( )
         {
             public void handleEvent(Event event)
             {
                 text.setText(event.item + " was selected");
             }
         });

        shell.open( );
        while (!shell.isDisposed( ...

Get Eclipse Cookbook now with the O’Reilly learning platform.

O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.