Comment déterminer la taille préférée d'un JFace TreeViewer ou d'un arbre SWT?

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

  •  10-07-2019
  •  | 
  •  

Question

J'écris un plug-in Eclipse dont le contrôle de survol se compose de deux contrôles superposés:

Un visualiseur HTML (BrowserInformationControl) pour lequel je peux facilement calculer l'indice de taille

Un TreeViewer contenant un arbre.

J'ai configuré mon arbre avec le contenu actuel. Cependant, je ne peux pas trouver un moyen de déterminer la taille de l'arbre ou l'indice de taille pour celui-ci une fois rendu.

Était-ce utile?

La solution

Selon l'API org.eclipse.swt.widgets.Tree , cela devrait être fait avec:

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

La taille préférée d'un contrôle est la taille à laquelle il serait le mieux affiché.

     

Les indicateurs de largeur et de hauteur permettent à l'appelant de poser des questions de contrôle telles que "Pour une largeur donnée, quelle doit être la hauteur du contrôle pour afficher tout le contenu?".



  Pour indiquer que l'appelant ne souhaite pas contraindre une dimension particulière, la constante SWT.DEFAULT est transmise pour le conseil.

     

Si l'indicateur modifié est défini sur true, cela indique que le contenu du destinataire a été modifié. Par conséquent, tout cache mis en cache par un gestionnaire de disposition contenant le contrôle doit être vidé. Lorsque le contrôle est redimensionné, l'indicateur modifié est défini sur false, ce qui permet de conserver les caches du gestionnaire de disposition.

Notez que sous Windows, le comportement de computeSize () était défectueux: voir ceci message et ce bug : corrigé pour eclipse 3.4M1 et suivant.

Exemple d'utilisation de computeSize () dans ce message .

L'utilisation de getBound () pourrait être un autre alternative intéressante .

Licencié sous: CC-BY-SA avec attribution
Non affilié à StackOverflow
scroll top