Jface TreeViewer 또는 SWT 트리의 선호하는 크기를 파악하는 방법은 무엇입니까?
문제
나는 두 개의 컨트롤로 구성된 호버 컨트롤이있는 Eclipse 플러그인을 작성하고 있습니다.
크기 힌트를 쉽게 계산할 수있는 HTML 뷰어 (BrowserInformationControl)
나무가 포함 된 TreeViewer.
실제 내용으로 나무를 설정했습니다. 그러나 나무의 크기 또는 한 번 렌더링 된 크기 힌트를 파악할 수있는 방법을 찾을 수 없습니다.
해결책
API에 따르면 org.eclipse.swt.widgets.tree,이 작업은 다음과 같습니다.
public Point computeSize(int wHint,
int hHint,
boolean changed)
컨트롤의 선호하는 크기는 가장 잘 표시되는 크기입니다.
너비 힌트와 높이 힌트 인수를 통해 발신자는 "특정 너비가 주어지고 모든 내용을 보여주기 위해 제어가 얼마나 높아야합니까?"와 같은 제어 질문을 할 수 있습니다.
발신자가 특정 차원을 제한하기를 원하지 않음을 나타 내기 위해 상수 SWT.Default가 힌트를 위해 전달됩니다.변경된 플래그가 True 인 경우 수신기의 내용이 변경되었음을 나타냅니다. 따라서 제어를 포함하는 레이아웃 관리자가 보관해야 할 캐시는 플러시해야 할 수도 있습니다. 컨트롤이 조정되면 변경된 플래그는 False가되므로 레이아웃 관리자 캐시를 유지할 수 있습니다.
Windows에서는 동작에 유의하십시오 computeSize()
결함이 있었다 : 이것을 참조하십시오 메시지 이 벌레: Eclipse 3.4m1 및 앞으로 수정되었습니다.
사용의 예 computeSize()
안에 이 메시지.
사용 getBound()
또 다른 일 수 있습니다 흥미로운 대안.