|
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
|