Top Banner
Çagatay Çivici
56

Primefaces Confess 2012

May 06, 2015

Download

Technology

cagataycivici

PrimeFaces Session at Confess 2012
Welcome message from author
This document is posted to help you gain knowledge. Please leave a comment to let me know what you think about it! Share it to your friends and learn new things together.
Transcript
Page 1: Primefaces Confess 2012

Çagatay Çivici

Page 2: Primefaces Confess 2012

• JSF Expert Group Member (JSR-314, JSR-344)

• PrimeFaces Lead

• Apache MyFaces PMC

• Speaker, Author, Reviewer

• Co-Founder of Prime Teknoloji

Çagatay Çivici

Page 3: Primefaces Confess 2012

• Specialized in Java EE and Agile

• Consulting

• Training

• Delivery

• Offices in Istanbul and Ankara

• www.prime.com.tr

Prime Teknoloji

Page 4: Primefaces Confess 2012
Page 5: Primefaces Confess 2012

3 Years Old

Page 6: Primefaces Confess 2012

Lightweight

Page 7: Primefaces Confess 2012

Easy to Use

Page 8: Primefaces Confess 2012

1.7~ mb

Only 1 Jar

Page 9: Primefaces Confess 2012

No Required Dependencies

Page 10: Primefaces Confess 2012

Zero Config

Page 11: Primefaces Confess 2012

Who Uses?

Page 12: Primefaces Confess 2012

In The Wild

Page 13: Primefaces Confess 2012

Popularity

Page 14: Primefaces Confess 2012

Global

Colombia

Page 15: Primefaces Confess 2012

100+ UI Components

Page 16: Primefaces Confess 2012

Advanced UIs

Page 17: Primefaces Confess 2012

Form Components

Page 18: Primefaces Confess 2012

Hide Complexity

Keep Flexibility<p:tabView onTabChange=”handleTabChange()”>

<p:ajax event=”change” listener=”#{bean.onTabChange}” update=”comp” />//tabs

</p:tabView>

CSSOverride

JSAPI

ClientCallbacks

AjaxCallbacks

CSS JS AJAX

Page 19: Primefaces Confess 2012

<p:schedule id=”sch” value=”#{bean.model}” editable=”true” />

<div id=”sch”></div>

<script type=”text/javascript”>PrimeFaces.cw(‘Schedule’,’widgetVar’, {id:’sch’, editable:true});

</script>

Page

Markup

Script

Anatomy of a Component

Page 20: Primefaces Confess 2012

Accessibility

Keyboard/Mouse

ARIA Attributes

Page 21: Primefaces Confess 2012

HTML5

canvas

data-*

websockets

forms media

Page 22: Primefaces Confess 2012

Server APIs: Standard JSF 2

Client APIs:

PrimeFaces Ajax

Page 23: Primefaces Confess 2012

autoUpdate

p:ajax

RequestContext

Callbacks

AjaxStatus

Selectors

partialSubmit

Ajax Extensions

Page 24: Primefaces Confess 2012

p:ajax f:ajaxoncomplete

onerror

onstart

async

global

onsuccess

onevent

onerror

Page 25: Primefaces Confess 2012

AjaxStatus<p:ajaxStatus>

<f:facet name=”start”><p:graphicImage value=”fancyanimation.gif” />

</f:facet><f:facet name=”complete”>

<h:outputText value=”Request Completed” /></f:facet>

</p:ajaxStatus>

<p:ajaxStatus onstart=”dialog.show()” oncomplete=”dialog.hide()” />

<p:commandButton global=”true|false” />

Declarative

Programmatic

Global

Page 26: Primefaces Confess 2012

<p:commandButton value=”Submit” action=”#{bean.save}” />

<p:dialog widgetVar=”dialogWidget” ... />

public void save() {RequestContext rc = RequestContext.getCurrentInstance();rc.execute(“dialogWidget.hide()”);

}

Page

Bean

RequestContext - Scripts

Page 27: Primefaces Confess 2012

<p:commandButton value=”Submit” action=”#{bean.save}” />

<h:outputText id=”val” value=”#{bean.property}” />

public void save() {RequestContext rc = RequestContext.getCurrentInstance();rc.addPartialUpdateTarget(“val”);

}

Page

Bean

or<p:commandButton value=”Submit” action=”#{bean.save}”

update=”val” />

<h:outputText id=”val” value=”#{bean.property}” />

RequestContext - Update

Page 28: Primefaces Confess 2012

<p:commandButton value=”Submit” action=”#{bean.save}” />

<h:outputText id=”val” value=”#{bean.property}” />

public void save() {RequestContext rc = RequestContext.getCurrentInstance();rc.scrollTo(“val”);

}

Page

Bean

RequestContext - Scroll

Page 29: Primefaces Confess 2012

<p:growl id=”messages” /> <p:commandButton value=”Save” update=”messages” /> <p:commandButton value=”Update” update=”messages” /> <p:commandButton value=”Delete” update=”messages” />

<p:growl id=”messages” autoUpdate=”true”/> <p:commandButton value=”Save” /> <p:commandButton value=”Update” /> <p:commandButton value=”Delete” />

AutoUpdate

becomes

