Ola a todos,
No package explorer do eclipse tenho alguns arquivos em xml com extensões que eu mesmo criei. Para estas extensões tenho um editor (feito como plugin para o eclipse) que abre o xml graficamente. O editor possui várias abas, uma delas possui uma tree integrada a um editor de texto. Neste editor de texto criei um hyperlink. Este hiperlink criado tem referencia a um item de uma tree de outro arquivo (com mesma extensão, sendo assim abre com o mesmo tipo de editor) ao clicar sobre este hyperlink ele deveria abrir o outro arquivo e então setar o foco do usuário no item da tree escolhido na criação do hiperlink(tudo isto pelo feito pelo processo que captura cliques do mouse). Até então tudo funciona, porém quando o editor é aberto e a Tree recebe o foco seu comportamento é verificar se ja existe algum item selecionado, se não existe então cria um evento e o deixa como postergado (evento adiado). Enfim meu problema é que este evento limpa o foco que eu havia setado pois ele é executado após o fim da execução do evento de clique do mouse. Não sei como posso resolver este problema, dicas e sugestões serão bem vindas.
comentário na classe org.eclipse.swt.widgets.Tree no método sobrescrito: int callWindowProc (int, int, int, int)
/*
- Feature in Windows. When a tree control processes WM_SETFOCUS,
- if no item is selected, the first item in the tree is selected.
- This is unexpected and might clear the previous selection.
- The fix is to detect that there is no selection and set it to
- the first visible item in the tree. If the item was not selected,
- only the focus is assigned.
*/
Grato,
Rafael Rodrigo.