QA@IT

EclipseのView内におけるWidgetの配置とScrolleBarについて

2261 PV

Eclipseのプラグインを開発しています。
org.eclipse.ui.viewsの拡張でViewを作成しています。
view(ViewPart)内に自作のwidget等を配置したい為、自由にレイアウトした上で表示しきれない場合はスクロールできる状況を作りたいのですが実現できておりません。

view内にFormToolkit#createScrolledFormにてScrolledFormを作成し、表示が収まらなかった場合にスクロールバーを出そうとしたのですが上手くいきませんでした。
editor(EditorPart)では同じ手法で上手くいきました。

いろいろと調べていると、editorの場合、#createPart(Composite parent)のparentは普通のCompositeでした。
viewの場合はLayoutCompositeでした。
また、リサイズ時のCompositeのサイズを調べてみると、editorのCompositeはリサイズにすべて反応するのに対し、
viewのLayoutCompositeはWidgetが表示されているサイズ以下は反応しませんでした。
(Compositeそのものが表示されているサイズ以下にならない為、スクロールバーが表示されないのだと思います。)

Tableを使えば、Tableのスクロールバーは表示される事を確認しています。

よろしくお願い致します。

回答

申し訳ないです。自己解決しました。

View内にScrolledPagebookを設置していたのが問題だったようです。
いずれも表示しきれないWidgetがある場合、スクロールバーを表示する構造になっていますが、類似した機能を持つため、バッティングしたような状況だったようです。

解決方法として、単純なCompositeを配置し、StackLayoutを利用しました。
HashMapを利用して、ページを管理することによりScrolledPagebookとほぼ同じような挙動が実現できました。

ありがとうございました。

編集 履歴 (0)
ウォッチ

この質問への回答やコメントをメールでお知らせします。