Inicial > programação > Richfaces 4 x Richfaces 3.3.x – mudanças e melhorias

Richfaces 4 x Richfaces 3.3.x – mudanças e melhorias

Se você usava o RichFaces 3.3.X no Jsf 1, agora vai ter que adotar o RichFaces 4, que é a opção compatível com o JSF 2. A biblioteca de interface rica tem muitas novidades e muitos componentes mudaram a nomenclatura ou foram substituídos por outros. Vamos às atualizações:

Novidades

  • Um conjunto completo de componentes com processamento ajax dividido em duas bibliotecas:
    • a4j: controles do ajax;
    • rich: componentes com ajax internamente.
  • Validação client-side, trazendo para o browser a JSR 303 Bean Validation;
  • Componente com mecanismo de fila para sequenciar eventos client-side que atende os requisitos de performance das aplicações JEE;
  • Componente do tipo push agora inclui integração com Java Messaging Service (JMS) e vários mecanismos de transporte baseados no suporte do browser;

Mudanças

Parâmetros do web.xml:

Parâmetro na v3.3.x Parâmetro na v4.x Observações
org.richfaces.<parametro>
SKIN skin Skin default
BASE_SKIN baseSkin Skin de base para o skin atual
CONTROL_SKINNING enableControlSkinning Habilita css com classes padrão de skin
CONTROL_SKINNING_CLASSES enableControlSkinningClasses Habilita css com classes predefinidas para uso explícito em componentes e definições de containers.
CONTROL_SKINNING_LEVEL Não migrado por conta de não haver mais suporte para browsers antigos (IE 6, Safari 2, etc)
LoadScriptStrategy resourceOptimization.enabled As estratégias de carregamento de recursos são tratadas pela configuração de Otimização de Recursos
LoadStyleStrategy resourceOptimization.enabled As estratégias de carregamento de recursos são tratadas pela configuração de Otimização de Recursos
org.ajax4jsf.<nome>
LOGFILE Não existe mais.
VIEW_HANDLERS Não existe mais.
CONTROL_COMPONENTS Não existe mais.
ENCRYPT_RESOURCE_DATA Não existe mais.
ENCRYPT_PASSWORD Não existe mais.
COMPRESS_SCRIPT Não existe mais. As estratégias de compressão de recursos são tratadas pela configuração de Otimização de Recursos
COMPRESS_STYLE Não existe mais. As estratégias de compressão de recursos são tratadas pela configuração de Otimização de Recursos
RESOURCE_URI_PREFIX Não existe mais.
SESSION_RESOURCE_URI_PREFIX Não existe mais.
DEFAULT_EXPIRE Não existe mais.
SERIALIZE_SERVER_STATE Não existe mais.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-Upgrading

Atributos padrões de componentes do Core:

RichFaces 3.3.3 RichFaces 4.x
Descrição
process execute Id’s de componentes a serem processados no caso de requisição Ajax. Aceita:

  • EL(lista de Id’s);
  • String’s separadas por espaço ou vírgulas;
  • Atalhos JSF: @all @none @this @form
  • Atalhos @region do RichFaces
reRender render Define id’s de componentes a serem atualizados no lado do cliente após o response Ajax ser retornado. Aceita os mesmos valores que o execute. Adicionalmente aceita definições de meta-components.
ajaxSingle n/d Agora use execute=”@this”
limitToList limitRender Exclui automaticamente zonas de atualização (outputPanel, messages, etc) da renderização.
action / actionListener action / actionListener Agora só existem em componentes e não mais em behaviors como <a4j:ajax /> e similares.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-CommonComponentsChanges

Atributos removidos:

Nome do atributo
Descrição
ignoreDupResponse Movido para o behavior attachQueue
requestDelay Movido para o behavior attachQueue
timeout Movido para o behavior attachQueue

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-CommonComponentsChanges

Atributos adicionados:

