Annotation e Views
05/10/2009 00:00
0
Olá, gostaria de perguntar para os usuário prós de Grails, se tem como eu usar algum modificador, por exemplo Annotations, para modificar a label gerada na view, pelo "grails generate-views". Por exemplo


//Tenho a seguinte classe
class Pessoa{
String xnome
String xtelefone
}


Na view ele gera

xnome: [campo de texto]
xtelefone: [campo de texto]


eu queria por exemplo colocar uma annotations, como esta:

//Tenho a seguinte classe
class Pessoa{
@Label{name="Nome"}
String xnome
@Label{name="Telefone"}
String xtelefone
}


e gerar uma view como esta:

Nome: [campo de texto]
Telefone: [campo de texto]
Tags: Grails


0
o scaffold ao gerar a view (no exemplo create.gsp) utiliza a seguinte trecho :

 
Collections.sort(props, comparator.constructors[0].newInstance([domainClass] as Object[]))
props.each { p ->
if(!Collection.class.isAssignableFrom(p.type)) {
cp = domainClass.constrainedProperties[p.name]
display = (cp ? cp.display : true)
if(display) { %>
<tr class=&quot;prop&quot;>
<td valign=&quot;top&quot; class=&quot;name&quot;>
<label for=&quot;${p.name}&quot;>${p.naturalName}&#58;</label>
</td>
<td valign=&quot;top&quot; class=&quot;value \${hasErrors(bean&#58;${propertyName},field&#58;'${p.name}','errors')}&quot;>
${renderEditor(p)}
</td>
</tr>
<% } } } %>


Observe que para colocar o label, o scaffold utiliza p.naturalName. Procurei como alterar esse p.naturalName não achei, mas talvez voce posse mexer no scaffold para buscar do arquivo i18n colocando a propriedade correta para cada campo, ou de outra forma.

Espero ter ajudado de alguma forma. Se souber de alguma coisa coloque no forum

Abraços
05/10/2009 00:00


0
acabei de ver uma coisa interessante, um plugin para esse caso :

http&#58;//grails.org/I18n+Templates+Plugin

Abraços
05/10/2009 00:00


0
Até que enfim consegui responder acho que o problema era o navegador....não precisa nem falar qual eu estava usando, mas
efim o plugin que vc me passou é impressionante, realmente funciona, no caso basta eu instalar o plugin com a seguinte linha de comando:
grails install-plugin i18n-templates


Após instalado fica facil utilizá-lo

basta digitar outra linha de comando que ira gerar a partir da classe as propriedades correpondetes à aquela classe

grails generate-i18n-messages <Class>


por exemplo eu tinha a classe:

class Livro {

String xt;//titulo
String xa;//autor

}


Ele gerou as propiedades seguintes, cole-as no arquivo &quot;grails-app\i18n\messages.properties&quot; do seu projeto, aqui eu colei já modificado, depois basta gerar as views que ele adequará ao que vc especificou....

# Livro messages

livro.create=Criar Livro
livro.edit=Editar Livro
livro.list=Lista de Livros
livro.new=Novo Livro
livro.show=Dados do Livro
livro.created=Livro {0} criado
livro.updated=Livro {0} atualizado
livro.deleted=Livro {0} apagado
livro.not.found=Não foi encontrado um livro com o codigo = {0}
livro.not.deleted=O Livro de código {0} não foi deletado
livro.optimistic.locking.failure=Another user has updated this Livro while you were editing
livro.id=Id
livro.xa=Autor
livro.xa.nullable.error=Property [Autor] of class [Livro] cannot be null
livro.xt=Titulo
livro.xt.nullable.error=Property [Titulo] of class [Livro] cannot be null



cara mto bom, mto util ... estou impressionado.
05/10/2009 00:00



Ainda não faz parte da comunidade???

Para se registrar, clique aqui.


Aprenda Groovy e Grails com a Formação itexto!

Newsletter Semana Groovy

Assinar

Envie seu link!


Livro de Grails


/dev/All

Os melhores blogs de TI (e em português) em um único lugar!

 
Creative Commons
RSS Grails Brasil é mantido por itexto Consultoria.
Em caso de problemas contacte Henrique Lobo Weissmann (Kico) por e-mail: kico@itexto.com.br
Todo o conteúdo presente neste site adota o Creative Commons como licença padrão.
Ver: 4.14.0
itexto