読者です 読者をやめる 読者になる 読者になる

Challenge Java EE !

Java EEを中心に趣味や仕事における開発メモを書いています。

PrimeFaces ExtensionsのSpotlightを浴びてみる

JSF PrimeFaces Lombok

何気なく触ってみたPrimeFaces ExtensionsのSpotlightコンポーネント、何かの時に上手いこと使えないかなぁ、と触ってみたのでメモ。

PrimeFaces Extensions

PrimeFacesとは別に開発されてる拡張コンポーネントです。
http://fractalsoft.net/primeext-showcase-mojarra/views/home.jsf

と言いながら、本家のShowcaseからリンク出てるレベルなので、本家認定みたいな(^^;
http://www.primefaces.org/showcase/ui/home.jsf
f:id:kikutaro777:20130710203133j:plain

Maven使えばpom.xml

<dependency>
    <groupId>org.primefaces.extensions</groupId>
    <artifactId>primefaces-extensions</artifactId>
    <version>0.7.1</version>
</dependency>

と書けばOKです。

PrimeFacesはリポジトリの指定が必要だけど、Extensionsはセントラルにあるっぽいです。多分(^^;いつも一緒に定義するので未確認です。すみません。。

ちなみに過去書いたPrimeFaces Extensionsネタは

Spotlightコンポーネント

Showcaseを触るほうがわかりやすいですが…(^^;
http://fractalsoft.net/primeext-showcase-mojarra/sections/spotlight/spotlightAjax.jsf

一応書きます。

ビューはこんなん

<h:body>
    <h:form>
        <!-- ライトを浴びれる子 -->
        <h:panelGrid columnClasses="1">
            <pe:spotlight id="spot1" blocked="#{!spotLightBean.editable}">
                <p:panelGrid columns="2">
                    <p:selectBooleanButton value="#{spotLightBean.editable}"
                                 offLabel="僕以外を見てあげて" onLabel="僕だけを見てよ">
                        <p:ajax event="change" process="spot1" update="spot1" 
                                    listener="#{spotLightBean.buttonClickAction()}"/>
                    </p:selectBooleanButton>
                    <p:inputText />
                </p:panelGrid>
            </pe:spotlight>
        </h:panelGrid>
            
        <!-- ライトを浴びれない子達 -->
        <p:inputText />
        <p:calendar />
    </h:form>
</h:body>
</html>

BackingBeanは

package hoge;

import java.io.Serializable;
import javax.faces.bean.ManagedBean;
import javax.faces.bean.ViewScoped;
import lombok.Getter;
import lombok.Setter;

/**
 *
 * @author kikutaro
 */
@ManagedBean
@ViewScoped
public class SpotLightBean implements Serializable{

    @Setter @Getter
    private boolean editable;
    
    public void buttonClickAction(){
        System.out.println("イベントきてる");
    }
}

スポットライト浴びるか浴びないかのフラグだけ定義しました。
メソッドはlistenerイベント来るかの確認で定義しましたが、ちゃんと呼ばれました。

ちなみにSetter/GetterはLombok使ってます。以下参照。
開発途中で出会ったLombok…

動き

初期表示
f:id:kikutaro777:20130710203353j:plain
グレーの部分は触れません。

ボタン押すと
f:id:kikutaro777:20130710203404j:plain
グレーのブロックが解除されて触れるようになります。

なんか特殊な業務要件があった場合とかは使えなくもない気が(^^;
上記例のように、画面表示時に指定した場所をスポットライトあてることもできるので、必ずここから入れろ、みたいな場合とか…?うーん。

まあ半分遊びです(^^;

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