Как определить предпочтительный размер JFace TreeViewer или SWT Tree? - PullRequest
2 голосов
/ 11 марта 2009

Я пишу плагин Eclipse, который имеет элемент управления наведением, который состоит из двух элементов управления, один поверх другого:

Средство просмотра HTML (BrowserInformationControl), для которого я могу легко вычислить подсказку о размере

TreeViewer, содержащий дерево.

Я установил свое дерево с фактическим содержимым. Тем не менее, я не могу найти способ выяснить размер дерева или подсказку о размере для него после его обработки.

1 Ответ

4 голосов
/ 11 марта 2009

Согласно API org.eclipse.swt.widgets.Tree , это должно быть сделано с:

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

Предпочтительный размер элемента управления - это размер, при котором он лучше всего будет отображаться.

Аргументы подсказки ширины и подсказки высоты позволяют вызывающей стороне задавать контрольные вопросы, такие как «При заданной ширине, насколько высоким должен быть элемент управления, чтобы показать все содержимое?»
Чтобы указать, что вызывающая сторона не желает ограничивать конкретное измерение, для подсказки передается константа SWT.DEFAULT.

Если измененный флаг равен true, это указывает на то, что содержимое получателя изменилось, поэтому любые кэши, которые, возможно, хранил менеджер компоновки, содержащий элемент управления, должны быть сброшены. При изменении размера элемента управления измененный флаг станет ложным, поэтому кэши диспетчера компоновки могут быть сохранены.


Обратите внимание, что в Windows поведение computeSize() было ошибочным: см. Это сообщение и эту ошибку : исправлено для затмения 3.4M1 и вперед.

Пример использования computeSize() в этом сообщении .

Использование getBound() может быть другой интересной альтернативой .

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...