public static void main(String[] args) {
	final String SEARCH_STRING = "4b";

	Display display = new Display ();
	Shell shell = new Shell (display);
	shell.setBounds (10,10,300,300);
	shell.setLayout (new GridLayout ());

	/* create the Tree */
	tree = new Tree (shell, SWT.FULL_SELECTION);
	tree.setLinesVisible (true);
	tree.setLayoutData (new GridData (GridData.FILL_BOTH));
	for (int i = 0; i < 3; i++) {
		new TreeColumn (tree, SWT.NONE).setWidth (90);
	}
	int index = 0;
	for (int i = 0; i < 3; i++) {
		TreeItem item = createItem (null, index++);
		for (int j = 0; j < i; j++) {
			item = createItem (item, index++);
		}
	}

	Button button = new Button (shell, SWT.PUSH);
	button.setText ("Find '" + SEARCH_STRING + "'");
	button.addListener (SWT.Selection, new Listener () {
		@Override
		public void handleEvent (Event event) {
			int itemCount = tree.getItemCount ();
			for (int i = 0; i < itemCount; i++) {
				TreeItem item = tree.getItem (i);
				boolean success = find (item, SEARCH_STRING);
				if (success) {
					System.out.println ("Found it");
					return;
				}
			}
			System.out.println ("Did not find it");
		}
	});
	shell.open ();
	while (!shell.isDisposed ()) {
		if (!display.readAndDispatch ()) display.sleep ();
	}
	display.dispose ();
}