Sie sind auf Seite 1von 42

PrimeFaces

Suite de Componentes
(DataTable, DataExporter, DataList, DataGrid, Growl, AjaxStatus, HotKey, AccordionPanel,
Efect, Dialog)

Joan Sebastián Sepúlveda Vélez


Fundación Universitaria Tecnológico Comfenalco
DataTable

DataTable es una mejora a la tabla estándar de JSF, que


incluye:

Paginación
Clasificación/Ordenación
Filtrado
Lazy loading
y más, con el apoyo de algunos otros componentes...
Características Básicas

Una tabla (dataTable) básica se puede conformar de:


La etiqueta de la tabla:

Las columnas que la conforman:


Header & Footer

Son dos facetas que tienen las tablas de Primefaces y de


igual forma se le pueden aplicar a las columnas.

header: se establece como el titulo de la tabla.

footer: se establece como el pie de pagina de la tabla.


Paginación

DataTable tiene soporte para la paginación por Ajax. Hay que


agregarle los atributos:

paginator: true. Para habilitar la paginación.


rows: número de filas a renderizar por página.
paginatorTemplate: plantilla de diseño para el paginador,
por defecto es. "{FirstPageLink} {PreviousPageLink} {PageLinks}
{NextPageLink} {LastPageLink}".
rowsPerPage: plantilla para una lista desplegable de
paginación. Se definen los diferentes valores separados por
comas (,).
Ordenamiento

Los dataTable's en prime nos permiten realizar clasificación u


ordenamiento de los resultados de la misma mediante Ajax.
Filtros

DataTable provee funcionalidad para aplicar filtros a las


columnas de una tabla implementando Ajax.

filterBy: indica por que columna se va a aplicar el filtro

filterMatchMode: representa el tipo de filtrado a aplicar.


startsWith (default)
endsWith
contains
exact
Filtros personalizados

DataTable también provee filtros personalizados.

Se debe especificar una colección de SelectItem que se


desplegará en la cabecera de la columna.
Scroll

DataTable incorpora soporte scroll, tanto a nivel de ciente


como en caliente.

Se debe indicar la propiedad scrollable en true.


Tamaño de la tabla, atributo height.

Si queremos habilitar la carga en vivo:

liveScroll
Expansión de tablas

DataTable nos provee un mecanismo de expansión en las filas


de ella.
rowToggler

rowExpansion
DataExporter

DataExporter es un componente de PrimeFaces que nos


permite exportar los datos de una tabla.

target: indica el id de la tabla a exportar.


type: xls, pdf, csv, xml
fileName
pageOnly
excludeColumns
Otras..

emptyMessage: Especifica el mensaje a mostrar cuando la


lista esta vacía.
footerText: Representa el pie de pagina de una columna.
headerText: Representa la cabecera de una columna.
Selección

Utilizando un commandButton
Binding + getRowData
f:param
f:setPropertyActionListener
Pasando como parámetro el objeto (se requiere la
versión 2.2 de EL)
Selección - RadioCheckBox

Radio/CheckBox Selection
Al dataTable se le agrega el atributo selection apuntando
a la variable del bean ya sea un pojo o una colección
según sea el caso.

p:column selectionMode
DataList

Dibuja una lista de Item's de igual forma que una lista de html:

value, var
itemType: especifica el tipo de item's de la lista (square, disc,
circle)
type: tipo de lista a mostrar
(unordered, ordered, definition)
paginator
effect: default true

Nota: si es type "definition" se debe especificar la


DataGrid

DataGrid muestra una colección de datos pero no en una tabla


sino en una grilla.

value, var
columns
paginator, rows
paginatorPosition (both, top, bottom)
AccordionPanel

AccordionPanel es un contenedor que renderiza sus


hijos separándolos por tab.
autoHeight: evita que el contenedor se coloque por defecto
del tamaño de su tab mas grande.
event: indica cual es el evento con el cual se va a mostrar
una tab u otra.
collapsible: indica si es posible contraer todas las tab.
activeIndex: indica cual es la tab activa por defecto.
Growl

Basado en el widget de notificación de Mac's y se utiliza para


mostrar FacesMessages.
showSummary: indica si muestra el titulo.
showDetail: indica si muestra el detalle.
sticky: indica si el widget debe permanecer o
desaparecer automáticamente.
life: tiempo de visualización del mensaje.
Growl
Cambiar el aspecto de Growl...
AjaxStatus
Es un notificador para todas las peticiones Ajax realizadas por
los componentes de PrimeFaces.

Usa facetas para representar el estado de la petición Ajax, las


dos mas comunes:
start
complete
prestart, error, success
HotKey

Se utiliza como un acceso directo del teclado, que se efectúa


del lado del cliente y ejecuta un evento en el servidor a través
de Ajax.

bind: especifica la combinación de teclas.


Effect

Es un componente basado en la librería JQuery.

• blind • clip • drop • explode


• fold • puff • slide • scale
• bounce • highlight • pulsate • shake
• size • transfer

event: indica el evento mediante el cual se activa el efecto.


type: indica cual es el efecto a aplicar.

http://docs.jquery.com/UI/Effects
Effect

Uso de parámetros.
FieldSet

Es un componente agrupador que provee un titulo y un


toggleListener.
legend: titulo del componente
toggleable: true / false
toggleListener: evento ejecutado en el bean al hacer el
componente togglable.
onToggleUpdate: componentes a actualizar cuando se
ejecute el evento toggleListener.
MenuBar, SubMenu y MenuItem

MenuBar es un componente que representa barras de menu al


estilo de las aplicaciones de escritorio.

SubMenu es un componente que agrupa bajo un mismo


nombre diferentes item's de selección disponibles.

MenuItem son cada una de las opciones finales mediante las


