Eclipseプラグイン実践テクニック(5)

Eclipse Formsでリッチクライアントアプリ開発



NTTデータ先端技術 竹添直樹
NTTデータ 基盤システム事業本部 岡本隆史
2007/1/19



 Eclipse Formsならではのレイアウト・マネージャを使う

 Eclipse Formsでは、通常のSWTのレイアウト・マネージャを使用することも可能ですが、TableWrapLayoutColumnLayoutという2つのレイアウト・マネージャも用意されています。

編集部注:SWTで使用できるレイアウトの種類については、「米持先進技術工房@IT分室、第6回 SWTレイアウトを活用しよう」を参照してください。

TableWrapLayoutとは?

 TableWrapLayoutを使用すると、HTMLのテーブルのようなレイアウトができます。SWT標準のGridLayoutと似ていますが、ラベルなどが表示領域に収まらない場合は、自動的に折り返すことができるなど、微妙に挙動が異なります。リスト4はTableWrapLayoutの使用例です。

リスト4 TableWrapLayoutの使用例のコード
// TableWrapLayoutを作成(列数=2)
TableWrapLayout layout = new TableWrapLayout();
layout.numColumns = 2;

// レイアウト・マネージャをセット
Composite body = form.getBody();
body.setLayout(layout);

Section section1 = toolkit.createSection(body, Section.TITLE_BAR);
section1.setText("セクション1");
section1.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));

Label label1 = toolkit.createLabel(section1,
    "TableWrapLayoutを使用するとHTMLのテーブルのような"
    + "レイアウトを行うことができます。", SWT.WRAP);
section1.setClient(label1);

Section section2 = toolkit.createSection(body, Section.TITLE_BAR);
section2.setText("セクション2");
section2.setLayoutData(new TableWrapData(TableWrapData.FILL_GRAB));

Label label2 = toolkit.createLabel(section2,
    "表示領域に収まらない場合は自動的に折り返されます。",
    SWT.WRAP);
section2.setClient(label2);

Section section3 = toolkit.createSection(body, Section.TITLE_BAR);
section3.setText("セクション3(colspan=2)");
TableWrapData data = new TableWrapData(TableWrapData.FILL_GRAB);
data.colspan = 2;
section3.setLayoutData(data);

Label label3 = toolkit.createLabel(section3,
    "TableWrapDataを使用してcolspan、rowspanなどを指定します。",
    SWT.WRAP);
section3.setClient(label3);

 TableWrapLayoutでは、各ウィジェットにTableWrapDataでレイアウト情報を指定します。TableWrapDataには、colspanやrowspanなど、HTMLのテーブルの各セルに指定するのと同じようなプロパティを設定できます。

 リスト4の場合、表示は図7のようになります。

図7 TableWrapLayoutの表示例
図7 TableWrapLayoutの表示例

ColumnLayoutとは?

 ColumnLayoutは、SWT標準のRowLayoutに似ており、ウィジェットが水平方向に収まり切らない場合は、折り返して表示します。RowLayoutと異なるのは、折り返す際に列がきちんとそろうように折り返すという点です。

図8 ColumnLayoutの表示例
図8 ColumnLayoutの表示例(サイズを変更すると列を折り返して表示する)

 RowLayoutの場合、水平方向に収まらない場合、自動的に折り返して表示されますが、それぞれの列の幅はバラバラになります。

図9 RowLayoutの表示例
図9 RowLayoutの表示例(列がそろわない)

編集部注:SWTRowLayoutについての詳細は、「米持先進技術工房@IT分室、第9回 SWTのレイアウトはRowLayoutで右へ倣え!」を参照してください。
2/3

 INDEX
第5回 Eclipse Formsでリッチクライアントアプリ開発
  Page1
Eclipse FormsによるUIは一味違う
Eclipse Formsを使ってみよう
Page2
Eclipse Formsならではのレイアウト・マネージャを使う
  Page3
フォームにHTMLテキストを表示させるには?
Eclipse RCPにも役立つ


Java Solution全記事一覧



Java Agile フォーラム 新着記事
@ITメールマガジン 新着情報やスタッフのコラムがメールで届きます(無料)

注目のテーマ

Java Agile 記事ランキング

本日 月間