Challenge Engineer Life !

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

PrimeFaces ExtensionsのBlock UIを利用してみました

現在のJava EE6開発で、ボタンの2度押しや連打をどう防ごうか少し前に考えたのですが、今回はPrimeFacesが持つBlockUIを利用する方針としています。

実際の動きは以下Showcaseで確認できます。

非常に簡単に利用できるので、良い感じです。

そして、同じBlockUIコンポーネントがPrimeFaces Extensionsにもあります。
以下がShowcaseです。

こちらも非常に簡単に使えて、しかもBlockUIの内部にコンポーネントが配置できます(^^)/

PrimeFaces Extensionsはまだバージョンが0.6.3と若い感じなので、利用することを悩みましたが、BlockUIに関してはこちらをメインで採用することにしました。

各画面で入れたりするのは手間なので、JSFのテンプレートに以下のように配置して

<pe:blockUI target="cpqTemplateFrm" widgetVar="blc">
    <h:panelGrid columns="2">
        <p:graphicImage id="imgLoaderBlc" value="/resources/images/ajax-loader.gif" styleClass="status"/>
        <h:outputLabel id="lblBlcProcessing" value="#{tmpBean.dictonary(component.id)}" />
    </h:panelGrid>
</pe:blockUI>

各画面では

<p:commandButton id="btnSearch" -- 中略 -- onstart="blc.block()" oncomplete="blc.unblock()"/>

と書いて利用する感じです。

実行すると以下のような感じに
f:id:kikutaro777:20130308221040j:plain

こちらのほうがユーザに若干優しい…のかな(^^;
業務システムだと「突然画面暗くなるだけだとわかんないよ、メッセージとか入れなさいよ」とか普通に言われたりもしてしまうので…。まあケースバイケースで使い分け、かなと思います。

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