Problema com org.eclipse.swt.widgets.Tree

0 respostas
Planc

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.

Criado 16 de abril de 2009
Respostas 0
Participantes 1