[Seasar][Uruma] Uruma GUIレイアウトが効かない?
GridLayoutがうまく効かなくて試行錯誤中。
以前、SWTスタンドアローンでは、機能していたのですが。。。
Composite上のTEXTやTREEのWidgetも表示されていませんね。
mainTreeView.xml
<?xml version="1.0" encoding="UTF-8"?> <template xmlns="http://uruma.sandbox.seasar.org"> <viewPart title="メイン"> <gridLayout numColumns="1"> <gridData horizontalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" /> </gridLayout> <composite background="BLUE"> <gridData horizontalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" /> <text id="mainText" /> <tree id="mainTree" autoExpandLevel="1" /> </composite> <composite background="RED"> <gridData horizontalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" /> </composite> </viewPart> </template>
TemplateManagerには、GridLayoutもTextもちゃんとxmlから読み込めています。
デバッグ用にTemplateManagerをTreeに表示してみました。
Renderがおかしいのかな?
追記: 自己解決しました。
AbstractCompositeRendererを継承したコンポーネントでないとレイアウトを設定できないようです。
viewPartはAbstractRendererを継承しておりレイアウトを設定できないので、Viewの上にCompositeを作ってCompositeにレイアウトを設定し、各Widgetにレイアウトデータを設定すればうまくいきました。
mainTreeView.xml
<?xml version="1.0" encoding="UTF-8"?> <template xmlns="http://uruma.sandbox.seasar.org"> <viewPart title="メイン"> <composite background="BLUE"> <gridLayout numColumns="1" > <gridData horizontalAlignment="FILL" verticalAlignment="FILL" grabExcessHorizontalSpace="true" grabExcessVerticalSpace="true" /> </gridLayout> <text id="mainText" /> <tree id="mainTree" autoExpandLevel="1" /> </composite> </viewPart> </template>