Challenge Engineer Life !

エンジニア人生を楽しみたい!仕事や趣味で学んだ技術的なことを書いていくブログです。

NetBeans 8 Betaで標準装備されたPrimeFaces CRUD generator

以下のツイートみて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行も書いていない…のですが、以下のような業務系マスタメンテ画面が自動生成されます。

トップページはメニューになっていて、一番上は日本語で生成されます(ここが何で日本語になるのか?内部的な仕組みはよくわかってないです)。

f:id:kikutaro777:20140129012852j:plain

この「PrimeFacesようこそページ」リンクをクリックするとPrimeFacesのデモ的な画面が表示されます。

f:id:kikutaro777:20140129013119j:plain

PrimeFaces使うとこんなレイアウトが簡単に作れるよ、的な感じですね。リンクはPrimeFacesのサイトへ貼られています。

で、「PrimeFacesようこそページ」以下のメニューリンクがCRUDに関するものです。

f:id:kikutaro777:20140129015023j:plain

それぞれテーブル単位にCRUD操作できる画面へのリンクとなっています。

「Show All Customer Items」のリンクをクリックすると以下の一覧画面が表示されます。

f:id:kikutaro777:20140129013356j:plain

画面の上にはメニューがあって、各種メンテナンス画面へリンクされています。

f:id:kikutaro777:20140129013451j:plain

一覧の下には

「CREATE」「VIEW」「EDIT」「DELETE」

と4つのボタンがあって、CRUD操作が可能です。

CREATE

CREATEボタンを押すと新規にデータ入力する画面がポップアップで表示され、保存できます。

f:id:kikutaro777:20140129013630j:plain

VIEW

VIEWボタンは以下画面

f:id:kikutaro777:20140129013658j:plain

EDIT

EDITボタンは以下画面で編集して保存できます。

f:id:kikutaro777:20140129013719j:plain

DELETE

最後はDELETEボタンで、選択行を削除します。成功するとメッセージも。
ただ、残念ながら削除確認ダイアログはでません(^^;

f:id:kikutaro777:20140129013805j:plain

基本的には他のページも同じ構成です。テーブル(マスタ)の属性が少ないものだと

f:id:kikutaro777:20140129013857j:plain

こんな感じ。簡易マスタメンテ画面ですね(^^;

PrimeFaces CRUD generator

というわけで、このNetBeansにバンドルされた「PrimeFaces CRUD generator」の機能は何者か?というと…

データベースのテーブルさえあればレコードを一覧表示してCRUDする画面や処理を自動生成する機能

というものになります。自動生成されたコードのままに実プロジェクトで使う、ということは難しいと思いますが、自分達のちょっとしたメンテ画面作ったり、営業のデモンストレーションやプロトタイプづくりには使えるんじゃないかなーと。

以降は実際に試した作成手順です。

MavenでJava EE6プロジェクト作成

NetBeans 8 Betaをインストールして、「ファイル」メニューから「新規プロジェクト」を選択します。

f:id:kikutaro777:20140129003000j:plain

MavenでWebアプリケーションを選択します。

f:id:kikutaro777:20140129003149j:plain

プロジェクト名やグループIDなどを適当に設定します。

f:id:kikutaro777:20140129003209j:plain

せっかくなので、JavaEE 7で作ります。GlassFishは4です。
Java EE6で作ります。GlassFishは3.1.2.2です。

f:id:kikutaro777:20140129014125j:plain

プロジェクトが生成されました。

f:id:kikutaro777:20140129003307j:plain

Entityクラスを自動生成

次にEntityクラスをNetBeansから自動生成していきます。

プロジェクトのソースパッケージを右クリックして「新規」メニューから「その他」を選びます。
もし既に「データベースからのエンティティクラス…」が表示されていれば、それを選んでも大丈夫です。

f:id:kikutaro777:20140129003721j:plain

「持続性」から「データベースのエンティティ・クラス」を選択します。

f:id:kikutaro777:20140129003831j:plain

データ・ソースから「新しいデータ・ソース」を選択してJNDI名を適当に決めてデータベース接続で以下図の青選択されたものを選びます。

f:id:kikutaro777:20140129004029j:plain

データベースのApache Derbyが起動して

f:id:kikutaro777:20140129004053j:plain

以下のように「使用可能な表」が選択されたら、全て選択して「追加」を押します。
部分的な選択でもいいです。

f:id:kikutaro777:20140129004127j:plain

f:id:kikutaro777:20140129004134j:plain

以降は「次へ」で流します。本来はパッケージ名を変えたり、コレクション型をListにしたり、と真面目に設定するのがいいと思いますが、今回はサンプルなのでデフォルトのままで進めます。

f:id:kikutaro777:20140129004225j:plain

f:id:kikutaro777:20140129004230j:plain

これでEntityクラスが生成されました。

f:id:kikutaro777:20140129004311j:plain

ビューを自動生成する

次にJSFのビューを自動生成します。ここが「New PrimeFaces code generators」に関連するメイン部分となるようです。

まずはプロジェクトを右クリックして「新規」メニューから「その他」を選択します。

f:id:kikutaro777:20140129004705j:plain

「JavaServer Faces」から「エンティティからのJSFページ・クラス」を選択します。

f:id:kikutaro777:20140129005026j:plain

エンティティクラスを全て選択して「追加」を押します。

f:id:kikutaro777:20140129005051j:plain

f:id:kikutaro777:20140129005057j:plain

そしてここが肝心ですが、一番下の「Choose Templates」のプルダウンを選ぶと「PrimeFaces」と出てくるので選択します。
どうやらテンプレートを選択できる機能っぽいですね。

f:id:kikutaro777:20140129005203j:plain

JSFは2.2 2.1で

f:id:kikutaro777:20140129014235j:plain

コンポーネントタブを選択して、PrimeFacesをチェックします。ここは自動で入って欲しい気もしますが…(^^;
しばらく待つ場合もあります。

f:id:kikutaro777:20140129005310j:plain

完了すると、まるで黒魔術のようにワラワラと自動生成されます(^^;

f:id:kikutaro777:20140129005359j:plain

待て…オイラは1行もコード書いてないんだぜ…といいながら実行すると最初に紹介した画面が全て生成されます(^^)

……

NetBeansとPrimeFaces、ちょっとやりすぎでは(^^;

っていうか、この一連の自動化を定義する方法を知りたいっ。

にほんブログ村 IT技術ブログへ
にほんブログ村 にほんブログ村 IT技術ブログ Javaへ
にほんブログ村