cuales vamos a interactuar, ya sea accediendo a recursos o
efectuando acciones y/o eventos.
Drag & Drop

Draggable y Droppable proporcionan la funcionalidad de


arrastrar y soltar componentes dentro de otros.

Draggable:
for: especifica el id del componente que va a poseer
esta característica.
axis: define la orientación (x, y)
helper: clone
revert: true, stack=".ui-panel"
opacity: 0.7, grid: 20, 45, containment="parent"
Drag & Drop

Droppable:
for: especifica el id del componente que va a poseer
esta característica.
tolerance: modo de intersección (touth)
datasource: especifica cual es el componente que provee
los datos.
dropListener: evento que se ejecuta al hacer el arrastre
del componente, se asocia con un objeto de tipo
DragDropEvent.
onDropUpdate: especifica el o los componentes a
actualizar al realizar el arrastre.
activeStyleClass="ui-state-highlight": le da un estilo al área
de arrastre.
Drag & Drop, Integración con DataGrid
y DataTable
Ejemplo:
Arrastrar componentes listados en un DataGrid/DataTable,
hacía una un FieldSet que actualizará el contenido de una
tabla.

icono arrastrar: ui-icon ui-icon-arrow-4


doc de iconos: http://jqueryui.com/themeroller/
nota: mostrar la tabla cuando no esta vacia not empty ...
TabView

Este componente nos permite crear una especie de


JTabbedPane al estilo de Swing.

<p:tabView...
Esta compuesta por p:tab's.
dynamic: hace que la rederización sea perezosa y se
carga mediante Ajax.
cache: habilita el mecanismo de cache para las tab's ya
cargadas. Por defecto es true.
tabChangeListener: evento ejecutado al cambiar de tab.
Se asocia a un objeto TabChangeEvent.
collapsible: indica si el TabView se puedo contraer.
TabView

effect: efecto que se va a ejecutar cuando se haga un


cambio de tab. (opacity, height, width).
effectDuration: especifica la duración del efecto
(slow, normal, fast)
activeIndex: indica la tab a mostrar por defecto.
WaterMark

Muestra una marca de agua que describe la finalidad de los


componentes de entrada.

for: id del componente al que se le va a aplicar la mascara.


Calendar

Componente para la entrada de fechas.


mode: especifica distintos modos de visualizar el
componente (popup, inline).
showOn: componente paralelo que muestra el calendario
(button).
selectListener: Evento ejecutado cuando se selecciona
una fecha. Se asocia a un objeto DateSelectEvent.
onSelectUpdate: id's de los componentes a actualizar al
ejecutar el evento de seleccionar.
pattern: define el formato en que se va a mostrar la fecha.
(dd/MM/yyyy, EEE, dd MMM, yyyy, ...).
navigator: habilita la navegación en el componente de la
fecha.
Calendar

mindate: indica la fecha mínima que se puede


seleccionar en el calendario.
maxdate: indica la fecha máxima que se puede seleccionar
en el calendario.
pages: indica el numero de paginas a mostrar en el
calendario.
effect: fadeIn, slide, slideDown, explode, fold, drop
ToolTip

Utilizando el componente toolTip de modo global, este se


aprovecha de los valores de los atributos tittle de los
componentes JSF.
Wizard

Es un componente que representa un flujo de trabajo, el cual


esta creado por multiples tab que se van visualizando a medida
que se pasa de una a otra.

Agrega dos botones en la parte inferior para la navegación


entre tab's.
backLabel: representa la etiqueta del botón de regresar.
nextLabel: representa la etiqueta del botón siguiente.
flowListener: evento ejecutado al momento de pasar de
una tab a otra por medio de las herramientas de
navegación proporcionadas.

nota: no avanza si no pasa por las validaciones de la tab.


Tree

Representa un árbol que muestra una jerarquía de datos.

Se apoya en la interfaz TreeNode, la cual es una estructura de


datos jerárquica los cuales serán dibujados en el tree. Esta
tiene una implementación llamada DefaultTreeNode.
Tree: TreeNode - API

Nos provee una serie de atributos mediante los cuales


podemos afectar el comportamiento de los nodos del árbol.
expanded
children
parent
childCount
data
expanded
selected
Tree

dynamic: proporciona la funcionalidad de que la carga de


los nodos sea mediante peticiones Ajax al momento
de usarse.
type: indica el tipo de nodo y dependiendo de este se
pueden declarar diferentes <p:treeNode... en la vista, para
tratar cada uno de acuerdo a su naturaleza.

Eventos:
nodeExpandListener
nodeCollapseListener
nodeSelectListener
Tree

selectionMode: modo de selección disponible para los


nodos (single, multiple, checkbox).
selection: se asocia a un arreglo de TreeNode en el bean,
lo cuales han sido seleccionados.
update: id's de componentes a actualizar.
onselectStart: evento javaScript ejecutado al instante en
que se inicia la selección.
onselectComplete: evento javaScript ejecutado al instante
que se completa la selección.
TreeTable

Este componente tiene el mismo funcionamiento que


un tree pero se aplica a una tabla.

value: hace referencia hacia el TreeNode padre de


la jerarquía.
var: variable con la cual se va a iterar la estructura de
datos jerárquica.
Theme's

Prime se integra con el framework ThemeRoller CSS.


Dispone de 30 temas prediseñados.
Agregar tema, es muy fácil:
descargar el .jar del tema deseado (manualmente o a
través de maven)

configurar el parámetro primefaces.THEME en el web.


xml y colocarle como valor el nombre del tema deseado.
Theme's Tip's

Nuevos Temas: se pueden crear temas personalizados


gracias a ThemeRoller en: http://jqueryui.com/themeroller/.

Cambiar el tamaño de los componentes de prime (font-


size):

Das könnte Ihnen auch gefallen