Page 30: Primefaces Confess 2012

PartialSubmit

Post Data:javax.faces.partial.ajax=true&javax.faces.source=form%3Aj_idt18&javax.faces.partial.execute=form%3Aname&javax.faces.partial.render=form%3Adisplay&form%3Aj_idt18=form%3Aj_idt18&form=form&form%3Aname=&form%3Aj_idt20=&form%3Aj_idt22=&form%3Aj_idt24=&form%3Aj_idt26=&form%3Aj_idt28=&form%3Aj_idt30=&form%3Aj_idt32=&form%3Aj_idt34=&form%3Aj_idt36=&form%3Aj_idt38=&form%3Aj_idt40=&form%3Aj_idt42=&form%3Aj_idt44=&form%3Aj_idt46=&form%3Aj_idt48=&form%3Aj_idt50=&form%3Aj_idt52=&form%3Aj_idt66=&form%3Aj_idt68=&form%3Aj_idt70=&form%3Aj_idt72=&form%3Aj_idt74=&form%3Aj_idt76=&form%3Aj_idt78=&form%3Aj_idt80=&form%3Aj_idt82=&form%3Aj_idt84=&form%3Aj_idt86=&form%3Aj_idt88=&form%3Aj_idt90=&form%3Aj_idt92=&form%3Aj_idt94=&form%3Aj_idt96=&form%3Aj_idt98=&javax.faces.ViewState=7916482521909421983%3A-2156051337299048496

Post Data:javax.faces.partial.ajax=true&javax.faces.source=form%3Aj_idt18&javax.faces.partial.execute=form%3Aname&javax.faces.partial.render=form%3Adisplay&form%3Aj_idt18=form%3Aj_idt18&form=form&form%3Aname=&javax.faces.ViewState=7916482521909421983%3A-2156051337299048496

False True

Page 31: Primefaces Confess 2012

update=”@(form)”

update=”@(form.first)”

update=”@(.mystyle)”

update=”@(.ui-datatable)”

update=”@(:input:not(select))”

update=”@(:input:disabled))”

PrimeFaces Selectors (PFS)

Page 32: Primefaces Confess 2012

Optimizations

CompressMinify

On The Fly Loading

Merge

and

ResourceHandling

Page 33: Primefaces Confess 2012

Demo

Page 34: Primefaces Confess 2012

Themes

Page 35: Primefaces Confess 2012

Install a Theme

Add primefaces-{themename}.jar

Configure<context-param>

<param-name>primefaces.THEME</param-name><param-value>{themename}</param-value>

</context-param>

Page 36: Primefaces Confess 2012

Roll Your Own

Page 37: Primefaces Confess 2012

Advanced Themes

Page 38: Primefaces Confess 2012

Demo

Page 39: Primefaces Confess 2012

PrimeFaces Mobile

Page 40: Primefaces Confess 2012

<pm:page title="TwitFaces">

        <pm:view id="main" swatch="b">            <pm:header title="TwitFaces">            </pm:header>

            <pm:content>                <h:form id="twitForm">                    <h:outputText value="Account: " />                    <h:inputText value="#{twitterController.username}" />                    <p:separator />                    <p:commandButton value="Get Tweets" icon="refresh" update="tweetList"                                      actionListener="#{twitterController.loadTweets}" />

                    <p:dataList id="tweetList" value="#{twitterController.tweets}" var="tweet">                        #{tweet}                    </p:dataList>                </h:form>            </pm:content>        </pm:view>

    </pm:page>

PrimeFaces Mobile

Page 41: Primefaces Confess 2012

powered by

PrimeFaces Mobile

Page 42: Primefaces Confess 2012

Demo

Page 43: Primefaces Confess 2012

WebSockets

PrimeFaces Push

Page 44: Primefaces Confess 2012

JSF APPPushServer

(Jetty)

PrimeFaces Push

12 3

4 4 44

4

Page 45: Primefaces Confess 2012

<p:push channel=”chat” onmessage=”handleMessage” />

public void send() {RequestContext rc = RequestContext.getCurrentInstance();rc.push(“chat”, “Hello everyone!”);

}

<script type=”text/javascript”>function handleMessage(event, data) {

//data -> “Hello everyone!”}

</script>

Page

Bean

Callback

PrimeFaces Push

Page 46: Primefaces Confess 2012

Demo

Page 47: Primefaces Confess 2012

Back to Atmosphere?

Page 48: Primefaces Confess 2012

Sample: /svn/examples/trunk/prime-portlet

Portlets

Page 49: Primefaces Confess 2012

http://primefaces-rocks.appspot.com

http://primefaces-gae-kickstart.appspot.com

On The Cloud

Page 50: Primefaces Confess 2012

450+ Pages

Documentation

Page 51: Primefaces Confess 2012

2000 posts / month

Community

Page 52: Primefaces Confess 2012

Bundled with NetBeans

Page 53: Primefaces Confess 2012

TrainingSupport Consulting

Enterprise

Page 54: Primefaces Confess 2012

Scaffolding

Page 55: Primefaces Confess 2012

• Current 3.2

• Next 3.3

• Keep on 3.x

• PrimeFaces Cookbook

• De-Facto Standard

Roadmap