¿Cómo calcular el tamaño preferido de un JFace TreeViewer o SWT Tree?

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

  •  10-07-2019
  •  | 
  •  

Pregunta

Estoy escribiendo un complemento Eclipse que tiene un control de desplazamiento que consta de dos controles, uno encima del otro:

Un visor HTML (BrowserInformationControl) para el que puedo calcular fácilmente la sugerencia de tamaño

Un TreeViewer que contiene un árbol.

He configurado mi árbol con contenido real. Sin embargo, no puedo encontrar una manera de averiguar el tamaño del árbol o la sugerencia de tamaño para él una vez renderizado.

¿Fue útil?

Solución

De acuerdo con la API de org.eclipse.swt.widgets.Tree , esto debe hacerse con:

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

El tamaño preferido de un control es el tamaño en el que se visualizaría mejor.

     

Los argumentos de pista de ancho y pista de altura le permiten a la persona que llama hacer preguntas de control como '' Dado un ancho particular, ¿qué tan alto debe ser el control para mostrar todos los contenidos? ''
  Para indicar que la persona que llama no desea restringir una dimensión particular, se pasa la constante SWT.DEFAULT para la pista.

     

Si el indicador cambiado es verdadero, indica que el contenido del receptor ha cambiado, por lo tanto, cualquier caché que un administrador de diseño que contenga el control haya estado manteniendo debe ser vaciado. Cuando se cambia el tamaño del control, el indicador modificado será falso, por lo que se pueden conservar las memorias caché del administrador de diseño.


Tenga en cuenta que en Windows, el comportamiento de computeSize () era defectuoso: vea esto mensaje y este bug : corregido para eclipse 3.4M1 y adelante.

Ejemplo de uso de computeSize () en este mensaje .

El uso de getBound () podría ser otro alternativa interesante .

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top