TOP設計・移行・活用> はじめに





Eclipse実践プラグイン開発
Eclipse実践プラグイン開発

第4回:JFaceのGUIコンポーネント
著者:ビーブレイクシステムズ  大森 洋行   2005/7/25
1   2  3  4  次のページ
はじめに

   今回は前回に引き続き、GUIコンポーネントについて説明します。
テーブルビューア(TableViewer)

   テーブルビューアは、JFaceが提供するテーブル作成の補助を目的としたフレームワークで、内部にSWTのorg.eclipse.swt.widgets.Tableを持ちます。

   登場するクラスが若干多く慣れるまでは戸惑うかもしれませんが、テーブルビューアを理解すれば、ツリービューアなどのその他のJFaceのフレームワークも同様に扱うことができます。急に難易度が上がりますが、ここをクリアするとグラフィカルなプラグインの作成がぐっと身近になりますので、じっくりと取り組んでみてください。

   ここではテーブルビューアの機能を理解してもらうために、以下のような機能をもつテーブルについて順を追って作成します。なおビューの拡張について説明していませんが、ここではビューにテーブルを表示する場合を実行例として説明します。



   まずは、テーブルビューアでデータを表示するところまでみていきましょう。


STEP1:データの表示

   テーブルビューアでデータを表示するには、データの受け渡し方法を決定するコンテンツプロバイダと表示形式を決定するラベルプロバイダをテーブルビューアに設定する必要があります。

   今回コンテンツプロバイダには、標準で用意されているorg.eclipse.jface.viewers.ArrayContentProviderクラス(Object[]とCollectionが利用可能なコンテンツプロバイダ)を使用し、ラベルプロバイダとなるTestResultLabelProviderクラスのみ作成します。



package table_viewer;

import org.eclipse.jface.viewers.ITableLabelProvider;
import org.eclipse.jface.viewers.LabelProvider;
import org.eclipse.swt.graphics.Image;

⁄**
 * データの表示方法を決定するラベルプロバイダ
 *⁄
public class TestResultLabelProvider extends LabelProvider implements ITableLabelProvider {

   ⁄**
    * セルにイメージを表示する場合はイメージを返却する
    *⁄
   public Image getColumnImage(Object element, int columnIndex) {
     return null;
   }

   ⁄**
    * セルに表示するテキストを返却する
    *⁄
   public String getColumnText(Object element, int columnIndex) {
     TestResult testResult = (TestResult)element;
     String result = "";
     switch (columnIndex) {
        ⁄⁄ カラム0の場合はID
        case 0:
          result = String.valueOf(testResult.getId());
          break;
        ⁄⁄ カラム1の場合は氏名
        case 1:
          result = testResult.getName();
          break;
        ⁄⁄ カラム2の場合は英語の結果
        case 2:
          result = String.valueOf(testResult.getEnglishScore());
          break;
        ⁄⁄ カラム3の場合は数学の結果
        case 3:
          result = String.valueOf(testResult.getMathematicsScore());
          break;
        ⁄⁄ カラム4の場合は国語の結果
        case 4:
          result = String.valueOf(testResult.getJapaneseScore());
          break;
        case 5:
           ⁄⁄ カラム5の場合は評価
           if (testResult.getEvaluation() != null) {
               result = testResult.getEvaluation();
           }
           break;
    }
    return result;
  }
}

   コンテンツプロバイダとラベルプロバイダのインスタンスを以下のようにテーブルビューアにセットして、テスト結果のデータ(List)を渡します。

⁄⁄ コンテンツプロバイダの設定
testResultViewer.setContentProvider(new ArrayContentProvider());

⁄⁄ ラベルプロバイダの設定
testResultViewer.setLabelProvider(new TestResultLabelProvider());

⁄⁄ データの設定
testResultViewer.setInput(getTestResult());
⁄⁄ getTestResultメソッドは、テスト結果のデータ(List)を返します

   以上で、テーブルビューアにデータを表示できるようになります。

STEP1の実行結果
図1:STEP1の実行結果

STEP1のソースコード
Text  step1.zip
  (ZIPファイル/2.87KB)

※編集注: 本連載ではEclipse 3.0を前提にしています。Eclipse 3.1ではTableViewerの仕様が変更になったため、連載内のソースコードではデータが表示されない恐れがあります。Eclipse 3.1の環境の場合、TestResultViewクラスのcreatePartControlメソッドの最後に「testResultViewer.setItemCount(4);」を追加してください。

1   2  3  4  次のページ


ビーブレイクシステムズ社 大森 洋行
著者プロフィール
ビーブレイクシステムズ社  大森 洋行
中堅システム開発会社にて、データベース検索ソフトの開発・導入コンサルティング・セミナー講師に従事。その現場の中で、Java及びオープンソースを用いたシステム開発は今後のシステム開発の主流になると考え、それらを独学で学ぶ。本格的にそれらを用いた開発に携わるため、ビーブレイクシステムズに入社。現在、データ項目やその流れの分析に重点をおきながら、Javaやオープンソースを用いたシステム開発に携わる。


この記事の評価をお聞かせください
ボタンをクリックしますとウインドウが開きます。

INDEX
第4回:JFaceのGUIコンポーネント
はじめに
  STEP2:セルの編集
  STEP3:選択したセルの編集
  リスナークラスを作成しカラムに追加
Eclipse実践プラグイン開発
第1回 Eclipseとプラグイン
第2回 プラグインの配布とインストール
第3回 基本的なGUIコンポーネントの利用
第4回 JFaceのGUIコンポーネント
第5回 メニューとポップアップ・メニューの拡張
第6回 ビューの拡張
第7回 エディタの拡張
第8回 パースペクティブの拡張
第9回 プロパティと設定の拡張
Eclipseが提供するBIとレポーティングツール
第1回 インストールからはじめるEclipse BIRT
第2回 データベースのデータをレポートに出力しよう
第3回 レポートを作成しよう
第4回 スクリプティング機能・Tomcatでのプレビュー・レポートエンジンを使用したレポート出力
Eclipse3ではじめるJava Webアプリケーション開発
第1回 Eclipse3の概要とインストール
第2回 Eclipse3の基本機能
第3回 Eclipse3の基本操作を憶えよう
第4回 Eclipseの便利な機能
第5回 Webアプリケーションの開発(1)〜JSP作成〜
第6回 Webアプリケーションの開発(2)〜サーブレットの作成〜
第7回 データベースの利用
第8回 フレームワークの利用
第9回 O/Rマッパーの利用
第10回 JUnitの利用
第11回 Antの利用
第12回 CVSの利用(1)
第13回 CVSの利用(2)
Eclipse WTPによる標準開発ツールの提供
第1回 Eclipse WTPの概要とインストール
第2回 Eclipse WTPでHello World
第3回 Eclipse WTPのDB系ツールを使う
第4回 Eclipse WTPのエディタとその他のツール