Como descobrir o tamanho preferido de uma JFace TreeViewer ou árvore SWT?

StackOverflow https://stackoverflow.com/questions/633305

  •  10-07-2019
  •  | 
  •  

Pergunta

Estou escrevendo um plugin do Eclipse, que tem um controle de foco que consiste em dois controles, um em cima do outro:

telespectador Um HTML (BrowserInformationControl) para que eu possa facilmente calcular a dica tamanho

A TreeViewer que contém uma árvore.

Eu configurei minha árvore com conteúdo real. No entanto, não consigo encontrar uma maneira de descobrir o tamanho da árvore ou a dica de tamanho para uma vez prestados.

Foi útil?

Solução

De acordo com a API de org.eclipse.swt.widgets.Tree , isso deve ser feito com:

public Point computeSize(int wHint,
                     int hHint,
                     boolean changed)

O tamanho preferido de um controle é o tamanho que seria melhor ser exibido no.

A dica e altura dica argumentos largura permitir que o chamador pedir uma série de perguntas de controle como "Dada uma largura particular, o quão alto é que a necessidade de controle a ser para mostrar todo o conteúdo?"
Para indicar que o chamador não quiser restringir uma dimensão particular, a SWT.DEFAULT constante é passado para a dica.

Se o sinalizador alterado é verdade, isso indica que o conteúdo do receptor mudaram, portanto, qualquer caches que um gerenciador de layout que contém o controle pode ter sido manter necessidade de ser lavada. Quando o controle é redimensionado, a bandeira alterado será falso, então caches gerenciador de layout pode ser retido.


Note que no Windows, o comportamento de computeSize() foi falho: ver este mensagem e este bug : fixo para eclipse 3.4M1 e para frente.

Exemplo de utilização de computeSize() em esta mensagem .

O uso de getBound() poderia ser outra interessante alternativa .

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top