以下のツイートみてNetBeans 8 Betaの存在に気づきました(^^;
NetBeans 8 Betaの機能紹介は英語ですが以下ページにあります。
NetBeans IDE 8.0 Beta Information
で、個人的に一番目についたのは
New PrimeFaces code generators, to generate complete PrimeFaces skeleton CRUD applications with connection to databases.
の部分でした(^^;
結構前ですが、本ブログで「NetBeans7.2.1とPrimeFacesであっという間にCRUD画面を作成する方法」なるものを書いて「PrimeFaces CRUD Generator for NetBeans Beta」を紹介したのですが、これに近いものがNetBeansに標準機能としてバンドルされたっぽい!?マジですか。
NetBeansにJSFのサードパーティであるPrimeFacesの自動生成機能をバンドルさせてしまうなんて…この海外と日本のJSFやPrimeFacesに関する温度差は一体…(^^;
というわけで、早速試してみました(^^)
試した環境は
OS :Windows 8 Professional
IDE :NetBeans 8.0 Beta
Java: JDK7
AP :GlassFish 4.0→3.1.2.2
当初Java EE7で試していたのですが、エラーになってしまい、多分解決できると思うのですが、いったんJava EE6で試しました(^^;すみません…。
まず最初にどんなWebアプリケーションが自動生成されるか、画面を紹介します。
自動生成される画面と機能
コードを自分では1行も書いていない…のですが、以下のような業務系マスタメンテ画面が自動生成されます。
トップページはメニューになっていて、一番上は日本語で生成されます(ここが何で日本語になるのか?内部的な仕組みはよくわかってないです)。
この「PrimeFacesようこそページ」リンクをクリックするとPrimeFacesのデモ的な画面が表示されます。
PrimeFaces使うとこんなレイアウトが簡単に作れるよ、的な感じですね。リンクはPrimeFacesのサイトへ貼られています。
で、「PrimeFacesようこそページ」以下のメニューリンクがCRUDに関するものです。
それぞれテーブル単位にCRUD操作できる画面へのリンクとなっています。
「Show All Customer Items」のリンクをクリックすると以下の一覧画面が表示されます。
画面の上にはメニューがあって、各種メンテナンス画面へリンクされています。
一覧の下には
「CREATE」「VIEW」「EDIT」「DELETE」
と4つのボタンがあって、CRUD操作が可能です。
CREATE
CREATEボタンを押すと新規にデータ入力する画面がポップアップで表示され、保存できます。
VIEW
VIEWボタンは以下画面
EDIT
EDITボタンは以下画面で編集して保存できます。
DELETE
最後はDELETEボタンで、選択行を削除します。成功するとメッセージも。
ただ、残念ながら削除確認ダイアログはでません(^^;
基本的には他のページも同じ構成です。テーブル(マスタ)の属性が少ないものだと
こんな感じ。簡易マスタメンテ画面ですね(^^;
PrimeFaces CRUD generator
というわけで、このNetBeansにバンドルされた「PrimeFaces CRUD generator」の機能は何者か?というと…
データベースのテーブルさえあればレコードを一覧表示してCRUDする画面や処理を自動生成する機能
というものになります。自動生成されたコードのままに実プロジェクトで使う、ということは難しいと思いますが、自分達のちょっとしたメンテ画面作ったり、営業のデモンストレーションやプロトタイプづくりには使えるんじゃないかなーと。
以降は実際に試した作成手順です。
MavenでJava EE6プロジェクト作成
NetBeans 8 Betaをインストールして、「ファイル」メニューから「新規プロジェクト」を選択します。
MavenでWebアプリケーションを選択します。
プロジェクト名やグループIDなどを適当に設定します。
せっかくなので、JavaEE 7で作ります。GlassFishは4です。
Java EE6で作ります。GlassFishは3.1.2.2です。
プロジェクトが生成されました。
Entityクラスを自動生成
次にEntityクラスをNetBeansから自動生成していきます。
プロジェクトのソースパッケージを右クリックして「新規」メニューから「その他」を選びます。
もし既に「データベースからのエンティティクラス…」が表示されていれば、それを選んでも大丈夫です。
「持続性」から「データベースのエンティティ・クラス」を選択します。
データ・ソースから「新しいデータ・ソース」を選択してJNDI名を適当に決めてデータベース接続で以下図の青選択されたものを選びます。
データベースのApache Derbyが起動して
以下のように「使用可能な表」が選択されたら、全て選択して「追加」を押します。
部分的な選択でもいいです。
以降は「次へ」で流します。本来はパッケージ名を変えたり、コレクション型をListにしたり、と真面目に設定するのがいいと思いますが、今回はサンプルなのでデフォルトのままで進めます。
これでEntityクラスが生成されました。
ビューを自動生成する
次にJSFのビューを自動生成します。ここが「New PrimeFaces code generators」に関連するメイン部分となるようです。
まずはプロジェクトを右クリックして「新規」メニューから「その他」を選択します。
「JavaServer Faces」から「エンティティからのJSFページ・クラス」を選択します。
エンティティクラスを全て選択して「追加」を押します。
そしてここが肝心ですが、一番下の「Choose Templates」のプルダウンを選ぶと「PrimeFaces」と出てくるので選択します。
どうやらテンプレートを選択できる機能っぽいですね。
JSFは2.2 2.1で
コンポーネントタブを選択して、PrimeFacesをチェックします。ここは自動で入って欲しい気もしますが…(^^;
しばらく待つ場合もあります。
完了すると、まるで黒魔術のようにワラワラと自動生成されます(^^;
待て…オイラは1行もコード書いてないんだぜ…といいながら実行すると最初に紹介した画面が全て生成されます(^^)
……
…
NetBeansとPrimeFaces、ちょっとやりすぎでは(^^;
っていうか、この一連の自動化を定義する方法を知りたいっ。