Wie man Figur die bevorzugte Größe eines JFace TreeViewer oder SWT-Baum aus?

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

  •  10-07-2019
  •  | 
  •  

Frage

Ich schreibe eine Eclipse-Plugin, die eine Hover-Steuerung hat, die eine über den anderen von zwei Kontrollen besteht:

Ein HTML-Viewer (BrowserInformationControl), für die ich leicht die Größe Hinweis berechnen kann

Ein TreeViewer, die einen Baum enthält.

Ich habe meinen Baum mit dem tatsächlichen Inhalt einrichten. Allerdings kann ich nicht einen Weg finden, um die Größe des Baumes oder die Größe Hinweis für sie einmal gemacht, um herauszufinden.

War es hilfreich?

Lösung

Nach der API von org.eclipse.swt.widgets.Tree , sollte dies mit getan werden:

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

Die bevorzugte Größe einer Steuer ist die Größe, dass es am besten bei angezeigt werden würde.

     

Die Breite Hinweis und Höhe Hinweis Argumente erlauben es dem Anrufer eine Steuer Fragen wie zu fragen, „eine bestimmte Breite gegeben, wie hoch ist die Steuerung müssen alle Inhalte zeigen?“
  Um anzuzeigen, dass der Anrufer nicht wünscht, eine bestimmte Dimension zu beschränken, die Konstante SWT.DEFAULT ist für den Hinweis übergeben.

     

Wenn das geänderte Flag wahr ist, zeigt es an, dass der Empfänger den Inhalt geändert haben, also alle Caches, dass ein Layout-Manager die das Steuerelement enthält Bedarf wurden möglicherweise halten gespült werden. Wenn die Steuer Größe verändert wird, wird das geänderte Flag falsch sein, so beibehalten wird Layout-Manager-Caches kann.


Beachten Sie, dass unter Windows wurde das Verhalten von computeSize() fehlerhaft: siehe das Nachricht und diese Fehler : fixed für eclipse 3.4M1 und nach vorn.

Beispiel für die Verwendung von computeSize() in dieser Nachricht .

Die Verwendung von getBound() könnte eine weitere interessante Alternative sein .

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top