JJUG IDEセミナ 無事終了

satonaoki2007-08-22


JJUGの「クロス コミュニティ」の第1弾として企画されたJava IDEコミュニティのイベントが昨日開催され、第3のなおき……もとい、JDeveloper代表として参加してきました。会場も満員で、いい感じに盛り上がりました :-)

セッション冒頭で、JDeveloperのヘビー ユーザかどうか、JDeveloperを使ったことがあるかどうか、という挙手アンケートをしてみたんですが、JDeveloperを使ったことがある方は3割くらいで、予想以上に多かったので、ちょっとうれしかったり :-)

一昨日の夜、風邪で朦朧としながらスライドを作っていたら50スライド近く作ってしまったのですが、持ち時間が30分しかなかったので、スライドは軽く流して、デモ中心で進めました。

デモで使ったのは、米国OTNで公開されている「Oracle JDeveloper 11g Technology Preview」です。

まず最初に、JDeveloper 11gの新機能である、リッチなUIを提供するJSFコンポーネントOracle ADF Faces Rich Client」の機能をイメージしてもらうために、「Oracle Fusion Store Front」というサンプル アプリケーションを紹介しました。これは、JDeveloper 11g Preview向けのサンプルで、JDeveloper 11g PreviewOracle Databaseがあれば動かすことができます。

デモでは、JPA 1.0、EJB 3.0JSF 1.2に加えて、Oracle ADFというフレームワークを使って、ノン コーディングでリッチなUIのWebアプリを作ってみました。リッチなUIを提供するJSFコンポーネントには、Oracle ADF Faces Rich Clientを使っています。

デモ シナリオは、こんな感じ。

  1. ウィザードで、Oracle Databaseのサンプル表であるEMP表、DEPT表をもとに、1対多関係を持つ2つのJPAエンティティ、persistence.xml (JPAの設定ファイル) を自動生成 (JPAエンティティには、エンティティを全件検索するNamed Queryも自動生成される)
  2. ウィザードで、JPAエンティティをラップするファサード (EJBセッションBean) を自動生成
  3. ファサードをラップするADFデータ コントロールを自動生成
  4. (faces-config.xmlのナビゲーション ルールをビジュアル表示した) JSFページフロー エディタに、JSFページを1つドラッグ&ドロップ
  5. JSFページをダブルクリックして、JSFビジュアル エディタを表示
  6. JSFコンポーネント をドラッグ&ドロップで追加
  7. パネルを2つに分ける を追加 (横に並ぶ2つの領域が表示される)
  8. プロパティ インスペクタ (プロパティ編集エディタ) で、のorientationをデフォルトのhorizontalからverticalに変更 (縦に並ぶ2つの領域が表示される)
  9. ステップ3で生成したADFデータ コントロールの中から、DEPTエンティティを全件検索するメソッドの結果を、パネルの上の領域にドラッグ&ドロップし、読み取り専用フォームを選択し、表示するカラムのオプションなどを指定
  10. パネルの下の領域に、再度 を追加 (横に並ぶ2つの領域が表示される)
  11. ADFデータ コントロールの中から、DEPTエンティティの全件検索結果の中のEMPエンティティ コレクション (DEPTと1対多関係を持つEMPのコレクション) を、パネルの左下の領域にドラッグ&ドロップし、読み取り専用テーブルを選択し、表示するカラムのオプションなどを指定
  12. ADFデータ コントロールの中から、DEPTエンティティの全件検索結果の中のEMPエンティティ コレクション (ステップ11と同じもの) を、パネルの右下の領域にドラッグ&ドロップし、棒グラフを選択し、オプション (数値カラムとしてEMPエンティティのSALプロパティするなど) を指定
  13. JSFページフロー エディタでJSFページを右クリックして「実行」を選択 (自動的にOC4Jが起動し、開発したWebアプリがデプロイされ、WebブラウザでJSFページのURLがオープンされる)

MVCパターンで言うと、ステップ1-3がModel (JPA、EJB、M-VC間のデータ バインディングのためのADFデータ コントロール)、ステップ4以降がViewとController (JSF、ADFデータ バインディング) になります。

完成したアプリは、ある部門とその部門に属する社員の情報 (社員一覧と給与の棒グラフ) を表示するアプリです。部門を変更すると、連動して社員の情報も変わります。領域を区切るスプリッタ () は、ドラッグ&ドロップでリサイズできます (画面全体のリロードなし)。社員一覧のテーブルは、カラムをクリックすることでソートできたり、カラムをドラッグ&ドロップして並べ変えたりできます (こっちも、画面全体のリロードはなし)。

もっと盛り沢山のデモを準備していたんですが、時間が足りずにデモはここまで。上記のJDeveloper 11gやOracle ADF Faces Rich Clientのページでも、オンライン デモやチュートリアルを公開しているので、興味のある方は是非ご覧ください。