viewer.addSelectionChangedListener( new ISelectionChangedListener(){
public void selectionChanged(SelectionChangedEvent event) {
IStructuredSelection sel = (IStructuredSelection)event.getSelection();
IJSXNode element = (IJSXNode) sel.getFirstElement();
if( element != null )
{
IDocumentProvider provider = editor.getDocumentProvider();
IDocument document = provider.getDocument(editor.getEditorInput());
editor.selectAndReveal(element.getOffset(document.get()), element.getWordLength());
}
}
});
viewer.setInput( root );