<?xml version="1.0" encoding="UTF-8"?>
<rss version="2.0"
	xmlns:content="http://purl.org/rss/1.0/modules/content/"
	xmlns:wfw="http://wellformedweb.org/CommentAPI/"
	xmlns:dc="http://purl.org/dc/elements/1.1/"
	xmlns:atom="http://www.w3.org/2005/Atom"
	xmlns:sy="http://purl.org/rss/1.0/modules/syndication/"
	xmlns:slash="http://purl.org/rss/1.0/modules/slash/"
		xmlns:xhtml="http://www.w3.org/1999/xhtml"
>

<channel>
	<title>イージーネット Tech Blog &#187; JSF</title>
	<atom:link href="http://blog.eni.co.jp/tech/category/program/jsf/feed" rel="self" type="application/rss+xml" />
	<link>http://blog.eni.co.jp/tech</link>
	<description>株式会社イージーネットのスタッフによる技術系ブログです</description>
	<lastBuildDate>Tue, 12 Jan 2010 01:46:58 +0000</lastBuildDate>
	<generator>http://wordpress.org/?v=2.8.6</generator>
	<language>ja</language>
	<sy:updatePeriod>hourly</sy:updatePeriod>
	<sy:updateFrequency>1</sy:updateFrequency>
			<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/category/program/jsf/feed" />
		<item>
		<title>JSFでAjaxを使いたい &#8211; OpenFacesの紹介 -</title>
		<link>http://blog.eni.co.jp/tech/2009/06/jsf_ajax_openfaces.html</link>
		<comments>http://blog.eni.co.jp/tech/2009/06/jsf_ajax_openfaces.html#comments</comments>
		<pubDate>Wed, 10 Jun 2009 06:41:50 +0000</pubDate>
		<dc:creator>武輪 恭代</dc:creator>
				<category><![CDATA[JSF]]></category>
		<category><![CDATA[Java]]></category>
		<category><![CDATA[Ajax]]></category>
		<category><![CDATA[OpenFaces]]></category>

		<guid isPermaLink="false">http://blog.eni.co.jp/tech/?p=631</guid>
		<description><![CDATA[はじめまして。
プロダクト&#38;サービス事業部の武輪です。
Ajaxと言えば、JavaScriptをごりごり書かないと！ってイメージがあるのですが、JavaScriptを少し書くだけ、もしくはまったく書かずに、コンポーネント側で勝手にやってくれれば簡単ですよね。
Ajaxを用いたJSFコンポーネントやフレームワークって他にも、RichFacesやらajax4jsfやらICEfacesやらがあるのですけども、今回私は、OpenFacesというJSFコンポーネントを紹介したいと思います。
OpenFacesは2009年5月末に出てきたばかりのAjaxを用いたJSFコンポーネントです。
サイトからはfaceletsで実装されたサンプルとJSPで実装されたサンプルをダウンロードすることができます。
早速、faceletsで実装されたサンプルを動かしてみました。

どんな機能があるの？
サンプルにはたくさんの魅力的なデモが含まれていたのですが、そのうちのいくつかを紹介したいと思います。
カレンダー

よくこんなカレンダーありますよね。

1
&#60;o:calendar/&#62;

xhtmlファイルにはたったこれだけで画面にカレンダーがぽんと表示されちゃいます。
また、下のようにスタイルを細かく指定することもできます。

1
2
3
4
5
6
7
8
9
10
11
&#60;o:calendar style=&#34;border: 1px solid white;&#34;
            headerStyle=&#34;background: #fff;&#34;
            rolloverDayStyle=&#34;background: #fff; border: 1px solid #8eb5d4; color: black;&#34;
            rolloverWeekendDayStyle=&#34;background: #f9f6f1; border: 1px solid #f3922b; color: [...]]]></description>
			<content:encoded><![CDATA[<p>はじめまして。<br />
プロダクト&amp;サービス事業部の武輪です。</p>
<p>Ajaxと言えば、JavaScriptをごりごり書かないと！ってイメージがあるのですが、JavaScriptを少し書くだけ、もしくはまったく書かずに、コンポーネント側で勝手にやってくれれば簡単ですよね。<br />
Ajaxを用いたJSFコンポーネントやフレームワークって他にも、<a href="http://www.jboss.org/jbossrichfaces/">RichFaces</a>やら<a href="http://www.jboss.org/jbossajax4jsf/">ajax4jsf</a>やら<a href="http://www.icefaces.org/">ICEfaces</a>やらがあるのですけども、今回私は、<a href="http://openfaces.org/">OpenFaces</a>というJSFコンポーネントを紹介したいと思います。</p>
<p>OpenFacesは2009年5月末に出てきたばかりのAjaxを用いたJSFコンポーネントです。<br />
サイトからはfaceletsで実装されたサンプルとJSPで実装されたサンプルをダウンロードすることができます。</p>
<p>早速、faceletsで実装されたサンプルを動かしてみました。</p>
<p><span id="more-631"></span></p>
<h3>どんな機能があるの？</h3>
<p>サンプルにはたくさんの魅力的なデモが含まれていたのですが、そのうちのいくつかを紹介したいと思います。</p>
<h4>カレンダー</h4>
<p><img src="http://blog.eni.co.jp/tech/wp-content/uploads/2009/06/calender1.png" alt="デフォルトのカレンダー" title="デフォルトカレンダー" width="207" height="186" class="size-full wp-image-646" /></p>
<p>よくこんなカレンダーありますよね。</p>

<div class="wp_codebox"><table width="100%" ><tr id="p6314"><td class="line_numbers"><pre>1
</pre></td><td class="code" id="p631code4"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;o:calendar</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></td></tr></table></div>

<p>xhtmlファイルにはたったこれだけで画面にカレンダーがぽんと表示されちゃいます。<br />
また、下のようにスタイルを細かく指定することもできます。</p>

<div class="wp_codebox"><table width="100%" ><tr id="p6315"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
10
11
</pre></td><td class="code" id="p631code5"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;o:calendar</span> <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;border: 1px solid white;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">headerStyle</span>=<span style="color: #ff0000;">&quot;background: #fff;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">rolloverDayStyle</span>=<span style="color: #ff0000;">&quot;background: #fff; border: 1px solid #8eb5d4; color: black;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">rolloverWeekendDayStyle</span>=<span style="color: #ff0000;">&quot;background: #f9f6f1; border: 1px solid #f3922b; color: black;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">selectedDayStyle</span>=<span style="color: #ff0000;">&quot;background: #8eb5d4;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">todayStyle</span>=<span style="color: #ff0000;">&quot;color: #ff8a01; font-weight: bold; background: #fff;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">footerStyle</span>=<span style="color: #ff0000;">&quot;border-top: 1px solid #505050; background: #fff;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">daysHeaderStyle</span>=<span style="color: #ff0000;">&quot;background: #505050; color: white;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">inactiveMonthDayStyle</span>=<span style="color: #ff0000;">&quot;color: #b4b4b4; background: #fff;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">dayStyle</span>=<span style="color: #ff0000;">&quot;color: #505050;  background: #fff; border: 1px solid #f9f9f9;&quot;</span></span>
<span style="color: #009900;">            <span style="color: #000066;">weekendDayStyle</span>=<span style="color: #ff0000;">&quot;color: #000000;  background: #fff;&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span></pre></td></tr></table></div>

<p>これが画面に表示されるとこんな感じ。<br />
<img src="http://blog.eni.co.jp/tech/wp-content/uploads/2009/06/calender2.png" alt="カレンダー" title="カレンダー" width="211" height="195" class="alignnone size-medium wp-image-650" /></p>
<p>ちなみにデモではすべて～～Styleでcssを直接指定していましたが、～～Classというアトリビュートでcssのクラスを指定することもできます。<br />
JAVA側の実装もシンプルな感じ。<br />
CalendarBean.javaとLocaleItem.javaの2クラスだけでした。</p>
<h4>グラフ</h4>
<p><img src="http://blog.eni.co.jp/tech/wp-content/uploads/2009/06/chart-300x260.png" alt="グラフ" title="グラフ" width="300" height="260" class="alignleft size-medium wp-image-654" /><br />
OpenFacesでは、JFreeChartというライブラリーを利用してグラフを生成できます。<br />
円グラフ、横棒グラフ、縦棒グラフ、折れ線グラフの4種類が用意されています。<br />
<br clear="all"/></p>
<p>円グラフの記述例は↓こんな感じ。</p>

<div class="wp_codebox"><table width="100%" ><tr id="p6316"><td class="line_numbers"><pre>1
2
3
4
5
6
7
8
9
</pre></td><td class="code" id="p631code6"><pre class="xml" style="font-family:monospace;"><span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;o:chart</span> <span style="color: #000066;">id</span>=<span style="color: #ff0000;">&quot;yearPrecipitationChart&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">model</span>=<span style="color: #ff0000;">&quot;#{CityPrecipitation}&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">width</span>=<span style="color: #ff0000;">&quot;320&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">height</span>=<span style="color: #ff0000;">&quot;275&quot;</span></span>
<span style="color: #009900;">        <span style="color: #000066;">legendVisible</span>=<span style="color: #ff0000;">&quot;false&quot;</span><span style="color: #000000; font-weight: bold;">&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;o:pieChartView</span> <span style="color: #000066;">colors</span>=<span style="color: #ff0000;">&quot;#5a87be, #94c237, #fff555, #da6a28&quot;</span> <span style="color: #000066;">labelsVisible</span>=<span style="color: #ff0000;">&quot;true&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;o:chartTitle</span> <span style="color: #000066;">text</span>=<span style="color: #ff0000;">&quot;Amount of Precipitation During the Year&quot;</span></span>
<span style="color: #009900;">                <span style="color: #000066;">style</span>=<span style="color: #ff0000;">&quot;font-size: 14px;&quot;</span><span style="color: #000000; font-weight: bold;">/&gt;</span></span>
<span style="color: #009900;"><span style="color: #000000; font-weight: bold;">&lt;/o:chart<span style="color: #000000; font-weight: bold;">&gt;</span></span></span></pre></td></tr></table></div>

<p>BackingBeanは、それぞれのグラフ用にChartModelというインターフェースを実装したmodelをもっています。<br />
そのmodelを元にグラフが描画されるみたい。</p>
<h4>データテーブル</h4>
<p><img src="http://blog.eni.co.jp/tech/wp-content/uploads/2009/06/data_tablle-300x225.png" alt="Data Table" title="Data Table" width="300" height="225" class="alignleft size-medium wp-image-663" /><br />
データリストの一覧表示には以下の機能が備わっています。<br clear="all"/></p>
<ul>
<li><strong>検索</strong></li>
<li><strong>ソート</strong></li>
<li><strong>ページング</strong></li>
<li><strong>選択</strong>・・・1行選択したり複数行選択したり。</li>
<li><strong>カラムのリサイズ</strong></li>
<li><strong>キーボード操作</strong>・・・方向キーで選択行を変更したり、Shiftキー＋方向キーで複数行選択したり。</li>
</ul>
<h4>他にもいろいろ面白そうな機能があります</h4>
<p>ウィンドウの表示とか。<br />
ポップアップメニュー(右クリックでメニュー表示)とか。<br />
ツリー状メニューの表示とか。<br />
カレンダーからの日付選択とか。</p>
<p>たくさんの面白そうな機能がついているので、ぜひ実際に動く様子を見てみてください。(→<a href="http://openfaces.org/demo/">OpenFaces Live Demo</a>)</p>
<h3>ところでライセンスは？</h3>
<p>OpenFacesが採用しているライセンスは、dual license modelです。</p>
<p>dual licenseって何よ？って話なんですけども、簡単に言うと、開発したアプリケーションのライセンスをLGPLにするなら無償、そうでないならOpenFacesの商用ライセンスを購入してねってことみたいです。</p>
]]></content:encoded>
			<wfw:commentRss>http://blog.eni.co.jp/tech/2009/06/jsf_ajax_openfaces.html/feed</wfw:commentRss>
		<slash:comments>0</slash:comments>
		<xhtml:link rel="alternate" media="handheld" type="text/html" href="http://blog.eni.co.jp/tech/2009/06/jsf_ajax_openfaces.html" />
	</item>
	</channel>
</rss>
