(chamada de source) e a outra representara o objetos selecionados(target), o metodo mostrarCoresSelecionadas() percorre a lista de cores selecionadas, repare que ele da um getTarget() ... para pegar a lista original e so dar um getSource().<h:form> <p:pickList value="#{picklistBean.cores}" var="cor" iconOnly="true" itemLabel="#{cor}" itemValue="#{cor}"> <f:facet name="sourceCaption">Lista</f:facet> <f:facet name="targetCaption">Selecionadas</f:facet> </p:pickList> <p:commandButton value="Ver cores selecionadas" actionListener="#{picklistBean.mostrarCoresSelecionadas}" /></h:form>Ao final do codigo eu coloquei um commandButton que chama o metodo para listar as cores selecionadas.O nosso proximo componente e o printer, ele e um componente que chama a funcao de impressao do navegador, com a diferenca que o programador define qual a parte da pagina sera impressa, para usar ele eu vou precisar da imagem printer.png (no arquivo que eu passei), coloque-o dentro do diretorio imagens. Vou mostra-lo junto com o proximo componente, mas antes segue o codigo:<h:outputLink id="lnk" value="#"> <p:printer target="quebraCabeca" /> <p:graphicImage value="/imagens/print.png" /></h:outputLink>Repare que o target se refere a um elemento quebraCabeca, ele corresponde a uma parte da pagina que eu quero que seja impresso, nesse caso este quebraCabeca sera o proximo elemento a ser feito.Para finalizar vamos ver o componente dashboard, que em um sistema comercial eu nao vi muita utilidade, entao para este exemplo eu resolvi criar um quebra cabeca meio desengoncado com ele!Quanto a impressora que aparece acima na imagem, esta corresponde ao componente printer. Vamos comecar entao com o nosso quebra-cabeca, primeiramente precisamos pegar as imagens que eu passei la no inicio e coloca-las no projeto. Primeiro dentro do diretorio imagens crie um novo diretorio com o nome de jogo: dentro dele coloque as imagens a.jpg, b.jpg ate a imagem i.jpg... Abaixo segue a classe Java QuebraCabecaBean que deve ser criado dentro do pacote controle:@Named@RequestScopedpublic class QuebraCabecaBean { private DashboardModel pecas; public QuebraCabecaBean() { listarPecas(); } private void listarPecas() { pecas = new DefaultDashboardModel(); DashboardColumn coluna1 = new DefaultDashboardColumn(); DashboardColumn coluna2 = new DefaultDashboardColumn(); DashboardColumn coluna3 = new DefaultDashboardColumn(); coluna1.addWidget("f"); coluna1.addWidget("c"); coluna1.addWidget("g"); coluna2.addWidget("h"); coluna2.addWidget("a"); coluna2.addWidget("d"); coluna3.addWidget("i"); coluna3.addWidget("e"); coluna3.addWidget("b"); pecas.addColumn(coluna1); pecas.addColumn(coluna2); pecas.addColumn(coluna3); } //Gerar GET e SET}Veja que eu incluo as letras embaralhadas dentro do DashboardColumn, realmente para iniciarem embaralhadas, so temos um detalhe: para cada letra que eu coloquei nessa lista eu preciso de um componente com o id do mesmo nome dentro do componente dashboard, apenas colocar os paineis no xhtml com as imagens nao e suficiente eu preciso ter esse espelho entre o bean e a pagina:<h:form id="quebraCabeca"> <p:dashboard model="#{quebraCabecaBean.pecas}"> <p:panel id="f"> <p:graphicImage url="/imagens/jogo/f.jpg" /> </p:panel> <p:panel id="c"> <p:graphicImage url="/imagens/jogo/c.jpg" /> </p:panel> <p:panel id="g"> <p:graphicImage url="/imagens/jogo/g.jpg" /> </p:panel> <p:panel id="h"> <p:graphicImage url="/imagens/jogo/h.jpg" /> </p:panel> <p:panel id="a"> <p:graphicImage url="/imagens/jogo/a.jpg" /> </p:panel> <p:panel id="d"> <p:graphicImage url="/imagens/jogo/d.jpg" /> </p:panel> <p:panel id="i"> <p:graphicImage url="/imagens/jogo/i.jpg" /> </p:panel> <p:panel id="e"> <p:graphicImage url="/imagens/jogo/e.jpg" /> </p:panel> <p:panel id="b"> <p:graphicImage url="/imagens/jogo/b.jpg" /> </p:panel> </p:dashboard></h:form>A solucao do quebra cabeca e este:OBS: Quanto ao quebra cabeca este foi improvisado, ja que a postagem original era para ser falado sobre os graficos do PrimeFaces, mas que infelizmente nao consegui fazer funcionar.Mas pensem comigo, antes isso do que nada ne!? :P