From: Rafael S. <ra...@in...> - 2003-08-19 03:19:57
|
-----Mensagem original----- De: bla...@li... [mailto:bla...@li...] Em nome de lscheidegger - xdevelopment Enviada em: segunda-feira, 19 de agosto de 2002 00:04 Para: bla...@so... Assunto: RES: [Blake-devel] Fontes do Inectis [...] > Ao inv=E9s disso acho que temos que deixar a interpreta=E7=E3o do que = deve ser uma campo em um formul=E1rio, para nosso > meio-campo, ou seja, a ferramenta que utilizaremos para dar o parse do xml de defini=E7=E3o, no caso o Velocity. A > minha proposta =E9 que nossa defini=E7=E3o saia refletindo a orienta=E7=E3o a objeto, ou seja, com defini=E7=E3o de = propriedades > e m=E9todos, e o nosso parser com base no tipo de sa=EDda mais o tipo = de opera=E7=E3o/interface que foi solicitado no > request, gere um tipo de sa=EDda adequado, portanto ter=EDamos um xml de defini=E7=E3o como esse: <properties> > <number id=3D'id'> > <type>auto_increment</type> > <caption>Id do usu=E1rio</caption> > </string> > <string id=3D'nome'> > <length>100</length> > <mandatory>true</mandatory> > <caption>Nome do usu=E1rio</caption> > </string> [..] > Essa ferramenta de integra=E7=E3o que tem que entender que nosso = defini=E7=E3o acima em um tipo de sa=EDda html, em um > tipo de opera=E7=E3o de = inclus=E3o deve dar uma sa=EDda html de formul=E1rio, em outra sa=EDda como wml, = deveria gerar os > cards correspondentes. Ou seja, uma solu=E7=E3o abstrata. Entao.. eis um ponto interessante. Nisso estamos considerando que o resultado final estara em um formato XML, o qual devera ser processado por alguma ferramenta para a construcao da interface. SE nesse caso tratassemos tudo como objetos, ou seja, passar para o parser de interface uma arvore com os objetos, poderiamos navegar por eles para termos o que fosse necessario tambem, sendo ( com uma analise rapida, claro ) bem mais simples interagir pelos dados.=20 O formato do objeto em si nao tenho mto definido, mas digamos que seria como o formato do XML mesmo: public class Seila { // Tipo: number, string, date etc private int type; private String caption; private boolean mandatory; // etc etc... // gets e sets } entao o sistema faz o processamento que precisar e vai construindo uma arvore com esses objetos. Dai digamso que estamos usando o Velocity para a cosntrucao da interface.. ficaria algo como <!-- REPORT INTERFACE --> <!-- Caption --> <table> #foreach ($caption in $tree.report.objetosDeCaptionList) <tr> #foreach ($name in $caption.names) <td><b>$name</b></td> #end </tr> #end <!-- Conteudo --> #foreach ($line in $tree.report.objetosComOsDadosList) <tr> #foreach ($column in $line.columns) <td>$column.data</td> #end </tr> #end <!-- Links --> #foreach ($link in $tree.report.linksList) blablabla #end E assim por diante. Com isso conseguiriamos colocar qualquer tipo de conteudo em qualquer canto da tela, de maneira simples. Algo nesse estilo. Rafael |