Nome do atributo Descrição
listener Atributo JSF para behavior. Permite definir um listener quando um behavior é ativado.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-CommonComponentsChanges

Componentes A4j:

RichFaces 3.3.3 RichFaces 4.x Mudanças
actionparam param atributo listener removido.
form item removido
ajaxListener item removido
region region Funciona da mesma forma da versão 3.3.x. Atributos removidos/não implementados:

  • selfRendered
  • renderRegionOnly
  • ajaxListener
  • immediate
support ajax Implementados como um behavior de acordo com a especificação JSF. Assim:

  • Qualquer código Java relacionado à criação dinâmica de visão deve ser revisto;
  • Opções relacionadas à fila (requestDelay, requestGroupingId, ignoreDupResponse) agora só podem ser usados com <a4j:attachQueue />.

Importante:

  • Eventos de behaviors agora não começam com on. Ou seja, não é mais onchange mas sim, change, e assim por diante;
  • Behavior não é um componente de action, portante não pode ter parâmetros associados.
push push Component completamente redesenhado. Agora é baseado em JMS, COMET e usa o framework atmosphere.
attachQueue Permite associar componente/behavior ajax a uma fila to some queue. Deve ser definido como filho do componente ou behavior.
log log atributo popup modificado para mode (valores possíveis: popup/inline).
repeat repeat atributo ajaxKeys não existe mais.
keepAlive item removido. escopo de visão ou outras estratégias para salvar o estado devem ser usadas no lugar.
actionListener nova tag. permite registrar um action listener ao componente.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-A4jComponents

Componentes de validação:

RichFaces 3.3.3 RichFaces 4.x Mudanças
ajaxValidator validator Validação client-side adicionada.
beanValidator item removido.
message message Importante! Uso de ícones modificado apenas para css. Summary e Details separados para melhorar o skin.
messages messages Importante! Uso de ícones e layout modificados apenas para css. Summary e Details separados para melhorar o skin.

notify

notifyMessage

notifyMessages

notifyStack

Os componentes de notificação foram adicionados no RichFaces 4

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichValidationComponents

Componentes de input:

RichFaces 3.3.3 RichFaces 4.x Mudanças
colorPicker
não implementado ainda
comboBox usar componente suggestionBox
editor editor
RichFaces 4 é baseado no CKeditor
fileUpload fileUpload Não implementado ainda:

  • Javascript API
  • auto upload / auto clear
  • suporte a flash
inplaceInput inplaceInput Handlers especials como onviewactivated foram removidos.
suggestionBox autocomplete Versão unificada do suggestionBox e comboBox da 3.3.x. Pode trabalhar de 4 formas diferentes:

  • client (como comboBox),
  • ajax (como suggestionBox)
  • cachedAjax
  • lazyClient

Componente é um UIInput, então objectSelection não está implementado.

select Componentes novo baseado em UISelectOne mas que permite entrada por digitação na função de autocomplete.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichInputComponents

Componentes de Painel e Output:

RichFaces 3.3.3 RichFaces 4.x Mudanças
modalPanel popupPanel Atributo showWhenRendered renomeado para show.
paint2D
item removido.

panelBar

panelBarItem

accordion / accordionItem
Adicionado com modos server e ajax. Dispara evento no servidor (ItemChangeEvent) and fornece um listener (itemChangeListener atributo).

panelMenu

panelMenuGroup

panelMenuItem

panelMenu

panelMenuGroup

panelMenuItem

Adicionado evento para mudança na seleção atual (ItemChangeEvent) e atributo listener (itemchangeListener no panelMenu) ao invés de ValueChangeListner.
separator item removido.
simpleTogglePanel collapsiblePanel Adicionado com ícones de cabeçalho. actionEvent modificado para PanelToggleEvent. Atributo opened renomeado para expanded
spacer item removido.
tabPanel/tab tabPanel/tab Substituídos ValueChangeEvent e valueChangeListener por ItemChangeEvent e itemChangeListener respectivamente.

