TOPシステム開発> カラムヘッダにソート方向を表示(テーブル/ツリー)
Eclipse 3.2とCallisto
Eclipse 3.2とCallisto

第4回:テーブルやツリーの操作性や表現力がアップ!
著者:ビーブレイクシステムズ  川崎 博之   2006/10/6
前のページ  1  2  3
カラムヘッダにソート方向を表示(テーブル/ツリー)

   SWTのorg.eclipse.swt.widgets.Tableクラス、org.eclipse.swt.widgets.TableColumnクラス及び、org.eclipse.swt.widgets.Treeクラス、org.eclipse.swt.widgets.TreeColumnクラスでヘッダに対してソート方向を表示することが可能になりました。昇順は「▲」、降順は「▼」で表示されます。

   ソートされた列を指定するには、下記のメソッドを使用します。

org.eclipse.swt.widgets.Table # setSortColumn(TableColumn)
org.eclipse.swt.widgets.Tree # setSortColumn(TableColumn)
//ソート方向を指定するには下記のメソッドを使用します。
org.eclipse.swt.widgets.Table # setSortDirection (int)
org.eclipse.swt.widgets.Tree # setSortDirection (int)
//また、上記メソッドの引数には以下を使用します。
org.eclipse.swt.SWT.UP (昇順)
org.eclipse.swt.SWT.DOWN (降順)

テーブル・データの列2をキーに降順にソート
図6:テーブル・データの列2をキーに降順にソート
(画像をクリックすると別ウィンドウに拡大図を表示します)

   ソートのためのアルゴリズム、アクションのリスナなどは自分でコーディングする必要があります。以下に昇順ソートのサンプル・コードを示します。


(画像をクリックすると別ウィンドウに拡大図を表示します)


表示高速化(ツリー)

   テーブルではインスタンス生成時にorg.eclipse.swt.SWT.VIRTUALを指定することで、必要に応じてデータ生成し、大量のデータでも高速に表示を行うことができました。今回のリリースで、ツリーも同様SWT.VIRTUALによる表示の高速化に対応しました。サンプルコードを以下に示します。

TreeColumn column = new TreeColumn(tree, SWT.VIRTUAL);


列の入れ替え(ツリー)

   こちらもテーブルでは以前から対応していた機能ですが、今回のリリースでツリーでも列の入れ替えに対応しました。サンプル・コードを以下に示します。

TreeColumn column = new TreeColumn(tree, SWT.NONE);
column.setMoveable(true);

ヘッダをドラッグし列を入れ替える
図7:ヘッダをドラッグし列を入れ替える
(画像をクリックすると別ウィンドウに拡大図を表示します)


まとめ

   今回はSWTのテーブル、ツリーに関して新機能を紹介しました。これらは様々な情報を表示するために最もよく使われるwidgetです。今回紹介した機能を使うことでより表現力豊かで使いやすいアプリケーションの開発が可能になります。

   次回は、SWTおよびJFaceの新機能について紹介していきます。

前のページ  1  2  3


ビーブレイクシステムズ  川崎 博之
著者プロフィール
ビーブレイクシステムズ   川崎 博之
芝浦工業大学 工学部卒業。学生時代よりJavaに興味を持ち、Java専業ソフトハウスである黎明期のビーブレイクシステムズに入社し、現在に至る。入社当時はPMから直接厳しい指導を受け、机上の勉強とは違う実際の業務システム開発の難しさに戸惑いを覚えたが現在は主任Java開発者として活躍し、Javaアーキテクトを目指し、日々修行中。

INDEX
第4回:テーブルやツリーの操作性や表現力がアップ!
  はじめに
  テーブル/ツリー関連の変更点
カラムヘッダにソート方向を表示(テーブル/ツリー)