10
respostas

Tradução do Schedule do primefaces

Boa tarde tava pesquisando como traduzir o meu schadule para portugues e não achei nada :( apenas um post e não tenho certeza se está correto, bom, na minha pagina xhtml eu fiz um tamplate, e todas as outras herdam dela, então na minha pagina template já tem o meu head para aceitar componentes do primefaces, mais o problema é se eu colocar uma head em outra pagina ira dar confilto? por exemplo eu fiz assim e não rolou a tradução, quais as modificações para alterar para traduzir?

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">

<h:head>
    <title>Nutrição</title>
    <script type="text/javascript">
        PrimeFaces.locales['pt_BR'] = {
            closeText : 'Fechar',
            prevText : 'Anterior',
            nextText : 'Próximo',
            currentText : 'Começo',
            monthNames : [ 'Janeiro', 'Fevereiro', 'Março', 'Abril', 'Maio',
                    'Junho', 'Julho', 'Agosto', 'Setembro', 'Outubro',
                    'Novembro', 'Dezembro' ],
            monthNamesShort : [ 'Jan', 'Fev', 'Mar', 'Abr', 'Mai', 'Jun',
                    'Jul', 'Ago', 'Set', 'Out', 'Nov', 'Dez' ],
            dayNames : [ 'Domingo', 'Segunda', 'Terça', 'Quarta', 'Quinta',
                    'Sexta', 'Sábado' ],
            dayNamesShort : [ 'Dom', 'Seg', 'Ter', 'Qua', 'Qui', 'Sex', 'Sáb' ],
            dayNamesMin : [ 'D', 'S', 'T', 'Q', 'Q', 'S', 'S' ],
            weekHeader : 'Semana',
            firstDay : 1,
            isRTL : false,
            showMonthAfterYear : false,
            yearSuffix : '',
            timeOnlyTitle : 'Só Horas',
            timeText : 'Tempo',
            hourText : 'Hora',
            minuteText : 'Minuto',
            secondText : 'Segundo',
            currentText : 'Data Atual',
            ampm : false,
            month : 'Mês',
            week : 'Semana',
            day : 'Dia',
            allDayText : 'Todo Dia'
        };
    </script>
</h:head>
<h:outputStylesheet library="css" name="estilo.css" />
<h:body>
    <p:layout fullPage="true">

        <p:layoutUnit position="north" header="Sistema de gerenciamento"
            resizable="false" closable="false" collapsible="false">
        </p:layoutUnit>


        <p:layoutUnit position="west" size="200" resizable="false"
            closable="false" collapsible="false">
        </p:layoutUnit>


        <p:layoutUnit position="center">
            <ui:insert name="conteudo" />
        </p:layoutUnit>

    </p:layout>
</h:body>
</html>

Eu fiz aqui no meu templete, e não rolou, mais também nao queria fazer aqui, queria fazer apenas na minha pagina consulta, como fazer?

Apesar de ter feito no meu template, e não ter dado certo fiz a seguinte alteração também.

<p:schedule value="#{consultaBean.eventoModelo}" widgetVar="consulta"
                id="scheduleConsulta" timeZone="America/Sao_Paulo" locale="pt_BR">

coloquei o locale no schedule.

Eu só queria colocar o style na minha pagina de consulta. que é essa.

<?xml version="1.0" encoding="UTF-8" ?>
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml"
    xmlns:h="http://xmlns.jcp.org/jsf/html"
    xmlns:f="http://xmlns.jcp.org/jsf/core"
    xmlns:p="http://primefaces.org/ui"
    xmlns:ui="http://xmlns.jcp.org/jsf/facelets">



<ui:composition template="/template/template.xhtml">
    <ui:define name="conteudo">
        <p:growl id="mensagem" showDetail="true" sticky="true" />
        <h:form id="formularioAgendamento">
            <p:schedule value="#{consultaBean.eventoModelo}" widgetVar="consulta"
                id="scheduleConsulta" timeZone="America/Sao_Paulo" locale="pt_BR">

                <p:ajax event="eventSelect" listener="#{consultaBean.selecionar}"
                    oncomplete="PF('caixaDialogo').show();" update=":formularioDialogo" />
                <p:ajax event="dateSelect" listener="#{consultaBean.clicar}"
                    update=":formularioDialogo" oncomplete="PF('caixaDialogo').show();" />
                <p:ajax event="eventMove" listener="#{consultaBean.movimento}"
                    update="scheduleConsulta" />
                <p:ajax event="eventResize" listener="#{consultaBean.redimencionar}"
                    update="scheduleConsulta" />


            </p:schedule>
        </h:form>

        <p:dialog id="dialog" draggable="false" resizable="false"
            closable="true" modal="true" appendTo="@(body)" header="Evento"
            widgetVar="caixaDialogo">
            <h:form id="formularioDialogo">
                <h:panelGrid columns="2">

                    <p:outputLabel value="Nome do cliente: " />
                    <p:inputText value="#{consultaBean.consulta.titulo}" />

                    <p:outputLabel value="Inicio evento: " />
                    <p:calendar value="#{consultaBean.consulta.inicio}"
                        pattern="dd/MM/yyyy" />

                    <p:outputLabel value="Fim evento: " />
                    <p:calendar value="#{consultaBean.consulta.fim}"
                        pattern="dd/MM/yyyy" />

                    <p:outputLabel value="Status: " />
                    <p:selectBooleanCheckbox value="#{consultaBean.consulta.status}" />

                    <p:outputLabel value="Descrição: " />
                    <p:inputTextarea value="#{consultaBean.consulta.descricao}" />

                    <p:outputLabel value="Cliente" for="cliente" />
                    <p:selectOneMenu id="cliente"
                        value="#{consultaBean.consulta.pessoa.codigo}">
                        <f:selectItem itemValue="" itemLabel="Selecione um cliente" />
                        <f:selectItems value="#{consultaBean.listaPessoas}" var="pessoa"
                            itemValue="#{pessoa.codigo}" itemLabel="#{pessoa.nome}" />
                    </p:selectOneMenu>
                </h:panelGrid>

                <p:separator />
                <h:panelGrid columns="2">
                    <p:commandButton value="Salvar" action="#{consultaBean.salvar}"
                        update=":formularioAgendamento :mensagem :formularioAgendamento:scheduleConsulta"
                        oncomplete="PF('caixaDialogo').hide();" />

                    <p:commandButton value="Novo Cliente"
                        action="#{consultaBean.formularioPessoa}" immediate="true" />
                </h:panelGrid>
            </h:form>
        </p:dialog>

    </ui:define>
</ui:composition>

</html>
10 respostas

Fala, Alisson!

Você pode "travar" as partes que podem ser editadas usando o

<ui:define name="[nome_que_você_definiu]">

Você pode definir o bloco do cabeçalho inteiro, se quiser. Assim, cada página terá que adicionar seu próprio cabeçalho.

Já passei por uns problemas desses com JavaScript + Primefaces. Só consegui contornar adicionando o código js dentro do cabeçalho de cada página que precisou utilizá-lo. Chato é usar isso pra campos de data, pois quase todos os formulários têm uma data e você terá que adicionar o código em todas as páginas, duplicando código, etc. Agora, só uso a máscara mesmo... mais rápido e fácil que ficar clicando várias vezes pra selecionar as coisas (perde-se um pouco da usabilidade, é claro).

Qualquer dúvida, estamos aí...

Abraço.

É muito complicado Manoel? :(

Alisson, tenta assim:

Coloca teu script de tradução em um arquivo separado e adiciona ele no template, no head. Ficando mais ou menos assim (assumindo que você tem uma pasta js dentro de uma pasta resources e que o nome do teu arquivo é primefaces-locale.js):

<h:outputScript library="js" name="primefaces-locale.js" />

e no body das tuas páginas, nos componentes p:calendar e p:schedule adiciona a propriedade locale. Ficando assim:

<p:calendar id="calendario" locale="pt_BR" />
<p:schedule locale="pt_BR" />

ou tenta só locale="pt".

Não testei esse código. É só uma ideia. Tenta ele aí pra ver se funciona...

Manoel irei tentar mais tarde ai te aviso mesmo assim obrigado! Cara pode resolver uma duvida que eu tenho? ela é muito simple, mais cada um que vejo me da uma resposta diferente kkk, então pra você. Qual a diferença de criar uma variavel assim.

private Endereco endereco;

e assim.

private Endereco endereco = new Endereco();

Qual a diferença irmãozinho?

E Manoel você que manja muito de programação, você tem o github pra mim pegar exemplo de venda que você faz? ou sabe algum curso dahora pra mim seguir de exemplo? abraços irmao

Quando você cria uma classe, por exemplo, Pessoa com um Endereco e não instancia, você pode ter problemas de nullpointerexception ao tentar acessar os atributos do objeto Endereco nas páginas .xhtml. Algo tipo:

<h:inputText value="#{pessoaBean.pessoa.endereco.rua}"/>

Se você não tiver instanciado o objeto do tipo Endereco na classe Pessoa, você vai receber uma exceção informando que a propriedade que você está tentando acessar está nula. Recomendo sempre instanciar objetos dentro de objetos, pois você não vai lembrar no futuro que tem que instanciar esse objeto dentro de outro objeto. Dessa forma, quando o programador instanciar um objeto do tipo Pessoa, automaticamente, será instanciado um objeto do tipo Endereco pra ele.

Pow, Alisson, não hospedamos os sistemas no Github. Temos um repositório dedicado aqui no trabalho, com backup, etc, mas sem acesso externo... se não, te passava.

Abraço.

Tranquilo Manoel é nois! tava olhando em usar o jboss, ai tem uma opçao de usar o seam né? algo assim, ele tbm usa com jsf?

Manoel tenho uma outra duvida, se você desenvolver uma aplicação usando o jboss, e se eu usar usando o maven eu posso fazer tudo oque foi feito pelo jboss? vlw manim

Fala, Alisson! Tava offline esses dias...

O Seam é para o desenvolvimento de aplicações Java EE. Daí ele integra JSF, JPA, EJB, AJAX e gerenciamento de processos de negócio.

Mas nunca fiz nada com ele...

O maven gerencia dependências... qualquer tipo de dependência que esteja nos repositórios dele. Você pode usar com JBoss também.

Abraço