togglePanel

facets

toggleControl

togglePanel

togglePanelItem

toggleControl

Substituídos ValueChangeEvent e valueChangeListener por ItemChangeEvent e itemChangeListener respectivamente. togglePanelItem deve ser usado no lugar de facets.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichPanelOutputComponents

Componentes de Menu:

RichFaces 3.3.3 RichFaces 4.x Mudanças
contextMenu contextMenu (4.2) macrosubstitution não implementado ainda

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichMenuComponents

Componentes de Ordenação:

RichFaces 3.3.3 RichFaces 4.x Mudanças
listShuttle pickList sourceList não é mais mutável.

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichOrderingComponents

Componentes de Iteração:

RichFaces 3.3.3 RichFaces 4.x Mudanças
columns
não implementado.
dataOrderingList list
dataDefinitionList list
dataList list
dataFilterSlider não implementado.
datascroller dataScroller nome modificado.
dataTable dataTable API’s de ordenação e filtro modificados.
subTable não implementado ainda.
collapsibleSubTable / collasibleSubTableToggler variante mais complexa do subTable
extendedDataTable extendedDataTable Novas características:

  • rolagem horizontal e vertical;
  • modos de rolagem ajax/cliente;
  • seleção
  • suporte a colunas “congeladas”
scrollableDataTable extendedDataTable

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichIterationComponents

Componentes de Árvore:

RichFaces 3.3.3 RichFaces 4.x Mudanças
tree/treeNode tree/treeNode novo TreeDataModel adicionado. Não mais disponível:

  • drag’n’drop;
  • navegação pelo teclado;
  • api server e client sides não finalizados.
treeNodesAdaptor treeModelAdaptor
recursiveTreeNodesAdaptor treeModelRecursiveAdaptor

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichTreeComponents

Componentes Drag’n’Drop:

RichFaces 3.3.3 RichFaces 4.x Mudanças
dragSupport dragSource dragListener removido.
dropSupport dropTarget adicionados valores @none e @all para acceptedTypes
dragIndicator dragIndicator
somente conteúdo estático possível e facets não suportado
dndParam
item removido

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichDragnDropComponents

Componentes diversos (miscellaneous):

RichFaces 3.3.3 RichFaces 4.x Mudanças
effect
item não implementado.
gmap
item não implementado.
insert item não implementado.
layout components item não implementado.
page item não implementado.
state api item não implementado.
virtualEarth item não implementado.
hashParam nova tag que permite agrupar parâmetros <f: /> e <a4j: /> em um parâmetros hash para uso em chamadas client-side a componentControl

Adaptado de: https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration-ComponentsMigration-RichDragnDropComponents

Referência:
https://community.jboss.org/wiki/RichFacesMigrationGuide33x-4xMigration

Anúncios
  1. rponte
    10/04/2012 às 11:45

    Muito bom, Pablo.

    Mostrou praticamente todas as diferenças entre as duas versões. Contudo eu temo que o Richfaces, por ter atrasado diversas vezes a sua final-release, perdeu muito espaço no mercado para o Primefaces.

    Tomara que o Richfaces recupera sua parcela justa do mercado, quanto mais concorrência melhores os componentes e o suporte à nós desenvolvedores.

  1. 10/04/2012 às 11:14

Deixe um comentário

Preencha os seus dados abaixo ou clique em um ícone para log in:

Logotipo do WordPress.com

Você está comentando utilizando sua conta WordPress.com. Sair /  Alterar )

Foto do Google+

Você está comentando utilizando sua conta Google+. Sair /  Alterar )

Imagem do Twitter

Você está comentando utilizando sua conta Twitter. Sair /  Alterar )

Foto do Facebook

Você está comentando utilizando sua conta Facebook. Sair /  Alterar )

Conectando a %s

%d blogueiros gostam disto: