JSF+AjaxでUIコンポーネント開発 with Shale Remoting (12)

今回はdouble-selectコンポーネントの残り一つのファイルである,faces-config.xmlファイルを紹介する。このファイルをもって,double-selectコンポーネントは完成となる。加えて,maven2でのパッケージング&ローカルリポジトリへのインストールまで行うことにしよう。残念ながら,今回もAjaxやShale Remotingは関係しない。 まず,カスタムタグ,UIコンポーネント,そしてレンダラがどのように関連しているかを示そう。 図を見て分かる通り,クラ...

JSF+AjaxでUIコンポーネント開発 with Shale Remoting (11)

今回は,JSFコンポーネント,特に値の入力が可能なコンポーネントを作る際の基礎知識と,実装方法について紹介していこうと思う。Shale Remotingを使用したAjax対応コンポーネントの開発がメインテーマだが,今回はAjaxもShaleも関係なく,JSFのみの話になる。実は, 前回のエントリでdouble-selectコンポーネントのAjax関連の話は終わってしまっているんだけど,入力可能なJSFコンポーネントの作成方法はネットでも詳しい説明はなかったりするので,是非お付き合い頂きたい...

プログラマ度診断

職場の方からこんなサイトを教えてもらう。 「プログラマ度診断」 - http://www7.plala.or.jp/keny01/consult/exam.html 僕の結果: あなたのプログラマ度は75%です。 あなたのプログラマ適正は RANK B で現在の適正としては  やや適正あり となります。 あなたは「できるプログラマレベル」です。現段階で適性は十分あります。普通にプログラミングをするのであれば、問題が起こることは少ないでしょう。しかし、今のレベルよりも少...

interface命名にも発想の逆転を

例えば,何らかの値をセットすることができる,という性格を表現するinterfaceを考えてみる。セットすることができるんだから, public interface SomethingSettable { public void setSomething(int value); } というように,〜Settableという名前にすることが多かった。 「何かをセットできる」というのは,対象クラスを外から見たときの観点と言える。なので,「何かをセットできる性質」というのは,そのクラスの性質の...

JSF+AjaxでUIコンポーネント開発 with Shale Remoting (10)

前回までの説明で,double-selectコンポーネントのサーバでのレンダリング処理が行われるようになった。DoubleSelectRendererクラスのencodeBegin()メソッドによって,左右2つのselectタグがレンダリングされる。しかし,レンダリングされる内容の中で,いくつかJavaScript関数が登場したが,どれもdouble-select.jsファイルに記述されるとしか説明しなかった。今回は,Webブラウザ上で実行されるJavaScript関数を記述したdoubl...

JSF+AjaxでUIコンポーネント開発 with Shale Remoting (9)

前回はdouble-selectコンポーネントのレンダリング結果を説明して終わってしまった。今回という今回は,レンダラクラスの説明を行おうと思う。前回紹介したレンダリング結果と対応させながら以降の説明を見ていって欲しい。 JSFコンポーネントをレンダリングする機能を持つクラスは,Rendererクラスを継承して作成する。double-selectコンポーネントでは,DoubleSelectRendererというクラス名とした。 public class DoubleSelectRe...

JavaScript流オブジェクト指向プログラミング - ITpro

JavaやC#などのオブジェクト指向言語とは異なるアプローチでオブジェクト指向を実現できるJavaScript。なかなか丁寧な解説が見つからないのだが, 「 JavaScript流オブジェクト指向プログラミング」 - ITpro は非常にわかりやすかった。プロトタイプ型のオブジェクト指向言語は,スクリプト言語という特性(=サクサク感&柔軟性)にぴったりだ。 ただし, そのオブジェクトの内部のみからアクセス可能なプロパティ(C++やJavaでいうところのプライベート変数)はJavaS...

JSF+AjaxでUIコンポーネント開発 with Shale Remoting (8)

今回は,double-selectコンポーネントをレンダリングするDoubleSelectRendererクラスの解説を行おうと思う。その中で,Shale RemotingのAPIを使用してみる。 前回紹介したDoubleSelectTagクラスのsetProperties()メソッドによって,JSPに記述されたカスタムタグの属性値がUIコンポーネントにセットされる。DoubleSelectTagクラスが継承するUIComponentTagクラスは,setProperties()メソッド...

JSF+AjaxでUIコンポーネント開発 with Shale Remoting (7)

JSF+Ajax with Shale Remotingと題したエントリだが,やっとJavaコードの紹介を始めるときが来た。今回は,double-selectコンポーネントを構成する2つのクラスの一つ目,カスタムタグハンドラクラスについて解説しようと思う。 JSP実装のJSFコンポーネントを作成する際,それはカスタムタグの形態となるために,タグハンドラクラスを作成する必要がある。JSFでは,以下のどちらかのクラスを継承して作成する。 UIComponentTag - 本体...