SHOEISHA iD

※旧SEメンバーシップ会員の方は、同じ登録情報(メールアドレス&パスワード)でログインいただけます

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

Javaで軽快に使える「軽量フレームワーク」特集

Javaで軽快に使える「軽量フレームワーク」特集
~アプレットベースのRIAフレームワーク「Apache Pivot」(4)

第16回

  • このエントリーをはてなブックマークに追加

 アプレットベースのRIAフレームワーク「Pivot」の4回目。今回は、外部データの利用という点からPivotの機能を探ってみることにしましょう。

  • このエントリーをはてなブックマークに追加

はじめに

 RIAと言うとJavaScriptを利用したフレームワークが非常に多いのですが、こうしたものはAjaxでデータの取得を行うため、Javaプログラマにはどうもなじまないやり方を強いられることがあります。しかし、Pivotはアプレットですから、Ajaxとはまったく違った形で外部からデータを取得します。

 Webでは、実際にクライアントに表示されているWebページから、いかにしてサーバーと連携し必要なデータをやり取りするかというのは非常に重要です。そこで、さまざまなデータの扱い方について考えていくことにしましょう。

対象読者

  • Javaで手ごろなフレームワークを探している技術者。
  • 最近のフレームワークをごくざっと理解しておきたい方。
  • Web開発の手法がどうも気に入らない、と常々考えているJavaプログラマ。

外部データを表示するTableView

 静的な表示だけでなく、ダイナミックにデータを取得し操作するようなプログラムを作成する場合、外部からデータをどのように取得するかが重要になります。今回は、こうした「外部データとのやり取り」について説明しましょう。

 まずは、最もシンプルな「TableViewを利用したデータの表示」からです。Pivotには、外部のデータを読み込んで整形表示するためのコンポーネントが用意されています。テーブルを表示する「TableView」です。

 TableViewは、外部からデータを読み込み、それを整形してテーブル表示します。扱うデータはいくつかありますが、最も簡単なのは、JSON形式のデータでしょう。これは、TableViewのデータを指定する属性を設定するだけで自動的にデータを読み込み表示させることができます。

 では、前回作成したプロジェクトを再利用して、実際にJSONデータを表示するTableViewを使ってみましょう。まず、JSONデータを用意しておきます。HelloApp.javaがおかれている場所に、「jsondata.json」というファイルを作成し、次のようにJSONデータを記述しておきます。

[
    {name:"Tuyano",mail:"tuyano@mac.com",tel:"090-9999-9999"},
    {name:"Hanako",mail:"hanako@flower",tel:"080-7777-6666"},
    {name:"Taro",mail:"taro@yamada",tel:"03-4444-5555"},
]

 今回は、name、mail、telといった項目のあるデータをいくつか用意しておきました。これを読み込むTableViewをWTKXファイルに用意しておき、それをHelloAppクラスのstartupからロードするようにします。先に、startupメソッドから作成しておきましょう。

// private Window window; が用意されていること

@Override
public void startup(Display display, Map<String, String> map)
        throws Exception {
    WTKXSerializer serializer = new WTKXSerializer();
    window = (Window)serializer.readObject(this, "HelloApp.wtkx");
    window.open(display);
}

 これだけです。単にWTKXSerializerのreadObjectでWindowを読み込んでいるだけですから、説明はいらないでしょう。後は、WTKXファイルを用意するだけです。

TableViewをWTKXファイルに用意する

 では、HelloApp.wtkxファイルを修正しましょう。今回は、LabelとTableViewだけが配置されるようにしておきます。次のようにソースコードを書き換えてください。

<Window title="Sample" maximized="true"
        xmlns:wtkx="http://pivot.apache.org/wtkx"
        xmlns="org.apache.pivot.wtk">
    <content>
        <BoxPane orientation="vertical">
            <Label wtkx:id="label" styles="{font:'bold 18', color:'#0000FF'}"
                    text="データの利用" />
            <ScrollPane horizontalScrollBarPolicy="fill_to_capacity">
                <view>
                    <TableView wtkx:id="table1" tableData="@jsondata.json"
                            styles="{includeTrailingVerticalGridLine:true}">
                        <columns>
                                <TableView.Column name="name" width="50"
                                        headerData="Name" />
                                <TableView.Column name="mail" width="100"
                                        headerData="Mail" />
                                <TableView.Column name="tel" width="100"
                                        headerData="Tel" />
                        </columns>
                        <tableViewSortListeners>
                            <wtkx:script>
                            function sortChanged(view) {
                                var tableData = view.getTableData();
                                tableData.setComparator(new org.apache.pivot.wtk.content.TableViewRowComparator(view));
                            }
                            </wtkx:script>
                        </tableViewSortListeners>
                    </TableView>
                </view>
                <columnHeader>
                    <TableViewHeader tableView="$table1"
                            sortMode="single_column"
                            styles="{includeTrailingVerticalGridLine:true}" />
                </columnHeader>
            </ScrollPane>
        </BoxPane>
    </content>
</Window>
図1 テーブルを表示するTableView。jsondata.jsonからデータを読み込み表示する。
図1 テーブルを表示するTableView。jsondata.jsonからデータを読み込み表示する。

 これで完成です。できあがったら、実際にプログラムを動かして動作を確認してみましょう。JSONファイルに記述したデータがテーブルに表示されるはずです。また、ヘッダー部分をクリックすれば、その項目順にデータを並べ替えます。

会員登録無料すると、続きをお読みいただけます

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

次のページ
TableViewのデータ構造

この記事は参考になりましたか?

  • このエントリーをはてなブックマークに追加
Javaで軽快に使える「軽量フレームワーク」特集連載記事一覧

もっと読む

この記事の著者

掌田 津耶乃(ショウダ ツヤノ)

三文ライター&三流プログラマ。主にビギナーに向けたプログラミング関連の執筆を中心に活動している。※現在、入門ドキュメントサイト「libro」、カード型学習サイト「CARD.tuyano.com」を公開...

※プロフィールは、執筆時点、または直近の記事の寄稿時点での内容です

この記事は参考になりましたか?

この記事をシェア

  • このエントリーをはてなブックマークに追加
CodeZine(コードジン)
https://codezine.jp/article/detail/5114 2010/06/02 14:00

おすすめ

アクセスランキング

アクセスランキング

イベント

CodeZine編集部では、現場で活躍するデベロッパーをスターにするためのカンファレンス「Developers Summit」や、エンジニアの生きざまをブーストするためのイベント「Developers Boost」など、さまざまなカンファレンスを企画・運営しています。

新規会員登録無料のご案内

  • ・全ての過去記事が閲覧できます
  • ・会員限定メルマガを受信できます

メールバックナンバー

アクセスランキング

アクセスランキング