JFace TreeViewerまたはSWT Treeの推奨サイズを把握する方法は?
質問
2つのコントロールで構成されるホバーコントロールを持つEclipseプラグインを作成しています。
サイズヒントを簡単に計算できるHTMLビューアー(BrowserInformationControl)
ツリーを含むTreeViewer。
実際のコンテンツでツリーを設定しました。しかし、一度レンダリングすると、ツリーのサイズやサイズのヒントを把握する方法が見つかりません。
解決
org.eclipse.swt.widgets.Tree 、これは以下で行う必要があります。
public Point computeSize(int wHint,
int hHint,
boolean changed)
コントロールの推奨サイズは、最適に表示されるサイズです。
幅のヒント引数と高さのヒント引数を使用すると、呼び出し元は、「特定の幅を指定すると、コントロールがすべてのコンテンツを表示するために必要な高さ」などのコントロールの質問をすることができます。
呼び出し元が特定のディメンションを制約することを望まないことを示すために、ヒントに定数SWT.DEFAULTが渡されます。changedフラグがtrueの場合、レシーバーのコンテンツが変更されたことを示しているため、コントロールを含むレイアウトマネージャーが保持している可能性のあるキャッシュはフラッシュする必要があります。コントロールのサイズが変更されると、変更されたフラグはfalseになるため、レイアウトマネージャーのキャッシュを保持できます。
Windowsでは、 computeSize()
の動作に欠陥があったことに注意してください。メッセージおよびこのバグ:Eclipse 3.4M1以降で修正されました。
computeSize()の使用例nofollow noreferrer ">このメッセージ。
getBound()
の使用は、別の興味深い代替案。