Domanda

Sto scrivendo un plugin Eclipse che ha un controllo hover che consiste di due controlli, uno sopra l'altro:

Un visualizzatore HTML (BrowserInformationControl) per il quale posso calcolare facilmente il suggerimento sulla dimensione

Un TreeViewer che contiene un albero.

Ho impostato il mio albero con contenuti reali. Tuttavia, non riesco a trovare un modo per capire la dimensione dell'albero o il suggerimento sulla dimensione per il rendering una volta.

È stato utile?

Soluzione

Secondo l'API di org.eclipse.swt.widgets.Tree , questo dovrebbe essere fatto con:

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

La dimensione preferita di un controllo è la dimensione in cui sarebbe meglio visualizzarla.

     

Gli argomenti suggerimento larghezza e suggerimento altezza consentono al chiamante di porre domande di controllo come " Data una particolare larghezza, quanto deve essere alto il controllo per mostrare tutto il contenuto? "
  Per indicare che il chiamante non desidera vincolare una determinata dimensione, la costante SWT.DEFAULT viene passata per il suggerimento.

     

Se il flag modificato è vero, indica che il contenuto del destinatario è cambiato, pertanto è necessario svuotare tutte le cache che un gestore di layout contenente il controllo deve aver tenuto. Quando il controllo viene ridimensionato, il flag modificato sarà falso, quindi le cache del gestore layout possono essere mantenute.


Nota che su Windows, il comportamento di computeSize () era imperfetto: vedi questo messaggio e questo bug : risolto per eclipse 3.4M1 e successivi.

Esempio di utilizzo di computeSize () in questo messaggio .

L'uso di getBound () potrebbe essere un altro alternativa interessante .

Autorizzato sotto: CC-BY-SA insieme a attribuzione
Non affiliato a StackOverflow
scroll top